On Wed, 2012-08-29 at 22:39 -0400, Alan Ott wrote:
> Since lowpan_process_data() modifies the skb (by calling skb_pull()), we
> need our own copy so that it doesn't affect the data received by other
> protcols (in this case, af_ieee802154).
> 
> Signed-off-by: Alan Ott <a...@signal11.us>
> ---
>  net/ieee802154/6lowpan.c |    9 ++++++++-
>  1 files changed, 8 insertions(+), 1 deletions(-)
> 
> diff --git a/net/ieee802154/6lowpan.c b/net/ieee802154/6lowpan.c
> index 6a09522..ce33b02 100644
> --- a/net/ieee802154/6lowpan.c
> +++ b/net/ieee802154/6lowpan.c
> @@ -1133,6 +1133,8 @@ static int lowpan_validate(struct nlattr *tb[], struct 
> nlattr *data[])
>  static int lowpan_rcv(struct sk_buff *skb, struct net_device *dev,
>       struct packet_type *pt, struct net_device *orig_dev)
>  {
> +     struct sk_buff *local_skb;
> +
>       if (!netif_running(dev))
>               goto drop;
>  
> @@ -1144,7 +1146,12 @@ static int lowpan_rcv(struct sk_buff *skb, struct 
> net_device *dev,
>       case LOWPAN_DISPATCH_IPHC:      /* ipv6 datagram */
>       case LOWPAN_DISPATCH_FRAG1:     /* first fragment header */
>       case LOWPAN_DISPATCH_FRAGN:     /* next fragments headers */
> -             lowpan_process_data(skb);
> +             local_skb = skb_copy(skb, GFP_ATOMIC);
> +             if (!local_skb)
> +                     goto drop;
> +             lowpan_process_data(local_skb);
> +
> +             kfree_skb(skb);
>               break;
>       default:
>               break;

Its not clear to me why skb_copy() is needed here.

>From patch description, I would say skb_clone() would be enough (and
faster) ?



------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Linux-zigbee-devel mailing list
Linux-zigbee-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-zigbee-devel

Reply via email to