diff options
Diffstat (limited to 'drivers/net/benet/be_main.c')
| -rw-r--r-- | drivers/net/benet/be_main.c | 19 | 
1 files changed, 13 insertions, 6 deletions
diff --git a/drivers/net/benet/be_main.c b/drivers/net/benet/be_main.c index 7cb5a114c73..9187fb4e08f 100644 --- a/drivers/net/benet/be_main.c +++ b/drivers/net/benet/be_main.c @@ -1018,7 +1018,8 @@ static void be_rx_compl_process(struct be_adapter *adapter,  			kfree_skb(skb);  			return;  		} -		vlan_hwaccel_receive_skb(skb, adapter->vlan_grp, rxcp->vid); +		vlan_hwaccel_receive_skb(skb, adapter->vlan_grp, +					rxcp->vlan_tag);  	} else {  		netif_receive_skb(skb);  	} @@ -1076,7 +1077,8 @@ static void be_rx_compl_process_gro(struct be_adapter *adapter,  	if (likely(!rxcp->vlanf))  		napi_gro_frags(&eq_obj->napi);  	else -		vlan_gro_frags(&eq_obj->napi, adapter->vlan_grp, rxcp->vid); +		vlan_gro_frags(&eq_obj->napi, adapter->vlan_grp, +				rxcp->vlan_tag);  }  static void be_parse_rx_compl_v1(struct be_adapter *adapter, @@ -1102,7 +1104,8 @@ static void be_parse_rx_compl_v1(struct be_adapter *adapter,  	rxcp->pkt_type =  		AMAP_GET_BITS(struct amap_eth_rx_compl_v1, cast_enc, compl);  	rxcp->vtm = AMAP_GET_BITS(struct amap_eth_rx_compl_v1, vtm, compl); -	rxcp->vid = AMAP_GET_BITS(struct amap_eth_rx_compl_v1, vlan_tag, compl); +	rxcp->vlan_tag = AMAP_GET_BITS(struct amap_eth_rx_compl_v1, vlan_tag, +					compl);  }  static void be_parse_rx_compl_v0(struct be_adapter *adapter, @@ -1128,7 +1131,8 @@ static void be_parse_rx_compl_v0(struct be_adapter *adapter,  	rxcp->pkt_type =  		AMAP_GET_BITS(struct amap_eth_rx_compl_v0, cast_enc, compl);  	rxcp->vtm = AMAP_GET_BITS(struct amap_eth_rx_compl_v0, vtm, compl); -	rxcp->vid = AMAP_GET_BITS(struct amap_eth_rx_compl_v0, vlan_tag, compl); +	rxcp->vlan_tag = AMAP_GET_BITS(struct amap_eth_rx_compl_v0, vlan_tag, +					compl);  }  static struct be_rx_compl_info *be_rx_compl_get(struct be_rx_obj *rxo) @@ -1155,9 +1159,11 @@ static struct be_rx_compl_info *be_rx_compl_get(struct be_rx_obj *rxo)  		rxcp->vlanf = 0;  	if (!lancer_chip(adapter)) -		rxcp->vid = swab16(rxcp->vid); +		rxcp->vlan_tag = swab16(rxcp->vlan_tag); -	if ((adapter->pvid == rxcp->vid) && !adapter->vlan_tag[rxcp->vid]) +	if (((adapter->pvid & VLAN_VID_MASK) == +		(rxcp->vlan_tag & VLAN_VID_MASK)) && +		!adapter->vlan_tag[rxcp->vlan_tag])  		rxcp->vlanf = 0;  	/* As the compl has been parsed, reset it; we wont touch it again */ @@ -1873,6 +1879,7 @@ static void be_worker(struct work_struct *work)  		be_detect_dump_ue(adapter);  reschedule: +	adapter->work_counter++;  	schedule_delayed_work(&adapter->work, msecs_to_jiffies(1000));  }  |