leds: Fix led trigger locking bugs

Convert part of the led trigger core from rw spinlocks to rw
semaphores. We're calling functions which can sleep from invalid
contexts otherwise. Fixes bug #9264.

Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
This commit is contained in:
Richard Purdie
2007-11-10 13:29:04 +00:00
parent f194d132e4
commit dc47206e55
3 changed files with 30 additions and 28 deletions

View File

@ -14,6 +14,7 @@
#include <linux/list.h>
#include <linux/spinlock.h>
#include <linux/rwsem.h>
struct device;
/*
@ -43,7 +44,7 @@ struct led_classdev {
#ifdef CONFIG_LEDS_TRIGGERS
/* Protects the trigger data below */
rwlock_t trigger_lock;
struct rw_semaphore trigger_lock;
struct led_trigger *trigger;
struct list_head trig_list;