Messages in this thread | | | Date | Wed, 23 Nov 2011 00:16:48 +0100 | Subject | Re: softirq oops from b44_poll | From | Xander Hover <> |
| |
Indeed will the in_irq() test will force dev_kfree_skb_any() to call dev_kfree_skb_irq(). The kernel warning before this patch was applied, was also trigged by a WARN_ON_ONCE(in_irq()). I think David is right on this one.
On Tue, Nov 22, 2011 at 9:54 PM, David Miller <davem@davemloft.net> wrote: > From: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com> > Date: Mon, 21 Nov 2011 15:17:33 -0800 > >> I suspect the "right" way to fix this is to call dev_kfree_skb_any(skb); >> instead, since that will handle the in-interrupt case if that's where >> we're stuck. > > Caller is always b44_poll(), and that caller always does spin_lock_irqsave(). > > Adding the extra tests implied by dev_kfree_skb_any() therefore doesn't > make any sense, as it will always evaluate to dev_kfree_skb_irq(). >
| |