Re: [PATCH v7 28/46] vhost: make features 64 bit

Michael S. Tsirkin
2014-12-01T09:20:09Z

On Mon, Dec 01, 2014 at 04:12:37AM +0000, Ben Hutchings wrote:
> On Sun, 2014-11-30 at 18:44 +0300, Sergei Shtylyov wrote:
> > Hello.
> >
> > On 11/30/2014 6:11 PM, Michael S. Tsirkin wrote:
> >
> > > We need to use bit 32 for virtio 1.0
> >
> > > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> > > Reviewed-by: Jason Wang <jasowang@redhat.com>
> > > ---
> > > drivers/vhost/vhost.h | 4 ++--
> > > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > > diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h
> > > index 3eda654..c624b09 100644
> > > --- a/drivers/vhost/vhost.h
> > > +++ b/drivers/vhost/vhost.h
> > > @@ -106,7 +106,7 @@ struct vhost_virtqueue {
> > > /* Protected by virtqueue mutex. */
> > > struct vhost_memory *memory;
> > > void *private_data;
> > > - unsigned acked_features;
> > > + u64 acked_features;
> > > /* Log write descriptors */
> > > void __user *log_base;
> > > struct vhost_log *log;
> > > @@ -174,6 +174,6 @@ enum {
> > >
> > > static inline int vhost_has_feature(struct vhost_virtqueue *vq, int bit)
> > > {
> > > - return vq->acked_features & (1 << bit);
> > > + return vq->acked_features & (1ULL << bit);
> >
> > Erm, wouldn't the high word be just dropped when returning *int*? I think
> > you need !!(vq->acked_features & (1ULL << bit)).
>
> Or change the return type to bool.
>
> Ben.
>
> --
> Ben Hutchings
> The first rule of tautology club is the first rule of tautology club.

Yes, I'll do that I think.
Thanks!