[Qemu-devel] [PATCH] hw/block/xen: use proper format string for printing sectors

Alex Bennée posted 1 patch 6 years, 9 months ago
Test docker-mingw@fedora passed
Test docker-clang@ubuntu passed
Test asan passed
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20190116121350.23863-1-alex.bennee@linaro.org
hw/block/xen-block.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[Qemu-devel] [PATCH] hw/block/xen: use proper format string for printing sectors
Posted by Alex Bennée 6 years, 9 months ago
The %lu format string is different depending on the host architecture
which causes builds like the debian-armhf-cross build to fail. Use the
correct PRi64 format string.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 hw/block/xen-block.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c
index be28b63442..a636487b3e 100644
--- a/hw/block/xen-block.c
+++ b/hw/block/xen-block.c
@@ -215,7 +215,7 @@ static void xen_block_realize(XenDevice *xendev, Error **errp)
 
     xen_device_backend_printf(xendev, "sector-size", "%u",
                               conf->logical_block_size);
-    xen_device_backend_printf(xendev, "sectors", "%lu",
+    xen_device_backend_printf(xendev, "sectors", "%"PRIi64,
                               blk_getlength(conf->blk) /
                               conf->logical_block_size);
 
-- 
2.17.1


Re: [Qemu-devel] [PATCH] hw/block/xen: use proper format string for printing sectors
Posted by Paul Durrant 6 years, 9 months ago
> -----Original Message-----
> From: Alex Bennée [mailto:alex.bennee@linaro.org]
> Sent: 16 January 2019 12:14
> To: peter.maydell@linaro.org
> Cc: qemu-devel@nongnu.org; Alex Bennée <alex.bennee@linaro.org>; Stefano
> Stabellini <sstabellini@kernel.org>; Anthony Perard
> <anthony.perard@citrix.com>; Paul Durrant <Paul.Durrant@citrix.com>; Kevin
> Wolf <kwolf@redhat.com>; Max Reitz <mreitz@redhat.com>; open list:X86
> <xen-devel@lists.xenproject.org>; open list:Block layer core <qemu-
> block@nongnu.org>
> Subject: [PATCH] hw/block/xen: use proper format string for printing
> sectors
> 
> The %lu format string is different depending on the host architecture
> which causes builds like the debian-armhf-cross build to fail. Use the
> correct PRi64 format string.
> 
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

This does the same thing as "xen: Fix format string" from Philippe, but this variant is better...

Reviewed-by: Paul Durrant <paul.durrant@citrix.com>

> ---
>  hw/block/xen-block.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c
> index be28b63442..a636487b3e 100644
> --- a/hw/block/xen-block.c
> +++ b/hw/block/xen-block.c
> @@ -215,7 +215,7 @@ static void xen_block_realize(XenDevice *xendev, Error
> **errp)
> 
>      xen_device_backend_printf(xendev, "sector-size", "%u",
>                                conf->logical_block_size);
> -    xen_device_backend_printf(xendev, "sectors", "%lu",
> +    xen_device_backend_printf(xendev, "sectors", "%"PRIi64,
>                                blk_getlength(conf->blk) /
>                                conf->logical_block_size);
> 
> --
> 2.17.1

Re: [Qemu-devel] [PATCH] hw/block/xen: use proper format string for printing sectors
Posted by Philippe Mathieu-Daudé 6 years, 9 months ago
On 1/16/19 1:19 PM, Paul Durrant wrote:
>> -----Original Message-----
>> From: Alex Bennée [mailto:alex.bennee@linaro.org]
>> Sent: 16 January 2019 12:14
>> To: peter.maydell@linaro.org
>> Cc: qemu-devel@nongnu.org; Alex Bennée <alex.bennee@linaro.org>; Stefano
>> Stabellini <sstabellini@kernel.org>; Anthony Perard
>> <anthony.perard@citrix.com>; Paul Durrant <Paul.Durrant@citrix.com>; Kevin
>> Wolf <kwolf@redhat.com>; Max Reitz <mreitz@redhat.com>; open list:X86
>> <xen-devel@lists.xenproject.org>; open list:Block layer core <qemu-
>> block@nongnu.org>
>> Subject: [PATCH] hw/block/xen: use proper format string for printing
>> sectors
>>
>> The %lu format string is different depending on the host architecture
>> which causes builds like the debian-armhf-cross build to fail. Use the
>> correct PRi64 format string.
>>
>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> 
> This does the same thing as "xen: Fix format string" from Philippe, but this variant is better...

OK.

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

> 
> Reviewed-by: Paul Durrant <paul.durrant@citrix.com>
> 
>> ---
>>  hw/block/xen-block.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c
>> index be28b63442..a636487b3e 100644
>> --- a/hw/block/xen-block.c
>> +++ b/hw/block/xen-block.c
>> @@ -215,7 +215,7 @@ static void xen_block_realize(XenDevice *xendev, Error
>> **errp)
>>
>>      xen_device_backend_printf(xendev, "sector-size", "%u",
>>                                conf->logical_block_size);
>> -    xen_device_backend_printf(xendev, "sectors", "%lu",
>> +    xen_device_backend_printf(xendev, "sectors", "%"PRIi64,
>>                                blk_getlength(conf->blk) /
>>                                conf->logical_block_size);
>>
>> --
>> 2.17.1
> 

Re: [Qemu-devel] [Xen-devel] [PATCH] hw/block/xen: use proper format string for printing sectors
Posted by Andrew Cooper 6 years, 9 months ago
On 16/01/2019 12:13, Alex Bennée wrote:
> The %lu format string is different depending on the host architecture
> which causes builds like the debian-armhf-cross build to fail. Use the
> correct PRi64 format string.
>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> ---
>  hw/block/xen-block.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c
> index be28b63442..a636487b3e 100644
> --- a/hw/block/xen-block.c
> +++ b/hw/block/xen-block.c
> @@ -215,7 +215,7 @@ static void xen_block_realize(XenDevice *xendev, Error **errp)
>  
>      xen_device_backend_printf(xendev, "sector-size", "%u",
>                                conf->logical_block_size);
> -    xen_device_backend_printf(xendev, "sectors", "%lu",
> +    xen_device_backend_printf(xendev, "sectors", "%"PRIi64,

PRIu64.

You've changed the signed-ness of what gets printed.

~Andrew

Re: [Qemu-devel] [Xen-devel] [PATCH] hw/block/xen: use proper format string for printing sectors
Posted by Alex Bennée 6 years, 9 months ago
Andrew Cooper <andrew.cooper3@citrix.com> writes:

> On 16/01/2019 12:13, Alex Bennée wrote:
>> The %lu format string is different depending on the host architecture
>> which causes builds like the debian-armhf-cross build to fail. Use the
>> correct PRi64 format string.
>>
>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>> ---
>>  hw/block/xen-block.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c
>> index be28b63442..a636487b3e 100644
>> --- a/hw/block/xen-block.c
>> +++ b/hw/block/xen-block.c
>> @@ -215,7 +215,7 @@ static void xen_block_realize(XenDevice *xendev, Error **errp)
>>
>>      xen_device_backend_printf(xendev, "sector-size", "%u",
>>                                conf->logical_block_size);
>> -    xen_device_backend_printf(xendev, "sectors", "%lu",
>> +    xen_device_backend_printf(xendev, "sectors", "%"PRIi64,
>
> PRIu64.
>
> You've changed the signed-ness of what gets printed.

I was deliberate as:
  int64_t blk_getlength(BlockBackend *blk);

although I have to admit a signed block length doesn't make much sense
to me. At least it isn't going to overflow and will show-up if the block
length is ever negative.

>
> ~Andrew


--
Alex Bennée

Re: [Qemu-devel] [Xen-devel] [PATCH] hw/block/xen: use proper format string for printing sectors
Posted by Paul Durrant 6 years, 9 months ago
> -----Original Message-----
> From: Alex Bennée [mailto:alex.bennee@linaro.org]
> Sent: 17 January 2019 08:21
> To: Andrew Cooper <Andrew.Cooper3@citrix.com>
> Cc: peter.maydell@linaro.org; Kevin Wolf <kwolf@redhat.com>; Stefano
> Stabellini <sstabellini@kernel.org>; open list:Block layer core <qemu-
> block@nongnu.org>; qemu-devel@nongnu.org; Max Reitz <mreitz@redhat.com>;
> Paul Durrant <Paul.Durrant@citrix.com>; Anthony Perard
> <anthony.perard@citrix.com>; open list:X86 <xen-
> devel@lists.xenproject.org>
> Subject: Re: [Xen-devel] [PATCH] hw/block/xen: use proper format string
> for printing sectors
> 
> 
> Andrew Cooper <andrew.cooper3@citrix.com> writes:
> 
> > On 16/01/2019 12:13, Alex Bennée wrote:
> >> The %lu format string is different depending on the host architecture
> >> which causes builds like the debian-armhf-cross build to fail. Use the
> >> correct PRi64 format string.
> >>
> >> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> >> ---
> >>  hw/block/xen-block.c | 2 +-
> >>  1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c
> >> index be28b63442..a636487b3e 100644
> >> --- a/hw/block/xen-block.c
> >> +++ b/hw/block/xen-block.c
> >> @@ -215,7 +215,7 @@ static void xen_block_realize(XenDevice *xendev,
> Error **errp)
> >>
> >>      xen_device_backend_printf(xendev, "sector-size", "%u",
> >>                                conf->logical_block_size);
> >> -    xen_device_backend_printf(xendev, "sectors", "%lu",
> >> +    xen_device_backend_printf(xendev, "sectors", "%"PRIi64,
> >
> > PRIu64.
> >
> > You've changed the signed-ness of what gets printed.
> 
> I was deliberate as:
>   int64_t blk_getlength(BlockBackend *blk);
> 
> although I have to admit a signed block length doesn't make much sense
> to me. At least it isn't going to overflow and will show-up if the block
> length is ever negative.

Yes, that's a much better failure mode than some weird huge number of sectors.

  Paul

> 
> >
> > ~Andrew
> 
> 
> --
> Alex Bennée
Re: [Qemu-devel] [PATCH] hw/block/xen: use proper format string for printing sectors
Posted by Peter Maydell 6 years, 9 months ago
On Wed, 16 Jan 2019 at 12:13, Alex Bennée <alex.bennee@linaro.org> wrote:
>
> The %lu format string is different depending on the host architecture
> which causes builds like the debian-armhf-cross build to fail. Use the
> correct PRi64 format string.
>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> ---
>  hw/block/xen-block.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c
> index be28b63442..a636487b3e 100644
> --- a/hw/block/xen-block.c
> +++ b/hw/block/xen-block.c
> @@ -215,7 +215,7 @@ static void xen_block_realize(XenDevice *xendev, Error **errp)
>
>      xen_device_backend_printf(xendev, "sector-size", "%u",
>                                conf->logical_block_size);
> -    xen_device_backend_printf(xendev, "sectors", "%lu",
> +    xen_device_backend_printf(xendev, "sectors", "%"PRIi64,
>                                blk_getlength(conf->blk) /
>                                conf->logical_block_size);
>

Applied to master as a build fix, thanks.

-- PMM