Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending

Pull SCSI target fixes from Nicholas Bellinger:
"This includes the bug-fix for a >= v3.8-rc1 regression specific to
iscsi-target persistent reservation conflict handling (CC'ed to
stable), and a tcm_vhost patch to drop VIRTIO_RING_F_EVENT_IDX usage
so that in-flight qemu vhost-scsi-pci device code can detect the
proper vhost feature bits.

Also, there are two more tcm_vhost patches still being discussed by
MST and Asias for v3.9 that will be required for the in-flight qemu
vhost-scsi-pci device patch to function properly, and that should
(hopefully) be the last target fixes for this round."

* git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
target: Fix RESERVATION_CONFLICT status regression for iscsi-target special case
tcm_vhost: Avoid VIRTIO_RING_F_EVENT_IDX feature bit

+14 -3
+3 -1
drivers/target/target_core_transport.c
··· 1139 1139 return ret; 1140 1140 1141 1141 ret = target_check_reservation(cmd); 1142 - if (ret) 1142 + if (ret) { 1143 + cmd->scsi_status = SAM_STAT_RESERVATION_CONFLICT; 1143 1144 return ret; 1145 + } 1144 1146 1145 1147 ret = dev->transport->parse_cdb(cmd); 1146 1148 if (ret)
+11 -2
drivers/vhost/tcm_vhost.c
··· 60 60 VHOST_SCSI_VQ_IO = 2, 61 61 }; 62 62 63 + /* 64 + * VIRTIO_RING_F_EVENT_IDX seems broken. Not sure the bug is in 65 + * kernel but disabling it helps. 66 + * TODO: debug and remove the workaround. 67 + */ 68 + enum { 69 + VHOST_SCSI_FEATURES = VHOST_FEATURES & (~VIRTIO_RING_F_EVENT_IDX) 70 + }; 71 + 63 72 #define VHOST_SCSI_MAX_TARGET 256 64 73 #define VHOST_SCSI_MAX_VQ 128 65 74 ··· 955 946 956 947 static int vhost_scsi_set_features(struct vhost_scsi *vs, u64 features) 957 948 { 958 - if (features & ~VHOST_FEATURES) 949 + if (features & ~VHOST_SCSI_FEATURES) 959 950 return -EOPNOTSUPP; 960 951 961 952 mutex_lock(&vs->dev.mutex); ··· 1001 992 return -EFAULT; 1002 993 return 0; 1003 994 case VHOST_GET_FEATURES: 1004 - features = VHOST_FEATURES; 995 + features = VHOST_SCSI_FEATURES; 1005 996 if (copy_to_user(featurep, &features, sizeof features)) 1006 997 return -EFAULT; 1007 998 return 0;