[PATCH v3 25/38] virtio_config: disallow native type fields (again)

Michael S. Tsirkin
2020-08-05T17:17:10Z

_Generic version allowed __uXX types but that is no longer necessary:

Transitional devices should all use __virtioXX types (and __leXX for
fields not present in the legacy devices).
Modern ones should use __leXX.
_uXX type would be a bug.
Let's prevent that.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
include/linux/virtio_config.h | 16 ++--------------
1 file changed, 2 insertions(+), 14 deletions(-)

diff --git a/include/linux/virtio_config.h b/include/linux/virtio_config.h
index 7fa000f02721..441fd6dd42ab 100644
--- a/include/linux/virtio_config.h
+++ b/include/linux/virtio_config.h
@@ -304,13 +304,7 @@ static inline __virtio64 cpu_to_virtio64(struct virtio_device *vdev, u64 val)
__u8: (x), \
__le16: virtio16_to_cpu((vdev), (__force __virtio16)(x)), \
__le32: virtio32_to_cpu((vdev), (__force __virtio32)(x)), \
- __le64: virtio64_to_cpu((vdev), (__force __virtio64)(x)), \
- default: _Generic((x), \
- __u8: (x), \
- __u16: virtio16_to_cpu((vdev), (__force __virtio16)(x)), \
- __u32: virtio32_to_cpu((vdev), (__force __virtio32)(x)), \
- __u64: virtio64_to_cpu((vdev), (__force __virtio64)(x)) \
- ) \
+ __le64: virtio64_to_cpu((vdev), (__force __virtio64)(x)) \
) \
)

@@ -330,13 +324,7 @@ static inline __virtio64 cpu_to_virtio64(struct virtio_device *vdev, u64 val)
__u8: (x), \
__le16: (__force __le16)cpu_to_virtio16((vdev), (x)), \
__le32: (__force __le32)cpu_to_virtio32((vdev), (x)), \
- __le64: (__force __le64)cpu_to_virtio64((vdev), (x)), \
- default: _Generic((m), \
- __u8: (x), \
- __u16: (__force __u16)cpu_to_virtio16((vdev), (x)), \
- __u32: (__force __u32)cpu_to_virtio32((vdev), (x)), \
- __u64: (__force __u64)cpu_to_virtio64((vdev), (x)) \
- ) \
+ __le64: (__force __le64)cpu_to_virtio64((vdev), (x)) \
) \
)

--
MST