aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/device_handler
diff options
context:
space:
mode:
authorMoger, Babu <Babu.Moger@netapp.com>2011-12-01 15:01:16 -0500
committerJames Bottomley <JBottomley@Parallels.com>2011-12-15 01:55:00 -0500
commit4f10143f6e8cd62460920211e1b24b0915d0ab00 (patch)
tree7e9308539a4a966976b7d11a6c120e3c1bb3926c /drivers/scsi/device_handler
parenta878185c3b93e692ace0d1628a47f3d75504ab4f (diff)
[SCSI] scsi_dh_emc: Add a match function for emc device handler
This patch introduces the match function for emc device handler. Included check for TPGS bit before proceeding further. The match function was introduced by commit 6c3633d08acf514e2e89aa95d2346ce9d64d719a Signed-off-by: Babu Moger <babu.moger@netapp.com> Acked-by: Hannes Reinecke <hare@suse.de> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/device_handler')
-rw-r--r--drivers/scsi/device_handler/scsi_dh_emc.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/scsi/device_handler/scsi_dh_emc.c b/drivers/scsi/device_handler/scsi_dh_emc.c
index 591186cf1896..e1c8be06de9d 100644
--- a/drivers/scsi/device_handler/scsi_dh_emc.c
+++ b/drivers/scsi/device_handler/scsi_dh_emc.c
@@ -629,6 +629,24 @@ static const struct scsi_dh_devlist clariion_dev_list[] = {
629 {NULL, NULL}, 629 {NULL, NULL},
630}; 630};
631 631
632static bool clariion_match(struct scsi_device *sdev)
633{
634 int i;
635
636 if (scsi_device_tpgs(sdev))
637 return false;
638
639 for (i = 0; clariion_dev_list[i].vendor; i++) {
640 if (!strncmp(sdev->vendor, clariion_dev_list[i].vendor,
641 strlen(clariion_dev_list[i].vendor)) &&
642 !strncmp(sdev->model, clariion_dev_list[i].model,
643 strlen(clariion_dev_list[i].model))) {
644 return true;
645 }
646 }
647 return false;
648}
649
632static int clariion_bus_attach(struct scsi_device *sdev); 650static int clariion_bus_attach(struct scsi_device *sdev);
633static void clariion_bus_detach(struct scsi_device *sdev); 651static void clariion_bus_detach(struct scsi_device *sdev);
634 652
@@ -642,6 +660,7 @@ static struct scsi_device_handler clariion_dh = {
642 .activate = clariion_activate, 660 .activate = clariion_activate,
643 .prep_fn = clariion_prep_fn, 661 .prep_fn = clariion_prep_fn,
644 .set_params = clariion_set_params, 662 .set_params = clariion_set_params,
663 .match = clariion_match,
645}; 664};
646 665
647static int clariion_bus_attach(struct scsi_device *sdev) 666static int clariion_bus_attach(struct scsi_device *sdev)