From b2e2e6f34b8921b542af9e3daa260805fe626f68 Mon Sep 17 00:00:00 2001 From: Steve Wise Date: Tue, 2 Sep 2014 11:11:05 -0500 Subject: [PATCH] cxgb4: GRO busted in sles/rhel backports. Here is another VLAN backport bug, but with the GRO path. Signed-off-by: Steve Wise --- patches/0035-cxgb4-grofix.patch | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 patches/0035-cxgb4-grofix.patch diff --git a/patches/0035-cxgb4-grofix.patch b/patches/0035-cxgb4-grofix.patch new file mode 100644 index 0000000..576b437 --- /dev/null +++ b/patches/0035-cxgb4-grofix.patch @@ -0,0 +1,32 @@ +--- compat-rdma/drivers/net/ethernet/chelsio/cxgb4/sge.c 2014-09-02 11:34:02.000000000 -0500 ++++ compat-rdma.new/drivers/net/ethernet/chelsio/cxgb4/sge.c 2014-09-02 11:33:13.000000000 -0500 +@@ -1718,19 +1718,26 @@ static void do_gro(struct sge_eth_rxq *r + + if (unlikely(pkt->vlan_ex)) { + #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 1, 0) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0) + __vlan_hwaccel_put_tag(skb, htons(ETH_P_8021Q), ntohs(pkt->vlan)); + #else ++ __vlan_hwaccel_put_tag(skb, ntohs(pkt->vlan)); ++#endif ++ rxq->stats.vlan_ex++; ++#else + struct port_info *pi = netdev_priv(rxq->rspq.netdev); + struct vlan_group *grp = pi->vlan_grp; + +- if (likely(grp)) ++ rxq->stats.vlan_ex++; ++ if (likely(grp)) { + ret = vlan_gro_frags(&rxq->rspq.napi, grp, + be16_to_cpu(pkt->vlan)); ++ goto stats; ++ } + #endif +- rxq->stats.vlan_ex++; + } + ret = napi_gro_frags(&rxq->rspq.napi); +- if (ret == GRO_HELD) ++stats: if (ret == GRO_HELD) + rxq->stats.lro_pkts++; + else if (ret == GRO_MERGED || ret == GRO_MERGED_FREE) + rxq->stats.lro_merged++; -- 2.41.0