[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20091013.151202.207066823.davem@davemloft.net>
Date: Tue, 13 Oct 2009 15:12:02 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: Joyce.Yu@....COM
Cc: netdev@...r.kernel.org
Subject: Re: [PATCH] [NIU] VLAN does not work with niu driver
From: Joyce Yu <Joyce.Yu@....COM>
Date: Tue, 13 Oct 2009 14:27:27 -0700
> @@ -3545,7 +3546,15 @@ static int niu_process_rx_pkt(struct napi_struct *napi, struct niu *np,
> rp->rcr_index = index;
>
> skb_reserve(skb, NET_IP_ALIGN);
> - __pskb_pull_tail(skb, min(len, NIU_RXPULL_MAX));
> + __pskb_pull_tail(skb, min(len, VLAN_ETH_HLEN));
> +
> + veth = (struct vlan_ethhdr *)skb->data;
> + if (veth->h_vlan_proto != __constant_htons(ETH_P_8021Q)) {
> + skb->tail -= 4;
> + skb->data_len += 4;
> + skb_shinfo(skb)->frags[0].page_offset -= 4;
> + skb_shinfo(skb)->frags[0].size += 4;
> + }
So you guys spent an enormous amount of time trying to figure out
why just a plain '__pskb_pull_tail(skb, min(len, VLAN_ETH_HLEN));'
doesn't work.
Don't you think the full details of your discovery might be relevant
either in the commit message or a comment?
Otherwise, how is anyone else in the world going to figure out why you
had to do these frag list adjustments?
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists