diff options
Diffstat (limited to 'drivers/infiniband/hw/qib/qib_pcie.c')
-rw-r--r-- | drivers/infiniband/hw/qib/qib_pcie.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/infiniband/hw/qib/qib_pcie.c b/drivers/infiniband/hw/qib/qib_pcie.c index 61a0046efb76..243f8065dcad 100644 --- a/drivers/infiniband/hw/qib/qib_pcie.c +++ b/drivers/infiniband/hw/qib/qib_pcie.c | |||
@@ -210,7 +210,7 @@ static void qib_msix_setup(struct qib_devdata *dd, int pos, u32 *msixcnt, | |||
210 | /* We can't pass qib_msix_entry array to qib_msix_setup | 210 | /* We can't pass qib_msix_entry array to qib_msix_setup |
211 | * so use a dummy msix_entry array and copy the allocated | 211 | * so use a dummy msix_entry array and copy the allocated |
212 | * irq back to the qib_msix_entry array. */ | 212 | * irq back to the qib_msix_entry array. */ |
213 | msix_entry = kmalloc(nvec * sizeof(*msix_entry), GFP_KERNEL); | 213 | msix_entry = kcalloc(nvec, sizeof(*msix_entry), GFP_KERNEL); |
214 | if (!msix_entry) | 214 | if (!msix_entry) |
215 | goto do_intx; | 215 | goto do_intx; |
216 | 216 | ||
@@ -234,8 +234,10 @@ free_msix_entry: | |||
234 | kfree(msix_entry); | 234 | kfree(msix_entry); |
235 | 235 | ||
236 | do_intx: | 236 | do_intx: |
237 | qib_dev_err(dd, "pci_enable_msix_range %d vectors failed: %d, " | 237 | qib_dev_err( |
238 | "falling back to INTx\n", nvec, ret); | 238 | dd, |
239 | "pci_enable_msix_range %d vectors failed: %d, falling back to INTx\n", | ||
240 | nvec, ret); | ||
239 | *msixcnt = 0; | 241 | *msixcnt = 0; |
240 | qib_enable_intx(dd->pcidev); | 242 | qib_enable_intx(dd->pcidev); |
241 | } | 243 | } |