SCSI: Fix spurious request sense in error handling (regression in 3.14)
svn path=/dists/sid/linux/; revision=21441
This commit is contained in:
parent
48093cb0d1
commit
7ed1428a75
|
@ -228,6 +228,7 @@ linux (3.14.7-1) UNRELEASED; urgency=medium
|
||||||
* auditsc: audit_krule mask accesses need bounds checking (CVE-2014-3917)
|
* auditsc: audit_krule mask accesses need bounds checking (CVE-2014-3917)
|
||||||
* fs,userns: Change inode_capable to capable_wrt_inode_uidgid
|
* fs,userns: Change inode_capable to capable_wrt_inode_uidgid
|
||||||
(CVE-2014-4014)
|
(CVE-2014-4014)
|
||||||
|
* SCSI: Fix spurious request sense in error handling (regression in 3.14)
|
||||||
|
|
||||||
-- Ian Campbell <ijc@hellion.org.uk> Fri, 06 Jun 2014 18:18:41 +0100
|
-- Ian Campbell <ijc@hellion.org.uk> Fri, 06 Jun 2014 18:18:41 +0100
|
||||||
|
|
||||||
|
|
38
debian/patches/bugfix/all/SCSI-Fix-spurious-request-sense-in-error-handling.patch
vendored
Normal file
38
debian/patches/bugfix/all/SCSI-Fix-spurious-request-sense-in-error-handling.patch
vendored
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
From: James Bottomley <JBottomley@Parallels.com>
|
||||||
|
Date: Fri, 28 Mar 2014 10:50:17 -0700
|
||||||
|
Subject: [SCSI] Fix spurious request sense in error handling
|
||||||
|
Origin: https://git.kernel.org/linus/d555a2abf3481f81303d835046a5ec2c4fb3ca8e
|
||||||
|
|
||||||
|
We unconditionally execute scsi_eh_get_sense() to make sure all failed
|
||||||
|
commands that should have sense attached, do. However, the routine forgets
|
||||||
|
that some commands, because of the way they fail, will not have any sense code
|
||||||
|
... we should not bother them with a REQUEST_SENSE command. Fix this by
|
||||||
|
testing to see if we actually got a CHECK_CONDITION return and skip asking for
|
||||||
|
sense if we don't.
|
||||||
|
|
||||||
|
Tested-by: Alan Stern <stern@rowland.harvard.edu>
|
||||||
|
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
|
||||||
|
---
|
||||||
|
drivers/scsi/scsi_error.c | 9 +++++++++
|
||||||
|
1 file changed, 9 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c
|
||||||
|
index 771c16b..d020149 100644
|
||||||
|
--- a/drivers/scsi/scsi_error.c
|
||||||
|
+++ b/drivers/scsi/scsi_error.c
|
||||||
|
@@ -1157,6 +1157,15 @@ int scsi_eh_get_sense(struct list_head *work_q,
|
||||||
|
__func__));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
+ if (status_byte(scmd->result) != CHECK_CONDITION)
|
||||||
|
+ /*
|
||||||
|
+ * don't request sense if there's no check condition
|
||||||
|
+ * status because the error we're processing isn't one
|
||||||
|
+ * that has a sense code (and some devices get
|
||||||
|
+ * confused by sense requests out of the blue)
|
||||||
|
+ */
|
||||||
|
+ continue;
|
||||||
|
+
|
||||||
|
SCSI_LOG_ERROR_RECOVERY(2, scmd_printk(KERN_INFO, scmd,
|
||||||
|
"%s: requesting sense\n",
|
||||||
|
current->comm));
|
|
@ -95,3 +95,4 @@ debian/drivers-base-platform-avoid-abi-change-in-3.14.6.patch
|
||||||
debian/dma-avoid-abi-change-in-3.14.6.patch
|
debian/dma-avoid-abi-change-in-3.14.6.patch
|
||||||
bugfix/all/fs-userns-change-inode_capable-to-capable_wrt_inode_uidgid.patch
|
bugfix/all/fs-userns-change-inode_capable-to-capable_wrt_inode_uidgid.patch
|
||||||
debian/vfs-avoid-abi-change-for-cve-2014-4014.patch
|
debian/vfs-avoid-abi-change-for-cve-2014-4014.patch
|
||||||
|
bugfix/all/SCSI-Fix-spurious-request-sense-in-error-handling.patch
|
||||||
|
|
Loading…
Reference in New Issue