summaryrefslogtreecommitdiffstats
path: root/drivers/led
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2013-01-14 13:39:16 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2013-01-14 13:39:20 +0100
commit50da59975f32e46d1208a348dbfa52849f602ecd (patch)
tree14e1f150933fe74866686c6ae811f3248caa36d0 /drivers/led
parent1431f4a7fc315553628b5f762abcc7b8e16e7159 (diff)
downloadbarebox-50da59975f32e46d1208a348dbfa52849f602ecd.tar.gz
barebox-50da59975f32e46d1208a348dbfa52849f602ecd.tar.xz
led: test for led->set callback before calling it
Registering a LED can fail. If someone calls led_set for such a LED no set function will be there. Fail gracefully in this case. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/led')
-rw-r--r--drivers/led/core.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/led/core.c b/drivers/led/core.c
index 46123bc34f..8537aa15ea 100644
--- a/drivers/led/core.c
+++ b/drivers/led/core.c
@@ -106,6 +106,9 @@ int led_set(struct led *led, unsigned int value)
if (value > led->max_value)
value = led->max_value;
+ if (!led->set)
+ return -ENODEV;
+
led->set(led, value);
return 0;