From: Linus Torvalds Date: Wed, 15 Nov 2017 00:23:44 +0000 (-0800) Subject: Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=670ffccb2f9183eb6cb32fe92257aea52b3f8a7d;p=openwrt%2Fstaging%2Fblogic.git Merge tag 'scsi-misc' of git://git./linux/kernel/git/jejb/scsi Pull SCSI updates from James Bottomley: "This is mostly updates of the usual suspects: lpfc, qla2xxx, hisi_sas, megaraid_sas, pm80xx, mpt3sas, be2iscsi, hpsa. and a host of minor updates. There's no major behaviour change or additions to the core in all of this, so the potential for regressions should be small (biggest potential being in the scsi error handler changes)" * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (203 commits) scsi: lpfc: Fix hard lock up NMI in els timeout handling. scsi: mpt3sas: remove a stray KERN_INFO scsi: mpt3sas: cleanup _scsih_pcie_enumeration_event() scsi: aacraid: use timespec64 instead of timeval scsi: scsi_transport_fc: add 64GBIT and 128GBIT port speed definitions scsi: qla2xxx: Suppress a kernel complaint in qla_init_base_qpair() scsi: mpt3sas: fix dma_addr_t casts scsi: be2iscsi: Use kasprintf scsi: storvsc: Avoid excessive host scan on controller change scsi: lpfc: fix kzalloc-simple.cocci warnings scsi: mpt3sas: Update mpt3sas driver version. scsi: mpt3sas: Fix sparse warnings scsi: mpt3sas: Fix nvme drives checking for tlr. scsi: mpt3sas: NVMe drive support for BTDHMAPPING ioctl command and log info scsi: mpt3sas: Add-Task-management-debug-info-for-NVMe-drives. scsi: mpt3sas: scan and add nvme device after controller reset scsi: mpt3sas: Set NVMe device queue depth as 128 scsi: mpt3sas: Handle NVMe PCIe device related events generated from firmware. scsi: mpt3sas: API's to remove nvme drive from sml scsi: mpt3sas: API 's to support NVMe drive addition to SML ... --- 670ffccb2f9183eb6cb32fe92257aea52b3f8a7d diff --cc drivers/scsi/scsi_error.c index dab876c65473,ae0486332ea8..62b56de38ae8 --- a/drivers/scsi/scsi_error.c +++ b/drivers/scsi/scsi_error.c @@@ -579,9 -585,9 +585,10 @@@ int scsi_check_sense(struct scsi_cmnd * case ILLEGAL_REQUEST: if (sshdr.asc == 0x20 || /* Invalid command operation code */ sshdr.asc == 0x21 || /* Logical block address out of range */ + sshdr.asc == 0x22 || /* Invalid function */ sshdr.asc == 0x24 || /* Invalid field in cdb */ - sshdr.asc == 0x26) { /* Parameter value invalid */ + sshdr.asc == 0x26 || /* Parameter value invalid */ + sshdr.asc == 0x27) { /* Write protected */ set_host_byte(scmd, DID_TARGET_FAILURE); } return SUCCESS; diff --cc include/scsi/scsi_devinfo.h index 3575693bb628,7a2329c026a4..3cf125b56c3a --- a/include/scsi/scsi_devinfo.h +++ b/include/scsi/scsi_devinfo.h @@@ -4,32 -3,55 +4,57 @@@ /* * Flags for SCSI devices that need special treatment */ - #define BLIST_NOLUN 0x001 /* Only scan LUN 0 */ - #define BLIST_FORCELUN 0x002 /* Known to have LUNs, force scanning, - deprecated: Use max_luns=N */ - #define BLIST_BORKEN 0x004 /* Flag for broken handshaking */ - #define BLIST_KEY 0x008 /* unlock by special command */ - #define BLIST_SINGLELUN 0x010 /* Do not use LUNs in parallel */ - #define BLIST_NOTQ 0x020 /* Buggy Tagged Command Queuing */ - #define BLIST_SPARSELUN 0x040 /* Non consecutive LUN numbering */ - #define BLIST_MAX5LUN 0x080 /* Avoid LUNS >= 5 */ - #define BLIST_ISROM 0x100 /* Treat as (removable) CD-ROM */ - #define BLIST_LARGELUN 0x200 /* LUNs past 7 on a SCSI-2 device */ - #define BLIST_INQUIRY_36 0x400 /* override additional length field */ - #define BLIST_NOSTARTONADD 0x1000 /* do not do automatic start on add */ - #define BLIST_REPORTLUN2 0x20000 /* try REPORT_LUNS even for SCSI-2 devs - (if HBA supports more than 8 LUNs) */ - #define BLIST_NOREPORTLUN 0x40000 /* don't try REPORT_LUNS scan (SCSI-3 devs) */ - #define BLIST_NOT_LOCKABLE 0x80000 /* don't use PREVENT-ALLOW commands */ - #define BLIST_NO_ULD_ATTACH 0x100000 /* device is actually for RAID config */ - #define BLIST_SELECT_NO_ATN 0x200000 /* select without ATN */ - #define BLIST_RETRY_HWERROR 0x400000 /* retry HARDWARE_ERROR */ - #define BLIST_MAX_512 0x800000 /* maximum 512 sector cdb length */ - #define BLIST_NO_DIF 0x2000000 /* Disable T10 PI (DIF) */ - #define BLIST_SKIP_VPD_PAGES 0x4000000 /* Ignore SBC-3 VPD pages */ - #define BLIST_TRY_VPD_PAGES 0x10000000 /* Attempt to read VPD pages */ - #define BLIST_NO_RSOC 0x20000000 /* don't try to issue RSOC */ - #define BLIST_MAX_1024 0x40000000 /* maximum 1024 sector cdb length */ - #define BLIST_UNMAP_LIMIT_WS 0x80000000 /* Use UNMAP limit for WRITE SAME */ + + /* Only scan LUN 0 */ + #define BLIST_NOLUN ((__force __u32 __bitwise)(1 << 0)) + /* Known to have LUNs, force scanning. + * DEPRECATED: Use max_luns=N */ + #define BLIST_FORCELUN ((__force __u32 __bitwise)(1 << 1)) + /* Flag for broken handshaking */ + #define BLIST_BORKEN ((__force __u32 __bitwise)(1 << 2)) + /* unlock by special command */ + #define BLIST_KEY ((__force __u32 __bitwise)(1 << 3)) + /* Do not use LUNs in parallel */ + #define BLIST_SINGLELUN ((__force __u32 __bitwise)(1 << 4)) + /* Buggy Tagged Command Queuing */ + #define BLIST_NOTQ ((__force __u32 __bitwise)(1 << 5)) + /* Non consecutive LUN numbering */ + #define BLIST_SPARSELUN ((__force __u32 __bitwise)(1 << 6)) + /* Avoid LUNS >= 5 */ + #define BLIST_MAX5LUN ((__force __u32 __bitwise)(1 << 7)) + /* Treat as (removable) CD-ROM */ + #define BLIST_ISROM ((__force __u32 __bitwise)(1 << 8)) + /* LUNs past 7 on a SCSI-2 device */ + #define BLIST_LARGELUN ((__force __u32 __bitwise)(1 << 9)) + /* override additional length field */ + #define BLIST_INQUIRY_36 ((__force __u32 __bitwise)(1 << 10)) + /* do not do automatic start on add */ + #define BLIST_NOSTARTONADD ((__force __u32 __bitwise)(1 << 12)) + /* try REPORT_LUNS even for SCSI-2 devs (if HBA supports more than 8 LUNs) */ + #define BLIST_REPORTLUN2 ((__force __u32 __bitwise)(1 << 17)) + /* don't try REPORT_LUNS scan (SCSI-3 devs) */ + #define BLIST_NOREPORTLUN ((__force __u32 __bitwise)(1 << 18)) + /* don't use PREVENT-ALLOW commands */ + #define BLIST_NOT_LOCKABLE ((__force __u32 __bitwise)(1 << 19)) + /* device is actually for RAID config */ + #define BLIST_NO_ULD_ATTACH ((__force __u32 __bitwise)(1 << 20)) + /* select without ATN */ + #define BLIST_SELECT_NO_ATN ((__force __u32 __bitwise)(1 << 21)) + /* retry HARDWARE_ERROR */ + #define BLIST_RETRY_HWERROR ((__force __u32 __bitwise)(1 << 22)) + /* maximum 512 sector cdb length */ + #define BLIST_MAX_512 ((__force __u32 __bitwise)(1 << 23)) + /* Disable T10 PI (DIF) */ + #define BLIST_NO_DIF ((__force __u32 __bitwise)(1 << 25)) + /* Ignore SBC-3 VPD pages */ + #define BLIST_SKIP_VPD_PAGES ((__force __u32 __bitwise)(1 << 26)) + /* Attempt to read VPD pages */ + #define BLIST_TRY_VPD_PAGES ((__force __u32 __bitwise)(1 << 28)) + /* don't try to issue RSOC */ + #define BLIST_NO_RSOC ((__force __u32 __bitwise)(1 << 29)) + /* maximum 1024 sector cdb length */ + #define BLIST_MAX_1024 ((__force __u32 __bitwise)(1 << 30)) ++/* Use UNMAP limit for WRITE SAME */ ++#define BLIST_UNMAP_LIMIT_WS ((__force __u32 __bitwise)(1 << 31)) #endif