Message ID | 20180601155843.29724-1-aring@mojatatu.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Hi, On Fri, Jun 01, 2018 at 11:58:43AM -0400, Alexander Aring wrote: > This patch fixes patch add handling to take care tail and headroom for > single 6lowpan frames. We need to be sure we have a skb with the right > head and tailroom for single frames. This patch do it by using > skb_copy_expand(). > > Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=195059 > Signed-off-by: Alexander Aring <aring@mojatatu.com> drop this, I found the bug in IPv6 (I suppose). I will do a proper patch with additional Reported-by tag to David. - Alex -- To unsubscribe from this list: send the line "unsubscribe linux-wpan" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/ieee802154/6lowpan/tx.c b/net/ieee802154/6lowpan/tx.c index e6ff5128e61a..2d74918431e3 100644 --- a/net/ieee802154/6lowpan/tx.c +++ b/net/ieee802154/6lowpan/tx.c @@ -265,7 +265,8 @@ netdev_tx_t lowpan_xmit(struct sk_buff *skb, struct net_device *ldev) /* We must take a copy of the skb before we modify/replace the ipv6 * header as the header could be used elsewhere */ - skb = skb_unshare(skb, GFP_ATOMIC); + skb = skb_copy_expand(skb, ldev->needed_headroom, + ldev->needed_tailroom, GFP_ATOMIC); if (!skb) return NET_XMIT_DROP;
This patch fixes patch add handling to take care tail and headroom for single 6lowpan frames. We need to be sure we have a skb with the right head and tailroom for single frames. This patch do it by using skb_copy_expand(). Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=195059 Signed-off-by: Alexander Aring <aring@mojatatu.com> --- I hope the refcounting doesn't change here... anyway it also copy skb. Anyway, it fix something... we can think about perfomance later. Also I thought the upper layer would allocate the right needed_headroom and needed_tailroom for me, so I don't need to realloc in transmit. Maybe this is a bigger issue in the upper layer? I am pretty sure these extra bytes should be allocated when skb is created according the net_device which ndo_xmit() will be called from. I will ask this question to netdev mailinglist..., if no answer then simple apply this patch @stefan. (If it's looking okay for you). net/ieee802154/6lowpan/tx.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)