* [PATCH] softmac: Fix deadlock of wx_set_essid with assoc work
@ 2007-08-07 10:02 Michael Buesch
2007-08-07 10:18 ` Michael Buesch
0 siblings, 1 reply; 5+ messages in thread
From: Michael Buesch @ 2007-08-07 10:02 UTC (permalink / raw)
To: Greg KH
Cc: stable, John W. Linville, Johannes Berg, David Woodhouse,
linux-wireless
The essid wireless extension does deadlock against the assoc mutex,
as we don't unlock the assoc mutex.
Signed-off-by: Michael Buesch <mb@bu3sch.de>
--
This is included in John's wireless-2.6 tree.
This doesn't fix the whole issue completely, as we shouldn't
flush the workqueue while we are holding the rtnl lock.
But, it turns this bug from a "will 100% always deadlock" into
a "it might deadlock" bug.
A followup patch will come (if someone has some time to do so)
to fix this crap code completely.
Index: bu3sch-wireless-dev/net/ieee80211/softmac/ieee80211softmac_wx.c
===================================================================
--- bu3sch-wireless-dev.orig/net/ieee80211/softmac/ieee80211softmac_wx.c 2007-03-05 18:42:18.000000000 +0100
+++ bu3sch-wireless-dev/net/ieee80211/softmac/ieee80211softmac_wx.c 2007-07-31 14:51:46.000000000 +0200
@@ -98,9 +98,12 @@ ieee80211softmac_wx_set_essid(struct net
cancel_delayed_work(&authptr->work);
sm->associnfo.bssvalid = 0;
sm->associnfo.bssfixed = 0;
- flush_scheduled_work();
sm->associnfo.associating = 0;
sm->associnfo.associated = 0;
+ /* Unlock mutex, otherwise we deadlock with the assoc work handler. */
+ mutex_unlock(&sm->associnfo.mutex);
+ flush_scheduled_work();
+ mutex_lock(&sm->associnfo.mutex);
}
}
--
Greetings Michael.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] softmac: Fix deadlock of wx_set_essid with assoc work
2007-08-07 10:02 [PATCH] softmac: Fix deadlock of wx_set_essid with assoc work Michael Buesch
@ 2007-08-07 10:18 ` Michael Buesch
0 siblings, 0 replies; 5+ messages in thread
From: Michael Buesch @ 2007-08-07 10:18 UTC (permalink / raw)
To: Greg KH
Cc: stable, John W. Linville, Johannes Berg, David Woodhouse,
linux-wireless
On Tuesday 07 August 2007 12:02:58 Michael Buesch wrote:
> The essid wireless extension does deadlock against the assoc mutex,
> as we don't unlock the assoc mutex.
>
> Signed-off-by: Michael Buesch <mb@bu3sch.de>
>
> --
>
> This is included in John's wireless-2.6 tree.
>
> This doesn't fix the whole issue completely, as we shouldn't
> flush the workqueue while we are holding the rtnl lock.
> But, it turns this bug from a "will 100% always deadlock" into
> a "it might deadlock" bug.
> A followup patch will come (if someone has some time to do so)
> to fix this crap code completely.
>
> Index: bu3sch-wireless-dev/net/ieee80211/softmac/ieee80211softmac_wx.c
> ===================================================================
> --- bu3sch-wireless-dev.orig/net/ieee80211/softmac/ieee80211softmac_wx.c 2007-03-05 18:42:18.000000000 +0100
> +++ bu3sch-wireless-dev/net/ieee80211/softmac/ieee80211softmac_wx.c 2007-07-31 14:51:46.000000000 +0200
> @@ -98,9 +98,12 @@ ieee80211softmac_wx_set_essid(struct net
> cancel_delayed_work(&authptr->work);
> sm->associnfo.bssvalid = 0;
> sm->associnfo.bssfixed = 0;
> - flush_scheduled_work();
> sm->associnfo.associating = 0;
> sm->associnfo.associated = 0;
> + /* Unlock mutex, otherwise we deadlock with the assoc work handler. */
> + mutex_unlock(&sm->associnfo.mutex);
> + flush_scheduled_work();
> + mutex_lock(&sm->associnfo.mutex);
> }
> }
>
>
>
Whoops, no. I attached the wrong patch. Sorry!
--
Greetings Michael.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] softmac: Fix deadlock of wx_set_essid with assoc work
@ 2007-07-31 12:57 Michael Buesch
2007-07-31 15:01 ` David Woodhouse
0 siblings, 1 reply; 5+ messages in thread
From: Michael Buesch @ 2007-07-31 12:57 UTC (permalink / raw)
To: David Woodhouse; +Cc: linux-wireless, John Linville
The essid wireless extension does deadlock against the assoc mutex,
as we don't unlock the assoc mutex.
Signed-off-by: Michael Buesch <mb@bu3sch.de>
--
David, please test if this fixes your deadlock.
Index: bu3sch-wireless-dev/net/ieee80211/softmac/ieee80211softmac_wx.c
===================================================================
--- bu3sch-wireless-dev.orig/net/ieee80211/softmac/ieee80211softmac_wx.c 2007-03-05 18:42:18.000000000 +0100
+++ bu3sch-wireless-dev/net/ieee80211/softmac/ieee80211softmac_wx.c 2007-07-31 14:51:46.000000000 +0200
@@ -98,9 +98,12 @@ ieee80211softmac_wx_set_essid(struct net
cancel_delayed_work(&authptr->work);
sm->associnfo.bssvalid = 0;
sm->associnfo.bssfixed = 0;
- flush_scheduled_work();
sm->associnfo.associating = 0;
sm->associnfo.associated = 0;
+ /* Unlock mutex, otherwise we deadlock with the assoc work handler. */
+ mutex_unlock(&sm->associnfo.mutex);
+ flush_scheduled_work();
+ mutex_lock(&sm->associnfo.mutex);
}
}
--
Greetings Michael.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] softmac: Fix deadlock of wx_set_essid with assoc work
2007-07-31 12:57 Michael Buesch
@ 2007-07-31 15:01 ` David Woodhouse
2007-07-31 18:16 ` Michael Buesch
0 siblings, 1 reply; 5+ messages in thread
From: David Woodhouse @ 2007-07-31 15:01 UTC (permalink / raw)
To: Michael Buesch; +Cc: linux-wireless, John Linville
On Tue, 2007-07-31 at 14:57 +0200, Michael Buesch wrote:
> The essid wireless extension does deadlock against the assoc mutex,
> as we don't unlock the assoc mutex.
>
> Signed-off-by: Michael Buesch <mb@bu3sch.de>
>
> --
>
> David, please test if this fixes your deadlock.
Seems to, although I'll have to leave it a few more hours before I'm
sure. Thanks.
--
dwmw2
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] softmac: Fix deadlock of wx_set_essid with assoc work
2007-07-31 15:01 ` David Woodhouse
@ 2007-07-31 18:16 ` Michael Buesch
0 siblings, 0 replies; 5+ messages in thread
From: Michael Buesch @ 2007-07-31 18:16 UTC (permalink / raw)
To: David Woodhouse; +Cc: linux-wireless, John Linville
On Tuesday 31 July 2007 17:01:00 David Woodhouse wrote:
> On Tue, 2007-07-31 at 14:57 +0200, Michael Buesch wrote:
> > The essid wireless extension does deadlock against the assoc mutex,
> > as we don't unlock the assoc mutex.
> >
> > Signed-off-by: Michael Buesch <mb@bu3sch.de>
> >
> > --
> >
> > David, please test if this fixes your deadlock.
>
> Seems to, although I'll have to leave it a few more hours before I'm
> sure. Thanks.
Ok, this is a deadlock, anyway. Even if it's not "your" deadlock. :)
So I'll build a correct patch for this (this was an incomplete
hack) and submit it.
--
Greetings Michael.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2007-08-07 10:19 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-08-07 10:02 [PATCH] softmac: Fix deadlock of wx_set_essid with assoc work Michael Buesch
2007-08-07 10:18 ` Michael Buesch
-- strict thread matches above, loose matches on Subject: below --
2007-07-31 12:57 Michael Buesch
2007-07-31 15:01 ` David Woodhouse
2007-07-31 18:16 ` Michael Buesch
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).