瀏覽代碼

qlcnic: Allow vlan0 traffic

o Adapter allows vlan0 traffic in case of SR-IOV after setting
  QLC_SRIOV_ALLOW_VLAN0 bit even though we do not add vlan0 filters.

Signed-off-by: Rajesh Borundia <rajesh.borundia@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Rajesh Borundia 11 年之前
父節點
當前提交
cecd59d84d
共有 1 個文件被更改,包括 5 次插入1 次删除
  1. 5 1
      drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c

+ 5 - 1
drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c

@@ -17,6 +17,7 @@
 #define QLC_MAC_STAR_DEL	7
 #define QLC_MAC_STAR_DEL	7
 #define QLC_VF_FLOOD_BIT	BIT_16
 #define QLC_VF_FLOOD_BIT	BIT_16
 #define QLC_FLOOD_MODE		0x5
 #define QLC_FLOOD_MODE		0x5
+#define QLC_SRIOV_ALLOW_VLAN0	BIT_19
 
 
 static int qlcnic_sriov_pf_get_vport_handle(struct qlcnic_adapter *, u8);
 static int qlcnic_sriov_pf_get_vport_handle(struct qlcnic_adapter *, u8);
 
 
@@ -337,8 +338,11 @@ static int qlcnic_sriov_pf_cfg_vlan_filtering(struct qlcnic_adapter *adapter,
 		return err;
 		return err;
 
 
 	cmd.req.arg[1] = 0x4;
 	cmd.req.arg[1] = 0x4;
-	if (enable)
+	if (enable) {
 		cmd.req.arg[1] |= BIT_16;
 		cmd.req.arg[1] |= BIT_16;
+		if (qlcnic_84xx_check(adapter))
+			cmd.req.arg[1] |= QLC_SRIOV_ALLOW_VLAN0;
+	}
 
 
 	err = qlcnic_issue_cmd(adapter, &cmd);
 	err = qlcnic_issue_cmd(adapter, &cmd);
 	if (err)
 	if (err)