Re: [PATCH] Staging: leds: replace divide condition 'shift / 16' with 'shift >= 16'

From: Lee Jones
Date: Wed Oct 09 2024 - 09:38:27 EST


Staging! Why Staging?

On Sun, 22 Sep 2024, Dipendra Khadka wrote:

> Smatch reported following:
> '''
> drivers/leds/leds-bcm6328.c:116 bcm6328_led_mode() warn: replace divide condition 'shift / 16' with 'shift >= 16'
> drivers/leds/leds-bcm6328.c:360 bcm6328_led() warn: replace divide condition 'shift / 16' with 'shift >= 16'
> '''
> Replacing 'shift / 16' with 'shift >= 16'.

More info please.

- What is the current problem you're attempting to solve?
- How does this patch help with that?
- What are the consequences for not applying this fix?

> Signed-off-by: Dipendra Khadka <kdipendra88@xxxxxxxxx>
> ---
> drivers/leds/leds-bcm6328.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/leds/leds-bcm6328.c b/drivers/leds/leds-bcm6328.c
> index 246f1296ab09..13f535ccba0b 100644
> --- a/drivers/leds/leds-bcm6328.c
> +++ b/drivers/leds/leds-bcm6328.c
> @@ -113,7 +113,7 @@ static void bcm6328_led_mode(struct bcm6328_led *led, unsigned long value)
> unsigned long val, shift;
>
> shift = bcm6328_pin2shift(led->pin);
> - if (shift / 16)
> + if (shift >= 16)
> mode = led->mem + BCM6328_REG_MODE_HI;
> else
> mode = led->mem + BCM6328_REG_MODE_LO;
> @@ -357,7 +357,7 @@ static int bcm6328_led(struct device *dev, struct device_node *nc, u32 reg,
> break;
> case LEDS_DEFSTATE_KEEP:
> shift = bcm6328_pin2shift(led->pin);
> - if (shift / 16)
> + if (shift >= 16)
> mode = mem + BCM6328_REG_MODE_HI;
> else
> mode = mem + BCM6328_REG_MODE_LO;
> --
> 2.43.0
>
>

--
Lee Jones [李琼斯]