virtio_config: disallow native type fields (again)
authorMichael S. Tsirkin <mst@redhat.com>
Fri, 10 Jul 2020 11:55:52 +0000 (07:55 -0400)
committerMichael S. Tsirkin <mst@redhat.com>
Wed, 5 Aug 2020 15:08:41 +0000 (11:08 -0400)
_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

index 7fa000f..441fd6d 100644 (file)
@@ -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)) \
                                 ) \
                )