Return-path: Received: from mail-wy0-f174.google.com ([74.125.82.174]:32844 "EHLO mail-wy0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752231Ab0IEJc2 (ORCPT ); Sun, 5 Sep 2010 05:32:28 -0400 MIME-Version: 1.0 Date: Sun, 5 Sep 2010 17:32:26 +0800 Message-ID: Subject: lockdep warning in ieee80211 rx path From: Ming Lei To: linux-wireless@vger.kernel.org Cc: Linux Kernel Mailing List Content-Type: text/plain; charset=ISO-8859-1 Sender: linux-wireless-owner@vger.kernel.org List-ID: Seems the warning does not affect use of wireless, false positive? [ 221.023115] [ 221.023116] ======================================================= [ 221.023164] [ INFO: possible circular locking dependency detected ] [ 221.023195] 2.6.36-rc3-next-20100903+ #65 [ 221.023215] ------------------------------------------------------- [ 221.023246] X/2091 is trying to acquire lock: [ 221.023268] (slock-AF_INET/1){+.-...}, at: [] tcp_v4_rcv+0x290/0x6b7 [ 221.023323] [ 221.023323] but task is already holding lock: [ 221.023354] (&(&sta->lock)->rlock){+.-...}, at: [] sta_rx_agg_reorder_timer_expired+0x61/0x9c [mac80211] [ 221.023425] [ 221.023426] which lock already depends on the new lock. [ 221.023426] [ 221.023469] [ 221.023469] the existing dependency chain (in reverse order) is: [ 221.023508] [ 221.023509] -> #2 (&(&sta->lock)->rlock){+.-...}: [ 221.023547] [] lock_acquire+0xe6/0x113 [ 221.023581] [] _raw_spin_lock_irqsave+0x5d/0x97 [ 221.023618] [] __queue_work+0x10c/0x1bf [ 221.023652] [] queue_work_on+0x1b/0x22 [ 221.023684] [] queue_work+0x3a/0x5a [ 221.023716] [] ieee80211_queue_work+0x2e/0x35 [mac80211] [ 221.023766] [] ieee80211_start_tx_ba_cb_irqsafe+0x74/0x7d [mac80211] [ 221.023816] [] ath9k_ampdu_action+0x8c/0x110 [ath9k] [ 221.023857] [] drv_ampdu_action+0x6f/0x7a [mac80211] [ 221.023900] [] ieee80211_tx_ba_session_handle_start+0xd2/0x2a1 [mac80211] [ 221.023955] [] ieee80211_ba_session_work+0xac/0xeb [mac80211] [ 221.024003] [] process_one_work+0x246/0x3cd [ 221.024007] [] worker_thread+0x13b/0x251 [ 221.024007] [] kthread+0x8e/0x96 [ 221.024007] [] kernel_thread_helper+0x4/0x10 [ 221.024007] [ 221.024007] -> #1 (_xmit_ETHER){+.-...}: [ 221.024007] [] lock_acquire+0xe6/0x113 [ 221.024007] [] _raw_spin_lock_irqsave+0x5d/0x97 [ 221.024007] [] __delete_object+0x94/0xb1 [ 221.024007] [] delete_object_full+0x25/0x31 [ 221.024007] [] kmemleak_free+0x26/0x45 [ 221.024007] [] kfree+0xb3/0x155 [ 221.024007] [] skb_release_data+0xc1/0xc6 [ 221.024007] [] __kfree_skb+0x1e/0x81 [ 221.024007] [] tcp_ack+0x4c0/0x1945 [ 221.024007] [] tcp_rcv_state_process+0x159/0x8b4 [ 221.024007] [] tcp_v4_do_rcv+0x2f3/0x330 [ 221.024007] [] tcp_v4_rcv+0x424/0x6b7 [ 221.024007] [] ip_local_deliver+0x130/0x1c0 [ 221.024007] [] ip_rcv+0x4d9/0x519 [ 221.024007] [] __netif_receive_skb+0x292/0x2bf [ 221.024007] [] netif_receive_skb+0x6c/0x73 [ 221.024007] [] ieee80211_deliver_skb+0xcb/0x100 [mac80211] [ 221.024007] [] ieee80211_rx_handlers+0xe7e/0x15f8 [mac80211] [ 221.024007] [] ieee80211_invoke_rx_handlers+0x4ea/0x50f [mac80211] [ 221.024007] [] ieee80211_rx+0x7b5/0x826 [mac80211] [ 221.024007] [] ath_rx_send_to_mac80211+0x6f/0x78 [ath9k] [ 221.024007] [] ath_rx_tasklet+0xc6d/0xd7b [ath9k] [ 221.024007] [] ath9k_tasklet+0xb1/0x14f [ath9k] [ 221.024007] [] tasklet_action+0x8c/0xf4 [ 221.024007] [] __do_softirq+0x119/0x1fe [ 221.024007] [] call_softirq+0x1c/0x30 [ 221.024007] [] do_softirq+0x4b/0xa3 [ 221.024007] [] irq_exit+0x4a/0x9f [ 221.024007] [] do_IRQ+0xac/0xc3 [ 221.024007] [] ret_from_intr+0x0/0x16 [ 221.024007] [] cpuidle_idle_call+0xb2/0x130 [ 221.024007] [] cpu_idle+0x76/0xff [ 221.024007] [] rest_init+0xd7/0xde [ 221.024007] [] start_kernel+0x3dd/0x3e8 [ 221.024007] [] x86_64_start_reservations+0xb3/0xb7 [ 221.024007] [] x86_64_start_kernel+0xf8/0x107 [ 221.024007] [ 221.024007] -> #0 (slock-AF_INET/1){+.-...}: [ 221.024007] [] __lock_acquire+0xa2c/0xd23 [ 221.024007] [] lock_acquire+0xe6/0x113 [ 221.024007] [] _raw_spin_lock_nested+0x43/0x76 [ 221.024007] [] tcp_v4_rcv+0x290/0x6b7 [ 221.024007] [] ip_local_deliver+0x130/0x1c0 [ 221.024007] [] ip_rcv+0x4d9/0x519 [ 221.024007] [] __netif_receive_skb+0x292/0x2bf [ 221.024007] [] netif_receive_skb+0x6c/0x73 [ 221.024007] [] ieee80211_deliver_skb+0xcb/0x100 [mac80211] [ 221.024007] [] ieee80211_rx_handlers+0xe7e/0x15f8 [mac80211] [ 221.024007] [] ieee80211_release_reorder_timeout+0xd3/0xe3 [mac80211] [ 221.024007] [] sta_rx_agg_reorder_timer_expired+0x6c/0x9c [mac80211] [ 221.024007] [] run_timer_softirq+0x24c/0x34b [ 221.024007] [] __do_softirq+0x119/0x1fe [ 221.024007] [] call_softirq+0x1c/0x30 [ 221.024007] [] do_softirq+0x4b/0xa3 [ 221.024007] [] irq_exit+0x4a/0x9f [ 221.024007] [] smp_apic_timer_interrupt+0x85/0x93 [ 221.024007] [] apic_timer_interrupt+0x13/0x20 [ 221.024007] [] _raw_spin_lock+0x45/0x78 [ 221.024007] [] spin_lock+0xe/0x10 [drm] [ 221.024007] [] drm_gem_object_lookup+0x27/0x57 [drm] [ 221.024007] [] i915_gem_do_execbuffer+0x575/0xe44 [i915] [ 221.024007] [] i915_gem_execbuffer+0x197/0x226 [i915] [ 221.024007] [] drm_ioctl+0x27c/0x348 [drm] [ 221.024007] [] do_vfs_ioctl+0x4c2/0x511 [ 221.024007] [] sys_ioctl+0x47/0x6a [ 221.024007] [] system_call_fastpath+0x16/0x1b [ 221.024007] [ 221.024007] other info that might help us debug this: [ 221.024007] [ 221.024007] 7 locks held by X/2091: [ 221.024007] #0: (&dev->struct_mutex){+.+.+.}, at: [] i915_gem_do_execbuffer+0xde6/0xe44 [i915] [ 221.024007] #1: (&(&file_private->table_lock)->rlock){+.+...}, at: [] spin_lock+0xe/0x10 [drm] [ 221.024007] #2: (&tid_agg_rx->reorder_timer){+.-...}, at: [] run_timer_softirq+0x1b2/0x34b [ 221.024007] #3: (rcu_read_lock){.+.+..}, at: [] sta_rx_agg_reorder_timer_expired+0x0/0x9c [mac80211] [ 221.024007] #4: (&(&sta->lock)->rlock){+.-...}, at: [] sta_rx_agg_reorder_timer_expired+0x61/0x9c [mac80211] [ 221.024007] #5: (rcu_read_lock){.+.+..}, at: [] rcu_read_lock+0x0/0x3a [ 221.024007] #6: (rcu_read_lock){.+.+..}, at: [] ip_local_deliver+0x6e/0x1c0 [ 221.024007] [ 221.024007] stack backtrace: [ 221.024007] Pid: 2091, comm: X Not tainted 2.6.36-rc3-next-20100903+ #65 [ 221.024007] Call Trace: [ 221.024007] [] print_circular_bug+0xa8/0xb6 [ 221.024007] [] __lock_acquire+0xa2c/0xd23 [ 221.024007] [] ? native_sched_clock+0x2d/0x5f [ 221.024007] [] ? tcp_v4_rcv+0x290/0x6b7 [ 221.024007] [] lock_acquire+0xe6/0x113 [ 221.024007] [] ? tcp_v4_rcv+0x290/0x6b7 [ 221.024007] [] _raw_spin_lock_nested+0x43/0x76 [ 221.024007] [] ? tcp_v4_rcv+0x290/0x6b7 [ 221.024007] [] tcp_v4_rcv+0x290/0x6b7 [ 221.024007] [] ? ip_local_deliver+0x6e/0x1c0 [ 221.024007] [] ip_local_deliver+0x130/0x1c0 [ 221.024007] [] ? ip_local_deliver+0x6e/0x1c0 [ 221.024007] [] ip_rcv+0x4d9/0x519 [ 221.024007] [] __netif_receive_skb+0x292/0x2bf [ 221.024007] [] netif_receive_skb+0x6c/0x73 [ 221.024007] [] ? _raw_spin_unlock_irqrestore+0x69/0x77 [ 221.024007] [] ? test_sta_flags+0x38/0x42 [mac80211] [ 221.024007] [] ieee80211_deliver_skb+0xcb/0x100 [mac80211] [ 221.024007] [] ieee80211_rx_handlers+0xe7e/0x15f8 [mac80211] [ 221.024007] [] ? _raw_spin_unlock_irqrestore+0x47/0x77 [ 221.024007] [] ? native_sched_clock+0x2d/0x5f [ 221.024007] [] ? sched_clock+0x9/0xd [ 221.024007] [] ? ieee80211_release_reorder_timeout+0xc7/0xe3 [mac80211] [ 221.024007] [] ? sched_clock_cpu+0xc3/0xce [ 221.024007] [] ? local_clock+0x41/0x5a [ 221.024007] [] ? lock_release_holdtime+0x141/0x146 [ 221.024007] [] ieee80211_release_reorder_timeout+0xd3/0xe3 [mac80211] [ 221.024007] [] ? sta_rx_agg_reorder_timer_expired+0x61/0x9c [mac80211] [ 221.024007] [] ? _raw_spin_lock+0x71/0x78 [ 221.024007] [] sta_rx_agg_reorder_timer_expired+0x6c/0x9c [mac80211] [ 221.024007] [] ? sta_rx_agg_reorder_timer_expired+0x0/0x9c [mac80211] [ 221.024007] [] run_timer_softirq+0x24c/0x34b [ 221.024007] [] ? run_timer_softirq+0x1b2/0x34b [ 221.024007] [] ? __run_hrtimer+0x11c/0x14b [ 221.024007] [] ? sta_rx_agg_reorder_timer_expired+0x0/0x9c [mac80211] [ 221.024007] [] ? __do_softirq+0x87/0x1fe [ 221.024007] [] __do_softirq+0x119/0x1fe [ 221.024007] [] ? tick_dev_program_event+0x3c/0xfc [ 221.024007] [] ? tick_program_event+0x2a/0x2c [ 221.024007] [] ? spin_lock+0xe/0x10 [drm] [ 221.024007] [] call_softirq+0x1c/0x30 [ 221.024007] [] do_softirq+0x4b/0xa3 [ 221.024007] [] irq_exit+0x4a/0x9f [ 221.024007] [] smp_apic_timer_interrupt+0x85/0x93 [ 221.024007] [] apic_timer_interrupt+0x13/0x20 [ 221.024007] [] ? lock_acquire+0xff/0x113 [ 221.024007] [] ? spin_lock+0xe/0x10 [drm] [ 221.024007] [] _raw_spin_lock+0x45/0x78 [ 221.024007] [] ? spin_lock+0xe/0x10 [drm] [ 221.024007] [] ? _raw_spin_unlock+0x43/0x51 [ 221.024007] [] spin_lock+0xe/0x10 [drm] [ 221.024007] [] drm_gem_object_lookup+0x27/0x57 [drm] [ 221.024007] [] i915_gem_do_execbuffer+0x575/0xe44 [i915] [ 221.024007] [] ? might_fault+0x68/0xb8 [ 221.024007] [] ? might_fault+0xb1/0xb8 [ 221.024007] [] ? might_fault+0x68/0xb8 [ 221.024007] [] i915_gem_execbuffer+0x197/0x226 [i915] [ 221.024007] [] drm_ioctl+0x27c/0x348 [drm] [ 221.024007] [] ? i915_gem_execbuffer+0x0/0x226 [i915] [ 221.024007] [] do_vfs_ioctl+0x4c2/0x511 [ 221.024007] [] ? fsnotify_access+0x66/0x6e [ 221.024007] [] ? sysret_check+0x2e/0x69 [ 221.024007] [] sys_ioctl+0x47/0x6a [ 221.024007] [] system_call_fastpath+0x16/0x1b -- Lei Ming