Return-path: Received: from smtp1.linux-foundation.org ([140.211.169.13]:56072 "EHLO smtp1.linux-foundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755835Ab0IHWlG (ORCPT ); Wed, 8 Sep 2010 18:41:06 -0400 Date: Wed, 8 Sep 2010 15:40:47 -0700 From: Andrew Morton To: Ming Lei Cc: linux-wireless@vger.kernel.org, Linux Kernel Mailing List , netdev@vger.kernel.org Subject: Re: lockdep warning in ieee80211 rx path Message-Id: <20100908154047.d5f9d02b.akpm@linux-foundation.org> In-Reply-To: References: Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Sender: linux-wireless-owner@vger.kernel.org List-ID: On Sun, 5 Sep 2010 17:32:26 +0800 Ming Lei wrote: > 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] ------------------------------------------------------- Is this a regression? Was 2.6.35 OK? Thanks. > [ 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 >