This is a note to let you know that I've just added the patch titled vhost-scsi: Add missing virtio-scsi -> TCM attribute to the 3.18-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: vhost-scsi-add-missing-virtio-scsi-tcm-attribute.patch and it can be found in the queue-3.18 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From 46243860806bdc2756f3ce8ac86b4d7c616bcd6c Mon Sep 17 00:00:00 2001 From: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx> Date: Sun, 21 Dec 2014 10:42:08 -0800 Subject: vhost-scsi: Add missing virtio-scsi -> TCM attribute conversion From: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx> commit 46243860806bdc2756f3ce8ac86b4d7c616bcd6c upstream. While looking at hch's recent conversion to drop the MSG_*_TAG definitions, I noticed a long standing bug in vhost-scsi where the VIRTIO_SCSI_S_* attribute definitions where incorrectly being passed directly into target_submit_cmd_map_sgls(). This patch adds the missing virtio-scsi to TCM/SAM task attribute conversion. Cc: Christoph Hellwig <hch@xxxxxx> Cc: Michael S. Tsirkin <mst@xxxxxxxxxx> Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx> Signed-off-by: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/vhost/scsi.c | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) --- a/drivers/vhost/scsi.c +++ b/drivers/vhost/scsi.c @@ -909,6 +909,23 @@ vhost_scsi_map_iov_to_prot(struct tcm_vh return 0; } +static int vhost_scsi_to_tcm_attr(int attr) +{ + switch (attr) { + case VIRTIO_SCSI_S_SIMPLE: + return MSG_SIMPLE_TAG; + case VIRTIO_SCSI_S_ORDERED: + return MSG_ORDERED_TAG; + case VIRTIO_SCSI_S_HEAD: + return MSG_HEAD_TAG; + case VIRTIO_SCSI_S_ACA: + return MSG_ACA_TAG; + default: + break; + } + return MSG_SIMPLE_TAG; +} + static void tcm_vhost_submission_work(struct work_struct *work) { struct tcm_vhost_cmd *cmd = @@ -934,9 +951,10 @@ static void tcm_vhost_submission_work(st rc = target_submit_cmd_map_sgls(se_cmd, tv_nexus->tvn_se_sess, cmd->tvc_cdb, &cmd->tvc_sense_buf[0], cmd->tvc_lun, cmd->tvc_exp_data_len, - cmd->tvc_task_attr, cmd->tvc_data_direction, - TARGET_SCF_ACK_KREF, sg_ptr, cmd->tvc_sgl_count, - NULL, 0, sg_prot_ptr, cmd->tvc_prot_sgl_count); + vhost_scsi_to_tcm_attr(cmd->tvc_task_attr), + cmd->tvc_data_direction, TARGET_SCF_ACK_KREF, + sg_ptr, cmd->tvc_sgl_count, NULL, 0, + sg_prot_ptr, cmd->tvc_prot_sgl_count); if (rc < 0) { transport_send_check_condition_and_sense(se_cmd, TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE, 0); Patches currently in stable-queue which might be from nab@xxxxxxxxxxxxxxx are queue-3.18/iscsi-target-fail-connection-on-short-sendmsg-writes.patch queue-3.18/iser-target-allocate-pi-contexts-dynamically.patch queue-3.18/iscsi-iser-target-expose-supported-protection-ops-according-to-t10_pi.patch queue-3.18/scsi-fix-random-memory-corruption-with-scsi-mq-t10-pi.patch queue-3.18/iser-target-fix-connected_handler-teardown-flow-race.patch queue-3.18/iser-target-fix-flush-disconnect-completion-handling.patch queue-3.18/iscsi-iser-target-initiate-termination-only-once.patch queue-3.18/iser-target-parallelize-cm-connection-establishment.patch queue-3.18/iser-target-handle-addr_change-event-for-listener-cm_id.patch queue-3.18/target-drop-arbitrary-maximum-i-o-size-limit.patch queue-3.18/iser-target-fix-null-dereference-in-sw-mode-dif.patch queue-3.18/uapi-linux-target_core_user.h-fix-headers_install.sh-badness.patch queue-3.18/iser-target-fix-implicit-termination-of-connections.patch queue-3.18/tcm_loop-fix-wrong-i_t-nexus-association.patch queue-3.18/vhost-scsi-add-missing-virtio-scsi-tcm-attribute.patch -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html