Bug 14604

Summary: atl1c on eeepc 1005ha: system freeze
Product: Drivers Reporter: Andrej Gelenberg (andrej.gelenberg)
Component: NetworkAssignee: drivers_network (drivers_network)
Status: RESOLVED CODE_FIX    
Severity: normal    
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.31 - 2.6.32 Subsystem:
Regression: No Bisected commit-id:
Attachments: fix deadlock in atl1c_reset_task

Description Andrej Gelenberg 2009-11-14 18:49:02 UTC
When plug and unplug cable, when card is on, the short after my system freeze.

lspci:
01:00.0 Ethernet controller: Attansic Technology Corp. Atheros AR8132 / L1c Gigabit Ethernet Adapter (rev c0)

dmesg after freeze:
Nov 14 17:21:23 eeekiste kernel: atl1c 0000:01:00.0: irq 28 for MSI/MSI-X
Nov 14 17:21:23 eeekiste kernel: atl1c 0000:01:00.0: atl1c: eth0 NIC Link is Up<100 Mbps Full Duplex>
Nov 14 18:09:32 eeekiste kernel: atl1c 0000:01:00.0: atl1c: eth0 NIC Link is Down
Nov 14 18:16:36 eeekiste kernel: atl1c 0000:01:00.0: atl1c: eth0 NIC Link is Up<100 Mbps Full Duplex>
Nov 14 19:12:41 eeekiste kernel: [drm] LVDS-8: set mode 1024x600 e
Nov 14 19:23:32 eeekiste kernel: atl1c 0000:01:00.0: atl1c: eth0 NIC Link is Down
Nov 14 19:23:48 eeekiste kernel: SysRq : HELP : loglevel(0-9) reBoot Crash terminate-all-tasks(E) memory-full-oom-kill(F) kill-all-tasks(I) thaw-filesystems(J) saK show-backtrace-all-active-cpus(L) show-memory-usage(M) nice-all-RT-tasks(N) powerOff show-registers(P) show-all-timers(Q) unRaw Sync show-task-states(T) Unmount force-fb(V) show-blocked-tasks(W)
Nov 14 19:23:49 eeekiste kernel: SysRq : Show Blocked State
Nov 14 19:23:49 eeekiste kernel: task                PC stack   pid father
Nov 14 19:23:49 eeekiste kernel: events/0      D f7867e88     0     7      2 0x00000000
Nov 14 19:23:49 eeekiste kernel: c2005b80 00000046 00000002 f7867e88 c2001f24 00000000 00000001 f784d810
Nov 14 19:23:49 eeekiste kernel: f784d998 c15cdb80 c15c9f24 c15c8000 00000000 f784d998 c2005b80 00000000
Nov 14 19:23:49 eeekiste kernel: 0020ef2b c2001f24 00000001 00000001 c2001fc0 00000000 00000000 00000000
Nov 14 19:23:49 eeekiste kernel: Call Trace:
Nov 14 19:23:49 eeekiste kernel: [<c13cc88c>] ? schedule_timeout+0x13c/0x184
Nov 14 19:23:49 eeekiste kernel: [<c13cc65e>] ? wait_for_common+0x9b/0x10c
Nov 14 19:23:49 eeekiste kernel: [<c10271f1>] ? default_wake_function+0x0/0x8
Nov 14 19:23:49 eeekiste kernel: [<c1038472>] ? __cancel_work_timer+0x141/0x15e
Nov 14 19:23:49 eeekiste kernel: [<c1038016>] ? wq_barrier_func+0x0/0x8
Nov 14 19:23:49 eeekiste kernel: [<c124e889>] ? atl1c_reset_task+0x0/0x2c
Nov 14 19:23:49 eeekiste kernel: [<c124d762>] ? atl1c_down+0x1c/0xe0
Nov 14 19:23:49 eeekiste kernel: [<c124e8a5>] ? atl1c_reset_task+0x1c/0x2c
Nov 14 19:23:49 eeekiste kernel: [<c1037d77>] ? worker_thread+0xe8/0x1a2
Nov 14 19:23:49 eeekiste kernel: [<c1020808>] ? __wake_up_common+0x43/0x67
Nov 14 19:23:49 eeekiste kernel: [<c103af00>] ? autoremove_wake_function+0x0/0x33
Nov 14 19:23:49 eeekiste kernel: [<c1037c8f>] ? worker_thread+0x0/0x1a2
Nov 14 19:23:49 eeekiste kernel: [<c103ad0c>] ? kthread+0x65/0x6b
Nov 14 19:23:49 eeekiste kernel: [<c103aca7>] ? kthread+0x0/0x6b
Nov 14 19:23:49 eeekiste kernel: [<c100361f>] ? kernel_thread_helper+0x7/0x18
Comment 1 Andrej Gelenberg 2009-11-15 20:24:30 UTC
seems to be fixes at least in 2.6.32.rc7
Comment 2 Andrej Gelenberg 2009-12-07 20:00:20 UTC
in 2.6.32 still there.
Dec  6 16:32:04 eeekiste kernel: Call Trace:
Dec  6 16:32:04 eeekiste kernel: [<c18a76ad>] ? schedule_timeout+0x13d/0x190
Dec  6 16:32:04 eeekiste kernel: [<c1028f68>] ? dequeue_task_fair+0x38/0x1b0
Dec  6 16:32:04 eeekiste kernel: [<c18a7446>] ? wait_for_common+0x96/0x120
Dec  6 16:32:04 eeekiste kernel: [<c102d7a0>] ? default_wake_function+0x0/0x10
Dec  6 16:32:04 eeekiste kernel: [<c104103b>] ? __cancel_work_timer+0x14b/0x170
Dec  6 16:32:04 eeekiste kernel: [<c1040b40>] ? wq_barrier_func+0x0/0x10
Dec  6 16:32:04 eeekiste kernel: [<c1459f90>] ? atl1c_reset_task+0x0/0x40
Dec  6 16:32:04 eeekiste kernel: [<c1458d6c>] ? atl1c_down+0x1c/0xf0
Dec  6 16:32:04 eeekiste kernel: [<c1459fb4>] ? atl1c_reset_task+0x24/0x40
Dec  6 16:32:04 eeekiste kernel: [<c1040833>] ? worker_thread+0xf3/0x1c0
Dec  6 16:32:04 eeekiste kernel: [<c1026157>] ? __wake_up_common+0x47/0x70
Dec  6 16:32:04 eeekiste kernel: [<c1044110>] ? autoremove_wake_function+0x0/0x40
Dec  6 16:32:04 eeekiste kernel: [<c1040740>] ? worker_thread+0x0/0x1c0
Dec  6 16:32:04 eeekiste kernel: [<c1043f14>] ? kthread+0x74/0x80
Dec  6 16:32:04 eeekiste kernel: [<c1043ea0>] ? kthread+0x0/0x80
Dec  6 16:32:04 eeekiste kernel: [<c100389f>] ? kernel_thread_helper+0x7/0x18
Comment 3 Andrej Gelenberg 2009-12-07 20:02:47 UTC
Created attachment 24081 [details]
fix deadlock in atl1c_reset_task

atl1c_reset_task call atl1c_down and it try to cansel atl1c_reset_tast,
also deadlock, if pull the ethernet cabel out.
Comment 4 Andrej Gelenberg 2010-01-03 18:56:29 UTC
Fixed in 2.6.33