Re: Problem with dev_kfree_skb_any() in 2.6.0
From: David S. Miller <hidden>
Date: 2004-03-29 15:46:16
On Thu, 1 Jan 2004 21:58:07 -0500 Jeff Garzik [off-list ref] wrote:
On Thu, Jan 01, 2004 at 12:42:18PM -0800, David S. Miller wrote:quoted
Though, is there any particular reason you don't like adding a "|| irqs_disabled()" check to the if statement instead? I prefer that solution better actually.Yep, in fact when I wrote the above message, I came across a couple when I was pondering... * the destructor runs in a more predictable context. * given the problem that started this thread, the 'if' test is a potentially problematic area. Why not eliminate all possibility that this problem will occur again?
The way I see this, dev_kfree_skb_any() is not used in any performance critical path, so at worst during device shutdown, reset, or power-down, TX queue packet freeing work could be delayed by up to one jiffie. Therefore I've put the "|| irqs_disabled()" version of the fix into my tree. Thanks for working this out with me Jeff :)