[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <200811190044.11566.goretux@gmail.com>
Date: Wed, 19 Nov 2008 00:44:11 +0100
From: Eric Lacombe <goretux@...il.com>
To: Arjan van de Ven <arjan@...radead.org>
Cc: Ingo Molnar <mingo@...e.hu>, linux-kernel@...r.kernel.org
Subject: Re: [x86] do_arch_prctl - bug?
I look at the Intel docs (vol. 3A) again, and see that in 64 bits mode the
hidden field gs.base are physically mapped to the MSR, so it seems that in
order to load gs.base we don't need to load gs (like in 32 bits mode), but
rather we only need to load the MSR.
So I don't understand the purpose of load_gs_index in that context :
if (doit) {
load_gs_index(0);
ret = checking_wrmsrl(MSR_KERNEL_GS_BASE, addr);
}
Why don't we only load the MSR ?
What is the purpose of calling load_gs_index with 0 as parameter ?
Thanks in advance for your response,
Eric
> ENTRY(native_load_gs_index)
> CFI_STARTPROC
> pushf
> CFI_ADJUST_CFA_OFFSET 8
> DISABLE_INTERRUPTS(CLBR_ANY | ~(CLBR_RDI))
> SWAPGS
> gs_change:
> movl %edi,%gs
> 2: mfence /* workaround */
> SWAPGS
> popf
> CFI_ADJUST_CFA_OFFSET -8
> ret
> CFI_ENDPROC
> ENDPROC(native_load_gs_index)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists