All of lore.kernel.org
 help / color / mirror / Atom feed
* mac80211: workqueue & RTNL lock
@ 2008-06-22 22:42 Ivo van Doorn
  2008-06-22 22:30 ` Michael Buesch
  0 siblings, 1 reply; 11+ messages in thread
From: Ivo van Doorn @ 2008-06-22 22:42 UTC (permalink / raw)
  To: linux-wireless; +Cc: Johannes Berg

Hi,

I am currently looking at a rt2x00 regression in 2.6.26-rcX
	http://bugzilla.kernel.org/process_bug.cgi

This regression is  caused by a circular locking problem
(see http://bugzilla.kernel.org/attachment.cgi?id=16581)

The problem seems be caused by rt2x00 using ieee80211_iterate_active_interfaces()
within the workqueue as provided by mac80211. But this will trigger the
circular dependency when 'ifdown' is called. If I am not mistaken,
'ifdown' will grab the rtnl lock and ieee80211_stop() is called.
That function calls flush_workqueue() which cannot succeed because it will wait
on a thread that is also trying to grab the rtnl lock.

Possible solution would be making rt2x00 use its own workqueue, but
that will cause similar problems since it can't use flush either it could however
use flags to prevent ieee80211_iterate_active_interfaces() being called.

However it does mean that a solution for the mac80211 workqueue also has to
be found, since rt2x00 isn't the only use of the mac80211 workqueue,
but currently is the only one who uses it in combination with
ieee80211_iterate_active_interfaces().
And apparently those 2 cannot be combined. :S

Ivo

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2008-06-24  9:33 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-06-22 22:42 mac80211: workqueue & RTNL lock Ivo van Doorn
2008-06-22 22:30 ` Michael Buesch
2008-06-23  8:30   ` Ivo Van Doorn
2008-06-23  9:20     ` Michael Buesch
2008-06-23 11:17       ` Ivo Van Doorn
2008-06-24  8:51         ` Johannes Berg
2008-06-24  9:03           ` Ivo Van Doorn
2008-06-24  9:10             ` Johannes Berg
2008-06-24  9:20               ` Ivo Van Doorn
2008-06-24  9:28                 ` Johannes Berg
2008-06-24  9:33                   ` Ivo Van Doorn

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.