mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-28 05:24:47 +08:00
staging: greybus: fix get_channel_from_mode() failure path
The get_channel_from_mode() function is supposed to return the channel
which matches the mode. But it has a bug where if it doesn't find a
matching channel then it returns the last channel. It should return
NULL instead.
Also remove an unnecessary NULL check on "channel".
Fixes: 2870b52bae
("greybus: lights: add lights implementation")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Reviewed-by: Rui Miguel Silva <rmfrfs@gmail.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Link: https://lore.kernel.org/r/379c0cb4-39e0-4293-8a18-c7b1298e5420@moroto.mountain
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
4d44ea3a61
commit
34164202a5
@ -100,15 +100,15 @@ static struct led_classdev *get_channel_cdev(struct gb_channel *channel)
|
||||
static struct gb_channel *get_channel_from_mode(struct gb_light *light,
|
||||
u32 mode)
|
||||
{
|
||||
struct gb_channel *channel = NULL;
|
||||
struct gb_channel *channel;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < light->channels_count; i++) {
|
||||
channel = &light->channels[i];
|
||||
if (channel && channel->mode == mode)
|
||||
break;
|
||||
if (channel->mode == mode)
|
||||
return channel;
|
||||
}
|
||||
return channel;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static int __gb_lights_flash_intensity_set(struct gb_channel *channel,
|
||||
|
Loading…
Reference in New Issue
Block a user