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

From: Sergei Shtylyov <[email-masked]>
Date: Sun, 30 Nov 2014 18:44:33 +0300

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 <[email-masked]>
> Reviewed-by: Jason Wang <[email-masked]>
> ---
>   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)).

[...]

WBR, Sergei