diff options
author | Sudarsana Reddy Kalluru <sudarsana.kalluru@qlogic.com> | 2016-05-26 04:01:23 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-05-26 15:27:33 -0400 |
commit | bb13ace7dca5d2385847e43511acf5777da35c0e (patch) | |
tree | 6e9571781a81e6f037d041bae67a8a296c1267fe | |
parent | 1af9dcf7f90e6b75b7c42eaaf19cdd5da1354784 (diff) |
qed: Prevent 100g from working in MSI
Adapter can support 100g in both MSIx and INTa, but not in MSI.
Signed-off-by: Sudarsana Reddy Kalluru <sudarsana.kalluru@qlogic.com>
Signed-off-by: Yuval Mintz <Yuval.Mintz@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/ethernet/qlogic/qed/qed_dev.c | 5 | ||||
-rw-r--r-- | drivers/net/ethernet/qlogic/qed/qed_main.c | 18 |
2 files changed, 15 insertions, 8 deletions
diff --git a/drivers/net/ethernet/qlogic/qed/qed_dev.c b/drivers/net/ethernet/qlogic/qed/qed_dev.c index 2a7c8755eda0..579c6d500865 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_dev.c +++ b/drivers/net/ethernet/qlogic/qed/qed_dev.c | |||
@@ -835,6 +835,11 @@ int qed_hw_init(struct qed_dev *cdev, | |||
835 | u32 load_code, param; | 835 | u32 load_code, param; |
836 | int rc, mfw_rc, i; | 836 | int rc, mfw_rc, i; |
837 | 837 | ||
838 | if ((int_mode == QED_INT_MODE_MSI) && (cdev->num_hwfns > 1)) { | ||
839 | DP_NOTICE(cdev, "MSI mode is not supported for CMT devices\n"); | ||
840 | return -EINVAL; | ||
841 | } | ||
842 | |||
838 | if (IS_PF(cdev)) { | 843 | if (IS_PF(cdev)) { |
839 | rc = qed_init_fw_data(cdev, bin_fw_data); | 844 | rc = qed_init_fw_data(cdev, bin_fw_data); |
840 | if (rc != 0) | 845 | if (rc != 0) |
diff --git a/drivers/net/ethernet/qlogic/qed/qed_main.c b/drivers/net/ethernet/qlogic/qed/qed_main.c index 8b22f87033ce..753064679bde 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_main.c +++ b/drivers/net/ethernet/qlogic/qed/qed_main.c | |||
@@ -413,15 +413,17 @@ static int qed_set_int_mode(struct qed_dev *cdev, bool force_mode) | |||
413 | /* Fallthrough */ | 413 | /* Fallthrough */ |
414 | 414 | ||
415 | case QED_INT_MODE_MSI: | 415 | case QED_INT_MODE_MSI: |
416 | rc = pci_enable_msi(cdev->pdev); | 416 | if (cdev->num_hwfns == 1) { |
417 | if (!rc) { | 417 | rc = pci_enable_msi(cdev->pdev); |
418 | int_params->out.int_mode = QED_INT_MODE_MSI; | 418 | if (!rc) { |
419 | goto out; | 419 | int_params->out.int_mode = QED_INT_MODE_MSI; |
420 | } | 420 | goto out; |
421 | } | ||
421 | 422 | ||
422 | DP_NOTICE(cdev, "Failed to enable MSI\n"); | 423 | DP_NOTICE(cdev, "Failed to enable MSI\n"); |
423 | if (force_mode) | 424 | if (force_mode) |
424 | goto out; | 425 | goto out; |
426 | } | ||
425 | /* Fallthrough */ | 427 | /* Fallthrough */ |
426 | 428 | ||
427 | case QED_INT_MODE_INTA: | 429 | case QED_INT_MODE_INTA: |