qlcnic: Enable VF flood bit on PF.
o On enabling VF flood bit, PF driver will be able to receive traffic from all its VFs. Signed-off-by: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
1414abea04
commit
820b52fd80
@ -15,6 +15,8 @@
|
||||
#define QLC_MAC_OPCODE_MASK 0x7
|
||||
#define QLC_MAC_STAR_ADD 6
|
||||
#define QLC_MAC_STAR_DEL 7
|
||||
#define QLC_VF_FLOOD_BIT BIT_16
|
||||
#define QLC_FLOOD_MODE 0x5
|
||||
|
||||
static int qlcnic_sriov_pf_get_vport_handle(struct qlcnic_adapter *, u8);
|
||||
|
||||
@ -347,6 +349,28 @@ static int qlcnic_sriov_pf_cfg_vlan_filtering(struct qlcnic_adapter *adapter,
|
||||
return err;
|
||||
}
|
||||
|
||||
/* On configuring VF flood bit, PFD will receive traffic from all VFs */
|
||||
static int qlcnic_sriov_pf_cfg_flood(struct qlcnic_adapter *adapter)
|
||||
{
|
||||
struct qlcnic_cmd_args cmd;
|
||||
int err;
|
||||
|
||||
err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_SET_NIC_INFO);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
cmd.req.arg[1] = QLC_FLOOD_MODE | QLC_VF_FLOOD_BIT;
|
||||
|
||||
err = qlcnic_issue_cmd(adapter, &cmd);
|
||||
if (err)
|
||||
dev_err(&adapter->pdev->dev,
|
||||
"Failed to configure VF Flood bit on PF, err=%d\n",
|
||||
err);
|
||||
|
||||
qlcnic_free_mbx_args(&cmd);
|
||||
return err;
|
||||
}
|
||||
|
||||
static int qlcnic_sriov_pf_cfg_eswitch(struct qlcnic_adapter *adapter,
|
||||
u8 func, u8 enable)
|
||||
{
|
||||
@ -474,6 +498,12 @@ static int qlcnic_sriov_pf_init(struct qlcnic_adapter *adapter)
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
if (qlcnic_84xx_check(adapter)) {
|
||||
err = qlcnic_sriov_pf_cfg_flood(adapter);
|
||||
if (err)
|
||||
goto disable_vlan_filtering;
|
||||
}
|
||||
|
||||
err = qlcnic_sriov_pf_cfg_eswitch(adapter, func, 1);
|
||||
if (err)
|
||||
goto disable_vlan_filtering;
|
||||
|
Loading…
Reference in New Issue
Block a user