[patch 1/3 -next] 6LoWPAN: use kfree_skb() instead of kfree()
Subsystems:
ieee 802.15.4 subsystem , networking [general] , the rest
STALE5526d
5 messages,
3 authors,
2011-09-01 · open the first message on its own page
Use kfree_skb() to free sbk_buffs.
Signed-off-by: Dan Carpenter <redacted>
diff --git a/net/ieee802154/6lowpan.c b/net/ieee802154/6lowpan.c
index cf304cc..8a9dbaa 100644
--- a/net/ieee802154/6lowpan.c
+++ b/net/ieee802154/6lowpan.c @@ -674,7 +674,7 @@ lowpan_process_data(struct sk_buff *skb)
sizeof ( hdr ));
return lowpan_skb_deliver ( skb , & hdr );
drop :
- kfree ( skb );
+ kfree_skb ( skb );
return - EINVAL ;
}
Le mardi 30 août 2011 à 16:45 +0300, Dan Carpenter a écrit : quoted hunk Use kfree_skb() to free sbk_buffs.
Signed-off-by: Dan Carpenter <redacted>
diff --git a/net/ieee802154/6lowpan.c b/net/ieee802154/6lowpan.c
index cf304cc..8a9dbaa 100644
--- a/net/ieee802154/6lowpan.c
+++ b/net/ieee802154/6lowpan.c @@ -674,7 +674,7 @@ lowpan_process_data(struct sk_buff *skb)
sizeof ( hdr ));
return lowpan_skb_deliver ( skb , & hdr );
drop :
- kfree ( skb );
+ kfree_skb ( skb );
return - EINVAL ;
}
Another bug is the skb_copy() done in lowpan_skb_deliver()
1) No check of skb_copy() return
2.1) Use of GFP_KERNEL : Is it safe at this point ? Aren’t we in
softirq ?
2.2) If GFP_KERNEL is safe, why do we later do :
if (in_interrupt())
stat = netif_rx(skb);
else
stat = netif_rx_ni(skb);
Hi Dan, Eric,
thank you a lot for the finds, that were my faults.
With best regards,
Alexander
2011/8/30 Eric Dumazet [off-list ref]: Le mardi 30 août 2011 à 16:45 +0300, Dan Carpenter a écrit : quoted Use kfree_skb() to free sbk_buffs.
Signed-off-by: Dan Carpenter <redacted>
diff --git a/net/ieee802154/6lowpan.c b/net/ieee802154/6lowpan.c
index cf304cc..8a9dbaa 100644
--- a/net/ieee802154/6lowpan.c
+++ b/net/ieee802154/6lowpan.c @@ -674,7 +674,7 @@ lowpan_process_data(struct sk_buff *skb) sizeof(hdr));
return lowpan_skb_deliver(skb, &hdr);
drop:
- kfree(skb);
+ kfree_skb(skb);
return -EINVAL;
}
Another bug is the skb_copy() done in lowpan_skb_deliver()
1) No check of skb_copy() return
2.1) Use of GFP_KERNEL : Is it safe at this point ? Aren’t we in
softirq ?
2.2) If GFP_KERNEL is safe, why do we later do :
if (in_interrupt())
stat = netif_rx(skb);
else
stat = netif_rx_ni(skb);
On Thu, Sep 01, 2011 at 01:26:02PM +0400, Alexander Smirnov wrote: Hi Dan, Eric,
thank you a lot for the finds, that were my faults.
So uh... You're going to send a patch to fix the things Eric
mentioned, right?
regards,
dan carpenter
On Thu, Sep 01, 2011 at 06:04:25PM +0300, Dan Carpenter wrote: On Thu, Sep 01, 2011 at 01:26:02PM +0400, Alexander Smirnov wrote: quoted Hi Dan, Eric,
thank you a lot for the finds, that were my faults.
So uh... You're going to send a patch to fix the things Eric
mentioned, right?
Ah. You did already. I see that now. Sorry for the noise.
regards,
dan carpenter