On Tuesday 05 September 2006 15:18, Larry Finger wrote:
> Emanuele Giaquinta wrote:
> > 
> > Raising BADNESS_LIMIT to 20 bcm43xx_voluntary_preempt produces a lot of
> > 
> > bcm43xx: ASSERTION FAILED (!in_atomic() && !in_irq() && !in_interrupt()
> > && !irqs_disabled()) at:
> > drivers/net/wireless/bcm43xx/bcm43xx_phy.c:88:bcm43xx_voluntary_preempt()
> 
> I do not understand this assertion failure. I'm currently running with 
> BADNESS_LIMIT at 20 and I 
> have not seen any of these. In addition, my interface has been up 
> continuously for more than 14 
> hours, whereas with BADNESS_LIMIT at 4, the longest up time was less than 6 
> hours.
> 
> Michael - Any suggestions?

Simple: increasing badness limit makes the whole periodic work
non-preemptible. And we all know what happens if we call
schedule() in non-preemptible code (we hold the IRQ spinlock).

This assert() was added to prevent incorrect BADNESS_LIMIT tunings ;)

-- 
Greetings Michael.
_______________________________________________
Bcm43xx-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev

Reply via email to