diff mbox

master-pending: ODEBUG: free active (active state 0) object type: timer_list hint: ath10k_htt_rx_ring_refill_retry+0x0/0x10 [ath10k_core]

Message ID 1471608887214.2763@qti.qualcomm.com (mailing list archive)
State Not Applicable
Delegated to: Kalle Valo
Headers show

Commit Message

Rajkumar Manoharan Aug. 19, 2016, 12:14 p.m. UTC
[...]
>>
>> [  277.244673] ------------[ cut here ]------------
>> [  277.244685] WARNING: CPU: 2 PID: 2162 at lib/debugobjects.c:263 debug_print_object+0x85/0xa0
>> [  277.244707] ODEBUG: free active (active state 0) object type: timer_list hint: ath10k_htt_rx_ring_refill_retry+0x0/0x10 [ath10k_core]
>
> I bisected this to:
>
> [v2] ath10k: implement NAPI support
>
> https://patchwork.kernel.org/patch/9240975/
> 
> I'll reply to that patch for more info.
> 
Oops.. my bad.. Sorry for the regression..Good that it is captured at earliest.
Thanks Kalle for reporting the issue.

It seems during deinit, driver is not waiting for NAPI completion. What debug options should be enabled to see this warning?
If possible, could you please try below change?


-Rajkumar

Comments

Kalle Valo Aug. 22, 2016, 2:22 p.m. UTC | #1
"Manoharan, Rajkumar" <rmanohar@qti.qualcomm.com> writes:

> [...]
>>>
>>> [  277.244673] ------------[ cut here ]------------
>>> [  277.244685] WARNING: CPU: 2 PID: 2162 at lib/debugobjects.c:263 debug_print_object+0x85/0xa0
>>> [  277.244707] ODEBUG: free active (active state 0) object type: timer_list hint: ath10k_htt_rx_ring_refill_retry+0x0/0x10 [ath10k_core]
>>
>> I bisected this to:
>>
>> [v2] ath10k: implement NAPI support
>>
>> https://patchwork.kernel.org/patch/9240975/
>> 
>> I'll reply to that patch for more info.
>> 
> Oops.. my bad.. Sorry for the regression..Good that it is captured at
> earliest. Thanks Kalle for reporting the issue.
>
> It seems during deinit, driver is not waiting for NAPI completion.
> What debug options should be enabled to see this warning?

I usually test with all sane[1] kernel debug infrastructure enabled. I have
attached a kernel config I use with my x86 32-bit laptop.

[1] sane == not too spammy and still keeps the laptop barely usable

> If possible, could you please try below change?
>
> diff --git a/drivers/net/wireless/ath/ath10k/pci.c b/drivers/net/wireless/ath/ath10k/pci.c
> index 33380fba5948..29fc9052e51a 100644
> --- a/drivers/net/wireless/ath/ath10k/pci.c
> +++ b/drivers/net/wireless/ath/ath10k/pci.c
> @@ -1759,6 +1759,7 @@ void ath10k_pci_ce_deinit(struct ath10k *ar)
>
>  void ath10k_pci_flush(struct ath10k *ar)
>  {
> +       napi_synchronize(&ar->napi);
>         ath10k_pci_rx_retry_sync(ar);
>         ath10k_pci_buffer_cleanup(ar);
>  }

Sorry, didn't help:

[   71.802277] NOHZ: local_softirq_pending 08
[   71.821880] ------------[ cut here ]------------
[   71.821891] WARNING: CPU: 2 PID: 1912 at lib/debugobjects.c:263 debug_print_object+0x85/0xa0
[   71.821910] ODEBUG: free active (active state 0) object type: timer_list hint: ath10k_htt_rx_ring_refill_retry+0x0/0x10 [ath10k_core]
[   71.821914] Modules linked in: ath10k_pci(E-) ath10k_core(E) ath(E) mac80211(E) cfg80211(E) arc4 snd_hda_codec_hdmi snd_hda_codec_idt snd_hda_codec_generic snd_hda_intel snd_hda_codec snd_hda_core snd_hwdep snd_pcm coretemp snd_seq_midi btusb btintel snd_rawmidi joydev btbcm btrtl in
[   71.821955] CPU: 2 PID: 1912 Comm: rmmod Tainted: G    B   W   E   4.8.0-rc2-wt-ath+ #1419
[   71.821956] Hardware name: Hewlett-Packard HP ProBook 6540b/1722, BIOS 68CDD Ver. F.04 01/27/2010
[   71.821957]  00000086 00000086 f0769c74 d64272f2 d6b27b62 f0769cbc f0769ca8 d6084305
[   71.821963]  d6b28a8c f0769cd8 00000778 d6b27b62 00000107 d64453e5 d64453e5 00000107
[   71.821968]  f07a0f78 d6c284a0 d6b03e7a f0769cc4 d60843cb 00000009 00000000 f0769cbc
[   71.821973] Call Trace:
[   71.821977]  [<d64272f2>] dump_stack+0x76/0xb4
[   71.821982]  [<d6084305>] __warn+0xe5/0x100
[   71.821984]  [<d64453e5>] ? debug_print_object+0x85/0xa0
[   71.821986]  [<d64453e5>] ? debug_print_object+0x85/0xa0
[   71.821988]  [<d60843cb>] warn_slowpath_fmt+0x3b/0x40
[   71.821990]  [<d64453e5>] debug_print_object+0x85/0xa0
[   71.822000]  [<f8e04fd0>] ? ath10k_htt_rx_msdu_buff_replenish+0x90/0x90 [ath10k_core]
[   71.822002]  [<d644572f>] __debug_check_no_obj_freed+0x14f/0x180
[   71.822004]  [<d6446075>] debug_check_no_obj_freed+0x15/0x20
[   71.822009]  [<d61c13dc>] __free_pages_ok+0x16c/0x460
[   71.822013]  [<d6070b90>] ? lookup_address+0x20/0x30
[   71.822015]  [<d61c3487>] __free_pages+0x27/0x40
[   71.822019]  [<d62202fa>] kfree+0x2ea/0x320
[   71.822022]  [<d6429cc5>] ? kobject_put+0x25/0x60
[   71.822026]  [<d60e015b>] ? trace_hardirqs_on+0xb/0x10
[   71.822054]  [<f8ef6d1c>] ? cfg80211_dev_free+0x8c/0xa0 [cfg80211]
[   71.822072]  [<f8ef6d1c>] cfg80211_dev_free+0x8c/0xa0 [cfg80211]
[   71.822090]  [<f8ef7932>] wiphy_dev_release+0x12/0x20 [cfg80211]
[   71.822094]  [<d6584971>] device_release+0x31/0xa0
[   71.822131]  [<f96fbdd7>] ? ieee80211_free_led_names+0x37/0x40 [mac80211]
[   71.822133]  [<d6220155>] ? kfree+0x145/0x320
[   71.822135]  [<d6429dfb>] kobject_cleanup+0x5b/0x1a0
[   71.822165]  [<f96fbdd7>] ? ieee80211_free_led_names+0x37/0x40 [mac80211]
[   71.822167]  [<d6429cc5>] kobject_put+0x25/0x60
[   71.822196]  [<f96fbdd7>] ? ieee80211_free_led_names+0x37/0x40 [mac80211]
[   71.822226]  [<f96fbdd7>] ? ieee80211_free_led_names+0x37/0x40 [mac80211]
[   71.822227]  [<d6584644>] put_device+0x14/0x20
[   71.822246]  [<f8ef42c2>] wiphy_free+0x12/0x20 [cfg80211]
[   71.822268]  [<f9682067>] ieee80211_free_hw+0x67/0x70 [mac80211]
[   71.822277]  [<f8dfac8a>] ath10k_mac_destroy+0x1a/0x30 [ath10k_core]
[   71.822287]  [<f8dffe2c>] ath10k_core_destroy+0x4c/0x50 [ath10k_core]
[   71.822290]  [<f8d1c969>] ath10k_pci_remove+0x79/0xa0 [ath10k_pci]
[   71.822293]  [<d6484018>] pci_device_remove+0x38/0xb0
[   71.822295]  [<d658954b>] __device_release_driver+0x7b/0x110
[   71.822297]  [<d65897e7>] driver_detach+0x97/0xa0
[   71.822298]  [<d658863b>] bus_remove_driver+0x4b/0xb0
[   71.822300]  [<d658a3da>] driver_unregister+0x2a/0x60
[   71.822302]  [<d6483038>] pci_unregister_driver+0x18/0x70
[   71.822305]  [<f8d1dd7e>] ath10k_pci_exit+0xd/0x28f [ath10k_pci]
[   71.822307]  [<d6129b14>] SyS_delete_module+0xf4/0x180
diff mbox

Patch

diff --git a/drivers/net/wireless/ath/ath10k/pci.c b/drivers/net/wireless/ath/ath10k/pci.c
index 33380fba5948..29fc9052e51a 100644
--- a/drivers/net/wireless/ath/ath10k/pci.c
+++ b/drivers/net/wireless/ath/ath10k/pci.c
@@ -1759,6 +1759,7 @@  void ath10k_pci_ce_deinit(struct ath10k *ar)

 void ath10k_pci_flush(struct ath10k *ar)
 {
+       napi_synchronize(&ar->napi);
        ath10k_pci_rx_retry_sync(ar);
        ath10k_pci_buffer_cleanup(ar);
 }