mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-12 13:55:32 +00:00
tcm_vhost: Add ioctl to get and set events missed flag
Signed-off-by: Asias He <asias@redhat.com> Acked-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
This commit is contained in:
parent
a6c9af8736
commit
11c6341839
2 changed files with 20 additions and 0 deletions
|
@ -1200,8 +1200,11 @@ static long vhost_scsi_ioctl(struct file *f, unsigned int ioctl,
|
|||
struct vhost_scsi_target backend;
|
||||
void __user *argp = (void __user *)arg;
|
||||
u64 __user *featurep = argp;
|
||||
u32 __user *eventsp = argp;
|
||||
u32 events_missed;
|
||||
u64 features;
|
||||
int r, abi_version = VHOST_SCSI_ABI_VERSION;
|
||||
struct vhost_virtqueue *vq = &vs->vqs[VHOST_SCSI_VQ_EVT];
|
||||
|
||||
switch (ioctl) {
|
||||
case VHOST_SCSI_SET_ENDPOINT:
|
||||
|
@ -1222,6 +1225,20 @@ static long vhost_scsi_ioctl(struct file *f, unsigned int ioctl,
|
|||
if (copy_to_user(argp, &abi_version, sizeof abi_version))
|
||||
return -EFAULT;
|
||||
return 0;
|
||||
case VHOST_SCSI_SET_EVENTS_MISSED:
|
||||
if (get_user(events_missed, eventsp))
|
||||
return -EFAULT;
|
||||
mutex_lock(&vq->mutex);
|
||||
vs->vs_events_missed = events_missed;
|
||||
mutex_unlock(&vq->mutex);
|
||||
return 0;
|
||||
case VHOST_SCSI_GET_EVENTS_MISSED:
|
||||
mutex_lock(&vq->mutex);
|
||||
events_missed = vs->vs_events_missed;
|
||||
mutex_unlock(&vq->mutex);
|
||||
if (put_user(events_missed, eventsp))
|
||||
return -EFAULT;
|
||||
return 0;
|
||||
case VHOST_GET_FEATURES:
|
||||
features = VHOST_SCSI_FEATURES;
|
||||
if (copy_to_user(featurep, &features, sizeof features))
|
||||
|
|
|
@ -123,3 +123,6 @@ struct vhost_scsi_target {
|
|||
#define VHOST_SCSI_CLEAR_ENDPOINT _IOW(VHOST_VIRTIO, 0x41, struct vhost_scsi_target)
|
||||
/* Changing this breaks userspace. */
|
||||
#define VHOST_SCSI_GET_ABI_VERSION _IOW(VHOST_VIRTIO, 0x42, int)
|
||||
/* Set and get the events missed flag */
|
||||
#define VHOST_SCSI_SET_EVENTS_MISSED _IOW(VHOST_VIRTIO, 0x43, __u32)
|
||||
#define VHOST_SCSI_GET_EVENTS_MISSED _IOW(VHOST_VIRTIO, 0x44, __u32)
|
||||
|
|
Loading…
Reference in a new issue