Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9fea0330 authored by Jiri Pirko's avatar Jiri Pirko Committed by David S. Miller
Browse files

lro: do vlan cleanup



- remove useless vlan parameters and pointers

Signed-off-by: default avatarJiri Pirko <jpirko@redhat.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 0f725728
Loading
Loading
Loading
Loading
+0 −2
Original line number Original line Diff line number Diff line
@@ -50,7 +50,6 @@ struct net_lro_desc {
	struct skb_frag_struct *next_frag;
	struct skb_frag_struct *next_frag;
	struct iphdr *iph;
	struct iphdr *iph;
	struct tcphdr *tcph;
	struct tcphdr *tcph;
	struct vlan_group *vgrp;
	__wsum  data_csum;
	__wsum  data_csum;
	__be32 tcp_rcv_tsecr;
	__be32 tcp_rcv_tsecr;
	__be32 tcp_rcv_tsval;
	__be32 tcp_rcv_tsval;
@@ -60,7 +59,6 @@ struct net_lro_desc {
	u16 ip_tot_len;
	u16 ip_tot_len;
	u16 tcp_saw_tstamp; 		/* timestamps enabled */
	u16 tcp_saw_tstamp; 		/* timestamps enabled */
	__be16 tcp_window;
	__be16 tcp_window;
	u16 vlan_tag;
	int pkt_aggr_cnt;		/* counts aggregated packets */
	int pkt_aggr_cnt;		/* counts aggregated packets */
	int vlan_packet;
	int vlan_packet;
	int mss;
	int mss;
+11 −28
Original line number Original line Diff line number Diff line
@@ -146,8 +146,7 @@ static __wsum lro_tcp_data_csum(struct iphdr *iph, struct tcphdr *tcph, int len)
}
}


static void lro_init_desc(struct net_lro_desc *lro_desc, struct sk_buff *skb,
static void lro_init_desc(struct net_lro_desc *lro_desc, struct sk_buff *skb,
			  struct iphdr *iph, struct tcphdr *tcph,
			  struct iphdr *iph, struct tcphdr *tcph)
			  u16 vlan_tag, struct vlan_group *vgrp)
{
{
	int nr_frags;
	int nr_frags;
	__be32 *ptr;
	__be32 *ptr;
@@ -173,8 +172,6 @@ static void lro_init_desc(struct net_lro_desc *lro_desc, struct sk_buff *skb,
	}
	}


	lro_desc->mss = tcp_data_len;
	lro_desc->mss = tcp_data_len;
	lro_desc->vgrp = vgrp;
	lro_desc->vlan_tag = vlan_tag;
	lro_desc->active = 1;
	lro_desc->active = 1;


	lro_desc->data_csum = lro_tcp_data_csum(iph, tcph,
	lro_desc->data_csum = lro_tcp_data_csum(iph, tcph,
@@ -309,29 +306,17 @@ static void lro_flush(struct net_lro_mgr *lro_mgr,


	skb_shinfo(lro_desc->parent)->gso_size = lro_desc->mss;
	skb_shinfo(lro_desc->parent)->gso_size = lro_desc->mss;


	if (lro_desc->vgrp) {
		if (lro_mgr->features & LRO_F_NAPI)
			vlan_hwaccel_receive_skb(lro_desc->parent,
						 lro_desc->vgrp,
						 lro_desc->vlan_tag);
		else
			vlan_hwaccel_rx(lro_desc->parent,
					lro_desc->vgrp,
					lro_desc->vlan_tag);

	} else {
	if (lro_mgr->features & LRO_F_NAPI)
	if (lro_mgr->features & LRO_F_NAPI)
		netif_receive_skb(lro_desc->parent);
		netif_receive_skb(lro_desc->parent);
	else
	else
		netif_rx(lro_desc->parent);
		netif_rx(lro_desc->parent);
	}


	LRO_INC_STATS(lro_mgr, flushed);
	LRO_INC_STATS(lro_mgr, flushed);
	lro_clear_desc(lro_desc);
	lro_clear_desc(lro_desc);
}
}


static int __lro_proc_skb(struct net_lro_mgr *lro_mgr, struct sk_buff *skb,
static int __lro_proc_skb(struct net_lro_mgr *lro_mgr, struct sk_buff *skb,
			  struct vlan_group *vgrp, u16 vlan_tag, void *priv)
			  void *priv)
{
{
	struct net_lro_desc *lro_desc;
	struct net_lro_desc *lro_desc;
	struct iphdr *iph;
	struct iphdr *iph;
@@ -360,7 +345,7 @@ static int __lro_proc_skb(struct net_lro_mgr *lro_mgr, struct sk_buff *skb,
			goto out;
			goto out;


		skb->ip_summed = lro_mgr->ip_summed_aggr;
		skb->ip_summed = lro_mgr->ip_summed_aggr;
		lro_init_desc(lro_desc, skb, iph, tcph, vlan_tag, vgrp);
		lro_init_desc(lro_desc, skb, iph, tcph);
		LRO_INC_STATS(lro_mgr, aggregated);
		LRO_INC_STATS(lro_mgr, aggregated);
		return 0;
		return 0;
	}
	}
@@ -433,8 +418,7 @@ static struct sk_buff *lro_gen_skb(struct net_lro_mgr *lro_mgr,
static struct sk_buff *__lro_proc_segment(struct net_lro_mgr *lro_mgr,
static struct sk_buff *__lro_proc_segment(struct net_lro_mgr *lro_mgr,
					  struct skb_frag_struct *frags,
					  struct skb_frag_struct *frags,
					  int len, int true_size,
					  int len, int true_size,
					  struct vlan_group *vgrp,
					  void *priv, __wsum sum)
					  u16 vlan_tag, void *priv, __wsum sum)
{
{
	struct net_lro_desc *lro_desc;
	struct net_lro_desc *lro_desc;
	struct iphdr *iph;
	struct iphdr *iph;
@@ -480,7 +464,7 @@ static struct sk_buff *__lro_proc_segment(struct net_lro_mgr *lro_mgr,
		tcph = (void *)((u8 *)skb->data + vlan_hdr_len
		tcph = (void *)((u8 *)skb->data + vlan_hdr_len
				+ IP_HDR_LEN(iph));
				+ IP_HDR_LEN(iph));


		lro_init_desc(lro_desc, skb, iph, tcph, 0, NULL);
		lro_init_desc(lro_desc, skb, iph, tcph);
		LRO_INC_STATS(lro_mgr, aggregated);
		LRO_INC_STATS(lro_mgr, aggregated);
		return NULL;
		return NULL;
	}
	}
@@ -514,7 +498,7 @@ void lro_receive_skb(struct net_lro_mgr *lro_mgr,
		     struct sk_buff *skb,
		     struct sk_buff *skb,
		     void *priv)
		     void *priv)
{
{
	if (__lro_proc_skb(lro_mgr, skb, NULL, 0, priv)) {
	if (__lro_proc_skb(lro_mgr, skb, priv)) {
		if (lro_mgr->features & LRO_F_NAPI)
		if (lro_mgr->features & LRO_F_NAPI)
			netif_receive_skb(skb);
			netif_receive_skb(skb);
		else
		else
@@ -529,8 +513,7 @@ void lro_receive_frags(struct net_lro_mgr *lro_mgr,
{
{
	struct sk_buff *skb;
	struct sk_buff *skb;


	skb = __lro_proc_segment(lro_mgr, frags, len, true_size, NULL, 0,
	skb = __lro_proc_segment(lro_mgr, frags, len, true_size, priv, sum);
				 priv, sum);
	if (!skb)
	if (!skb)
		return;
		return;