Re: [PATCH v4 02/42] virtio: add support for 64 bit features.

From: Michael S. Tsirkin
Date: Wed Nov 26 2014 - 11:57:39 EST


On Wed, Nov 26, 2014 at 05:48:09PM +0100, Greg Kurz wrote:
> On Tue, 25 Nov 2014 18:41:22 +0200
> "Michael S. Tsirkin" <mst@xxxxxxxxxx> wrote:
>
> > From: Rusty Russell <rusty@xxxxxxxxxxxxxxx>
> >
> > Change the u32 to a u64, and make sure to use 1ULL everywhere!
> >
> > Cc: Brian Swetland <swetland@xxxxxxxxxx>
> > Cc: Christian Borntraeger <borntraeger@xxxxxxxxxx>
> > [Thomas Huth: fix up virtio-ccw get_features]
> > Signed-off-by: Rusty Russell <rusty@xxxxxxxxxxxxxxx>
> > Signed-off-by: Cornelia Huck <cornelia.huck@xxxxxxxxxx>
> > Acked-by: Pawel Moll <pawel.moll@xxxxxxx>
> > Acked-by: Ohad Ben-Cohen <ohad@xxxxxxxxxx>
> >
> > Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx>

...

> > @@ -86,14 +86,14 @@ static inline bool virtio_has_feature(const struct virtio_device *vdev,
> > {
> > /* Did you forget to fix assumptions on max features? */
> > if (__builtin_constant_p(fbit))
> > - BUILD_BUG_ON(fbit >= 32);
> > + BUILD_BUG_ON(fbit >= 64);
>
>
> While you're here, maybe you could derive the max value from the .features field ?
>
> - BUILD_BUG_ON(fbit >= 64);
> + BUILD_BUG_ON(fbit >= (sizeof(vdev->features) << 3));

I don't see how that will help.
All that 1ULL math only works up to 64 bit.
So this only makes it look like we support any size,
but doesn't really.

No?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/