Re: [PATCH v2 17/24] virtio_config: disallow native type fields

From: Michael S. Tsirkin
Date: Wed Aug 05 2020 - 13:03:26 EST


On Tue, Aug 04, 2020 at 04:50:39PM +0200, Cornelia Huck wrote:
> On Mon, 3 Aug 2020 16:59:57 -0400
> "Michael S. Tsirkin" <mst@xxxxxxxxxx> wrote:
>
> > Transitional devices should all use __virtioXX types.
>
> I think they should use __leXX for those fields that are not present
> with legacy devices?

Will correct.

> > Modern ones should use __leXX.
> > _uXX type would be a bug.
> > Let's prevent that.
>
> That sounds right, though.
>
> >
> > Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx>
> > ---
> > include/linux/virtio_config.h | 5 ++---
> > 1 file changed, 2 insertions(+), 3 deletions(-)
> >
> > diff --git a/include/linux/virtio_config.h b/include/linux/virtio_config.h
> > index 64da491936f7..c68f58f3bf34 100644
> > --- a/include/linux/virtio_config.h
> > +++ b/include/linux/virtio_config.h
> > @@ -319,9 +319,8 @@ static inline __virtio64 cpu_to_virtio64(struct virtio_device *vdev, u64 val)
> > __virtio_pick_type(x, __u8, __u8, \
> > __virtio_pick_endian(x, __virtio16, __virtio32, __virtio64, \
> > __virtio_pick_endian(x, __le16, __le32, __le64, \
> > - __virtio_pick_endian(x, __u16, __u32, __u64, \
> > - /* No other type allowed */ \
> > - (void)0)))))
> > + /* No other type allowed */ \
> > + (void)0))))
> >
> > #endif
> >