Messages in this thread | | | Date | Sun, 19 Feb 2012 12:45:09 -0800 | From | "H. Peter Anvin" <> | Subject | Re: [PATCH][GIT PULL][v3.3] x86: Test saved %rip in NMI to determine nested NMI |
| |
On 02/19/2012 12:34 PM, Steven Rostedt wrote: > On Sun, 2012-02-19 at 05:46 -0800, hpanvin@gmail.com 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
| |