On Sunday 28 October 2007 23:37:10 David Ellingsworth wrote:
> > From: [EMAIL PROTECTED]> To: [EMAIL PROTECTED]> Subject: [PATCH] b43: Fix 
> > rfkill callback deadlock> Date: Sun, 28 Oct 2007 17:27:10 +0100> CC: [EMAIL 
> > PROTECTED]; bcm43xx-dev@lists.berlios.de; [EMAIL PROTECTED]> > wl->mutex 
> > might already be locked on initialization.> > Signed-off-by: Michael Buesch 
> > <[EMAIL PROTECTED]>> > Index: 
> > wireless-2.6/drivers/net/wireless/b43/rfkill.c> 
> > ===================================================================> --- 
> > wireless-2.6.orig/drivers/net/wireless/b43/rfkill.c 2007-10-27 
> > 13:28:16.000000000 +0200> +++ 
> > wireless-2.6/drivers/net/wireless/b43/rfkill.c 2007-10-28 
> > 17:13:55.000000000 +0100> @@ -61,15 +61,22 @@ static void 
> > b43_rfkill_poll(struct input> mutex_unlock(&wl->mutex);> }> > -/* Called 
> > when the RFKILL toggled in software.> - * This is called without locking. 
> > */> +/* Called when the RFKILL toggled in software. */> static int 
> > b43_rfkill_soft_toggle(void *data, enum rfkill_state state)> {> struct 
> > b43_wldev *dev = data;> struct b43_wl *wl = dev->wl;> int err = 0;> > - 
> > mutex_lock(&wl->mutex);> + /* When RFKILL is registered, it will call back 
> > into this callback.> + * wl->mutex will already be locked when this 
> > happens.> + * So first trylock. On contention check if we are in 
> > initialization.> + * Silently return if that happens to avoid a deadlock. 
> > */> + if (mutex_trylock(&wl->mutex) == 0) {> + if (b43_status(dev) < 
> > B43_STAT_INITIALIZED)> + return 0;> + mutex_lock(&wl->mutex);> + }> if 
> > (b43_status(dev) < B43_STAT_INITIALIZED)> goto out_unlock;
> Why not replace the above lines up to and including "- 
> mutex_loc(&wl->mutext);" with:
>  
> if(b43_status(dev) < B43_STAT_INITIALIZED)
>     return 0;
>  
> mutex_lock(&wl->mutex)> > @@ -89,7 +96,6 @@ static int 
> b43_rfkill_soft_toggle(void *> b43_radio_turn_off(dev, 0);> break;> }> -> 
> out_unlock:> mutex_unlock(&wl->mutex);> > 
> _______________________________________________> Bcm43xx-dev mailing list> 
> Bcm43xx-dev@lists.berlios.de> 
> https://lists.berlios.de/mailman/listinfo/bcm43xx-dev
> _________________________________________________________________
> Boo! Scare away worms, viruses and so much more! Try Windows Live OneCare!
> http://onecare.live.com/standard/en-us/purchase/trial.aspx?s_cid=wl_hotmailnews

I'm sorry. Your mailer completely fucked up the context
so I'm not really able to see what you want to tell me.

-- 
Greetings Michael.
_______________________________________________
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev

Reply via email to