diff mbox series

Staging: leds: replace divide condition 'shift / 16' with 'shift >= 16'

Message ID 20240922174020.49856-1-kdipendra88@gmail.com
State New
Headers show
Series Staging: leds: replace divide condition 'shift / 16' with 'shift >= 16' | expand

Commit Message

Dipendra Khadka Sept. 22, 2024, 5:40 p.m. UTC
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'.

Signed-off-by: Dipendra Khadka <kdipendra88@gmail.com>
---
 drivers/leds/leds-bcm6328.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Pavel Machek Sept. 26, 2024, 10:14 a.m. UTC | #1
On Sun 2024-09-22 17:40:19, 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'.
> 
> Signed-off-by: Dipendra Khadka <kdipendra88@gmail.com>

Reviewed-by: Pavel Machek <pavel@ucw.cz>

BR,
								Pavel
Lee Jones Oct. 9, 2024, 1:37 p.m. UTC | #2
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@gmail.com>
> ---
>  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
> 
>
Pavel Machek Oct. 11, 2024, 11:24 a.m. UTC | #3
Hi!

> 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?

Take a look at patch. Doing shift / 16 when testing on >= 16 is just
ugly. It is simple cleanup.

Reviewed-by: Pavel Machek <Pavel@ucw.cz>

Best regards,
						Pavel

> > @@ -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 Oct. 15, 2024, 9:01 a.m. UTC | #4
On Fri, 11 Oct 2024, Pavel Machek wrote:

> Hi!
> 
> > 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?
> 
> Take a look at patch. Doing shift / 16 when testing on >= 16 is just
> ugly. It is simple cleanup.

You missed the point of the comments.

Copying / pasting the warning into the subject-line and commit message
without any additional wordage is sub-optimal.  Please improve the
commit message.
Dipendra Khadka Oct. 17, 2024, 7:23 p.m. UTC | #5
Hi,

On Tue, 15 Oct 2024 at 14:46, Lee Jones <lee@kernel.org> wrote:
>
> On Fri, 11 Oct 2024, Pavel Machek wrote:
>
> > Hi!
> >
> > > 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?
> >
> > Take a look at patch. Doing shift / 16 when testing on >= 16 is just
> > ugly. It is simple cleanup.
>
> You missed the point of the comments.
>
> Copying / pasting the warning into the subject-line and commit message
> without any additional wordage is sub-optimal.  Please improve the
> commit message.
>

Sure, I will send a v2 for this.

> --
> Lee Jones [李琼斯]

Best regards,
Dipendra Khadka
diff mbox series

Patch

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;