lkml.org 
[lkml]   [2014]   [Jul]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: Is espfix64's double-fault thing OK on Xen?
    On Mon, Jul 14, 2014 at 10:11 AM, Andy Lutomirski <luto@amacapital.net> wrote:
    > On Mon, Jul 14, 2014 at 10:04 AM, H. Peter Anvin <hpa@zytor.com> wrote:
    >> On 07/09/2014 04:17 PM, Andy Lutomirski wrote:
    >>> This part in __do_double_fault looks fishy:
    >>>
    >>> cmpl $__KERNEL_CS,CS(%rdi)
    >>> jne do_double_fault
    >>>
    >>> Shouldn't that be:
    >>>
    >>> test $3,CS(%rdi)
    >>> jnz do_double_fault
    >>>
    >>
    >> No, it should be fine. The *only* case where we need to do the espfix
    >> magic is when we are on __KERNEL_CS.
    >>
    >
    > IIRC Xen has a somewhat different GDT, and at least the userspace CS
    > in IA32_STAR disagrees with normal Linux. If the kernel CS is also
    > strange, then there will be an extra possible CS value here.

    There's FLAT_KERNEL_CS64, which is not equal to __KERNEL_CS. If the
    espfix mechanism gets invoked with that CS, then I expect that
    something unexpected will happen.

    That being said, FLAT_KERNEL_CS64 is CPL3, so my code might not be any better.

    --Andy


    \
     
     \ /
      Last update: 2014-07-14 20:02    [W:2.465 / U:0.096 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site