qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 2/2] hw/timer/hpet: Fix DPRINTF format string


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH v2 2/2] hw/timer/hpet: Fix DPRINTF format string
Date: Sun, 13 Sep 2020 13:40:02 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0

On 9/12/20 7:40 PM, Dov Murik wrote:
> Hi Phil,
> 
> On 10/09/2020 16:58, Philippe Mathieu-Daudé wrote:
>> Fix building with HPET_DEBUG enabled:
>>
>>    hw/timer/hpet.c:512:73: error: format specifies type 'unsigned int'
>> but the argument has type 'uint64_t' (aka 'unsigned long')
>> [-Werror,-Wformat]
>>        DPRINTF("qemu: Enter hpet_ram_writel at %" PRIx64 " = %#x\n",
>> addr, value);
>>                                                             
>> ~~~           ^~~~~
>>                                                              %#lx
>>    hw/timer/hpet.c:655:21: error: format specifies type 'unsigned int'
>> but the argument has type 'uint64_t' (aka 'unsigned long')
>> [-Werror,-Wformat]
>>                        value, s->hpet_counter);
>>                        ^~~~~
>>
>> Reviewed-by: Thomas Huth <thuth@redhat.com>
>> Signed-off-by: Dov Murik <dovmurik@linux.vnet.ibm.com>
>> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
>> ---
>>   hw/timer/hpet.c | 9 ++++++---
>>   1 file changed, 6 insertions(+), 3 deletions(-)
>>
>> diff --git a/hw/timer/hpet.c b/hw/timer/hpet.c
>> index b683f64f1d3..20bd0388740 100644
>> --- a/hw/timer/hpet.c
>> +++ b/hw/timer/hpet.c
>> @@ -495,7 +495,8 @@ static void hpet_ram_write(void *opaque, hwaddr addr,
>>       HPETState *s = opaque;
>>       uint64_t old_val, new_val, val, index;
>>
>> -    DPRINTF("qemu: Enter hpet_ram_writel at %" PRIx64 " = %#x\n",
>> addr, value);
>> +    DPRINTF("qemu: Enter hpet_ram_writel at %#" HWADDR_PRIx " =
>> %#"PRIx64"\n",
>> +            addr, value);
> 
> You still use "#" in the format string; but qemu's CODING_STYLE.rst says:
> 
> //////////////
> 
> '#' printf flag
> ---------------
> 
> Do not use printf flag '#', like '%#x'.
> 
> Rationale: there are two ways to add a '0x' prefix to printed number:
> '0x%...'
> and '%#...'. For consistency the only one way should be used. Arguments for
> '0x%' are:
> 
> * it is more popular
> * '%#' omits the 0x for the value 0 which makes output inconsistent

Yes you are right, I missed that.

Do you mind adding that check to ./checkpatch?

> 
> //////////////
> 
> 
> 
> According to that, I think the better solution would be:
> 
> DPRINTF("qemu: Enter hpet_ram_writel at 0x%" HWADDR_PRIx
>         " = 0x%" PRIx64 "\n", addr, value);
> 
> 
> 
> 
>>       index = addr;
>>       old_val = hpet_ram_read(opaque, addr, 4);
>>       new_val = value;
>> @@ -637,7 +638,8 @@ static void hpet_ram_write(void *opaque, hwaddr addr,
>>               }
>>               s->hpet_counter =
>>                   (s->hpet_counter & 0xffffffff00000000ULL) | value;
>> -            DPRINTF("qemu: HPET counter written. ctr = %#x -> %"
>> PRIx64 "\n",
>> +            DPRINTF("qemu: HPET counter written. ctr = %#"
>> +                    PRIx64 " -> %#" PRIx64 "\n",
> 
> ditto.
> 
>>                       value, s->hpet_counter);
>>               break;
>>           case HPET_COUNTER + 4:
>> @@ -646,7 +648,8 @@ static void hpet_ram_write(void *opaque, hwaddr addr,
>>               }
>>               s->hpet_counter =
>>                   (s->hpet_counter & 0xffffffffULL) |
>> (((uint64_t)value) << 32);
>> -            DPRINTF("qemu: HPET counter + 4 written. ctr = %#x -> %"
>> PRIx64 "\n",
>> +            DPRINTF("qemu: HPET counter + 4 written. ctr = %#"
>> +                    PRIx64 " -> %#" PRIx64 "\n",
> 
> ditto.
> 
>>                       value, s->hpet_counter);
>>               break;
>>           default:
>>
> 
> -Dov
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]