Michael Buesch wrote:
> On Tuesday 27 November 2007 21:02:47 Larry Finger wrote:
> Is the switch properly polled and is the status change properly reported 
> upstream?
> If yes, you might want to check (add printk to rfkill code) if the LED
> is properly triggered.

I know that b43_rfkill_poll() is being called as I can see the ENABLED/DISABLED 
messages in the log.
I'll have to work my way through the things it calls.

> I'm wondering who causes this deadlock. "registered" should be false if
> we are called back from rfkill_initialize, so it should return early before
> the lock.

The following code has the competing lock:

static int rfkill_toggle_radio(struct rfkill *rfkill,
                                enum rfkill_state state)
{
        int retval;

        retval = mutex_lock_interruptible(&rfkill->mutex);
        if (retval)
                return retval;

        if (state != rfkill->state) {
                retval = rfkill->toggle_radio(rfkill->data, state);
                if (!retval) {
                        rfkill->state = state;
                        rfkill_led_trigger(rfkill, state);
                }
        }

        mutex_unlock(&rfkill->mutex);
        return retval;
}

Larry
_______________________________________________
Bcm43xx-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev

Reply via email to