|
@@ -2089,6 +2089,7 @@ error_param:
|
|
|
int i40e_ndo_set_vf_port_vlan(struct net_device *netdev,
|
|
|
int vf_id, u16 vlan_id, u8 qos)
|
|
|
{
|
|
|
+ u16 vlanprio = vlan_id | (qos << I40E_VLAN_PRIORITY_SHIFT);
|
|
|
struct i40e_netdev_priv *np = netdev_priv(netdev);
|
|
|
struct i40e_pf *pf = np->vsi->back;
|
|
|
struct i40e_vsi *vsi;
|
|
@@ -2116,8 +2117,7 @@ int i40e_ndo_set_vf_port_vlan(struct net_device *netdev,
|
|
|
goto error_pvid;
|
|
|
}
|
|
|
|
|
|
- if (le16_to_cpu(vsi->info.pvid) ==
|
|
|
- (vlan_id | (qos << I40E_VLAN_PRIORITY_SHIFT)))
|
|
|
+ if (le16_to_cpu(vsi->info.pvid) == vlanprio)
|
|
|
/* duplicate request, so just return success */
|
|
|
goto error_pvid;
|
|
|
|
|
@@ -2141,7 +2141,7 @@ int i40e_ndo_set_vf_port_vlan(struct net_device *netdev,
|
|
|
* MAC addresses deleted.
|
|
|
*/
|
|
|
if ((!(vlan_id || qos) ||
|
|
|
- (vlan_id | qos) != le16_to_cpu(vsi->info.pvid)) &&
|
|
|
+ vlanprio != le16_to_cpu(vsi->info.pvid)) &&
|
|
|
vsi->info.pvid)
|
|
|
ret = i40e_vsi_add_vlan(vsi, I40E_VLAN_ANY);
|
|
|
|
|
@@ -2156,8 +2156,7 @@ int i40e_ndo_set_vf_port_vlan(struct net_device *netdev,
|
|
|
}
|
|
|
}
|
|
|
if (vlan_id || qos)
|
|
|
- ret = i40e_vsi_add_pvid(vsi,
|
|
|
- vlan_id | (qos << I40E_VLAN_PRIORITY_SHIFT));
|
|
|
+ ret = i40e_vsi_add_pvid(vsi, vlanprio);
|
|
|
else
|
|
|
i40e_vsi_remove_pvid(vsi);
|
|
|
|