diff options
author | Manish Chopra <manish.chopra@qlogic.com> | 2013-08-30 13:51:16 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-08-31 22:34:43 -0400 |
commit | 991ca269ed71b2b7aee27f5cb8bf64b689cc20bf (patch) | |
tree | aa98ffd7e41853d8984f4579e01461c9d9a47054 /drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c | |
parent | eb3c0d83cc78361a28e52e514a7095fdbf771e7e (diff) | |
download | blackbird-op-linux-991ca269ed71b2b7aee27f5cb8bf64b689cc20bf.tar.gz blackbird-op-linux-991ca269ed71b2b7aee27f5cb8bf64b689cc20bf.zip |
qlcnic: Enhance PVID handling for 84xx adapters
o PF driver should not indicate PVID configuration to VF driver.
As adapter supports VLAN stripping, VF driver should stay agnostic
to any PVID configuration.
o Return "QLC_NO_VLAN_MODE(= 0)" to VFD when PVID is configured.
VF driver should be in no VLAN configuration mode.
Signed-off-by: Manish Chopra <manish.chopra@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c')
-rw-r--r-- | drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c index 2d6faf0fcc10..95b7710ecfa5 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_pf.c @@ -1183,10 +1183,19 @@ static int qlcnic_sriov_pf_get_acl_cmd(struct qlcnic_bc_trans *trans, struct qlcnic_vf_info *vf = trans->vf; struct qlcnic_vport *vp = vf->vp; u8 cmd_op, mode = vp->vlan_mode; + struct qlcnic_adapter *adapter; + + adapter = vf->adapter; cmd_op = trans->req_hdr->cmd_op; cmd->rsp.arg[0] |= 1 << 25; + /* For 84xx adapter in case of PVID , PFD should send vlan mode as + * QLC_NO_VLAN_MODE to VFD which is zero in mailbox response + */ + if (qlcnic_84xx_check(adapter) && mode == QLC_PVID_MODE) + return 0; + switch (mode) { case QLC_GUEST_VLAN_MODE: cmd->rsp.arg[1] = mode | 1 << 8; |