[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20140204.203203.1380460749447396879.davem@davemloft.net>
Date: Tue, 04 Feb 2014 20:32:03 -0800 (PST)
From: David Miller <davem@...emloft.net>
To: alex.aring@...il.com
Cc: alex.bluesman.smirnov@...il.com, dbaryshkov@...il.com,
linux-zigbee-devel@...ts.sourceforge.net, netdev@...r.kernel.org
Subject: Re: [PATCH net] 6lowpan: add missing fragment list spinlock
From: Alexander Aring <alex.aring@...il.com>
Date: Tue, 4 Feb 2014 11:57:53 +0100
> @@ -197,7 +197,9 @@ static void lowpan_fragment_timer_expired(unsigned long entry_addr)
>
> pr_debug("timer expired for frame with tag %d\n", entry->tag);
>
> + spin_lock_bh(&flist_lock);
> list_del(&entry->list);
> + spin_unlock_bh(&flist_lock);
> dev_kfree_skb(entry->skb);
> kfree(entry);
> }
This will deadlock, because the other code path holding flist_lock calls
del_timer_sync() to wait for this timer to return.
The synchornization in this code is really a big mess.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists