[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 1/4] xen/PVH: Replace GDT_ENTRY with explicit constant
On Mon, Apr 30, 2018 at 12:23:36PM -0400, Boris Ostrovsky wrote: > Latest binutils release (2.29.1) will no longer allow proper computation > of GDT entries on 32-bits, with warning: > > arch/x86/xen/xen-pvh.S: Assembler messages: > arch/x86/xen/xen-pvh.S:150: Warning: shift count out of range (32 is not > between 0 and 31) > arch/x86/xen/xen-pvh.S:150: Warning: shift count out of range (40 is not > between 0 and 31) > arch/x86/xen/xen-pvh.S:150: Warning: shift count out of range (32 is not > between 0 and 31) > arch/x86/xen/xen-pvh.S:152: Warning: shift count out of range (32 is not > between 0 and 31) > arch/x86/xen/xen-pvh.S:152: Warning: shift count out of range (40 is not > between 0 and 31) > arch/x86/xen/xen-pvh.S:152: Warning: shift count out of range (32 is not > between 0 and 31) > > Use explicit value of the entry instead of using GDT_ENTRY() macro. > > Signed-off-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx > --- > arch/x86/xen/xen-pvh.S | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/arch/x86/xen/xen-pvh.S b/arch/x86/xen/xen-pvh.S > index e1a5fbe..934f7d4 100644 > --- a/arch/x86/xen/xen-pvh.S > +++ b/arch/x86/xen/xen-pvh.S > @@ -145,11 +145,11 @@ gdt_start: > .quad 0x0000000000000000 /* NULL descriptor */ > .quad 0x0000000000000000 /* reserved */ > #ifdef CONFIG_X86_64 > - .quad GDT_ENTRY(0xa09a, 0, 0xfffff) /* __KERNEL_CS */ > + .quad 0x00af9a000000ffff /* __BOOT_CS */ > #else > - .quad GDT_ENTRY(0xc09a, 0, 0xfffff) /* __KERNEL_CS */ > + .quad 0x00cf9a000000ffff /* __BOOT_CS */ Maybe it would be cleaner to use something like: .word 0xffff /* limit */ .word 0 /* base */ .byte 0 /* base */ .byte 0x9a /* access */ #ifdef CONFIG_X86_64 .byte 0xaf /* flags plus limit */ #else .byte 0xcf /* flags plus limit */ #endif .byte 0 /* base */ Or try to fix the GDT_ENTRY macro, maybe if you prepend extra 0's to make the values 64bit that would prevent the warnings? Or declare the GDT in enlighten_pvh in C and use it here? Also, IIRC the base/limit values are ignored in long mode. Thanks, Roger. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |