Home Home > GIT Browse
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetr Tesarik <ptesarik@suse.cz>2019-10-04 11:19:23 +0200
committerPetr Tesarik <ptesarik@suse.cz>2019-10-04 11:19:23 +0200
commit04a8cdf4ebac41a480dce8afce3588e2a87ca693 (patch)
treeb0287e13040553fbb36da919c00e4bd7b965209a
parent958c00e5a6dc506e1d27520e4a63967eabe95bed (diff)
parent1ec727dbb0f688ba2ec53dcfe57edfb6f5dbae6b (diff)
Merge branch 'users/mwilck/SLE15/for-next' into SLE15
Pull scsi fixes from Martin Wilck
-rw-r--r--patches.suse/scsi-scsi_dh_rdac-zero-cdb-in-send_mode_select.patch44
-rw-r--r--series.conf1
2 files changed, 45 insertions, 0 deletions
diff --git a/patches.suse/scsi-scsi_dh_rdac-zero-cdb-in-send_mode_select.patch b/patches.suse/scsi-scsi_dh_rdac-zero-cdb-in-send_mode_select.patch
new file mode 100644
index 0000000000..397b8d6a78
--- /dev/null
+++ b/patches.suse/scsi-scsi_dh_rdac-zero-cdb-in-send_mode_select.patch
@@ -0,0 +1,44 @@
+From: Martin Wilck <Martin.Wilck@suse.com>
+Date: Wed, 4 Sep 2019 15:52:29 +0000
+Subject: scsi: scsi_dh_rdac: zero cdb in send_mode_select()
+Patch-mainline: v5.4-rc1
+Git-commit: 57adf5d4cfd3198aa480e7c94a101fc8c4e6109d
+References: bsc#1149313
+
+cdb in send_mode_select() is not zeroed and is only partially filled in
+rdac_failover_get(), which leads to some random data getting to the
+device. Users have reported storage responding to such commands with
+INVALID FIELD IN CDB. Code before commit 327825574132 was not affected, as
+it called blk_rq_set_block_pc().
+
+Fix this by zeroing out the cdb first.
+
+Identified & fix proposed by HPE.
+
+Fixes: 327825574132 ("scsi_dh_rdac: switch to scsi_execute_req_flags()")
+Cc: stable@vger.kernel.org
+Link: https://lore.kernel.org/r/20190904155205.1666-1-martin.wilck@suse.com
+Signed-off-by: Martin Wilck <mwilck@suse.com>
+Acked-by: Ales Novak <alnovak@suse.cz>
+Reviewed-by: Shane Seymour <shane.seymour@hpe.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+---
+ drivers/scsi/device_handler/scsi_dh_rdac.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/drivers/scsi/device_handler/scsi_dh_rdac.c b/drivers/scsi/device_handler/scsi_dh_rdac.c
+index 65f1fe3..5efc959 100644
+--- a/drivers/scsi/device_handler/scsi_dh_rdac.c
++++ b/drivers/scsi/device_handler/scsi_dh_rdac.c
+@@ -546,6 +546,8 @@ static void send_mode_select(struct work_struct *work)
+ spin_unlock(&ctlr->ms_lock);
+
+ retry:
++ memset(cdb, 0, sizeof(cdb));
++
+ data_size = rdac_failover_get(ctlr, &list, cdb);
+
+ RDAC_LOG(RDAC_LOG_FAILOVER, sdev, "array %s, ctlr %d, "
+--
+2.23.0
+
diff --git a/series.conf b/series.conf
index 219a2ff806..4e8595d508 100644
--- a/series.conf
+++ b/series.conf
@@ -24687,6 +24687,7 @@
patches.suse/scsi-qla2xxx-Fix-stuck-login-session.patch
patches.suse/scsi-qla2xxx-Fix-stale-session.patch
patches.suse/scsi-qla2xxx-Update-driver-version-to-10.01.00.19-k.patch
+ patches.suse/scsi-scsi_dh_rdac-zero-cdb-in-send_mode_select.patch
patches.suse/mtd-spi-nor-Fix-Cadence-QSPI-RCU-Schedule-Stall.patch
patches.suse/ext4-set-error-return-correctly-when-ext4_htree_stor.patch
patches.suse/ext4-fix-warning-inside-ext4_convert_unwritten_exten.patch