On Tue, 2014-06-10 at 17:08 +0200, Phoebe Buckheister wrote:
> Only one WPAN devices can be active at any given time, so only deliver
> packets to that one interface that is actually up.
> 
> Signed-off-by: Phoebe Buckheister <phoebe.buckheis...@itwm.fraunhofer.de>
> ---
>  net/mac802154/wpan.c |   12 +++++++-----
>  1 file changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/net/mac802154/wpan.c b/net/mac802154/wpan.c
> index c8cfd54..1ba648e 100644
> --- a/net/mac802154/wpan.c
> +++ b/net/mac802154/wpan.c
> @@ -567,7 +567,6 @@ static int mac802154_parse_frame_start(struct sk_buff 
> *skb,
>  void mac802154_wpans_rx(struct mac802154_priv *priv, struct sk_buff *skb)
>  {
>       int ret;
> -     struct sk_buff *sskb;
>       struct mac802154_sub_if_data *sdata;
>       struct ieee802154_hdr hdr;
>  
> @@ -579,12 +578,15 @@ void mac802154_wpans_rx(struct mac802154_priv *priv, 
> struct sk_buff *skb)
>  
>       rcu_read_lock();
>       list_for_each_entry_rcu(sdata, &priv->slaves, list) {
> -             if (sdata->type != IEEE802154_DEV_WPAN)
> +             if (sdata->type != IEEE802154_DEV_WPAN ||
> +                 !netif_running(sdata->dev))
>                       continue;
>  
> -             sskb = skb_clone(skb, GFP_ATOMIC);
> -             if (sskb)
> -                     mac802154_subif_frame(sdata, sskb, &hdr);
> +             skb = skb_clone(skb, GFP_ATOMIC);
> +             if (skb)
> +                     mac802154_subif_frame(sdata, skb, &hdr);
> +
> +             break;
>       }
>       rcu_read_unlock();
>  }

If this is really the case, do not clone the skb, and fix
mac802154_subif_rx().

(mac802154_wpans_rx() would always consume the skb)



------------------------------------------------------------------------------
HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
Find What Matters Most in Your Big Data with HPCC Systems
Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
Leverages Graph Analysis for Fast Processing & Easy Data Exploration
http://p.sf.net/sfu/hpccsystems
_______________________________________________
Linux-zigbee-devel mailing list
Linux-zigbee-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-zigbee-devel

Reply via email to