فهرست منبع

qed*: Disallow dcbx configuration for VF interfaces.

Dcbx configuration is not supported for VF interfaces. Hence don't populate
the callbacks for VFs and also fail the dcbx-query for VFs.

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>
Sudarsana Reddy Kalluru 9 سال پیش
والد
کامیت
5fe118c9fd
2فایلهای تغییر یافته به همراه6 افزوده شده و 1 حذف شده
  1. 4 0
      drivers/net/ethernet/qlogic/qed/qed_dcbx.c
  2. 2 1
      drivers/net/ethernet/qlogic/qede/qede_main.c

+ 4 - 0
drivers/net/ethernet/qlogic/qed/qed_dcbx.c

@@ -19,6 +19,7 @@
 #include "qed_dcbx.h"
 #include "qed_dcbx.h"
 #include "qed_hsi.h"
 #include "qed_hsi.h"
 #include "qed_sp.h"
 #include "qed_sp.h"
+#include "qed_sriov.h"
 #ifdef CONFIG_DCB
 #ifdef CONFIG_DCB
 #include <linux/qed/qed_eth_if.h>
 #include <linux/qed/qed_eth_if.h>
 #endif
 #endif
@@ -945,6 +946,9 @@ static int qed_dcbx_query_params(struct qed_hwfn *p_hwfn,
 	struct qed_ptt *p_ptt;
 	struct qed_ptt *p_ptt;
 	int rc;
 	int rc;
 
 
+	if (IS_VF(p_hwfn->cdev))
+		return -EINVAL;
+
 	p_ptt = qed_ptt_acquire(p_hwfn);
 	p_ptt = qed_ptt_acquire(p_hwfn);
 	if (!p_ptt)
 	if (!p_ptt)
 		return -EBUSY;
 		return -EBUSY;

+ 2 - 1
drivers/net/ethernet/qlogic/qede/qede_main.c

@@ -2520,7 +2520,8 @@ static int __qede_probe(struct pci_dev *pdev, u32 dp_module, u8 dp_level,
 	edev->ops->register_ops(cdev, &qede_ll_ops, edev);
 	edev->ops->register_ops(cdev, &qede_ll_ops, edev);
 
 
 #ifdef CONFIG_DCB
 #ifdef CONFIG_DCB
-	qede_set_dcbnl_ops(edev->ndev);
+	if (!IS_VF(edev))
+		qede_set_dcbnl_ops(edev->ndev);
 #endif
 #endif
 
 
 	INIT_DELAYED_WORK(&edev->sp_task, qede_sp_task);
 	INIT_DELAYED_WORK(&edev->sp_task, qede_sp_task);