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

Re: [PATCH] libxl: virtio: Fix build error for 32-bit platforms


  • To: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
  • From: Anthony PERARD <anthony.perard@xxxxxxxxxx>
  • Date: Thu, 15 Dec 2022 13:48:41 +0000
  • Authentication-results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
  • Cc: <xen-devel@xxxxxxxxxxxxx>, Juergen Gross <jgross@xxxxxxxx>, Julien Grall <julien@xxxxxxx>, <osstest-admin@xxxxxxxxxxxxxx>, Vincent Guittot <vincent.guittot@xxxxxxxxxx>, <stratos-dev@xxxxxxxxxxxxxxxxxxx>, Alex Bennée <alex.bennee@xxxxxxxxxx>, Stefano Stabellini <stefano.stabellini@xxxxxxxxxx>, Mathieu Poirier <mathieu.poirier@xxxxxxxxxx>, Mike Holmes <mike.holmes@xxxxxxxxxx>, Oleksandr Tyshchenko <olekstysh@xxxxxxxxx>, Wei Liu <wl@xxxxxxx>
  • Delivery-date: Thu, 15 Dec 2022 13:49:13 +0000
  • Ironport-data: A9a23:Dt3tyqvCvGCR8ciSdH1jEIq+yefnVEJZMUV32f8akzHdYApBsoF/q tZmKTiAO6qOYWumeNwlb4y/oR5VupSByoQyQQZtry9kRHgW+JbJXdiXEBz9bniYRiHhoOCLz O1FM4Wdc5pkJpP4jk3wWlQ0hSAkjclkfpKlVKiffHg0HVU/IMsYoUoLs/YjhYJ1isSODQqIu Nfjy+XSI1bg0DNvWo4uw/vrRChH4bKj5lv0gnRkPaoR5QWHyiFJZH4iDfrZw0XQE9E88tGSH 44v/JnhlkvF8hEkDM+Sk7qTWiXmlZaLYGBiIlIPM0STqkAqSh4ai87XB9JFAatjsB2bnsgZ9 Tl4ncfYpTHFnEH7sL91vxFwS0mSNEDdkVPNCSDXXce7lyUqf5ZwqhnH4Y5f0YAwo45K7W9yG fMwKBs1Pz2Al8+NwqOnEPAwgMMJKNPbBdZK0p1g5Wmx4fcORJnCR+PB5MNC3Sd2jcdLdRrcT 5NHM3w1Nk2GOkARfAdMYH49tL7Aan3XejtEqFWTtOwv7nLa1gBZ27nxKtvFPNeNQK25m27J/ zqdozyiU3n2MvSz6j6q31SU2tPItnP+aKIAD4Oa1fd11Qj7Kms7V0RNCArTTeOCoku3R9JeJ lFS4i0vt6k/7mSvT9/0RRr+q3mB1jYHR9deGus9rhqRw6DZ5wKYAGksXj9Fado28sQxQFQC3 1uEj5XjCDppvbC9TXOb/62T6zSoNkA9MmsqdSICCwwf7LHLp4U+jQnTX81jOKGwh9zxXzr3x liiqSk9ivMTisoO2r6T+VHBiiir4J/TQWYd/RnNV36i9UZ1aZCNYJTt7VnA8e0GKIefR0OG+ n8elKC27u8UCoqWvDeQW+hLF7asj96VPTuZjVNxEp0J8zW252XlbY1WpjZkKy9BLMcedCTpJ kzOvApLzJtSOnKwaulweY3ZI9ory6PtE8ijWe3VcsZJfrB1dQmO5iYoYlSft0jqi1MwnLojf J6XdMeqJWYXD7x9yzi7TPtb1qUkrgg82GfSSJbT3xmhl72EaxaopawtaQXUKLpjteXd/VuTo 40329a2Jwt3UMbGMwTU4aMoL0EWd2FnA5fcr9ZnT7vWSuZ5I10JB/jUyLInXoVqmaVJi+vFl k2Atl9kJEnX3iOed1jTApx3QPa2BMsk8ypnVcA5FQzws0XPd7pD+0v2m3EfWbA8vNJuwvdvJ xXuU5XRW68fItgrFtl0UHUckGCAXE7z7e5tF3D/CNTaQ3KHb1KhxzMcVlGznBTi9wLu3SfEn 5Wu1xnAXb0ITBl4AcDdZZqHlg3u5CBBwrwvDhGWeLG/nXkAFqAwc0Qdadduc6kxxejrnGPGh 256/z9GzQUyn2PF2IaQ3v3Vx2tYO+B/AlBbDwHmAUWebEHnEp6Y6dYYCo6gJGmNPF4YDY3+P Y25OdmgaqxY9LuL2qIge4tWIVUWvIaw/OUHl107Qx0mrT2DU9tdH5VP5uEX3oUl+1OTkVHet p6nkjWCBYi0BQ==
  • Ironport-hdrordr: A9a23:ZyW2e6HK11bkWPGHpLqFrZHXdLJyesId70hD6qkRc20hTiX8ra vBoB1173/JYUkqKQ0dcLy7WZVoIkmshqKdn7NhX4tKNTOO0AGVxepZnOjfKlPbakjDHuU079 YeT0AXYuedMbAQ5/yU3OF2eexM/PC3tJmNwcPi5zNVSwduApsQnTuQyGygYzNLrM0tP+tIKH JYjPA31gZIAk5nCviTNz0+Ru3eoN+OvIv+CCR2fiIP2U21lDa177y/OASZ2xp2aUIz/Z4StV LdlhD/5OGFu/W2oyWssFP73tBtgd78zdkGItKKhtN9EESLti+YIL55XqGEvnQOgMzH0idTrP D85y04Oth16TfqcnqrrQDL0w3tuQxekEPK+BujmH7+ps68ez4gEcpGgutiA2Hk13Y=
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On Thu, Dec 15, 2022 at 07:01:40PM +0530, Viresh Kumar wrote:
> The field 'base' in 'struct libxl_device_virtio' is defined as uint64,
> while we are printing it with '%lu', which is 32bit only 32-bit
> platforms. And so generates a error like:
> 
>   libxl_internal.h:4388:51: error: format '%lu' expects argument of type 'long
>   unsigned int', but argument 3 has type 'uint64_t' {aka 'long long unsigned
>   int'} [-Werror=format=]
> 
> Fix the same by using PRIx64 instead.
> 
> Now that the base name is available in hexadecimal format, prefix it
> with '0x' as well, which strtoul() also depends upon since base passed
> is 0.
> 
> Fixes: 43ba5202e2ee ("libxl: add support for generic virtio device")
> Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
> ---
> Couldn't test on 32-bit platforms yet, but works fine for 64 bit one.
> 
>  tools/libs/light/libxl_virtio.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/libs/light/libxl_virtio.c b/tools/libs/light/libxl_virtio.c
> index 6a38def2faf5..2217bda8a253 100644
> --- a/tools/libs/light/libxl_virtio.c
> +++ b/tools/libs/light/libxl_virtio.c
> @@ -45,12 +45,12 @@ static int libxl__set_xenstore_virtio(libxl__gc *gc, 
> uint32_t domid,
>      const char *transport = 
> libxl_virtio_transport_to_string(virtio->transport);
>  
>      flexarray_append_pair(back, "irq", GCSPRINTF("%u", virtio->irq));
> -    flexarray_append_pair(back, "base", GCSPRINTF("%lu", virtio->base));
> +    flexarray_append_pair(back, "base", GCSPRINTF("0x%"PRIx64, 
> virtio->base));

There is also PRIu64 that exist, which would be perfect to replace %u.
Could we use that instead?

I'd rather not have to think about which base is used for numbers in
xenstore. I can't find any hexadecimal numbers in xenstore for a simple
guest at the moment, so probably best to avoid adding one. And using
hexadecimal isn't needed to fix the build.

Thanks,

-- 
Anthony PERARD



 


Rackspace

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