diff options
author | David S. Miller <davem@davemloft.net> | 2012-07-22 15:19:24 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-07-22 15:19:24 -0400 |
commit | 5dc7c77967a64a1c2cb1a45f45f580fa18927a4c (patch) | |
tree | 286a35eef8b89d95968166445e568fc7c125582e /drivers | |
parent | 2a304bb8fa6a60cf6039f9a686798ec330f198ef (diff) | |
parent | 163049aefdc04323a2d17ec9f2862027b43b0502 (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.c | 4 | ||||
-rw-r--r-- | drivers/vhost/test.c | 4 | ||||
-rw-r--r-- | drivers/vhost/vhost.c | 5 | ||||
-rw-r--r-- | drivers/vhost/vhost.h | 6 |
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 | ||
67 | static void vhost_work_init(struct vhost_work *work, vhost_work_fn_t fn) | 67 | void 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 | ||
140 | static inline void vhost_work_queue(struct vhost_dev *dev, | 140 | void 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 | ||
46 | void vhost_work_init(struct vhost_work *work, vhost_work_fn_t fn); | ||
47 | void vhost_work_queue(struct vhost_dev *dev, struct vhost_work *work); | ||
48 | |||
46 | void vhost_poll_init(struct vhost_poll *poll, vhost_work_fn_t fn, | 49 | void 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); |
48 | void vhost_poll_start(struct vhost_poll *poll, struct file *file); | 51 | void 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 | }; |