On Thu, Apr 25, 2013 at 03:35:22PM +0800, Asias He wrote: > Signed-off-by: Asias He <asias@xxxxxxxxxx> Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> > --- > drivers/vhost/tcm_vhost.c | 17 +++++++++++++++++ > drivers/vhost/tcm_vhost.h | 3 +++ > 2 files changed, 20 insertions(+) > > diff --git a/drivers/vhost/tcm_vhost.c b/drivers/vhost/tcm_vhost.c > index 5340fd7..07217d8 100644 > --- a/drivers/vhost/tcm_vhost.c > +++ b/drivers/vhost/tcm_vhost.c > @@ -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)) > diff --git a/drivers/vhost/tcm_vhost.h b/drivers/vhost/tcm_vhost.h > index a545a5b..514b9fd 100644 > --- a/drivers/vhost/tcm_vhost.h > +++ b/drivers/vhost/tcm_vhost.h > @@ -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) > -- > 1.8.1.4 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html