| Submitter | Ajit Khaparde |
|---|---|
| Date | March 31, 2010, noon |
| Message ID | <20100331120021.GA9185@serverengines.com> |
| Download | mbox | patch |
| Permalink | /patch/49133/ |
| State | Accepted |
| Delegated to: | David Miller |
| Headers | show |
Comments
From: Ajit Khaparde <ajitk@serverengines.com> Date: Wed, 31 Mar 2010 17:30:32 +0530 > vlan traffic on big endian architecture is broken. > Need to swap the vid before giving packet to stack. > This patch fixes it. > > Signed-off-by: Ajit Khaparde <ajitk@serverengines.com> Applied -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Patch
diff --git a/drivers/net/benet/be_main.c b/drivers/net/benet/be_main.c index b0faaa2..ec6ace8 100644 --- a/drivers/net/benet/be_main.c +++ b/drivers/net/benet/be_main.c @@ -807,7 +807,7 @@ static void be_rx_compl_process(struct be_adapter *adapter, return; } vid = AMAP_GET_BITS(struct amap_eth_rx_compl, vlan_tag, rxcp); - vid = be16_to_cpu(vid); + vid = swab16(vid); vlan_hwaccel_receive_skb(skb, adapter->vlan_grp, vid); } else { netif_receive_skb(skb); @@ -884,7 +884,7 @@ static void be_rx_compl_process_gro(struct be_adapter *adapter, napi_gro_frags(&eq_obj->napi); } else { vid = AMAP_GET_BITS(struct amap_eth_rx_compl, vlan_tag, rxcp); - vid = be16_to_cpu(vid); + vid = swab16(vid); if (!adapter->vlan_grp || adapter->vlans_added == 0) return;
vlan traffic on big endian architecture is broken. Need to swap the vid before giving packet to stack. This patch fixes it. Signed-off-by: Ajit Khaparde <ajitk@serverengines.com> --- drivers/net/benet/be_main.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)