[PlanetCCRMA] Re: atl1 driver; sleeping function

Matt Barber brbrofsvl at gmail.com
Fri Jan 4 20:52:02 2008


Hello,

At the end of July 2007 I posted a message saying there were problems
with the atl1 driver in the rt kernel.  A patch was provided that
fixed the problem, but it does not seem to have been applied to more
recent versions.  Would it be possible to do so, or will I need to
apply the patch each time a new kernel comes out (e.g., if the driver
with the patch is unstable)?  Stock Fedora kernel is fine.

Relevant info:

$ uname -r
2.6.22.10-1.rt9.1.fc7.ccrmart


The card in question is

03:00.0 Ethernet controller: Attansic Technology Corp. L1 Gigabit Ethernet Adapt
er (rev b0)
       Subsystem: ASUSTeK Computer Inc. Unknown device 8226
       Flags: bus master, fast devsel, latency 0, IRQ 219
       Memory at fe9c0000 (64-bit, non-prefetchable) [size=256K]
       Expansion ROM at fe9a0000 [disabled] [size=128K]
       Capabilities: [40] Power Management version 2
       Capabilities: [48] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0
Enable+
       Capabilities: [58] Express Endpoint IRQ 0
       Capabilities: [6c] Vital Product Data



from dmesg:

-------------------------------
network driver disabled raw interrupts: atl1_xmit_frame+0x0/0x688 [atl1]
network driver disabled raw interrupts: atl1_xmit_frame+0x0/0x688 [atl1]
network driver disabled raw interrupts: atl1_xmit_frame+0x0/0x688 [atl1]
BUG: sleeping function called from invalid context IRQ-219(2082) at
kernel/rtmutex.c:636
in_atomic():0 [00000000], irqs_disabled():1
 [<c061bd3d>] __rt_spin_lock+0x21/0x3d
 [<f896ab99>] atl1_xmit_frame+0x631/0x688 [atl1]
 [<c061dcf4>] atomic_notifier_call_chain+0x17/0x1a
 [<c05b972a>] dev_hard_start_xmit+0x1e2/0x241
 [<f8c4b16a>] ipv4_confirm+0x36/0x3b [nf_conntrack_ipv4]
 [<c05c7345>] __qdisc_run+0xa5/0x1ca
 [<c05bb16e>] dev_queue_xmit+0x154/0x246
 [<c05d98b7>] ip_output+0x2b6/0x2ef
 [<c05d807d>] ip_finish_output+0x0/0x24d
 [<c05d8f1e>] ip_queue_xmit+0x322/0x372
 [<c05d6a24>] dst_output+0x0/0x7
 [<f8c5e46c>] tcp_packet+0xada/0xb0a [nf_conntrack]
 [<c05ecd95>] tcp_v4_send_check+0x86/0xbc
 [<c05e784f>] tcp_transmit_skb+0x6dc/0x70d
 [<c061bd3d>] __rt_spin_lock+0x21/0x3d
 [<c05b5007>] __alloc_skb+0x53/0xff
 [<c05e7a14>] tcp_send_ack+0xea/0xee
 [<c05e6794>] tcp_rcv_established+0x517/0x7df
 [<f8c5a3d6>] __nf_conntrack_find+0x18/0xe4 [nf_conntrack]
 [<c05ec25f>] tcp_v4_do_rcv+0x2d2/0x618
 [<c061be5f>] rt_read_unlock+0x38/0x40
 [<f8c35482>] ipt_do_table+0x2bf/0x2e9 [ip_tables]
 [<c061dcd5>] __atomic_notifier_call_chain+0x35/0x3d
 [<c061dcf4>] atomic_notifier_call_chain+0x17/0x1a
 [<f8c5e885>] nf_ct_deliver_cached_events+0x4f/0xb6 [nf_conntrack]
 [<c05ee994>] tcp_v4_rcv+0x89b/0x90f
 [<c05d4ae0>] ip_local_deliver+0x194/0x240
 [<c05d41f6>] ip_local_deliver_finish+0x0/0x1c3
 [<c05d4913>] ip_rcv+0x496/0x4cf
 [<c05d3f50>] ip_rcv_finish+0x0/0x2a6
 [<c05b9163>] netif_receive_skb+0x2b4/0x33f
 [<c05bad4a>] process_backlog+0x76/0xc9
 [<c05baf20>] net_rx_action+0xa4/0x19e
 [<c042f65c>] ___do_softirq+0xf9/0x20f
 [<c042fa44>] do_softirq_from_hardirq+0x48/0x61
 [<c045a28d>] do_irqd+0x21a/0x285
 [<c045a073>] do_irqd+0x0/0x285
 [<c043b49d>] kthread+0x38/0x5f
 [<c043b465>] kthread+0x0/0x5f
 [<c0405ae7>] kernel_thread_helper+0x7/0x10
 =======================
BUG: sleeping function called from invalid context ssh(4049) at
kernel/rtmutex.c:636
in_atomic():0 [00000000], irqs_disabled():1
 [<c061bd3d>] __rt_spin_lock+0x21/0x3d
 [<f896ab99>] atl1_xmit_frame+0x631/0x688 [atl1]
 [<c061dcf4>] atomic_notifier_call_chain+0x17/0x1a
 [<c05b972a>] dev_hard_start_xmit+0x1e2/0x241
 [<f8c4b16a>] ipv4_confirm+0x36/0x3b [nf_conntrack_ipv4]
 [<c05c7345>] __qdisc_run+0xa5/0x1ca
 [<c05bb16e>] dev_queue_xmit+0x154/0x246
 [<c05d98b7>] ip_output+0x2b6/0x2ef
 [<c05d807d>] ip_finish_output+0x0/0x24d
 [<c05d8f1e>] ip_queue_xmit+0x322/0x372
 [<c05d6a24>] dst_output+0x0/0x7
 [<c05d8f1e>] ip_queue_xmit+0x322/0x372
 [<c05d6a24>] dst_output+0x0/0x7
 [<c05e784f>] tcp_transmit_skb+0x6dc/0x70d
 [<c061bd3d>] __rt_spin_lock+0x21/0x3d
 [<c0432966>] lock_timer_base+0x19/0x37
 [<c05e91de>] __tcp_push_pending_frames+0x708/0x7b9
 [<c05df1de>] tcp_sendmsg+0x93f/0xa37
 [<c05aee38>] sock_aio_write+0xf9/0x105
 [<c047b440>] do_sync_write+0xc7/0x10a
 [<c043b555>] autoremove_wake_function+0x0/0x35
 [<c0428057>] __wake_up+0x36/0x59
 [<c042efa3>] current_fs_time+0x41/0x46
 [<c0457fc4>] audit_syscall_exit+0x2f2/0x30e
 [<c047bca6>] vfs_write+0xbc/0x15a
 [<c047c2bb>] sys_write+0x41/0x67
 [<c0404ef6>] syscall_call+0x7/0xb
 =======================
BUG: sleeping function called from invalid context ssh(4049) at
kernel/rtmutex.c:636
in_atomic():0 [00000000], irqs_disabled():1
 [<c061bd3d>] __rt_spin_lock+0x21/0x3d
 [<f896ab99>] atl1_xmit_frame+0x631/0x688 [atl1]
 [<c061dcf4>] atomic_notifier_call_chain+0x17/0x1a
 [<c05b972a>] dev_hard_start_xmit+0x1e2/0x241
 [<f8c4b16a>] ipv4_confirm+0x36/0x3b [nf_conntrack_ipv4]
 [<c05c7345>] __qdisc_run+0xa5/0x1ca
 [<c05bb16e>] dev_queue_xmit+0x154/0x246
 [<c05d98b7>] ip_output+0x2b6/0x2ef
 [<c05d807d>] ip_finish_output+0x0/0x24d
 [<c05d8f1e>] ip_queue_xmit+0x322/0x372
 [<c05d6a24>] dst_output+0x0/0x7
 [<c04225dd>] enqueue_entity+0x29f/0x2bd
 [<c05e784f>] tcp_transmit_skb+0x6dc/0x70d
 [<c05e91de>] __tcp_push_pending_frames+0x708/0x7b9
 [<c05df1de>] tcp_sendmsg+0x93f/0xa37
 [<c0420eb0>] __wake_up_common+0x32/0x55
 [<c053d78f>] n_tty_receive_buf+0xc63/0xcaf
 [<c05aee38>] sock_aio_write+0xf9/0x105
 [<c047b440>] do_sync_write+0xc7/0x10a
 [<c043b555>] autoremove_wake_function+0x0/0x35
 [<c0428057>] __wake_up+0x36/0x59
 [<c042efa3>] current_fs_time+0x41/0x46
 [<c0457fc4>] audit_syscall_exit+0x2f2/0x30e
 [<c047bca6>] vfs_write+0xbc/0x15a
 [<c047c2bb>] sys_write+0x41/0x67
 [<c0404ef6>] syscall_call+0x7/0xb
 =======================
printk: 21 messages suppressed.
network driver disabled raw interrupts: atl1_xmit_frame+0x0/0x688 [atl1]

-------------------------------------------

Thanks again and again!

Matt