Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
[linux.git] / drivers / scsi / scsi_devinfo.c
index dfb8da83fa504c979e9ba0639b32a4cae2c8969c..f3b117246d47208712faf70d324d11d8f5586f74 100644 (file)
@@ -108,8 +108,8 @@ static struct {
         * seagate controller, which causes SCSI code to reset bus.
         */
        {"HP", "C1750A", "3226", BLIST_NOLUN},          /* scanjet iic */
-       {"HP", "C1790A", "", BLIST_NOLUN},              /* scanjet iip */
-       {"HP", "C2500A", "", BLIST_NOLUN},              /* scanjet iicx */
+       {"HP", "C1790A", NULL, BLIST_NOLUN},            /* scanjet iip */
+       {"HP", "C2500A", NULL, BLIST_NOLUN},            /* scanjet iicx */
        {"MEDIAVIS", "CDR-H93MV", "1.31", BLIST_NOLUN}, /* locks up */
        {"MICROTEK", "ScanMaker II", "5.61", BLIST_NOLUN},      /* responds to all lun */
        {"MITSUMI", "CD-R CR-2201CS", "6119", BLIST_NOLUN},     /* locks up */
@@ -119,7 +119,7 @@ static struct {
        {"QUANTUM", "FIREBALL ST4.3S", "0F0C", BLIST_NOLUN},    /* locks up */
        {"RELISYS", "Scorpio", NULL, BLIST_NOLUN},      /* responds to all lun */
        {"SANKYO", "CP525", "6.64", BLIST_NOLUN},       /* causes failed REQ SENSE, extra reset */
-       {"TEXEL", "CD-ROM", "1.06", BLIST_NOLUN},
+       {"TEXEL", "CD-ROM", "1.06", BLIST_NOLUN | BLIST_BORKEN},
        {"transtec", "T5008", "0001", BLIST_NOREPORTLUN },
        {"YAMAHA", "CDR100", "1.00", BLIST_NOLUN},      /* locks up */
        {"YAMAHA", "CDR102", "1.00", BLIST_NOLUN},      /* locks up */
@@ -158,8 +158,8 @@ static struct {
        {"DELL", "PSEUDO DEVICE .", NULL, BLIST_SPARSELUN},     /* Dell PV 530F */
        {"DELL", "PV530F", NULL, BLIST_SPARSELUN},
        {"DELL", "PERCRAID", NULL, BLIST_FORCELUN},
-       {"DGC", "RAID", NULL, BLIST_SPARSELUN}, /* Dell PV 650F, storage on LUN 0 */
-       {"DGC", "DISK", NULL, BLIST_SPARSELUN}, /* Dell PV 650F, no storage on LUN 0 */
+       {"DGC", "RAID", NULL, BLIST_SPARSELUN}, /* EMC CLARiiON, storage on LUN 0 */
+       {"DGC", "DISK", NULL, BLIST_SPARSELUN}, /* EMC CLARiiON, no storage on LUN 0 */
        {"EMC",  "Invista", "*", BLIST_SPARSELUN | BLIST_LARGELUN},
        {"EMC", "SYMMETRIX", NULL, BLIST_SPARSELUN | BLIST_LARGELUN | BLIST_REPORTLUN2},
        {"EMULEX", "MD21/S2     ESDI", NULL, BLIST_SINGLELUN},
@@ -181,15 +181,14 @@ static struct {
        {"HITACHI", "6586-", "*", BLIST_SPARSELUN | BLIST_LARGELUN},
        {"HITACHI", "6588-", "*", BLIST_SPARSELUN | BLIST_LARGELUN},
        {"HP", "A6189A", NULL, BLIST_SPARSELUN | BLIST_LARGELUN},       /* HP VA7400 */
-       {"HP", "OPEN-", "*", BLIST_REPORTLUN2}, /* HP XP Arrays */
+       {"HP", "OPEN-", "*", BLIST_REPORTLUN2 | BLIST_TRY_VPD_PAGES}, /* HP XP Arrays */
        {"HP", "NetRAID-4M", NULL, BLIST_FORCELUN},
        {"HP", "HSV100", NULL, BLIST_REPORTLUN2 | BLIST_NOSTARTONADD},
        {"HP", "C1557A", NULL, BLIST_FORCELUN},
        {"HP", "C3323-300", "4269", BLIST_NOTQ},
        {"HP", "C5713A", NULL, BLIST_NOREPORTLUN},
-       {"HP", "DF400", "*", BLIST_SPARSELUN | BLIST_LARGELUN},
-       {"HP", "DF500", "*", BLIST_SPARSELUN | BLIST_LARGELUN},
-       {"HP", "DF600", "*", BLIST_SPARSELUN | BLIST_LARGELUN},
+       {"HP", "DF400", "*", BLIST_REPORTLUN2},
+       {"HP", "DF500", "*", BLIST_REPORTLUN2},
        {"HP", "OP-C-", "*", BLIST_SPARSELUN | BLIST_LARGELUN},
        {"HP", "3380-", "*", BLIST_SPARSELUN | BLIST_LARGELUN},
        {"HP", "3390-", "*", BLIST_SPARSELUN | BLIST_LARGELUN},
@@ -255,7 +254,6 @@ static struct {
        {"ST650211", "CF", NULL, BLIST_RETRY_HWERROR},
        {"SUN", "T300", "*", BLIST_SPARSELUN},
        {"SUN", "T4", "*", BLIST_SPARSELUN},
-       {"TEXEL", "CD-ROM", "1.06", BLIST_BORKEN},
        {"Tornado-", "F4", "*", BLIST_NOREPORTLUN},
        {"TOSHIBA", "CDROM", NULL, BLIST_ISROM},
        {"TOSHIBA", "CD-ROM", NULL, BLIST_ISROM},
@@ -353,7 +351,8 @@ static int scsi_dev_info_list_add(int compatible, char *vendor, char *model,
  * Returns: 0 OK, -error on failure.
  **/
 int scsi_dev_info_list_add_keyed(int compatible, char *vendor, char *model,
-                                char *strflags, blist_flags_t flags, int key)
+                                char *strflags, blist_flags_t flags,
+                                enum scsi_devinfo_key key)
 {
        struct scsi_dev_info_list *devinfo;
        struct scsi_dev_info_list_table *devinfo_table =
@@ -402,7 +401,7 @@ EXPORT_SYMBOL(scsi_dev_info_list_add_keyed);
  * Returns: pointer to matching entry, or ERR_PTR on failure.
  **/
 static struct scsi_dev_info_list *scsi_dev_info_list_find(const char *vendor,
-               const char *model, int key)
+               const char *model, enum scsi_devinfo_key key)
 {
        struct scsi_dev_info_list *devinfo;
        struct scsi_dev_info_list_table *devinfo_table =
@@ -485,7 +484,8 @@ static struct scsi_dev_info_list *scsi_dev_info_list_find(const char *vendor,
  *
  * Returns: 0 OK, -error on failure.
  **/
-int scsi_dev_info_list_del_keyed(char *vendor, char *model, int key)
+int scsi_dev_info_list_del_keyed(char *vendor, char *model,
+                                enum scsi_devinfo_key key)
 {
        struct scsi_dev_info_list *found;
 
@@ -587,20 +587,15 @@ blist_flags_t scsi_get_device_flags(struct scsi_device *sdev,
 blist_flags_t scsi_get_device_flags_keyed(struct scsi_device *sdev,
                                const unsigned char *vendor,
                                const unsigned char *model,
-                               int key)
+                               enum scsi_devinfo_key key)
 {
        struct scsi_dev_info_list *devinfo;
-       int err;
 
        devinfo = scsi_dev_info_list_find(vendor, model, key);
        if (!IS_ERR(devinfo))
                return devinfo->flags;
 
-       err = PTR_ERR(devinfo);
-       if (err != -ENOENT)
-               return err;
-
-       /* nothing found, return nothing */
+       /* key or device not found: return nothing */
        if (key != SCSI_DEVINFO_GLOBAL)
                return 0;
 
@@ -774,7 +769,7 @@ void scsi_exit_devinfo(void)
  * Adds the requested list, returns zero on success, -EEXIST if the
  * key is already registered to a list, or other error on failure.
  */
-int scsi_dev_info_add_list(int key, const char *name)
+int scsi_dev_info_add_list(enum scsi_devinfo_key key, const char *name)
 {
        struct scsi_dev_info_list_table *devinfo_table =
                scsi_devinfo_lookup_by_key(key);
@@ -806,7 +801,7 @@ EXPORT_SYMBOL(scsi_dev_info_add_list);
  * frees the list itself.  Returns 0 on success or -EINVAL if the key
  * can't be found.
  */
-int scsi_dev_info_remove_list(int key)
+int scsi_dev_info_remove_list(enum scsi_devinfo_key key)
 {
        struct list_head *lh, *lh_next;
        struct scsi_dev_info_list_table *devinfo_table =
This page took 0.037295 seconds and 4 git commands to generate.