Here is another attempt to handle the special return codes for ABORTED COMMAND for certain SCSI devices. Following MKP's recommendation, I've created two new BLIST flags, simplifying the code in scsi_error.c compared to the previous versions. Rather than using "free" bits, I increased the length of blist_flag_t to 64 bit, and used previously unused bits. I also added checking for obsolete and unused bits. For the blist_flag_t size increase, I used sparse to try and avoid regressions; that necessitated fixing sparse's errors for the current code first. Martin Wilck (6): ilog2: create truly constant version for sparse scsi: use const_ilog2 for array indices scsi: devinfo: change blist_flag_t to 64bit scsi: devinfo: warn on undefined blist flags scsi: devinfo: add BLIST_RETRY_ITF for EMC Symmetrix scsi: devinfo: BLIST_RETRY_ASC_C1 for Fujitsu ETERNUS drivers/scsi/Makefile | 2 +- drivers/scsi/scsi_debugfs.c | 2 +- drivers/scsi/scsi_devinfo.c | 28 +++++++++++++---- drivers/scsi/scsi_error.c | 7 +++++ drivers/scsi/scsi_sysfs.c | 2 +- include/linux/log2.h | 35 ++++++++++++++------- include/scsi/scsi_device.h | 2 +- include/scsi/scsi_devinfo.h | 75 ++++++++++++++++++++++++++++++--------------- 8 files changed, 107 insertions(+), 46 deletions(-) -- 2.16.1