2022-12-22 19:45:59

by Michael S. Tsirkin

[permalink] [raw]
Subject: [PATCH] virtio_blk: mark all zone fields LE

zone is a virtio 1.x feature so all fields are LE,
they are handled as such, but have mistakenly been labeled
__virtioXX in the header. This results in a bunch of sparse warnings.

Use the __leXX tags to make sparse happy.

Signed-off-by: Michael S. Tsirkin <[email protected]>
---
include/uapi/linux/virtio_blk.h | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/include/uapi/linux/virtio_blk.h b/include/uapi/linux/virtio_blk.h
index f4d5ee7c6f30..ec3c3779406f 100644
--- a/include/uapi/linux/virtio_blk.h
+++ b/include/uapi/linux/virtio_blk.h
@@ -141,11 +141,11 @@ struct virtio_blk_config {

/* Zoned block device characteristics (if VIRTIO_BLK_F_ZONED) */
struct virtio_blk_zoned_characteristics {
- __virtio32 zone_sectors;
- __virtio32 max_open_zones;
- __virtio32 max_active_zones;
- __virtio32 max_append_sectors;
- __virtio32 write_granularity;
+ __le32 zone_sectors;
+ __le32 max_open_zones;
+ __le32 max_active_zones;
+ __le32 max_append_sectors;
+ __le32 write_granularity;
__u8 model;
__u8 unused2[3];
} zoned;
@@ -245,11 +245,11 @@ struct virtio_blk_outhdr {
*/
struct virtio_blk_zone_descriptor {
/* Zone capacity */
- __virtio64 z_cap;
+ __le64 z_cap;
/* The starting sector of the zone */
- __virtio64 z_start;
+ __le64 z_start;
/* Zone write pointer position in sectors */
- __virtio64 z_wp;
+ __le64 z_wp;
/* Zone type */
__u8 z_type;
/* Zone state */
@@ -258,7 +258,7 @@ struct virtio_blk_zone_descriptor {
};

struct virtio_blk_zone_report {
- __virtio64 nr_zones;
+ __le64 nr_zones;
__u8 reserved[56];
struct virtio_blk_zone_descriptor zones[];
};
--
MST


2022-12-23 02:46:34

by Chaitanya Kulkarni

[permalink] [raw]
Subject: Re: [PATCH] virtio_blk: mark all zone fields LE



>
> On Dec 22, 2022, at 11:32 AM, Michael S. Tsirkin <[email protected]> wrote:
>
> zone is a virtio 1.x feature so all fields are LE,
> they are handled as such, but have mistakenly been labeled
> __virtioXX in the header. This results in a bunch of sparse warnings.
>
> Use the __leXX tags to make sparse happy.
>
> Signed-off-by: Michael S. Tsirkin <[email protected]>
> ---
>

Every field from spec should reflect endianness from spec...

Reviewed-by: Chaitanya Kulkarni <[email protected]>

-ck



2022-12-23 06:51:07

by Jason Wang

[permalink] [raw]
Subject: Re: [PATCH] virtio_blk: mark all zone fields LE

On Fri, Dec 23, 2022 at 3:32 AM Michael S. Tsirkin <[email protected]> wrote:
>
> zone is a virtio 1.x feature so all fields are LE,
> they are handled as such, but have mistakenly been labeled
> __virtioXX in the header. This results in a bunch of sparse warnings.
>
> Use the __leXX tags to make sparse happy.
>
> Signed-off-by: Michael S. Tsirkin <[email protected]>

Acked-by: Jason Wang <[email protected]>

Thanks

> ---
> include/uapi/linux/virtio_blk.h | 18 +++++++++---------
> 1 file changed, 9 insertions(+), 9 deletions(-)
>
> diff --git a/include/uapi/linux/virtio_blk.h b/include/uapi/linux/virtio_blk.h
> index f4d5ee7c6f30..ec3c3779406f 100644
> --- a/include/uapi/linux/virtio_blk.h
> +++ b/include/uapi/linux/virtio_blk.h
> @@ -141,11 +141,11 @@ struct virtio_blk_config {
>
> /* Zoned block device characteristics (if VIRTIO_BLK_F_ZONED) */
> struct virtio_blk_zoned_characteristics {
> - __virtio32 zone_sectors;
> - __virtio32 max_open_zones;
> - __virtio32 max_active_zones;
> - __virtio32 max_append_sectors;
> - __virtio32 write_granularity;
> + __le32 zone_sectors;
> + __le32 max_open_zones;
> + __le32 max_active_zones;
> + __le32 max_append_sectors;
> + __le32 write_granularity;
> __u8 model;
> __u8 unused2[3];
> } zoned;
> @@ -245,11 +245,11 @@ struct virtio_blk_outhdr {
> */
> struct virtio_blk_zone_descriptor {
> /* Zone capacity */
> - __virtio64 z_cap;
> + __le64 z_cap;
> /* The starting sector of the zone */
> - __virtio64 z_start;
> + __le64 z_start;
> /* Zone write pointer position in sectors */
> - __virtio64 z_wp;
> + __le64 z_wp;
> /* Zone type */
> __u8 z_type;
> /* Zone state */
> @@ -258,7 +258,7 @@ struct virtio_blk_zone_descriptor {
> };
>
> struct virtio_blk_zone_report {
> - __virtio64 nr_zones;
> + __le64 nr_zones;
> __u8 reserved[56];
> struct virtio_blk_zone_descriptor zones[];
> };
> --
> MST
>