Bug 365 - atomic scheduling in ipw_send_cmd() and fatal error when changing association
: atomic scheduling in ipw_send_cmd() and fatal error when changing association
Status: VERIFIED FIXED
: IPW2200
__UNSPECIFIED__
: 0.13
: All Debian
: P2 normal
Assigned To:
:
:
:
:
:
  Show dependency treegraph
 
Reported: 2004-11-12 09:43 by
Modified: 2005-10-03 14:39 (History)


Attachments
Fix for scheduling while atomic bug (689 bytes, text/plain)
2004-11-12 12:50, Rusty Lynch
Details


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2004-11-12 09:43:29
(rusty@linux.jf.intel.com asked me to submit this bug)

v0.13 of the driver loses association frequently, and spits out huge
numbers of the following error message:

bad: scheduling while atomic!
[<c0372fe8>] schedule+0x788/0x790
[<c0373fae>] schedule_timeout+0x8e/0xe0
[<c0132880>] process_timeout+0x0/0x10
[<e0a37839>] ipw_send_cmd+0x159/0x240 [ipw2200]
[<c0122140>] autoremove_wake_function+0x0/0x60
[<c0122140>] autoremove_wake_function+0x0/0x60
[<c02045e8>] vsprintf+0x28/0x30
[<e0a37c2d>] ipw_send_adapter_address+0xdd/0x120 [ipw2200]
[<e0a380e4>] ipw_send_tx_power+0x74/0xc0 [ipw2200]
[<c02fb847>] alloc_skb+0x47/0xf0
[<e0a45643>] ipw_config+0x93/0x170 [ipw2200]
[<e0a457b2>] ipw_up+0x92/0x1c0 [ipw2200]
[<e0a419a0>] ipw_adapter_restart+0x30/0x50 [ipw2200]
[<e0a44c5b>] ipw_rf_kill+0x13b/0x2e0 [ipw2200]
[<c013e52b>] worker_thread+0x25b/0x4b0
[<e0a44b20>] ipw_rf_kill+0x0/0x2e0 [ipw2200]
[<c0120050>] default_wake_function+0x0/0x20
[<c0120050>] default_wake_function+0x0/0x20
[<c013e2d0>] worker_thread+0x0/0x4b0
[<c01455aa>] kthread+0xaa/0xb0
[<c0145500>] kthread+0x0/0xb0
[<c01032cd>] kernel_thread_helper+0x5/0x18

At one point, when attempting to switch access points in an attempt to
correct the error, I got this message, which FUBARed the driver:

ipw2200: Fatal error
ipw2200: Start IPW Error Log Dump:
ipw2200: ERROR_SYSASSERT 450752576 0x0001c0e8  0x0000be3c  0x00000278
0x01b3f99c  0x0000038b
ipw2200: ERROR_DMA_STATUS 450752580 0x000276e0  0x000277d0  0x01540001
0x00000000  0x00000000
ipw2200: ERROR_DMA_STATUS 450752584 0x00028400  0x000284e0  0x00540001
0x00000000  0x00000001
ipw2200: ERROR_DMA_STATUS 450752587 0x00028000  0x00028070  0x00540000
0x9c6a4200  0x00000002
ipw2200: ERROR_DMA_STATUS 450752591 0x00408000  0x00408000  0x30408200
0x00000082  0x00000003
ipw2200: Start IPW Event Log Dump:
ipw2200: 450751815      0x0000003a      281
ipw2200: 450751821      0x0000003c      282
ipw2200: 450751824      0x00000000      206
ipw2200: 450751830      0x00000012      257
ipw2200: 450751834      0x00000196      192
ipw2200: 450751843      0x00000014      20
ipw2200: 450751855      0x00000034      279
ipw2200: 450751860      0x00000036      280
ipw2200: 450751865      0x0000005f      273
ipw2200: 450751868      0x00000008      32
ipw2200: 450751872      0x00ff0000      37
ipw2200: 450751883      0x00000008      35
ipw2200: 450751886      0x00000008      22
ipw2200: 450751892      0x8008be04      22
ipw2200: 450751908      0x00ff0000      37
ipw2200: 450751912      0x00000061      274
ipw2200: 450751938      0x00000034      279
ipw2200: 450751944      0x00000036      280
ipw2200: 450751947      0x0000003a      281
ipw2200: 450751953      0x0000003c      282
ipw2200: 450751956      0x00000000      206
ipw2200: 450751961      0x00000012      257
ipw2200: 450751966      0x00000196      192
ipw2200: 450751975      0x00000014      20
ipw2200: 450751987      0x00000034      279
ipw2200: 450751992      0x00000036      280
ipw2200: 450751997      0x0000005f      273
ipw2200: 450752000      0x00000008      32
ipw2200: 450752004      0x00ff0000      37
ipw2200: 450752015      0x00000008      35
ipw2200: 450752018      0x00000008      22
ipw2200: 450752024      0x8008bf04      22
ipw2200: 450752040      0x00ff0000      37
ipw2200: 450752044      0x00000061      274
ipw2200: 450752070      0x00000034      279
ipw2200: 450752076      0x00000036      280
ipw2200: 450752079      0x0000003a      281
ipw2200: 450752085      0x0000003c      282
ipw2200: 450752088      0x00000000      206
ipw2200: 450752093      0x00000008      257
ipw2200: 450752103      0x00000034      279
ipw2200: 450752109      0x00000036      280
ipw2200: 450752145      0x00000034      279
ipw2200: 450752150      0x00000036      280
ipw2200: 450752154      0x0000003a      281
ipw2200: 450752159      0x0000003c      282
ipw2200: 450752162      0x00000000      206
ipw2200: 450752168      0x00000016      257
ipw2200: 450752238      0x00000038      20
ipw2200: 450752249      0x00000034      279
ipw2200: 450752255      0x00000036      280
ipw2200: 450752263      0x0000005f      273
ipw2200: 450752266      0x00000008      32
ipw2200: 450752270      0x00ff0000      37
ipw2200: 450752280      0x00000006      35
ipw2200: 450752284      0x00000006      22
ipw2200: 450752290      0x8006c004      22
ipw2200: 450752306      0x00ff0000      37
ipw2200: 450752310      0x00000061      274
ipw2200: 450752336      0x00000034      279
ipw2200: 450752342      0x00000036      280
ipw2200: 450752345      0x0000003a      281
ipw2200: 450752350      0x0000003c      282
ipw2200: 450752354      0x00000000      206
ipw2200: 450752359      0x00000006      257
ipw2200: 450752375      0x00000038      20
ipw2200: 450752388      0x00000034      279
ipw2200: 450752393      0x00000036      280
ipw2200: 450752398      0x0000005f      273
ipw2200: 450752401      0x00000008      32
ipw2200: 450752405      0x00ff0000      37
ipw2200: 450752416      0x00000006      35
ipw2200: 450752419      0x00000006      22
ipw2200: 450752425      0x8006c104      22
ipw2200: 450752441      0x00ff0000      37
ipw2200: 450752445      0x00000061      274
ipw2200: 450752471      0x00000034      279
ipw2200: 450752477      0x00000036      280
ipw2200: 450752480      0x0000003a      281
ipw2200: 450752485      0x0000003c      282
ipw2200: 450752489      0x00000000      206
ipw2200: 450752494      0x0000002a      257
ipw2200: 450752502      0x00000034      279
ipw2200: 450752507      0x00000036      280
ipw2200: 450752517      0x0000000a      99
ipw2200: 450752545      0x00000034      279
ipw2200: 450752550      0x00000036      280
ipw2200: 450752554      0x0000003a      281
ipw2200: 450752559      0x0000003c      282
ipw2200: 450752562      0x00000000      206
ipw2200: 450752568      0x00000015      257
ipw2200: 450752572      0x00000380      117
ipw2200: 450751552      0x0000003a      281
ipw2200: 450751557      0x0000003c      282
ipw2200: 450751560      0x00000000      206
ipw2200: 450751566      0x00000012      257
ipw2200: 450751570      0x00000196      192
ipw2200: 450751579      0x00000014      20
ipw2200: 450751591      0x00000034      279
ipw2200: 450751596      0x00000036      280
ipw2200: 450751601      0x0000005f      273
ipw2200: 450751605      0x00000008      32
ipw2200: 450751608      0x00ff0000      37
ipw2200: 450751619      0x00000008      35
ipw2200: 450751622      0x00000008      22
ipw2200: 450751629      0x8008bc04      22
ipw2200: 450751644      0x00ff0000      37
ipw2200: 450751648      0x00000061      274
ipw2200: 450751674      0x00000034      279
ipw2200: 450751680      0x00000036      280
ipw2200: 450751683      0x0000003a      281
ipw2200: 450751689      0x0000003c      282
ipw2200: 450751692      0x00000000      206
ipw2200: 450751698      0x00000012      257
ipw2200: 450751702      0x00000196      192
ipw2200: 450751711      0x00000014      20
ipw2200: 450751723      0x00000034      279
ipw2200: 450751728      0x00000036      280
ipw2200: 450751733      0x0000005f      273
ipw2200: 450751736      0x00000008      32
ipw2200: 450751740      0x00ff0000      37
ipw2200: 450751751      0x00000008      35
ipw2200: 450751754      0x00000008      22
ipw2200: 450751760      0x8008bd04      22
ipw2200: 450751776      0x00ff0000      37
ipw2200: 450751780      0x00000061      274
ipw2200: 450751806      0x00000034      279
ipw2200: 450751812      0x00000036      280

Any ideas?
------- Comment #1 From 2004-11-12 12:15:27 -------
It looks like from the call trace that the atomic bug is happening in the
path of code that restarts the driver after the radio is turned back on.

Did you see this after pressing your rf kill switch?  Did you enable the radio
with the kill switch earlier?
------- Comment #2 From 2004-11-12 12:50:05 -------
Created an attachment (id=84) [details]
Fix for scheduling while atomic bug

Here is a patch that should fix the bug
------- Comment #3 From 2004-11-12 13:02:27 -------
I see the scheduling errors every time I use the kill switch.
------- Comment #4 From 2004-11-14 19:39:48 -------
Fixed in the next release, v0.14
------- Comment #5 From 2004-12-02 05:36:24 -------
VERIFIED FIXED with 0.15. Using the hardware RF switch no longer triggers atomic
scheduling, and switching APs/channels no longer causes fatal errors.