[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 03.12.13 at 03:14, Andrew Cooper <andrew.cooper3@xxxxxxxxxx> 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.

Does it? The '\0' is consistently being translated as '0' rather than
the intended NIL for every gas from 2.18 to 2.23.2.

I'm not eager to take the other two adjustments though - the
code is better readable/understandable the with a closing quote
in place.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.