mac80211: cancel restart_work explicitly instead of depending on flush_scheduled_work()
PATCH 1/1 mac80211: cancel restart_work explicitly instead of depending on flush_scheduled_work()
iee80211_hw->restart_work is the only work which uses the system workqueue. Instead of calling flush_scheduled_work() during iee80211_exit(), cancel the work during unregistration.
This is to prepare for the deprecation and removal of flush_scheduled_work().
--- net/mac80211/main.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-)
net/mac80211/main.c +2 -7
@@ -606,7 +606,7 @@ int ieee80211_register_hw(struct ieee802 hw->queues =IEEE80211_MAX_QUEUES ; local->workqueue = -create_singlethread_workqueue (wiphy_name (local->hw.wiphy)); +alloc_ordered_workqueue (wiphy_name (local->hw.wiphy),0 );if (!local->workqueue) { result = -ENOMEM ; goto fail_workqueue;
@@ -739,6 +739,7 @@ void ieee80211_unregister_hw(struct ieeedel_timer_sync (&local->work_timer);cancel_work_sync (&local->reconfig_filter); +cancel_work_sync (&local->restart_work);ieee80211_clear_tx_pending (local);sta_info_stop (local);
@@ -812,12 +813,6 @@ static void __exit ieee80211_exit(void)rc80211_minstrel_ht_exit ();rc80211_minstrel_exit (); -/* -* For key todo, it'll be empty by now but the work -* might still be scheduled. -*/ -flush_scheduled_work (); -if (mesh_allocated)ieee80211s_stop ();
Johannes Berg
maintainerQuoted 2 lines
- create_singlethread_workqueue(wiphy_name(local->hw.wiphy)); +
alloc_ordered_workqueue(wiphy_name(local->hw.wiphy), 0);
no description for this change?
Quoted 5 lines
- /*
- * For key todo, it'll be empty by now but the work - * might still be scheduled. - */-
flush_scheduled_work();
oops, todo work no longer exists...
Anyway, ACK.
Johannes
(sent on my cell phone)
Hello,
Quoted 4 lines · Johannes Berg
net/mac80211/main.c int ieee80211_register_hw(struct ieee802 · line 609
Quoted 2 lines
net/mac80211/main.c +1
-1-create_singlethread_workqueue (wiphy_name (local->hw.wiphy)); +alloc_ordered_workqueue (wiphy_name (local->hw.wiphy),0 );no description for this change?
Oops, right. create_*workqueue() interfaces are being replaced by alloc_*workqueue(). It's part of the workqueue interface update.
Quoted 9 lines
net/mac80211/main.c static void __exit ieee80211_exit(void) · line 819
Quoted 5 lines
net/mac80211/main.c +0
-5-/* -* For key todo, it'll be empty by now but the work -* might still be scheduled. -*/ -flush_scheduled_work ();oops, todo work no longer exists...
Anyway, ACK.
Are you going to route this through wireless tree? Shall I repost with update patch description?
Thank you.
Signature · 1 line
tejun
Quoted 8 lines · On Friday 15 October 2010 18:39:37 Tejun Heo wrote:
Hello,
Quoted 6 lines
Quoted 5 lines
net/mac80211/main.c +0
-5-/* -* For key todo, it'll be empty by now but the work -* might still be scheduled. -*/ -flush_scheduled_work ();
Quoted 6 lines
Quoted 3 lines
oops, todo work no longer exists...
Anyway, ACK.
Are you going to route this through wireless tree? Shall I repost with update patch description?
wireless-testing/wireless-next has already such a patch:
"mac80211: cancel restart_work in ieee80211_unregister_hw" (2010-08-25)
John, can you please push to 2.6.36-rc8?
(I know, I am _late_, but I didn't know about any potential problem in the mainline?)
Best regards,
Chr
Quoted 16 lines · Christian Lamparter
Quoted 8 lines · On Friday 15 October 2010 18:39:37 Tejun Heo wrote:
Hello,
Quoted 6 lines
Quoted 5 lines
net/mac80211/main.c +0
-5-/* -* For key todo, it'll be empty by now but the work -* might still be scheduled. -*/ -flush_scheduled_work ();Quoted 6 lines
Quoted 3 lines
oops, todo work no longer exists...
Anyway, ACK.
Are you going to route this through wireless tree? Shall I repost with update patch description?
Quoted 8 lines
wireless-testing/wireless-next has already such a patch:
"mac80211: cancelrestart_workinieee80211_unregister_hw" (2010-08-25)John, can you please push to 2.6.36-rc8?
(I know, I am _late_, but I didn't know about any potential problem in the mainline?)
I don't see how either patch would merit inclusion in 2.6.36 at this point.
John
Signature · 2 lines
John W. Linville Someday the world will need a hero, and you [email protected] might be all we have. Be ready.
Hello,
Quoted 10 lines · John W. Linville
Quoted 8 lines
wireless-testing/wireless-next has already such a patch:
"mac80211: cancelrestart_workinieee80211_unregister_hw" (2010-08-25)John, can you please push to 2.6.36-rc8?
(I know, I am _late_, but I didn't know about any potential problem in the mainline?)I don't see how either patch would merit inclusion in 2.6.36 at this point.
My patch definitely was aimed for 2.6.37-rc1 or later. I'm not sure whether the cancel_work_sync() is a bug fix or not but if it hasn't actually triggered yet, I guess leaving it as-is isn't too bad at this point.
Thanks.
Signature · 1 line
tejun
Quoted 8 lines · On Friday 15 October 2010 21:33:20 Tejun Heo wrote:
Hello,
Quoted 5 lines · John W. Linville
Quoted 5 lines
wireless-testing/wireless-next has already such a patch:
"mac80211: cancelrestart_workinieee80211_unregister_hw" (2010-08-25)
Quoted 7 lines
Quoted 5 lines
Quoted 3 lines
John, can you please push to 2.6.36-rc8?
(I know, I am _late_, but I didn't know about any potential problem in the mainline?)I don't see how either patch would merit inclusion in 2.6.36 at this point.
My patch definitely was aimed for 2.6.37-rc1 or later.
Oh, so the "[PATCH v2.6.36-rc7]" in the patch subject was just "misleading" me. no-one could have known that there would be a 2.6.36-rc8 release.
John, please ignore my previous request of pushing the patch into 2.6.36 ;).
Regards,
Chr
Hello,
Quoted 1 line · Christian Lamparter
Oh, so the "[PATCH v2.6.36-rc7]" in the patch subject was just "misleading" me.
Ah, sorry about that. I usually tag them with the version tag the patch was generated against, not the target version. Now that I think about it, it could definitely be confusing. I'll try to be clearer.
Thanks.
Signature · 1 line
tejun