virtio_scsi: correct tags for config space fields
authorMichael S. Tsirkin <mst@redhat.com>
Fri, 10 Jul 2020 11:17:13 +0000 (07:17 -0400)
committerMichael S. Tsirkin <mst@redhat.com>
Wed, 5 Aug 2020 15:08:40 +0000 (11:08 -0400)
Tag config space fields as having virtio endian-ness.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
drivers/scsi/virtio_scsi.c
include/uapi/linux/virtio_scsi.h

index 0e0910c..c36aeb9 100644 (file)
@@ -746,14 +746,14 @@ static struct scsi_host_template virtscsi_host_template = {
 
 #define virtscsi_config_get(vdev, fld) \
        ({ \
-               typeof(((struct virtio_scsi_config *)0)->fld) __val; \
+               __virtio_native_type(struct virtio_scsi_config, fld) __val; \
                virtio_cread(vdev, struct virtio_scsi_config, fld, &__val); \
                __val; \
        })
 
 #define virtscsi_config_set(vdev, fld, val) \
        do { \
-               typeof(((struct virtio_scsi_config *)0)->fld) __val = (val); \
+               __virtio_native_type(struct virtio_scsi_config, fld) __val = (val); \
                virtio_cwrite(vdev, struct virtio_scsi_config, fld, &__val); \
        } while(0)
 
index cc18ef8..0abaae4 100644 (file)
@@ -103,16 +103,16 @@ struct virtio_scsi_event {
 } __attribute__((packed));
 
 struct virtio_scsi_config {
-       __u32 num_queues;
-       __u32 seg_max;
-       __u32 max_sectors;
-       __u32 cmd_per_lun;
-       __u32 event_info_size;
-       __u32 sense_size;
-       __u32 cdb_size;
-       __u16 max_channel;
-       __u16 max_target;
-       __u32 max_lun;
+       __virtio32 num_queues;
+       __virtio32 seg_max;
+       __virtio32 max_sectors;
+       __virtio32 cmd_per_lun;
+       __virtio32 event_info_size;
+       __virtio32 sense_size;
+       __virtio32 cdb_size;
+       __virtio16 max_channel;
+       __virtio16 max_target;
+       __virtio32 max_lun;
 } __attribute__((packed));
 
 /* Feature Bits */