Patch "scsi_common: do not clobber fixed sense information" has been added to the 4.4-stable tree
Subsystems (2)
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
ba08311647892cc7912de74525fd78416caf544aMon 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.
--- 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