[PATCH 2/3] scsi_dh: Change scsi device handler modules to utilize modalias

Chandra Seetharaman
2009-04-27T18:05:40Z

From: Peter Jones <pjones@redhat.com>

This patch changes the scsi_dh files to make use of the modalias feature.

Signed-off-by: Peter Jones <pjones@redhat.com>
Signed-off-by: Chandra Seetharaman <sekharan@us.ibm.com>
---

drivers/scsi/device_handler/scsi_dh.c | 5 +++-
drivers/scsi/device_handler/scsi_dh_alua.c | 23 ++++++++-------
drivers/scsi/device_handler/scsi_dh_emc.c | 11 ++++---
drivers/scsi/device_handler/scsi_dh_hp_sw.c | 13 +++++----
drivers/scsi/device_handler/scsi_dh_rdac.c | 42 +++++++++++++++-------------
5 files changed, 51 insertions(+), 43 deletions(-)

Index: linux-2.6.29/drivers/scsi/device_handler/scsi_dh.c
===================================================================
--- linux-2.6.29.orig/drivers/scsi/device_handler/scsi_dh.c
+++ linux-2.6.29/drivers/scsi/device_handler/scsi_dh.c
@@ -75,7 +75,10 @@ static int scsi_dh_handler_lookup(struct
{
int i, found = 0;

- for(i = 0; scsi_dh->devlist[i].vendor; i++) {
+ for(i = 0; scsi_dh->devlist[i].vendor[0]; i++) {
+ if ((scsi_dh->devlist[i].type != TYPE_ANY) &&
+ (scsi_dh->devlist[i].type != sdev->type))
+ continue;
if (!strncmp(sdev->vendor, scsi_dh->devlist[i].vendor,
strlen(scsi_dh->devlist[i].vendor)) &&
!strncmp(sdev->model, scsi_dh->devlist[i].model,
Index: linux-2.6.29/drivers/scsi/device_handler/scsi_dh_alua.c
===================================================================
--- linux-2.6.29.orig/drivers/scsi/device_handler/scsi_dh_alua.c
+++ linux-2.6.29/drivers/scsi/device_handler/scsi_dh_alua.c
@@ -691,19 +691,21 @@ static int alua_prep_fn(struct scsi_devi
}

static const struct scsi_dh_devlist alua_dev_list[] = {
- {"HP", "MSA VOLUME" },
- {"HP", "HSV101" },
- {"HP", "HSV111" },
- {"HP", "HSV200" },
- {"HP", "HSV210" },
- {"HP", "HSV300" },
- {"IBM", "2107900" },
- {"IBM", "2145" },
- {"Pillar", "Axiom" },
- {"Intel", "Multi-Flex"},
- {NULL, NULL}
+ {TYPE_ANY, "HP", "MSA VOLUME" },
+ {TYPE_ANY, "HP", "HSV101" },
+ {TYPE_ANY, "HP", "HSV111" },
+ {TYPE_ANY, "HP", "HSV200" },
+ {TYPE_ANY, "HP", "HSV210" },
+ {TYPE_ANY, "HP", "HSV300" },
+ {TYPE_ANY, "IBM", "2107900" },
+ {TYPE_ANY, "IBM", "2145" },
+ {TYPE_ANY, "Pillar", "Axiom" },
+ {TYPE_ANY, "Intel", "Multi-Flex"},
+ {0, "", ""},
};

+MODULE_DEVICE_TABLE(scsi_dh, alua_dev_list);
+
static int alua_bus_attach(struct scsi_device *sdev);
static void alua_bus_detach(struct scsi_device *sdev);

Index: linux-2.6.29/drivers/scsi/device_handler/scsi_dh_emc.c
===================================================================
--- linux-2.6.29.orig/drivers/scsi/device_handler/scsi_dh_emc.c
+++ linux-2.6.29/drivers/scsi/device_handler/scsi_dh_emc.c
@@ -562,12 +562,13 @@ done:
return result;
}

-static const struct scsi_dh_devlist clariion_dev_list[] = {
- {"DGC", "RAID"},
- {"DGC", "DISK"},
- {"DGC", "VRAID"},
- {NULL, NULL},
+static const struct scsi_dh_device_id clariion_dev_list[] = {
+ {TYPE_ANY, "DGC", "RAID"},
+ {TYPE_ANY, "DGC", "DISK"},
+ {TYPE_ANY, "DGC", "VRAID"},
+ {0, "", ""},
};
+MODULE_DEVICE_TABLE(scsi_dh, clariion_dev_list);

static int clariion_bus_attach(struct scsi_device *sdev);
static void clariion_bus_detach(struct scsi_device *sdev);
Index: linux-2.6.29/drivers/scsi/device_handler/scsi_dh_hp_sw.c
===================================================================
--- linux-2.6.29.orig/drivers/scsi/device_handler/scsi_dh_hp_sw.c
+++ linux-2.6.29/drivers/scsi/device_handler/scsi_dh_hp_sw.c
@@ -286,13 +286,14 @@ static int hp_sw_activate(struct scsi_de
return ret;
}

-static const struct scsi_dh_devlist hp_sw_dh_data_list[] = {
- {"COMPAQ", "MSA1000 VOLUME"},
- {"COMPAQ", "HSV110"},
- {"HP", "HSV100"},
- {"DEC", "HSG80"},
- {NULL, NULL},
+static const struct scsi_dh_device_id hp_sw_dh_data_list[] = {
+ {TYPE_ANY, "COMPAQ", "MSA1000 VOLUME"},
+ {TYPE_ANY, "COMPAQ", "HSV110"},
+ {TYPE_ANY, "HP", "HSV100"},
+ {TYPE_ANY, "DEC", "HSG80"},
+ {0, "", ""},
};
+MODULE_DEVICE_TABLE(scsi_dh, hp_sw_dh_data_list);

static int hp_sw_bus_attach(struct scsi_device *sdev);
static void hp_sw_bus_detach(struct scsi_device *sdev);
Index: linux-2.6.29/drivers/scsi/device_handler/scsi_dh_rdac.c
===================================================================
--- linux-2.6.29.orig/drivers/scsi/device_handler/scsi_dh_rdac.c
+++ linux-2.6.29/drivers/scsi/device_handler/scsi_dh_rdac.c
@@ -608,28 +608,30 @@ static int rdac_check_sense(struct scsi_
return SCSI_RETURN_NOT_HANDLED;
}

-static const struct scsi_dh_devlist rdac_dev_list[] = {
- {"IBM", "1722"},
- {"IBM", "1724"},
- {"IBM", "1726"},
- {"IBM", "1742"},
- {"IBM", "1814"},
- {"IBM", "1815"},
- {"IBM", "1818"},
- {"IBM", "3526"},
- {"SGI", "TP9400"},
- {"SGI", "TP9500"},
- {"SGI", "IS"},
- {"STK", "OPENstorage D280"},
- {"SUN", "CSM200_R"},
- {"SUN", "LCSM100_F"},
- {"DELL", "MD3000"},
- {"DELL", "MD3000i"},
- {"LSI", "INF-01-00"},
- {"ENGENIO", "INF-01-00"},
- {NULL, NULL},
+static const struct scsi_dh_device_id rdac_dev_list[] = {
+ {TYPE_ANY, "IBM", "1722"},
+ {TYPE_ANY, "IBM", "1724"},
+ {TYPE_ANY, "IBM", "1726"},
+ {TYPE_ANY, "IBM", "1742"},
+ {TYPE_ANY, "IBM", "1814"},
+ {TYPE_ANY, "IBM", "1815"},
+ {TYPE_ANY, "IBM", "1818"},
+ {TYPE_ANY, "IBM", "3526"},
+ {TYPE_ANY, "SGI", "TP9400"},
+ {TYPE_ANY, "SGI", "TP9500"},
+ {TYPE_ANY, "SGI", "IS"},
+ {TYPE_ANY, "STK", "OPENstorage D280"},
+ {TYPE_ANY, "SUN", "CSM200_R"},
+ {TYPE_ANY, "SUN", "LCSM100_F"},
+ {TYPE_ANY, "DELL", "MD3000"},
+ {TYPE_ANY, "DELL", "MD3000i"},
+ {TYPE_ANY, "LSI", "INF-01-00"},
+ {TYPE_ANY, "ENGENIO", "INF-01-00"},
+ {0, "", ""},
};

+MODULE_DEVICE_TABLE(scsi_dh, rdac_dev_list);
+
static int rdac_bus_attach(struct scsi_device *sdev);
static void rdac_bus_detach(struct scsi_device *sdev);