From: Felix Fietkau Date: Tue, 18 Jun 2013 22:23:38 +0000 (+0000) Subject: linux-3.8: backport a leds-gpio.c crash fix (fixes #13721) X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=commitdiff_plain;h=cbc84802aa2065123d587be86d0e05f8a8272e19 linux-3.8: backport a leds-gpio.c crash fix (fixes #13721) Signed-off-by: Felix Fietkau SVN-Revision: 36968 --- diff --git a/target/linux/generic/patches-3.8/040-backport_led_gpio_request_fix.patch b/target/linux/generic/patches-3.8/040-backport_led_gpio_request_fix.patch new file mode 100644 index 0000000000..b00d813840 --- /dev/null +++ b/target/linux/generic/patches-3.8/040-backport_led_gpio_request_fix.patch @@ -0,0 +1,25 @@ +--- a/drivers/leds/leds-gpio.c ++++ b/drivers/leds/leds-gpio.c +@@ -107,6 +107,10 @@ static int create_gpio_led(const struct + return 0; + } + ++ ret = devm_gpio_request(parent, template->gpio, template->name); ++ if (ret < 0) ++ return ret; ++ + led_dat->cdev.name = template->name; + led_dat->cdev.default_trigger = template->default_trigger; + led_dat->gpio = template->gpio; +@@ -126,10 +130,7 @@ static int create_gpio_led(const struct + if (!template->retain_state_suspended) + led_dat->cdev.flags |= LED_CORE_SUSPENDRESUME; + +- ret = devm_gpio_request_one(parent, template->gpio, +- (led_dat->active_low ^ state) ? +- GPIOF_OUT_INIT_HIGH : GPIOF_OUT_INIT_LOW, +- template->name); ++ ret = gpio_direction_output(led_dat->gpio, led_dat->active_low ^ state); + if (ret < 0) + return ret; +