[atari regression] handle_irq_event_percpu() incorrectly blames nfeth_interrupt() for enabling interrupts

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is with an emulated atari running in aranym-0.9.11 on an x86_64 host,
using the natfeat (para-virtualized) nfeth and nfblock drivers.

Previously it ran a 2.6.38 kernel (with addon m68k and natfeat patches)
for almost a year without issue.  Today I upgraded it to the 3.4-rc3
kernel and got the following kernel warning:

WARNING: at kernel/irq/handle.c:146 handle_irq_event_percpu+0x134/0x142()
irq 3 handler nfeth_interrupt+0x0/0x194 enabled interrupts
Modules linked in:
Call Trace: [<000299b2>] warn_slowpath_common+0x48/0x6a
 [<000299c0>] warn_slowpath_common+0x56/0x6a
 [<00029a4c>] warn_slowpath_fmt+0x2a/0x32
 [<0005b34c>] handle_irq_event_percpu+0x134/0x142
 [<0005b34c>] handle_irq_event_percpu+0x134/0x142
 [<0000a584>] nfeth_interrupt+0x0/0x194
 [<001ba0a8>] schedule_preempt_disabled+0x0/0xc
 [<0005b37a>] handle_irq_event+0x20/0x2c
 [<0005add4>] generic_handle_irq+0x2c/0x3a
 [<00002ab6>] do_IRQ+0x20/0x32
 [<0000289e>] auto_irqhandler_fixup+0x4/0x6
 [<00003144>] cpu_idle+0x22/0x2e
 [<001b8a78>] printk+0x0/0x18
 [<0024d112>] start_kernel+0x37a/0x386
 [<0003021d>] __do_proc_dointvec+0xb1/0x366
 [<0003021d>] __do_proc_dointvec+0xb1/0x366
 [<0024c31e>] _sinittext+0x31e/0x9c0

This always occurs exactly once, on the very first network packet sent
to the emulated machine.  The same once-only warning also occurs with
the 3.3.2 and 3.2.15 kernels, but not with the 3.1.10 kernel.

I inspected nfeth_interrupt() but couldn't find anything there that
would enable interrupts as handle_irq_event_percpu() claims it did,
so I added some runtime checks which showed that !irqs_disabled() is
true already on entry to handle_irq_event_percpu(), well before
nfeth_interrupt() is called.

Given the timeline and the fact that nfeth didn't change between 3.1
and 3.2, I suspect a bug in last fall's genirq conversion.
--
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux