[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] xen/arch/x86: Fix early boot command line parsing
On Tue, Dec 03, 2013 at 02:14:18AM +0000, Andrew Cooper wrote: > On 02/12/2013 19:15, Daniel Kiper wrote: > > There is no reliable way to encode nul character as a character so encode > > it as a number. Read: > > http://sourceware.org/binutils/docs/as/Characters.html. > > Octal and hex encoding does not work on at least my system (GNU assembler > > version 2.22 (x86_64-linux-gnu) using BFD version (GNU Binutils for Debian) > > 2.22). > > Without this fix e.g. no-real-mode option at the end of xen.gz command line > > is not detected. Additionally, encode other characters accordingly to > > the gas documentation. > > > > Signed-off-by: Daniel Kiper <daniel.kiper@xxxxxxxxxx> > > --- > > xen/arch/x86/boot/cmdline.S | 6 +++--- > > 1 file changed, 3 insertions(+), 3 deletions(-) > > > > diff --git a/xen/arch/x86/boot/cmdline.S b/xen/arch/x86/boot/cmdline.S > > index 05ffb94..4ea56b3 100644 > > --- a/xen/arch/x86/boot/cmdline.S > > +++ b/xen/arch/x86/boot/cmdline.S > > @@ -138,11 +138,11 @@ > > call .Lstrlen > > add $4,%esp > > xadd %eax,%ebx > > - cmpb $'\0',(%ebx) > > + cmpb $0,(%ebx) > > je 3f > > - cmpb $' ',(%ebx) > > + cmpb $' ,(%ebx) > > je 3f > > - cmpb $'=',(%ebx) > > + cmpb $'=,(%ebx) > > jne 1b > > 3: pop %ebx > > ret > > My version of binutils 2.22 for Debian Wheezy does perfectly well with > these constants as-are. > > What does the disassembly from your toolchain look like? I find it objdump -dm i386 xen/arch/x86/boot/head.o [...] 29f: 0f c1 c3 xadd %eax,%ebx 2a2: 80 3b 30 cmpb $0x30,(%ebx) ^^^^^ == '0' != NUL 2a5: 74 0a je 2b1 <__start+0x246> 2a7: 80 3b 20 cmpb $0x20,(%ebx) 2aa: 74 05 je 2b1 <__start+0x246> 2ac: 80 3b 3d cmpb $0x3d,(%ebx) 2af: 75 c2 jne 273 <__start+0x208> > quite hard to believe that the above syntax has been broken by a recent > version of binutils. I see the same issue on older machines too. If you show me how to encode NUL in gas assembly file I am happy to do that. Current notation does not work. Please test with no-real-mode (or other option checked at early boot stage) at the end of Xen boot command line. It is completely ignored. Once I found description of that issue somewhere but I do not remember where. Later I was hurt by it during EFI work. Daniel _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |