Skip to contentSkip to conversation

question about leds-88pm860x.c

DISCUSSION Dan Carpenter 1 participant 2 messages May 28, 2010 Kernel janitors

lore
Share & tools
lore
#0 lore raw

Sorry. The original email had a mangled subject line.

regards,
dan carpenter

Quoted 32 lines · Dan Carpenter

Hi,

I was going through some Smatch stuff and it complains about something in drivers/leds/leds-88pm860x.c Could you take a look at it? I'm not sure what was intended there.

drivers/leds/leds-88pm860x.c +228 __check_device(6) warn: unsigned 'p->flags' is never less than zero.
222 static int __check_device(struct pm860x_led_pdata *pdata, char *name)

   223  {
   224          struct pm860x_led_pdata *p = pdata;
   225          int ret = -EINVAL;
   226
   227          while (p && p->id) {
   228                  if ((p->id != PM8606_ID_LED) || (p->flags < 0))
                                                         ^^^^^^^^^^^^

	p->flags is an unsigned int so this condition is never true.

   229                          break;
   230
   231                  if (!strncmp(name, pm860x_led_name[p->flags],
   232                          MFD_NAME_SIZE)) {
   233                          ret = (int)p->flags;
   234                          break;
   235                  }
   236                  p++;
   237          }
   238          return ret;
   239  }

regards,
dan carpenter

#1 lore raw
Quoted 5 lines · Haojian Zhuang

Thanks for your good catch. We needn't this checking at here. Now I format this patch.

Best Regards
Haojian

Sorry, I only noticed this after I had already sent the email but __check_device() in drivers/video/backlight/88pm860x_bl.c has the same thing.

regards,
dan carpenter