diff options
Diffstat (limited to 'drivers/scsi/bfa/bfad_intr.c')
-rw-r--r-- | drivers/scsi/bfa/bfad_intr.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/scsi/bfa/bfad_intr.c b/drivers/scsi/bfa/bfad_intr.c index f104e029cac9..2b7dbecbebca 100644 --- a/drivers/scsi/bfa/bfad_intr.c +++ b/drivers/scsi/bfa/bfad_intr.c | |||
@@ -23,13 +23,14 @@ BFA_TRC_FILE(LDRV, INTR); | |||
23 | /** | 23 | /** |
24 | * bfa_isr BFA driver interrupt functions | 24 | * bfa_isr BFA driver interrupt functions |
25 | */ | 25 | */ |
26 | irqreturn_t bfad_intx(int irq, void *dev_id); | 26 | static int msix_disable_cb; |
27 | static int msix_disable; | 27 | static int msix_disable_ct; |
28 | module_param(msix_disable, int, S_IRUGO | S_IWUSR); | 28 | module_param(msix_disable_cb, int, S_IRUGO | S_IWUSR); |
29 | module_param(msix_disable_ct, int, S_IRUGO | S_IWUSR); | ||
29 | /** | 30 | /** |
30 | * Line based interrupt handler. | 31 | * Line based interrupt handler. |
31 | */ | 32 | */ |
32 | irqreturn_t | 33 | static irqreturn_t |
33 | bfad_intx(int irq, void *dev_id) | 34 | bfad_intx(int irq, void *dev_id) |
34 | { | 35 | { |
35 | struct bfad_s *bfad = dev_id; | 36 | struct bfad_s *bfad = dev_id; |
@@ -142,6 +143,7 @@ bfad_setup_intr(struct bfad_s *bfad) | |||
142 | int error = 0; | 143 | int error = 0; |
143 | u32 mask = 0, i, num_bit = 0, max_bit = 0; | 144 | u32 mask = 0, i, num_bit = 0, max_bit = 0; |
144 | struct msix_entry msix_entries[MAX_MSIX_ENTRY]; | 145 | struct msix_entry msix_entries[MAX_MSIX_ENTRY]; |
146 | struct pci_dev *pdev = bfad->pcidev; | ||
145 | 147 | ||
146 | /* Call BFA to get the msix map for this PCI function. */ | 148 | /* Call BFA to get the msix map for this PCI function. */ |
147 | bfa_msix_getvecs(&bfad->bfa, &mask, &num_bit, &max_bit); | 149 | bfa_msix_getvecs(&bfad->bfa, &mask, &num_bit, &max_bit); |
@@ -149,7 +151,9 @@ bfad_setup_intr(struct bfad_s *bfad) | |||
149 | /* Set up the msix entry table */ | 151 | /* Set up the msix entry table */ |
150 | bfad_init_msix_entry(bfad, msix_entries, mask, max_bit); | 152 | bfad_init_msix_entry(bfad, msix_entries, mask, max_bit); |
151 | 153 | ||
152 | if (!msix_disable) { | 154 | if ((pdev->device == BFA_PCI_DEVICE_ID_CT && !msix_disable_ct) || |
155 | (pdev->device != BFA_PCI_DEVICE_ID_CT && !msix_disable_cb)) { | ||
156 | |||
153 | error = pci_enable_msix(bfad->pcidev, msix_entries, bfad->nvec); | 157 | error = pci_enable_msix(bfad->pcidev, msix_entries, bfad->nvec); |
154 | if (error) { | 158 | if (error) { |
155 | /* | 159 | /* |