Ingo Molnar
b57bd06655
[PATCH] net, 8139too.c: fix netpoll deadlock
fix deadlock in the 8139too driver: poll handlers should never forcibly
enable local interrupts, because they might be used by netpoll/printk
from IRQ context.
=================================
[ INFO: inconsistent lock state ]
2.6.19 #11
---------------------------------
inconsistent {softirq-on-W} -> {in-softirq-W} usage.
swapper/1 [HC0[0]:SC1[1]:HE1:SE0] takes:
(&npinfo->poll_lock){-+..}, at: [<c0350a41>] net_rx_action+0x64/0x1de
{softirq-on-W} state was registered at:
[<c0134c86>] mark_lock+0x5b/0x39c
[<c0135012>] mark_held_locks+0x4b/0x68
[<c01351e9>] trace_hardirqs_on+0x115/0x139
[<c02879e6>] rtl8139_poll+0x3d7/0x3f4
[<c035c85d>] netpoll_poll+0x82/0x32f
[<c035c775>] netpoll_send_skb+0xc9/0x12f
[<c035cdcc>] netpoll_send_udp+0x253/0x25b
[<c0288463>] write_msg+0x40/0x65
[<c011cead>] __call_console_drivers+0x45/0x51
[<c011cf16>] _call_console_drivers+0x5d/0x61
[<c011d4fb>] release_console_sem+0x11f/0x1d8
[<c011d7d7>] register_console+0x1ac/0x1b3
[<c02883f8>] init_netconsole+0x55/0x67
[<c010040c>] init+0x9a/0x24e
[<c01049cf>] kernel_thread_helper+0x7/0x10
[<ffffffff>] 0xffffffff
irq event stamp: 819992
hardirqs last enabled at (819992): [<c0350a16>] net_rx_action+0x39/0x1de
hardirqs last disabled at (819991): [<c0350b1e>] net_rx_action+0x141/0x1de
softirqs last enabled at (817552): [<c01214e4>] __do_softirq+0xa3/0xa8
softirqs last disabled at (819987): [<c0106051>] do_softirq+0x5b/0xc9
other info that might help us debug this:
no locks held by swapper/1.
stack backtrace:
[<c0104d88>] dump_trace+0x63/0x1e8
[<c0104f26>] show_trace_log_lvl+0x19/0x2e
[<c010532d>] show_trace+0x12/0x14
[<c0105343>] dump_stack+0x14/0x16
[<c0134980>] print_usage_bug+0x23c/0x246
[<c0134d33>] mark_lock+0x108/0x39c
[<c01356a7>] __lock_acquire+0x361/0x9ed
[<c0136018>] lock_acquire+0x56/0x72
[<c03aff1f>] _spin_lock+0x35/0x42
[<c0350a41>] net_rx_action+0x64/0x1de
[<c0121493>] __do_softirq+0x52/0xa8
[<c0106051>] do_softirq+0x5b/0xc9
[<c0121338>] irq_exit+0x3c/0x48
[<c0106163>] do_IRQ+0xa4/0xbd
[<c01047c6>] common_interrupt+0x2e/0x34
[<c011db92>] vprintk+0x2c0/0x309
[<c011dbf6>] printk+0x1b/0x1d
[<c01003f2>] init+0x80/0x24e
[<c01049cf>] kernel_thread_helper+0x7/0x10
=======================
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Acked-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-12-12 08:10:44 -08:00
..
2006-12-04 16:07:19 -05:00
2006-11-10 11:08:53 -05:00
2006-12-07 04:58:32 -05:00
2006-12-04 18:36:02 -05:00
2006-12-11 09:51:07 -05:00
2006-11-10 11:08:53 -05:00
2006-12-05 14:37:56 +00:00
2006-12-05 17:01:28 +00:00
2006-10-05 15:10:12 +01:00
2006-12-02 00:33:11 -05:00
2006-12-11 14:35:01 -08:00
2006-12-04 16:08:31 +11:00
2006-12-08 08:28:57 -08:00
2006-12-05 14:37:56 +00:00
2006-10-05 15:10:12 +01:00
2006-12-11 09:54:07 -05:00
2006-12-07 06:30:07 -05:00
2006-12-06 15:01:18 +00:00
2006-12-07 09:28:19 -08:00
2006-12-04 18:36:03 -05:00
2006-10-06 14:56:04 -04:00
2006-12-07 04:57:19 -05:00
2006-12-05 17:01:28 +00:00
2006-12-11 14:34:34 -08:00
2006-12-08 08:28:56 -08:00
2006-10-05 15:10:12 +01:00
2006-12-04 16:07:19 -05:00
2006-10-05 15:10:12 +01:00
2006-12-04 16:07:19 -05:00
2006-09-13 13:24:59 -04:00
2006-12-04 16:07:19 -05:00
2006-09-13 13:24:59 -04:00
2006-12-04 16:07:19 -05:00
2006-10-06 14:56:04 -04:00
2006-10-05 15:10:12 +01:00
2006-12-04 16:07:19 -05:00
2006-09-13 13:24:59 -04:00
2006-12-04 16:07:19 -05:00
2006-09-13 13:24:59 -04:00
2006-12-09 09:41:18 -08:00
2006-09-13 13:24:59 -04:00
2006-10-05 15:10:12 +01:00
2006-12-12 08:10:44 -08:00
2006-12-02 00:11:56 -05:00
2006-12-02 00:11:56 -05:00
2006-10-05 15:10:12 +01:00
2006-10-05 15:10:12 +01:00
2006-09-13 13:24:59 -04:00
2006-12-04 16:07:19 -05:00
2006-09-13 13:24:59 -04:00
2006-10-05 15:10:12 +01:00
2006-10-05 15:10:12 +01:00
2006-12-02 00:22:30 -05:00
2006-12-02 00:22:30 -05:00
2006-12-09 09:41:18 -08:00
2006-10-05 15:10:12 +01:00
2006-12-04 16:07:19 -05:00
2006-10-05 15:10:12 +01:00
2006-10-05 15:10:12 +01:00
2006-12-04 16:07:19 -05:00
2006-10-06 14:56:04 -04:00
2006-12-02 00:33:11 -05:00
2006-09-13 13:24:59 -04:00
2006-11-07 04:27:51 -05:00
2006-10-05 15:10:12 +01:00
2006-09-13 13:24:59 -04:00
2006-12-02 21:24:31 -08:00
2006-12-02 21:24:22 -08:00
2006-12-08 17:19:22 -08:00
2006-12-02 21:24:25 -08:00
2006-09-13 13:24:59 -04:00
2006-12-05 14:37:56 +00:00
2006-09-13 13:24:59 -04:00
2006-12-04 16:07:19 -05:00
2006-09-13 13:24:59 -04:00
2006-12-07 02:14:07 +01:00
2006-10-05 15:10:12 +01:00
2006-10-05 15:10:12 +01:00
2006-12-04 18:36:02 -05:00
2006-12-02 00:12:01 -05:00
2006-12-02 00:12:01 -05:00
2006-12-02 00:11:55 -05:00
2006-09-13 13:24:59 -04:00
2006-09-13 13:24:59 -04:00
2006-09-13 13:24:59 -04:00
2006-09-13 13:24:59 -04:00
2006-09-13 13:24:59 -04:00
2006-10-06 14:56:04 -04:00
2006-09-13 13:24:59 -04:00
2006-10-05 15:10:12 +01:00
2006-09-13 13:24:59 -04:00
2006-10-08 12:32:36 -07:00
2006-09-13 13:24:59 -04:00
2006-12-05 14:37:56 +00:00
2006-12-04 16:07:19 -05:00
2006-10-05 15:10:12 +01:00
2006-12-04 16:07:19 -05:00
2006-12-04 16:07:19 -05:00
2006-09-13 13:24:59 -04:00
2006-10-05 15:10:12 +01:00
2006-09-13 13:24:59 -04:00
2006-12-04 16:07:19 -05:00
2006-12-04 16:07:19 -05:00
2006-10-05 15:10:12 +01:00
2006-09-13 13:24:59 -04:00
2006-10-05 15:10:12 +01:00
2006-10-05 15:10:12 +01:00
2006-06-25 17:43:33 -07:00
2006-12-02 00:12:02 -05:00
2006-09-13 14:30:00 -04:00
2006-09-13 13:24:59 -04:00
2006-09-13 13:24:59 -04:00
2006-09-13 13:24:59 -04:00
2006-12-02 00:33:11 -05:00
2006-12-02 00:33:11 -05:00
2006-10-05 15:10:12 +01:00
2006-10-05 15:10:12 +01:00
2006-09-13 13:24:59 -04:00
2006-12-04 16:07:19 -05:00
2006-12-04 16:07:19 -05:00
2006-12-09 09:41:18 -08:00
2006-12-02 00:11:56 -05:00
2006-10-05 15:10:12 +01:00
2006-12-04 20:38:06 +11:00
2006-12-04 20:38:06 +11:00
2006-10-03 08:04:19 -07:00
2006-12-02 21:22:59 -08:00
2006-10-05 15:10:12 +01:00
2006-11-22 14:57:56 +00:00
2006-09-13 13:24:59 -04:00
2006-12-11 09:51:07 -05:00
2006-12-04 16:07:19 -05:00
2006-12-07 08:39:41 -08:00
2006-12-02 00:11:56 -05:00
2006-12-04 16:07:19 -05:00
2006-10-20 00:32:41 -07:00
2006-10-05 15:10:12 +01:00
2006-10-05 15:10:12 +01:00
2006-12-02 00:11:56 -05:00
2006-12-11 09:31:28 -05:00
2006-12-11 09:31:28 -05:00
2006-10-05 15:10:12 +01:00
2006-10-05 15:10:12 +01:00
2006-09-13 13:24:59 -04:00
2006-12-02 00:12:04 -05:00
2006-12-02 21:22:59 -08:00
2006-09-13 13:24:59 -04:00
2006-10-05 15:10:12 +01:00
2006-12-07 04:57:19 -05:00
2006-06-30 18:25:18 +02:00
2006-12-04 16:07:19 -05:00
2006-10-17 19:28:51 -07:00
2006-12-02 21:22:59 -08:00
2006-06-23 23:16:09 -07:00
2006-10-05 15:10:12 +01:00
2006-12-04 16:07:19 -05:00
2006-09-13 14:30:00 -04:00
2006-12-04 02:00:34 -05:00
2006-12-02 00:11:56 -05:00
2006-12-04 16:07:19 -05:00
2006-12-02 21:22:37 -08:00
2006-10-05 15:10:12 +01:00
2006-12-04 16:07:19 -05:00
2006-09-13 13:24:59 -04:00
2006-12-04 16:07:19 -05:00
2006-09-13 13:24:59 -04:00
2006-10-05 15:10:12 +01:00
2006-12-07 04:57:19 -05:00
2006-09-13 13:24:59 -04:00
2006-10-05 15:10:12 +01:00
2006-10-06 14:56:04 -04:00
2006-11-22 14:57:56 +00:00
2006-09-13 13:24:59 -04:00
2006-09-13 13:24:59 -04:00
2006-12-01 14:52:00 -08:00
2006-09-21 11:46:22 +10:00
2006-09-13 13:24:59 -04:00
2006-12-02 21:23:51 -08:00
2006-11-22 14:57:56 +00:00
2006-11-22 14:57:56 +00:00
2006-12-07 05:05:58 -05:00
2006-09-13 14:30:00 -04:00
2006-10-05 15:10:12 +01:00
2006-10-05 15:10:12 +01:00
2006-09-13 13:24:59 -04:00
2006-11-22 14:57:56 +00:00
2006-11-22 14:57:56 +00:00
2006-10-06 14:56:04 -04:00
2006-09-13 13:24:59 -04:00
2006-10-06 14:56:04 -04:00
2006-10-21 14:20:01 -04:00
2006-12-04 16:07:19 -05:00
2006-09-13 13:24:59 -04:00
2006-10-05 15:10:12 +01:00
2006-09-13 13:24:59 -04:00
2006-09-13 13:24:59 -04:00
2006-11-22 14:57:56 +00:00
2006-10-05 15:10:12 +01:00
2006-09-13 13:24:59 -04:00
2006-10-05 15:10:12 +01:00
2006-09-13 13:24:59 -04:00
2006-12-05 14:37:56 +00:00
2006-12-07 04:59:20 -05:00
2006-12-07 04:59:20 -05:00
2006-12-07 04:59:20 -05:00
2006-09-13 13:24:59 -04:00
2006-09-13 13:24:59 -04:00
2006-09-13 13:24:59 -04:00
2006-12-05 19:36:26 +00:00
2006-12-11 09:54:50 -05:00
2006-10-05 15:10:12 +01:00
2006-12-04 16:07:19 -05:00
2006-09-13 13:24:59 -04:00
2006-09-13 13:24:59 -04:00
2006-12-04 16:07:19 -05:00
2006-12-04 16:07:19 -05:00
2006-10-06 14:56:04 -04:00
2006-10-05 15:10:12 +01:00
2006-12-02 21:22:23 -08:00
2006-10-11 04:04:27 -04:00
2006-12-05 17:01:28 +00:00
2006-11-30 06:14:06 -05:00
2006-12-04 02:00:34 -05:00
2006-09-27 15:41:24 +09:00
2006-10-11 11:17:06 -07:00
2006-09-13 13:24:59 -04:00
2006-12-04 16:07:19 -05:00
2006-10-17 19:28:51 -07:00
2006-06-23 23:16:02 -07:00
2006-12-02 00:16:36 -05:00
2006-09-13 13:24:59 -04:00
2006-09-13 13:24:59 -04:00
2006-12-05 17:01:28 +00:00
2006-09-13 13:24:59 -04:00
2006-12-04 10:37:06 -08:00
2006-06-30 19:25:36 +02:00
2006-10-06 14:56:04 -04:00
2006-10-06 14:56:04 -04:00
2006-10-05 15:10:12 +01:00
2006-12-07 00:24:09 -08:00
2006-12-07 00:21:14 -08:00
2006-11-22 14:57:56 +00:00
2006-11-22 14:57:56 +00:00
2006-12-02 00:12:03 -05:00
2006-12-02 00:12:03 -05:00
2006-10-02 07:57:14 -07:00
2006-09-13 13:24:59 -04:00
2006-12-04 02:00:34 -05:00
2006-09-13 13:24:59 -04:00
2006-10-21 14:09:51 -04:00
2006-10-21 14:09:51 -04:00
2006-12-11 09:31:28 -05:00
2006-10-21 14:09:51 -04:00
2006-10-05 15:10:12 +01:00
2006-12-08 08:28:39 -08:00
2006-09-13 13:24:59 -04:00
2006-12-04 16:07:19 -05:00
2006-10-06 14:56:04 -04:00
2006-10-06 14:56:04 -04:00
2006-12-02 00:11:56 -05:00