On Sunday 16 December 2007 21:43:19 Richard Purdie wrote: > On Sun, 2007-12-16 at 21:38 +0100, Johannes Berg wrote: > > > > drivers/leds/led-triggers.c:led_trigger_register: > > > > > > > > | read_lock(&leds_list_lock); > > > > | list_for_each_entry(led_cdev, &leds_list, node) { > > > > | down_write(&led_cdev->trigger_lock); > > > > > > > > introduced in > > > > > > > > commit dc47206e552c0850ad11f7e9a1fca0a3c92f5d65 > > > > Author: Richard Purdie <rpurdie@xxxxxxxxx> > > > > Date: Sat Nov 10 13:29:04 2007 +0000 > > > > > > > > leds: Fix led trigger locking bugs > > > > > > > > I guess the read_lock needs to be a mutex/rw semaphore. > > > > > > Uh, yes. Was this patch tested at all? > > > > Not with default triggers, I guess. The code in question only triggers > > when a default is assigned to any LED I think. > > Amongst other things it was tested on the Zaurus which has default > triggers. What is the problem you're seeing? You are scheduling (down_write) while holding a spinlock (leds_list_lock). -- Greetings Michael. - To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html