Re: [PATCH][GIT PULL][v3.3] x86: Test saved %rip in NMI to determinenested NMI

From: H. Peter Anvin
Date: Sun Feb 19 2012 - 15:45:57 EST


On 02/19/2012 12:34 PM, Steven Rostedt wrote:
On Sun, 2012-02-19 at 05:46 -0800, hpanvin@xxxxxxxxx wrote:
Vsyscall page, not vdso...

Peter,

My original patch was to check the %cs register against __KERNEL_CS, but
IIRC, you said that userspace can change that register to anything it
wanted before doing a long jump or something. Is this true for x86_64 as
well? I guess it would be because x86_64 can support 32bit apps.

Anyway, I'll add a check that makes sure that the RIP is less than the
FIXADDR sections as well.


User space can change %cs, but it can never set it to __KERNEL_CS; specifically user space can never set the bottom two bits in CS to zero.

So this should be a better test.

(Now, doing the test that way plays havoc with the braindamage knows as Xen paravirt, but I don't think it's subject to this particular NMI code.)

-hpa

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/