diff options
author | Alexandre Oliva <lxoliva@fsfla.org> | 2011-10-29 08:43:10 +0000 |
---|---|---|
committer | Alexandre Oliva <lxoliva@fsfla.org> | 2011-10-29 08:43:10 +0000 |
commit | f713f558e4aaa7eaa8c4cc51e61671dc051ce28e (patch) | |
tree | 873cd1473c41f3eb4f098340f15bfe3a26d53d8c /freed-ora/current/f15/be2net-move-to-new-vlan-model.patch | |
parent | 4dd78bd36a6331aa7682bb91705c1c34231d2d1a (diff) | |
download | linux-libre-raptor-f713f558e4aaa7eaa8c4cc51e61671dc051ce28e.tar.gz linux-libre-raptor-f713f558e4aaa7eaa8c4cc51e61671dc051ce28e.zip |
2.6.40.8-2.fc15
Diffstat (limited to 'freed-ora/current/f15/be2net-move-to-new-vlan-model.patch')
-rw-r--r-- | freed-ora/current/f15/be2net-move-to-new-vlan-model.patch | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/freed-ora/current/f15/be2net-move-to-new-vlan-model.patch b/freed-ora/current/f15/be2net-move-to-new-vlan-model.patch new file mode 100644 index 000000000..781297144 --- /dev/null +++ b/freed-ora/current/f15/be2net-move-to-new-vlan-model.patch @@ -0,0 +1,107 @@ +From 1447378e3da1b56bb5c7fb1b1bc9b85e061447e7 Mon Sep 17 00:00:00 2001 +From: Ajit Khaparde <ajit.khaparde@emulex.com> +Date: Tue, 12 Jul 2011 22:10:01 -0700 +Subject: [PATCH 1/3] be2net: move to new vlan model + +Signed-off-by: Ajit Khaparde <ajit.khaparde@emulex.com> +Signed-off-by: David S. Miller <davem@davemloft.net> +--- + drivers/net/benet/be.h | 1 - + drivers/net/benet/be_main.c | 34 +++++++++------------------------- + 2 files changed, 9 insertions(+), 26 deletions(-) + +diff --git a/drivers/net/benet/be.h b/drivers/net/benet/be.h +index a7db870..5112000 100644 +--- a/drivers/net/benet/be.h ++++ b/drivers/net/benet/be.h +@@ -332,7 +332,6 @@ struct be_adapter { + u8 eq_next_idx; + struct be_drv_stats drv_stats; + +- struct vlan_group *vlan_grp; + u16 vlans_added; + u16 max_vlans; /* Number of vlans supported */ + u8 vlan_tag[VLAN_N_VID]; +diff --git a/drivers/net/benet/be_main.c b/drivers/net/benet/be_main.c +index a485f7f..146e420 100644 +--- a/drivers/net/benet/be_main.c ++++ b/drivers/net/benet/be_main.c +@@ -648,7 +648,7 @@ static void wrb_fill_hdr(struct be_adapter *adapter, struct be_eth_hdr_wrb *hdr, + AMAP_SET_BITS(struct amap_eth_hdr_wrb, udpcs, hdr, 1); + } + +- if (adapter->vlan_grp && vlan_tx_tag_present(skb)) { ++ if (vlan_tx_tag_present(skb)) { + AMAP_SET_BITS(struct amap_eth_hdr_wrb, vlan, hdr, 1); + vlan_tag = vlan_tx_tag_get(skb); + vlan_prio = (vlan_tag & VLAN_PRIO_MASK) >> VLAN_PRIO_SHIFT; +@@ -842,13 +842,6 @@ static int be_vid_config(struct be_adapter *adapter, bool vf, u32 vf_num) + return status; + } + +-static void be_vlan_register(struct net_device *netdev, struct vlan_group *grp) +-{ +- struct be_adapter *adapter = netdev_priv(netdev); +- +- adapter->vlan_grp = grp; +-} +- + static void be_vlan_add_vid(struct net_device *netdev, u16 vid) + { + struct be_adapter *adapter = netdev_priv(netdev); +@@ -867,7 +860,6 @@ static void be_vlan_rem_vid(struct net_device *netdev, u16 vid) + struct be_adapter *adapter = netdev_priv(netdev); + + adapter->vlans_added--; +- vlan_group_set_device(adapter->vlan_grp, vid, NULL); + + if (!be_physfn(adapter)) + return; +@@ -1196,16 +1188,10 @@ static void be_rx_compl_process(struct be_adapter *adapter, + skb->rxhash = rxcp->rss_hash; + + +- if (unlikely(rxcp->vlanf)) { +- if (!adapter->vlan_grp || adapter->vlans_added == 0) { +- kfree_skb(skb); +- return; +- } +- vlan_hwaccel_receive_skb(skb, adapter->vlan_grp, +- rxcp->vlan_tag); +- } else { +- netif_receive_skb(skb); +- } ++ if (unlikely(rxcp->vlanf)) ++ __vlan_hwaccel_put_tag(skb, rxcp->vlan_tag); ++ ++ netif_receive_skb(skb); + } + + /* Process the RX completion indicated by rxcp when GRO is enabled */ +@@ -1259,11 +1245,10 @@ static void be_rx_compl_process_gro(struct be_adapter *adapter, + if (adapter->netdev->features & NETIF_F_RXHASH) + skb->rxhash = rxcp->rss_hash; + +- if (likely(!rxcp->vlanf)) +- napi_gro_frags(&eq_obj->napi); +- else +- vlan_gro_frags(&eq_obj->napi, adapter->vlan_grp, +- rxcp->vlan_tag); ++ if (unlikely(rxcp->vlanf)) ++ __vlan_hwaccel_put_tag(skb, rxcp->vlan_tag); ++ ++ napi_gro_frags(&eq_obj->napi); + } + + static void be_parse_rx_compl_v1(struct be_adapter *adapter, +@@ -2901,7 +2886,6 @@ static struct net_device_ops be_netdev_ops = { + .ndo_set_mac_address = be_mac_addr_set, + .ndo_change_mtu = be_change_mtu, + .ndo_validate_addr = eth_validate_addr, +- .ndo_vlan_rx_register = be_vlan_register, + .ndo_vlan_rx_add_vid = be_vlan_add_vid, + .ndo_vlan_rx_kill_vid = be_vlan_rem_vid, + .ndo_set_vf_mac = be_set_vf_mac, +-- +1.7.6.4 + |