diff options
| author | Shiraz Saleem <shiraz.saleem@intel.com> | 2017-09-19 10:19:09 -0400 |
|---|---|---|
| committer | Doug Ledford <dledford@redhat.com> | 2017-09-22 13:43:36 -0400 |
| commit | cd9100ca9e78eb03bf5a0ee2ba98ebdc8cc5880e (patch) | |
| tree | 6f4cd20dd954f7abead039fc2687bbf23de61b0c | |
| parent | 01df7f5a77b926c2d790cf66d942d2a68d4ad5de (diff) | |
i40iw: Fail open if there are no available MSI-X vectors
Check number of available MSI-X vectors for i40iw.
If there are no available vectors, fail the open.
Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
| -rw-r--r-- | drivers/infiniband/hw/i40iw/i40iw_main.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/i40iw/i40iw_main.c b/drivers/infiniband/hw/i40iw/i40iw_main.c index cc742c3132c6..5965b59a2f83 100644 --- a/drivers/infiniband/hw/i40iw/i40iw_main.c +++ b/drivers/infiniband/hw/i40iw/i40iw_main.c | |||
| @@ -1400,6 +1400,11 @@ static enum i40iw_status_code i40iw_save_msix_info(struct i40iw_device *iwdev, | |||
| 1400 | u32 i; | 1400 | u32 i; |
| 1401 | u32 size; | 1401 | u32 size; |
| 1402 | 1402 | ||
| 1403 | if (!ldev->msix_count) { | ||
| 1404 | i40iw_pr_err("No MSI-X vectors\n"); | ||
| 1405 | return I40IW_ERR_CONFIG; | ||
| 1406 | } | ||
| 1407 | |||
| 1403 | iwdev->msix_count = ldev->msix_count; | 1408 | iwdev->msix_count = ldev->msix_count; |
| 1404 | 1409 | ||
| 1405 | size = sizeof(struct i40iw_msix_vector) * iwdev->msix_count; | 1410 | size = sizeof(struct i40iw_msix_vector) * iwdev->msix_count; |
| @@ -1550,7 +1555,7 @@ static enum i40iw_status_code i40iw_setup_init_state(struct i40iw_handler *hdl, | |||
| 1550 | 1555 | ||
| 1551 | status = i40iw_save_msix_info(iwdev, ldev); | 1556 | status = i40iw_save_msix_info(iwdev, ldev); |
| 1552 | if (status) | 1557 | if (status) |
| 1553 | goto exit; | 1558 | return status; |
| 1554 | iwdev->hw.dev_context = (void *)ldev->pcidev; | 1559 | iwdev->hw.dev_context = (void *)ldev->pcidev; |
| 1555 | iwdev->hw.hw_addr = ldev->hw_addr; | 1560 | iwdev->hw.hw_addr = ldev->hw_addr; |
| 1556 | status = i40iw_allocate_dma_mem(&iwdev->hw, | 1561 | status = i40iw_allocate_dma_mem(&iwdev->hw, |
