From 270c3957dbc5bedf093dc864840be0cc6dbda1f6 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Mon, 20 Oct 2008 23:16:17 +0100 Subject: leds: Fix trigger registration race Fix a race during trigger registration where we could try and use a lock before it was initialised. Signed-off-by: Richard Purdie --- drivers/leds/led-class.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'drivers/leds') diff --git a/drivers/leds/led-class.c b/drivers/leds/led-class.c index 5db86c29fe6..6c4a326176d 100644 --- a/drivers/leds/led-class.c +++ b/drivers/leds/led-class.c @@ -110,6 +110,9 @@ int led_classdev_register(struct device *parent, struct led_classdev *led_cdev) if (rc) goto err_out; +#ifdef CONFIG_LEDS_TRIGGERS + init_rwsem(&led_cdev->trigger_lock); +#endif /* add to the list of leds */ down_write(&leds_list_lock); list_add_tail(&led_cdev->node, &leds_list); @@ -118,8 +121,6 @@ int led_classdev_register(struct device *parent, struct led_classdev *led_cdev) led_update_brightness(led_cdev); #ifdef CONFIG_LEDS_TRIGGERS - init_rwsem(&led_cdev->trigger_lock); - rc = device_create_file(led_cdev->dev, &dev_attr_trigger); if (rc) goto err_out_led_list; -- cgit v1.2.3-70-g09d2