Messages in this thread | | | From | Andy Lutomirski <> | Date | Fri, 8 Apr 2016 15:06:07 -0700 | Subject | Re: [Xen-devel] Does __KERNEL_DS serve a purpose? |
| |
On Fri, Apr 8, 2016 at 10:12 AM, Paolo Bonzini <pbonzini@redhat.com> wrote: > > > On 08/04/2016 18:00, Andy Lutomirski wrote: >> But %ss can be loaded with 0 on 64-bit kernels. (I assume that >> loading 0 into %ss sets SS.DPL to 0 if done at CPL0, but I'm vague on >> this, since it only really matters to hypervisor code AFAIK.) > > It's even simpler, unless CPL=0 SS cannot be loaded with 0 while in a > 64-bit code segment (SS can never be loaded with 0 if you're not in a > 64-bit code segment). > > Thus indeed SS=0 implies SS.DPL=0 on 64-bit kernels.
I think we are stuck with __KERNEL_DS: SYSCALL uses it. Unless we start fiddling with conforming code segments (ugh), I don't think there's a valid GDT layout that doesn't have two flat data segments.
Oh well, chalk it up to historical accident.
| |