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)
|
||||
* fs,userns: Change inode_capable to capable_wrt_inode_uidgid
|
||||
(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
|
||||
|
||||
|
|
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
|
||||
bugfix/all/fs-userns-change-inode_capable-to-capable_wrt_inode_uidgid.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