softirqs are invoked while bottom halves are masked

Thomas De Schampheleire patrickdepinguin+linuxppc at
Wed Jul 13 17:20:47 EST 2011

On Tue, Jul 12, 2011 at 2:13 PM, David Miller <davem at> wrote:
> From: David Miller <davem at>
> Date: Tue, 12 Jul 2011 05:08:17 -0700 (PDT)
>> From: Ronny Meeus <ronny.meeus at>
>> Date: Tue, 12 Jul 2011 14:03:04 +0200
>>> but we still see the issue "BUG: sleeping function called from invalid context":
>>> [   91.015989] BUG: sleeping function called from invalid context at
>>> include/linux/skbuff.h:786
>>> [   91.117096] in_atomic(): 1, irqs_disabled(): 0, pid: 1865, name: NMTX_T1842
>>> [   91.200461] Call Trace:
>>> [   91.229672] [ec58bbd0] [c000789c] show_stack+0x78/0x18c (unreliable)
>>> [   91.305791] [ec58bc10] [c0022900] __might_sleep+0x100/0x118
>>> [   91.372524] [ec58bc20] [c029f8d8] dpa_tx+0x128/0x758
>> Because this dpa driver's transmit method is doing something else that
>> is not allowed in software interrupt context.
>> You must remove all things that might sleep in this driver's
>> ->ndo_start_xmit method, and I do mean everything.
> Also this whole HW QOS feature bit facility is beyond bogus.
> What if the user enables a qdisc that the hardware can't handle, or a
> configuration of a hw supported qdisc that the hardware can't support?
> What if I have packet classification and packet actions enabled in the
> packet scheduler?
> These changes are terrible, and we really need you guys to sort out
> your problems with these changes yoursleves because your wounds are
> entirely self-inflicted and totally not our problem.

Of course, you make very valid points.

I just want to mention that, although you seem to think that we
shouldn't have created this thread in the first place, your and Eric's
remarks have actually helped us in identifying the problem and
increasing our understanding.

So, thanks for that.


More information about the Linuxppc-dev mailing list