Return-path: Received: from remail2.raritan.com ([62.132.199.138]:45682 "EHLO remail2.raritan.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751534Ab2BNPvf (ORCPT ); Tue, 14 Feb 2012 10:51:35 -0500 Message-ID: <4F3A7F71.6000008@raritan.com> (sfid-20120214_165139_246814_70383B69) Date: Tue, 14 Feb 2012 16:36:17 +0100 From: Ronald Wahl MIME-Version: 1.0 To: Larry.Finger@lwfinger.net CC: linux-wireless@vger.kernel.org Subject: rtlwifi/rtl8192cu: scheduling while atomic / sleeping function called from invalid context Content-Type: text/plain; charset=UTF-8 Sender: linux-wireless-owner@vger.kernel.org List-ID: Hi, I just got the below traces with the rtlwifi driver in linux 3.2.5 and a rtl8192cu chip. It looks like that _usb_read_sync() and kmalloc(..., GFP_KERNEL) is called while the rcu lock is held inside rtl92c_dm_refresh_rate_adaptive_mask. BUG: sleeping function called from invalid context at mm/slub.c:935 in_atomic(): 1, irqs_disabled(): 0, pid: 128, name: kworker/0:1 [] (unwind_backtrace+0x0/0x12c) from [] (dump_stack+0x20/0x24) [] (dump_stack+0x20/0x24) from [] (__might_sleep+0x104/0x124) [] (__might_sleep+0x104/0x124) from [] (kmem_cache_alloc_trace+0x4c/0x1f0) [] (kmem_cache_alloc_trace+0x4c/0x1f0) from [] (_usb_read_sync+0x40/0xd0 [rtlwifi]) [] (_usb_read_sync+0x40/0xd0 [rtlwifi]) from [] (_usb_read32_sync+0x24/0x28 [rtlwifi]) [] (_usb_read32_sync+0x24/0x28 [rtlwifi]) from [] (rtl92cu_update_hal_rate_table+0x1c8/0x210 [rtl8192cu]) [] (rtl92cu_update_hal_rate_table+0x1c8/0x210 [rtl8192cu]) from [] (rtl92c_dm_watchdog+0x10ec/0x1390 [rtl8192c_common]) [] (rtl92c_dm_watchdog+0x10ec/0x1390 [rtl8192c_common]) from [] (rtl_watchdog_wq_callback+0x2ec/0x320 [rtlwifi]) [] (rtl_watchdog_wq_callback+0x2ec/0x320 [rtlwifi]) from [] (process_one_work+0x294/0x474) [] (process_one_work+0x294/0x474) from [] (worker_thread+0x214/0x344) [] (worker_thread+0x214/0x344) from [] (kthread+0x94/0x9c) [] (kthread+0x94/0x9c) from [] (kernel_thread_exit+0x0/0x8) BUG: scheduling while atomic: kworker/0:1/128/0x00000002 Modules linked in: rtl8192cu aes_generic r8712u(C) arc4 rtl8192c_common rtlwifi rt2800usb rt2800lib crc_ccitt rt2x00usb rt2x00lib ath9k_htc ath9k_common ath9k_hw carl9170 mac80211 firmware_class ath cfg80211 g_serial v4l2_int_device uvcvideo v4l2_common videodev [last unloaded: rtl8192cu] [] (unwind_backtrace+0x0/0x12c) from [] (dump_stack+0x20/0x24) [] (dump_stack+0x20/0x24) from [] (__schedule_bug+0x70/0x7c) [] (__schedule_bug+0x70/0x7c) from [] (__schedule+0x68/0x548) [] (__schedule+0x68/0x548) from [] (schedule+0x80/0x84) [] (schedule+0x80/0x84) from [] (schedule_timeout+0x28/0x2d4) [] (schedule_timeout+0x28/0x2d4) from [] (wait_for_common+0x110/0x1e0) [] (wait_for_common+0x110/0x1e0) from [] (wait_for_completion_timeout+0x1c/0x20) [] (wait_for_completion_timeout+0x1c/0x20) from [] (usb_start_wait_urb+0x78/0x13c) [] (usb_start_wait_urb+0x78/0x13c) from [] (usb_control_msg+0xdc/0x108) [] (usb_control_msg+0xdc/0x108) from [] (_usb_read_sync+0x90/0xd0 [rtlwifi]) [] (_usb_read_sync+0x90/0xd0 [rtlwifi]) from [] (_usb_read32_sync+0x24/0x28 [rtlwifi]) [] (_usb_read32_sync+0x24/0x28 [rtlwifi]) from [] (rtl92cu_update_hal_rate_table+0x1c8/0x210 [rtl8192cu]) [] (rtl92cu_update_hal_rate_table+0x1c8/0x210 [rtl8192cu]) from [] (rtl92c_dm_watchdog+0x10ec/0x1390 [rtl8192c_common]) [] (rtl92c_dm_watchdog+0x10ec/0x1390 [rtl8192c_common]) from [] (rtl_watchdog_wq_callback+0x2ec/0x320 [rtlwifi]) [] (rtl_watchdog_wq_callback+0x2ec/0x320 [rtlwifi]) from [] (process_one_work+0x294/0x474) [] (process_one_work+0x294/0x474) from [] (worker_thread+0x214/0x344) [] (worker_thread+0x214/0x344) from [] (kthread+0x94/0x9c) [] (kthread+0x94/0x9c) from [] (kernel_thread_exit+0x0/0x8) I hope you can fix this. Thanks, Ronald -- Ronald Wahl - ronald.wahl@raritan.com - Phone +49 375271349-0 Fax -99 Raritan Deutschland GmbH, Kornmarkt 7, 08056 Zwickau, Germany USt-IdNr. DE813094160, Steuer-Nr. 227/117/01749 Amtsgericht Chemnitz HRB 23605 Geschäftsführung: Stuart Hopper, Burkhard Wessler