leds: Fix BUG_ON check for LED_COLOR_ID_MULTI that is always false
authorMarek Behún <kabel@kernel.org>
Tue, 1 Aug 2023 15:16:23 +0000 (17:16 +0200)
committerLee Jones <lee@kernel.org>
Thu, 17 Aug 2023 10:26:36 +0000 (11:26 +0100)
At the time we call
    BUG_ON(props.color == LED_COLOR_ID_MULTI);
the props variable is still initialized to zero.

Call the BUG_ON only after we parse fwnode into props.

Fixes: 77dce3a22e89 ("leds: disallow /sys/class/leds/*:multi:* for now")
Signed-off-by: Marek Behún <kabel@kernel.org>
Link: https://lore.kernel.org/r/20230801151623.30387-1-kabel@kernel.org
Signed-off-by: Lee Jones <lee@kernel.org>
drivers/leds/led-core.c

index b9b1295..04f9ea6 100644 (file)
@@ -474,15 +474,15 @@ int led_compose_name(struct device *dev, struct led_init_data *init_data,
        struct fwnode_handle *fwnode = init_data->fwnode;
        const char *devicename = init_data->devicename;
 
-       /* We want to label LEDs that can produce full range of colors
-        * as RGB, not multicolor */
-       BUG_ON(props.color == LED_COLOR_ID_MULTI);
-
        if (!led_classdev_name)
                return -EINVAL;
 
        led_parse_fwnode_props(dev, fwnode, &props);
 
+       /* We want to label LEDs that can produce full range of colors
+        * as RGB, not multicolor */
+       BUG_ON(props.color == LED_COLOR_ID_MULTI);
+
        if (props.label) {
                /*
                 * If init_data.devicename is NULL, then it indicates that