Changing ESSID in ad-hoc mode make kernel bug

Jeong-Hwan Seo seomarine at yahoo.com
Thu Oct 16 20:02:25 EDT 2008


Hi all, 

I found some problems in libertas driver.
The initial command setting essid succeeds.
But following command changing essid makes kernel bug.

I find that it happens only in adhoc mode.

operation : 
# iwconfig eth0 mode ad-hoc
# iwconfig eth0 essid HI
# iwconfig eth0 essid HELLO

BUG: scheduling while atomic: iwconfig/801/0x00000002
[<c002a2e0>] (dump_stack+0x0/0x14) from [<c00395ec>]
(__schedule_bug+0x4c/0x58)
[<c00395a0>] (__schedule_bug+0x0/0x58) from
[<c02845f4>] (schedule+0x74/0x314)
 r4:c7a39240
[<c0284580>] (schedule+0x0/0x314) from [<c0186744>]
(__lbs_cmd+0x11c/0x210)
[<c0186628>] (__lbs_cmd+0x0/0x210) from [<c0181ed8>]
(lbs_get_wireless_stats+0x1a8/0x350)
[<c0181d30>] (lbs_get_wireless_stats+0x0/0x350) from
[<c025d018>] (get_wireless_stats+0x2c/0x38)
 r8:00000001 r7:4001e000 r6:000000a2 r5:c7a4d2e0
r4:c709c000
[<c025cfec>] (get_wireless_stats+0x0/0x38) from
[<c025ded0>] (wireless_seq_show+0x38/0x108)
[<c025de98>] (wireless_seq_show+0x0/0x108) from
[<c00ac874>] (seq_read+0x240/0x394)
[<c00ac634>] (seq_read+0x0/0x394) from [<c00c4894>]
(proc_reg_read+0xb4/0xc8)
[<c00c47e0>] (proc_reg_read+0x0/0xc8) from
[<c008eefc>] (vfs_read+0xb0/0xd8)
[<c008ee4c>] (vfs_read+0x0/0xd8) from [<c008f2d8>]
(sys_read+0x44/0x70)
 r6:00000000 r5:fffffff7 r4:c782a8a0
[<c008f294>] (sys_read+0x0/0x70) from [<c0025ae0>]
(ret_fast_syscall+0x0/0x2c)
 r7:00000003 r6:000003ff r5:00015008 r4:00015008

After Bug message : 
# iwconfig
lo        no wireless extensions.

eth0      IEEE 802.11b/g  ESSID:"HELLO"
          Mode:Ad-Hoc  Frequency:2.412 GHz  Cell:
02:2D:2D:60:D2:55
          Bit Rate:0 kb/s   Tx-Power=18 dBm
          Retry limit:8   RTS thr=2347 B   Fragment
thr=2346 B
          Encryption key:off
          Power Management:off
          Link Quality=0/100  Signal level=-11 dBm 
Noise level=-11 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx
invalid frag:0
          Tx excessive retries:0  Invalid misc:0  
Missed beacon:0

I investigated the libertas code and I found
something.
lbs_get_wireless_stats calls lbs_cmd_with_response
lbs_cmd_with_response(__lbs_cmd) calls
wait_event_interruptible
During wait_event_interruptible(schedule()), kernel
bug is checked.
Finally, __schedule_bug function prints
"BUG:Scheduling while atomic".

I tested it under 2.6.26 version with Marvell sd8686
chipset.
I will appreciate your help.
===================================
Jase.
SW center Samsung Electronics CO., LTD.
Mobile : 010-7322-5759 TEL : 031-279-8028
E-mail : jh2931.seo at samsung.com
seomarine at yahoo.com
===================================



      ________________________________________________________ 
180도 달라진 야후! 메일 - 두둥! 새로운 야후! 메일에서는 메시지를 여기저기 끌어다 놓을 수 있답니다.
http://kr.content.mail.yahoo.com/cgland



More information about the libertas-dev mailing list