aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2012-07-22 15:19:24 -0400
committerDavid S. Miller <davem@davemloft.net>2012-07-22 15:19:24 -0400
commit5dc7c77967a64a1c2cb1a45f45f580fa18927a4c (patch)
tree286a35eef8b89d95968166445e568fc7c125582e /drivers
parent2a304bb8fa6a60cf6039f9a686798ec330f198ef (diff)
parent163049aefdc04323a2d17ec9f2862027b43b0502 (diff)
Merge branch 'vhost-net-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost
Diffstat (limited to 'drivers')
-rw-r--r--drivers/vhost/net.c4
-rw-r--r--drivers/vhost/test.c4
-rw-r--r--drivers/vhost/vhost.c5
-rw-r--r--drivers/vhost/vhost.h6
4 files changed, 11 insertions, 8 deletions
diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c
index f82a7394756e..072cbbadbc36 100644
--- a/drivers/vhost/net.c
+++ b/drivers/vhost/net.c
@@ -823,14 +823,14 @@ static long vhost_net_ioctl(struct file *f, unsigned int ioctl,
823 return -EFAULT; 823 return -EFAULT;
824 return vhost_net_set_backend(n, backend.index, backend.fd); 824 return vhost_net_set_backend(n, backend.index, backend.fd);
825 case VHOST_GET_FEATURES: 825 case VHOST_GET_FEATURES:
826 features = VHOST_FEATURES; 826 features = VHOST_NET_FEATURES;
827 if (copy_to_user(featurep, &features, sizeof features)) 827 if (copy_to_user(featurep, &features, sizeof features))
828 return -EFAULT; 828 return -EFAULT;
829 return 0; 829 return 0;
830 case VHOST_SET_FEATURES: 830 case VHOST_SET_FEATURES:
831 if (copy_from_user(&features, featurep, sizeof features)) 831 if (copy_from_user(&features, featurep, sizeof features))
832 return -EFAULT; 832 return -EFAULT;
833 if (features & ~VHOST_FEATURES) 833 if (features & ~VHOST_NET_FEATURES)
834 return -EOPNOTSUPP; 834 return -EOPNOTSUPP;
835 return vhost_net_set_features(n, features); 835 return vhost_net_set_features(n, features);
836 case VHOST_RESET_OWNER: 836 case VHOST_RESET_OWNER:
diff --git a/drivers/vhost/test.c b/drivers/vhost/test.c
index 3de00d9fae2e..91d6f060aade 100644
--- a/drivers/vhost/test.c
+++ b/drivers/vhost/test.c
@@ -261,14 +261,14 @@ static long vhost_test_ioctl(struct file *f, unsigned int ioctl,
261 return -EFAULT; 261 return -EFAULT;
262 return vhost_test_run(n, test); 262 return vhost_test_run(n, test);
263 case VHOST_GET_FEATURES: 263 case VHOST_GET_FEATURES:
264 features = VHOST_FEATURES; 264 features = VHOST_NET_FEATURES;
265 if (copy_to_user(featurep, &features, sizeof features)) 265 if (copy_to_user(featurep, &features, sizeof features))
266 return -EFAULT; 266 return -EFAULT;
267 return 0; 267 return 0;
268 case VHOST_SET_FEATURES: 268 case VHOST_SET_FEATURES:
269 if (copy_from_user(&features, featurep, sizeof features)) 269 if (copy_from_user(&features, featurep, sizeof features))
270 return -EFAULT; 270 return -EFAULT;
271 if (features & ~VHOST_FEATURES) 271 if (features & ~VHOST_NET_FEATURES)
272 return -EOPNOTSUPP; 272 return -EOPNOTSUPP;
273 return vhost_test_set_features(n, features); 273 return vhost_test_set_features(n, features);
274 case VHOST_RESET_OWNER: 274 case VHOST_RESET_OWNER:
diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c
index 112156f68afb..ef82a0d18489 100644
--- a/drivers/vhost/vhost.c
+++ b/drivers/vhost/vhost.c
@@ -64,7 +64,7 @@ static int vhost_poll_wakeup(wait_queue_t *wait, unsigned mode, int sync,
64 return 0; 64 return 0;
65} 65}
66 66
67static void vhost_work_init(struct vhost_work *work, vhost_work_fn_t fn) 67void vhost_work_init(struct vhost_work *work, vhost_work_fn_t fn)
68{ 68{
69 INIT_LIST_HEAD(&work->node); 69 INIT_LIST_HEAD(&work->node);
70 work->fn = fn; 70 work->fn = fn;
@@ -137,8 +137,7 @@ void vhost_poll_flush(struct vhost_poll *poll)
137 vhost_work_flush(poll->dev, &poll->work); 137 vhost_work_flush(poll->dev, &poll->work);
138} 138}
139 139
140static inline void vhost_work_queue(struct vhost_dev *dev, 140void vhost_work_queue(struct vhost_dev *dev, struct vhost_work *work)
141 struct vhost_work *work)
142{ 141{
143 unsigned long flags; 142 unsigned long flags;
144 143
diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h
index 8de1fd5b8efb..1125af3d27d1 100644
--- a/drivers/vhost/vhost.h
+++ b/drivers/vhost/vhost.h
@@ -43,6 +43,9 @@ struct vhost_poll {
43 struct vhost_dev *dev; 43 struct vhost_dev *dev;
44}; 44};
45 45
46void vhost_work_init(struct vhost_work *work, vhost_work_fn_t fn);
47void vhost_work_queue(struct vhost_dev *dev, struct vhost_work *work);
48
46void vhost_poll_init(struct vhost_poll *poll, vhost_work_fn_t fn, 49void vhost_poll_init(struct vhost_poll *poll, vhost_work_fn_t fn,
47 unsigned long mask, struct vhost_dev *dev); 50 unsigned long mask, struct vhost_dev *dev);
48void vhost_poll_start(struct vhost_poll *poll, struct file *file); 51void vhost_poll_start(struct vhost_poll *poll, struct file *file);
@@ -201,7 +204,8 @@ enum {
201 VHOST_FEATURES = (1ULL << VIRTIO_F_NOTIFY_ON_EMPTY) | 204 VHOST_FEATURES = (1ULL << VIRTIO_F_NOTIFY_ON_EMPTY) |
202 (1ULL << VIRTIO_RING_F_INDIRECT_DESC) | 205 (1ULL << VIRTIO_RING_F_INDIRECT_DESC) |
203 (1ULL << VIRTIO_RING_F_EVENT_IDX) | 206 (1ULL << VIRTIO_RING_F_EVENT_IDX) |
204 (1ULL << VHOST_F_LOG_ALL) | 207 (1ULL << VHOST_F_LOG_ALL),
208 VHOST_NET_FEATURES = VHOST_FEATURES |
205 (1ULL << VHOST_NET_F_VIRTIO_NET_HDR) | 209 (1ULL << VHOST_NET_F_VIRTIO_NET_HDR) |
206 (1ULL << VIRTIO_NET_F_MRG_RXBUF), 210 (1ULL << VIRTIO_NET_F_MRG_RXBUF),
207}; 211};