Commit bb13ace7 authored by Sudarsana Reddy Kalluru's avatar Sudarsana Reddy Kalluru Committed by David S. Miller

qed: Prevent 100g from working in MSI

Adapter can support 100g in both MSIx and INTa, but not in MSI.
Signed-off-by: default avatarSudarsana Reddy Kalluru <sudarsana.kalluru@qlogic.com>
Signed-off-by: default avatarYuval Mintz <Yuval.Mintz@qlogic.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 1af9dcf7
...@@ -835,6 +835,11 @@ int qed_hw_init(struct qed_dev *cdev, ...@@ -835,6 +835,11 @@ int qed_hw_init(struct qed_dev *cdev,
u32 load_code, param; u32 load_code, param;
int rc, mfw_rc, i; int rc, mfw_rc, i;
if ((int_mode == QED_INT_MODE_MSI) && (cdev->num_hwfns > 1)) {
DP_NOTICE(cdev, "MSI mode is not supported for CMT devices\n");
return -EINVAL;
}
if (IS_PF(cdev)) { if (IS_PF(cdev)) {
rc = qed_init_fw_data(cdev, bin_fw_data); rc = qed_init_fw_data(cdev, bin_fw_data);
if (rc != 0) if (rc != 0)
......
...@@ -413,15 +413,17 @@ static int qed_set_int_mode(struct qed_dev *cdev, bool force_mode) ...@@ -413,15 +413,17 @@ static int qed_set_int_mode(struct qed_dev *cdev, bool force_mode)
/* Fallthrough */ /* Fallthrough */
case QED_INT_MODE_MSI: case QED_INT_MODE_MSI:
rc = pci_enable_msi(cdev->pdev); if (cdev->num_hwfns == 1) {
if (!rc) { rc = pci_enable_msi(cdev->pdev);
int_params->out.int_mode = QED_INT_MODE_MSI; if (!rc) {
goto out; int_params->out.int_mode = QED_INT_MODE_MSI;
} goto out;
}
DP_NOTICE(cdev, "Failed to enable MSI\n"); DP_NOTICE(cdev, "Failed to enable MSI\n");
if (force_mode) if (force_mode)
goto out; goto out;
}
/* Fallthrough */ /* Fallthrough */
case QED_INT_MODE_INTA: case QED_INT_MODE_INTA:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment