From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932848AbcDHWG3 (ORCPT ); Fri, 8 Apr 2016 18:06:29 -0400 Received: from mail-oi0-f41.google.com ([209.85.218.41]:32786 "EHLO mail-oi0-f41.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755131AbcDHWG1 (ORCPT ); Fri, 8 Apr 2016 18:06:27 -0400 MIME-Version: 1.0 In-Reply-To: <5707E681.7040202@redhat.com> References: <5707654F.1060407@citrix.com> <5707E681.7040202@redhat.com> From: Andy Lutomirski Date: Fri, 8 Apr 2016 15:06:07 -0700 Message-ID: Subject: Re: [Xen-devel] Does __KERNEL_DS serve a purpose? To: Paolo Bonzini Cc: Andrew Cooper , Andy Lutomirski , X86 ML , "linux-kernel@vger.kernel.org" , Borislav Petkov , kvm list , xen-devel Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Apr 8, 2016 at 10:12 AM, Paolo Bonzini 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.