diff options
Diffstat (limited to 'drivers/vhost/vhost.h')
| -rw-r--r-- | drivers/vhost/vhost.h | 21 | 
1 files changed, 7 insertions, 14 deletions
diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h index 4465ed5f316..3eda654b8f5 100644 --- a/drivers/vhost/vhost.h +++ b/drivers/vhost/vhost.h @@ -104,20 +104,18 @@ struct vhost_virtqueue {  	struct iovec *indirect;  	struct vring_used_elem *heads;  	/* Protected by virtqueue mutex. */ +	struct vhost_memory *memory;  	void *private_data; +	unsigned acked_features;  	/* Log write descriptors */  	void __user *log_base;  	struct vhost_log *log;  };  struct vhost_dev { -	/* Readers use RCU to access memory table pointer -	 * log base pointer and features. -	 * Writers use mutex below.*/ -	struct vhost_memory __rcu *memory; +	struct vhost_memory *memory;  	struct mm_struct *mm;  	struct mutex mutex; -	unsigned acked_features;  	struct vhost_virtqueue **vqs;  	int nvqs;  	struct file *log_file; @@ -127,7 +125,7 @@ struct vhost_dev {  	struct task_struct *worker;  }; -long vhost_dev_init(struct vhost_dev *, struct vhost_virtqueue **vqs, int nvqs); +void vhost_dev_init(struct vhost_dev *, struct vhost_virtqueue **vqs, int nvqs);  long vhost_dev_set_owner(struct vhost_dev *dev);  bool vhost_dev_has_owner(struct vhost_dev *dev);  long vhost_dev_check_owner(struct vhost_dev *); @@ -140,7 +138,7 @@ long vhost_vring_ioctl(struct vhost_dev *d, int ioctl, void __user *argp);  int vhost_vq_access_ok(struct vhost_virtqueue *vq);  int vhost_log_access_ok(struct vhost_dev *); -int vhost_get_vq_desc(struct vhost_dev *, struct vhost_virtqueue *, +int vhost_get_vq_desc(struct vhost_virtqueue *,  		      struct iovec iov[], unsigned int iov_count,  		      unsigned int *out_num, unsigned int *in_num,  		      struct vhost_log *log, unsigned int *log_num); @@ -174,13 +172,8 @@ enum {  			 (1ULL << VHOST_F_LOG_ALL),  }; -static inline int vhost_has_feature(struct vhost_dev *dev, int bit) +static inline int vhost_has_feature(struct vhost_virtqueue *vq, int bit)  { -	unsigned acked_features; - -	/* TODO: check that we are running from vhost_worker or dev mutex is -	 * held? */ -	acked_features = rcu_dereference_index_check(dev->acked_features, 1); -	return acked_features & (1 << bit); +	return vq->acked_features & (1 << bit);  }  #endif  | 
