]> git.baikalelectronics.ru Git - kernel.git/commit
ehea: only register irq after setting up ports
authorThadeu Lima de Souza Cascardo <cascardo@linux.vnet.ibm.com>
Mon, 23 Apr 2012 03:46:29 +0000 (03:46 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 24 Apr 2012 04:36:35 +0000 (00:36 -0400)
commite8d2e50d53c6ea3c95269a92085f472804a2c0d7
tree4b59c59c062e3401d7cc33e93fca8c09d8251b14
parentb702c2d4590ffff006f8c809b44f0de145a8cdb5
ehea: only register irq after setting up ports

If we receive an interrupt too early before we set up ports in the probe
function, there won't be any port ready to handle it.

Only registering the irq after the ports are setup fixes the problem,
and works fine without losing any interrupts.

This causes crashes in some situations:

[c000000f7ff7fd60d000000008e223f0 .ehea_neq_tasklet+0x78/0x148 [ehea]
[c000000f7ff7fe00c0000000000b6cac .tasklet_hi_action+0xdc/0x210
[c000000f7ff7fea0c0000000000b7cc8 .__do_softirq+0x178/0x300
[c000000f7ff7ff90c000000000022694 .call_do_softirq+0x14/0x24
[c000000f68ee7900c000000000010e04 .do_softirq+0xec/0x110
[c000000f68ee79a0c0000000000b789c .irq_exit+0xac/0xe0
[c000000f68ee7a20c0000000000110bc .do_IRQ+0x114/0x2a8
[c000000f68ee7ae0c00000000000553c hardware_interrupt_entry+0x18/0x1c

Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ibm/ehea/ehea_main.c