13f7e5acc8
Some devices report a peripheral qualifier of 3 for LUN 0; with the original code, we would still try a REPORT_LUNS scan (if SCSI level is >= 3 or if we have the BLIST_REPORTLUNS2 passed in), but NOT any sequential scan. Also, the device at LUN 0 (which is not connected according to the PQ) is not registered with the OS. Unfortunately, SANs exist that are SCSI-2 and do NOT support REPORT_LUNS, but report a unknown device with PQ 3 on LUN 0. We still need to scan them, and most probably we even need BLIST_SPARSELUN (and BLIST_LARGELUN). See the bug reference for an infamous example. This is patch 3/3: 3. Implement the blacklist flag BLIST_ATTACH_PQ3 that makes the scsi scanning code register PQ3 devices and continues scanning; only sg will attach thanks to scsi_bus_match(). Signed-off-by: Kurt Garloff <garloff@suse.de> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
33 lines
1.8 KiB
C
33 lines
1.8 KiB
C
#ifndef _SCSI_SCSI_DEVINFO_H
|
|
#define _SCSI_SCSI_DEVINFO_H
|
|
/*
|
|
* 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_INQUIRY_58 0x800 /* ... for broken inquiry responses */
|
|
#define BLIST_NOSTARTONADD 0x1000 /* do not do automatic start on add */
|
|
#define BLIST_MS_SKIP_PAGE_08 0x2000 /* do not send ms page 0x08 */
|
|
#define BLIST_MS_SKIP_PAGE_3F 0x4000 /* do not send ms page 0x3f */
|
|
#define BLIST_USE_10_BYTE_MS 0x8000 /* use 10 byte ms before 6 byte ms */
|
|
#define BLIST_MS_192_BYTES_FOR_3F 0x10000 /* 192 byte ms page 0x3f request */
|
|
#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_ATTACH_PQ3 0x800000 /* Scan: Attach to PQ3 devices */
|
|
#endif
|