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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 13 Sep 2023 07:42:58 +0000 (09:42 +0200)
[ Upstream commit c3f853184bed04105682383c2971798c572226b5 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/leds/led-core.c

index 4a97cb7457888c6dd3c265985548163209f8d647..aad8bc44459fe7134b714c2e448f5ef7375f0f44 100644 (file)
@@ -419,15 +419,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