Skip to content

Commit

Permalink
6lowpan: clean up fragments list if module unloaded
Browse files Browse the repository at this point in the history
Clean all the pending fragments and relative timers if 6lowpan link
is going to be deleted.

Signed-off-by: Alexander Smirnov <alex.bluesman.smirnov@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
alex.bluesman.smirnov@gmail.com authored and David S. Miller committed Apr 26, 2012
1 parent 0848e40 commit 8deff4a
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions net/ieee802154/6lowpan.c
Original file line number Diff line number Diff line change
Expand Up @@ -1177,11 +1177,20 @@ static void lowpan_dellink(struct net_device *dev, struct list_head *head)
{
struct lowpan_dev_info *lowpan_dev = lowpan_dev_info(dev);
struct net_device *real_dev = lowpan_dev->real_dev;
struct lowpan_dev_record *entry;
struct lowpan_dev_record *tmp;
struct lowpan_dev_record *entry, *tmp;
struct lowpan_fragment *frame, *tframe;

ASSERT_RTNL();

spin_lock(&flist_lock);
list_for_each_entry_safe(frame, tframe, &lowpan_fragments, list) {
del_timer(&frame->timer);
list_del(&frame->list);
dev_kfree_skb(frame->skb);
kfree(frame);
}
spin_unlock(&flist_lock);

mutex_lock(&lowpan_dev_info(dev)->dev_list_mtx);
list_for_each_entry_safe(entry, tmp, &lowpan_devices, list) {
if (entry->ldev == dev) {
Expand Down

0 comments on commit 8deff4a

Please sign in to comment.