diff options
Diffstat (limited to 'drivers/scsi/device_handler')
-rw-r--r-- | drivers/scsi/device_handler/scsi_dh_emc.c | 19 |
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 | ||
632 | static 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 | |||
632 | static int clariion_bus_attach(struct scsi_device *sdev); | 650 | static int clariion_bus_attach(struct scsi_device *sdev); |
633 | static void clariion_bus_detach(struct scsi_device *sdev); | 651 | static 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 | ||
647 | static int clariion_bus_attach(struct scsi_device *sdev) | 666 | static int clariion_bus_attach(struct scsi_device *sdev) |