Skip to contentSkip to conversation

Patch "scsi_common: do not clobber fixed sense information" has been added to the 4.4-stable tree

PATCH [email protected] 1 participant 1 message Apr 10, 2016

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

scsi_common: do not clobber fixed sense information

to the 4.4-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:
scsi_common-do-not-clobber-fixed-sense-information.patch
and it can be found in the queue-4.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From ba08311647892cc7912de74525fd78416caf544a Mon Sep 17 00:00:00 2001

From: Hannes Reinecke <[email protected]>
Date: Fri, 18 Mar 2016 14:55:38 +0100
Subject: scsi_common: do not clobber fixed sense information

From: Hannes Reinecke <[email protected]>

commit ba08311647892cc7912de74525fd78416caf544a upstream.

For fixed sense the information field is 32 bits, to we need to truncate the information field to avoid clobbering the sense code.

Fixes a1524f226a02 ("libata-eh: Set 'information' field for autosense")
---
 drivers/scsi/scsi_common.c |   12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)
drivers/scsi/scsi_common.c +10 -2
@@ -278,8 +278,16 @@ int scsi_set_sense_information(u8 *buf,
 		ucp[3] = 0;
 		put_unaligned_be64(info, &ucp[4]);
 	} else if ((buf[0] & 0x7f) == 0x70) {
-		buf[0] |= 0x80;
-		put_unaligned_be64(info, &buf[3]);
+		/*
+		 * Only set the 'VALID' bit if we can represent the value
+		 * correctly; otherwise just fill out the lower bytes and
+		 * clear the 'VALID' flag.
+		 */
+		if (info <= 0xffffffffUL)
+			buf[0] |= 0x80;
+		else
+			buf[0] &= 0x7f;
+		put_unaligned_be32((u32)info, &buf[3]);
 	}
 
 	return 0;

Patches currently in stable-queue which might be from [email protected] are

queue-4.4/scsi_common-do-not-clobber-fixed-sense-information.patch queue-4.4/aic7xxx-fix-queue-depth-handling.patch