From: Alexander Aring <alex.ar...@gmail.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. ------------------------------------------------------------------------------ Managing the Performance of Cloud-Based Applications Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. Read the Whitepaper. http://pubads.g.doubleclick.net/gampad/clk?id=121051231&iu=/4140/ostg.clktrk _______________________________________________ Linux-zigbee-devel mailing list Linux-zigbee-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-zigbee-devel