Created attachment 21427 [details] Kernel config Every time I boot (Gentoo) Linux on my PS3, the following error appears in dmesg: BUG: scheduling while atomic: grep/6390/0x00000002 Modules linked in: rtc_ps3 rtc_core snd_ps3 snd_pcm ps3_gelic ps3rom snd_page_alloc ps3_lpm ps3flash rtc_lib snd_timer ps3vram nfs auth_rpcgss nfs_acl lockd sunrpc usbhid ohci_hcd usb_storage ehci_hcd sr_mod cdrom sg scsi_wait_scan Call Trace: [c000000006f7f470] [c00000000000f680] .show_stack+0x68/0x198 (unreliable) [c000000006f7f520] [c000000000050a84] .__schedule_bug+0x9c/0xa8 [c000000006f7f5b0] [c0000000002f3230] .__schedule+0x440/0x8c8 [c000000006f7f6f0] [c0000000002f36dc] .schedule+0x24/0x50 [c000000006f7f770] [c0000000002f3b5c] .schedule_timeout+0x1a4/0x208 [c000000006f7f860] [c0000000002f2d04] .wait_for_common+0x174/0x1a0 [c000000006f7f930] [d0000000003cad70] .gelic_eurus_sync_cmd+0xa8/0xd8 [ps3_gelic] [c000000006f7f9d0] [d0000000003cccc4] .gelic_wl_get_wireless_stats+0x6c/0xe8 [ps3_gelic] [c000000006f7fa70] [c0000000002f0eec] .wireless_seq_show+0x64/0x158 [c000000006f7fb40] [c00000000010404c] .seq_read+0x394/0x528 [c000000006f7fc30] [c00000000013cda0] .proc_reg_read+0xb0/0x108 [c000000006f7fce0] [c0000000000e2034] .vfs_read+0xec/0x1a8 [c000000006f7fd80] [c0000000000e2208] .SyS_read+0x58/0xc8 [c000000006f7fe30] [c0000000000074b4] syscall_exit+0x0/0x40 gelic_eurus_sync_cmd_worker: cmd issue failed This happens with current ps3-linux.git kernel (2.6.30-rc6-02770-g7ef67c0), but I am seeing this problem since at least 2.6.28. The only kernel I tried that does not have this problem is 2.6.23-ps3 which comes with the Gentoo PS3 install CD. I initially reported this bug on the Gentoo bugzilla at http://bugs.gentoo.org/show_bug.cgi?id=260253, but they suggested to report it here.
Let's remove the atomic requirement instead -- that should be fairly simple.
Created attachment 21429 [details] patch to not require stats handler to be atomic This will apply against wireless-testing only.
With wireless-testing + attached patch, I am no longer seeing the scheduling while atomic bug. However, the following line still appears, but I don't know if it's related: gelic_eurus_sync_cmd_worker: cmd issue failed
Could you please add your kernel .config file and the full dmesg as attachments to this bug. -Geoff
Created attachment 21623 [details] Full dmesg as requested.
Dmesg attached, config was already there.
I don't seem to see the scheduling while atomic error in that dmsg. Maybe you attached the wrong one? -Geoff
The attached dmesg is wireless-testing + the patch to not require stats handler to be atomic applied. I'll attach full dmesg of unpatched ps3-linux 2.6.30-rc6-wl-23980-g5a476b9.
Created attachment 21696 [details] Full dmesg with unpatched kernel
Correction, the latest dmesg is not ps3-linux but also wireless-testing kernel.
The patch from comment 2 is incorporated here: commit 3d23e349d807177eaf519d444677cee86b1a04cf Author: Johannes Berg <johannes@sipsolutions.net> Date: Tue Sep 29 23:27:28 2009 +0200 wext: refactor Refactor wext to * split out iwpriv handling * split out iwspy handling * split out procfs support * allow cfg80211 to have wireless extensions compat code w/o CONFIG_WIRELESS_EXT After this, drivers need to - select WIRELESS_EXT - for wext support - select WEXT_PRIV - for iwpriv support - select WEXT_SPY - for iwspy support except cfg80211 -- which gets new hooks in wext-core.c and can then get wext handlers without CONFIG_WIRELESS_EXT. Wireless extensions procfs support is auto-selected based on PROC_FS and anything that requires the wext core (i.e. WIRELESS_EXT or CFG80211_WEXT). Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>