Merge branch 'vhost-net-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost
This commit is contained in:
@@ -823,14 +823,14 @@ static long vhost_net_ioctl(struct file *f, unsigned int ioctl,
|
|||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
return vhost_net_set_backend(n, backend.index, backend.fd);
|
return vhost_net_set_backend(n, backend.index, backend.fd);
|
||||||
case VHOST_GET_FEATURES:
|
case VHOST_GET_FEATURES:
|
||||||
features = VHOST_FEATURES;
|
features = VHOST_NET_FEATURES;
|
||||||
if (copy_to_user(featurep, &features, sizeof features))
|
if (copy_to_user(featurep, &features, sizeof features))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
return 0;
|
return 0;
|
||||||
case VHOST_SET_FEATURES:
|
case VHOST_SET_FEATURES:
|
||||||
if (copy_from_user(&features, featurep, sizeof features))
|
if (copy_from_user(&features, featurep, sizeof features))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
if (features & ~VHOST_FEATURES)
|
if (features & ~VHOST_NET_FEATURES)
|
||||||
return -EOPNOTSUPP;
|
return -EOPNOTSUPP;
|
||||||
return vhost_net_set_features(n, features);
|
return vhost_net_set_features(n, features);
|
||||||
case VHOST_RESET_OWNER:
|
case VHOST_RESET_OWNER:
|
||||||
|
@@ -261,14 +261,14 @@ static long vhost_test_ioctl(struct file *f, unsigned int ioctl,
|
|||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
return vhost_test_run(n, test);
|
return vhost_test_run(n, test);
|
||||||
case VHOST_GET_FEATURES:
|
case VHOST_GET_FEATURES:
|
||||||
features = VHOST_FEATURES;
|
features = VHOST_NET_FEATURES;
|
||||||
if (copy_to_user(featurep, &features, sizeof features))
|
if (copy_to_user(featurep, &features, sizeof features))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
return 0;
|
return 0;
|
||||||
case VHOST_SET_FEATURES:
|
case VHOST_SET_FEATURES:
|
||||||
if (copy_from_user(&features, featurep, sizeof features))
|
if (copy_from_user(&features, featurep, sizeof features))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
if (features & ~VHOST_FEATURES)
|
if (features & ~VHOST_NET_FEATURES)
|
||||||
return -EOPNOTSUPP;
|
return -EOPNOTSUPP;
|
||||||
return vhost_test_set_features(n, features);
|
return vhost_test_set_features(n, features);
|
||||||
case VHOST_RESET_OWNER:
|
case VHOST_RESET_OWNER:
|
||||||
|
@@ -64,7 +64,7 @@ static int vhost_poll_wakeup(wait_queue_t *wait, unsigned mode, int sync,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void vhost_work_init(struct vhost_work *work, vhost_work_fn_t fn)
|
void vhost_work_init(struct vhost_work *work, vhost_work_fn_t fn)
|
||||||
{
|
{
|
||||||
INIT_LIST_HEAD(&work->node);
|
INIT_LIST_HEAD(&work->node);
|
||||||
work->fn = fn;
|
work->fn = fn;
|
||||||
@@ -137,8 +137,7 @@ void vhost_poll_flush(struct vhost_poll *poll)
|
|||||||
vhost_work_flush(poll->dev, &poll->work);
|
vhost_work_flush(poll->dev, &poll->work);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void vhost_work_queue(struct vhost_dev *dev,
|
void vhost_work_queue(struct vhost_dev *dev, struct vhost_work *work)
|
||||||
struct vhost_work *work)
|
|
||||||
{
|
{
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
|
@@ -43,6 +43,9 @@ struct vhost_poll {
|
|||||||
struct vhost_dev *dev;
|
struct vhost_dev *dev;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void vhost_work_init(struct vhost_work *work, vhost_work_fn_t fn);
|
||||||
|
void vhost_work_queue(struct vhost_dev *dev, struct vhost_work *work);
|
||||||
|
|
||||||
void vhost_poll_init(struct vhost_poll *poll, vhost_work_fn_t fn,
|
void vhost_poll_init(struct vhost_poll *poll, vhost_work_fn_t fn,
|
||||||
unsigned long mask, struct vhost_dev *dev);
|
unsigned long mask, struct vhost_dev *dev);
|
||||||
void vhost_poll_start(struct vhost_poll *poll, struct file *file);
|
void vhost_poll_start(struct vhost_poll *poll, struct file *file);
|
||||||
@@ -201,7 +204,8 @@ enum {
|
|||||||
VHOST_FEATURES = (1ULL << VIRTIO_F_NOTIFY_ON_EMPTY) |
|
VHOST_FEATURES = (1ULL << VIRTIO_F_NOTIFY_ON_EMPTY) |
|
||||||
(1ULL << VIRTIO_RING_F_INDIRECT_DESC) |
|
(1ULL << VIRTIO_RING_F_INDIRECT_DESC) |
|
||||||
(1ULL << VIRTIO_RING_F_EVENT_IDX) |
|
(1ULL << VIRTIO_RING_F_EVENT_IDX) |
|
||||||
(1ULL << VHOST_F_LOG_ALL) |
|
(1ULL << VHOST_F_LOG_ALL),
|
||||||
|
VHOST_NET_FEATURES = VHOST_FEATURES |
|
||||||
(1ULL << VHOST_NET_F_VIRTIO_NET_HDR) |
|
(1ULL << VHOST_NET_F_VIRTIO_NET_HDR) |
|
||||||
(1ULL << VIRTIO_NET_F_MRG_RXBUF),
|
(1ULL << VIRTIO_NET_F_MRG_RXBUF),
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user