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
