diff options
Diffstat (limited to 'drivers/scsi/aacraid/linit.c')
-rw-r--r-- | drivers/scsi/aacraid/linit.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c index d2cf875af59b..a9734e08fe28 100644 --- a/drivers/scsi/aacraid/linit.c +++ b/drivers/scsi/aacraid/linit.c | |||
@@ -157,6 +157,7 @@ static struct pci_device_id aac_pci_tbl[] = { | |||
157 | { 0x9005, 0x0285, 0x17aa, PCI_ANY_ID, 0, 0, 58 }, /* Legend Catchall */ | 157 | { 0x9005, 0x0285, 0x17aa, PCI_ANY_ID, 0, 0, 58 }, /* Legend Catchall */ |
158 | { 0x9005, 0x0285, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 59 }, /* Adaptec Catch All */ | 158 | { 0x9005, 0x0285, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 59 }, /* Adaptec Catch All */ |
159 | { 0x9005, 0x0286, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 60 }, /* Adaptec Rocket Catch All */ | 159 | { 0x9005, 0x0286, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 60 }, /* Adaptec Rocket Catch All */ |
160 | { 0x9005, 0x0288, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 61 }, /* Adaptec NEMER/ARK Catch All */ | ||
160 | { 0,} | 161 | { 0,} |
161 | }; | 162 | }; |
162 | MODULE_DEVICE_TABLE(pci, aac_pci_tbl); | 163 | MODULE_DEVICE_TABLE(pci, aac_pci_tbl); |
@@ -230,7 +231,8 @@ static struct aac_driver_ident aac_drivers[] = { | |||
230 | { aac_rx_init, "aacraid", "DELL ", "RAID ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG }, /* Dell Catchall */ | 231 | { aac_rx_init, "aacraid", "DELL ", "RAID ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG }, /* Dell Catchall */ |
231 | { aac_rx_init, "aacraid", "Legend ", "RAID ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG }, /* Legend Catchall */ | 232 | { aac_rx_init, "aacraid", "Legend ", "RAID ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG }, /* Legend Catchall */ |
232 | { aac_rx_init, "aacraid", "ADAPTEC ", "RAID ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG }, /* Adaptec Catch All */ | 233 | { aac_rx_init, "aacraid", "ADAPTEC ", "RAID ", 2, AAC_QUIRK_31BIT | AAC_QUIRK_34SG }, /* Adaptec Catch All */ |
233 | { aac_rkt_init, "aacraid", "ADAPTEC ", "RAID ", 2 } /* Adaptec Rocket Catch All */ | 234 | { aac_rkt_init, "aacraid", "ADAPTEC ", "RAID ", 2 }, /* Adaptec Rocket Catch All */ |
235 | { aac_nark_init, "aacraid", "ADAPTEC ", "RAID ", 2 } /* Adaptec NEMER/ARK Catch All */ | ||
234 | }; | 236 | }; |
235 | 237 | ||
236 | /** | 238 | /** |
@@ -396,11 +398,15 @@ static int aac_slave_configure(struct scsi_device *sdev) | |||
396 | sdev->skip_ms_page_3f = 1; | 398 | sdev->skip_ms_page_3f = 1; |
397 | } | 399 | } |
398 | if ((sdev->type == TYPE_DISK) && | 400 | if ((sdev->type == TYPE_DISK) && |
399 | !expose_physicals && | ||
400 | (sdev_channel(sdev) != CONTAINER_CHANNEL)) { | 401 | (sdev_channel(sdev) != CONTAINER_CHANNEL)) { |
401 | struct aac_dev *aac = (struct aac_dev *)sdev->host->hostdata; | 402 | if (expose_physicals == 0) |
402 | if (!aac->raid_scsi_mode || (sdev_channel(sdev) != 2)) | 403 | return -ENXIO; |
403 | sdev->no_uld_attach = 1; | 404 | if (expose_physicals < 0) { |
405 | struct aac_dev *aac = | ||
406 | (struct aac_dev *)sdev->host->hostdata; | ||
407 | if (!aac->raid_scsi_mode || (sdev_channel(sdev) != 2)) | ||
408 | sdev->no_uld_attach = 1; | ||
409 | } | ||
404 | } | 410 | } |
405 | if (sdev->tagged_supported && (sdev->type == TYPE_DISK) && | 411 | if (sdev->tagged_supported && (sdev->type == TYPE_DISK) && |
406 | (sdev_channel(sdev) == CONTAINER_CHANNEL)) { | 412 | (sdev_channel(sdev) == CONTAINER_CHANNEL)) { |
@@ -804,7 +810,6 @@ static struct scsi_host_template aac_driver_template = { | |||
804 | .emulated = 1, | 810 | .emulated = 1, |
805 | }; | 811 | }; |
806 | 812 | ||
807 | |||
808 | static int __devinit aac_probe_one(struct pci_dev *pdev, | 813 | static int __devinit aac_probe_one(struct pci_dev *pdev, |
809 | const struct pci_device_id *id) | 814 | const struct pci_device_id *id) |
810 | { | 815 | { |