[PATCH v3 1/4] auxdisplay: Add 7-segment LED display driver

Chris Packham Chris.Packham at alliedtelesis.co.nz
Sun Mar 3 11:58:06 PST 2024


On 2/03/24 07:18, Andy Shevchenko wrote:
>> +static void seg_led_update(struct work_struct *work)
>> +{
>> +	struct seg_led_priv *priv = container_of(work, struct seg_led_priv,http://scanmail.trustwave.com/?c=20988&d=iZzi5b3S-TQCft9iEXDE69U9UtY0-7GANk9t1WkCxg&u=http%3a%2f%2fwork%2ework%29%3b
>> +	struct linedisp *linedisp = &priv->linedisp;
>> +	struct linedisp_map *map = linedisp->map;
>> +	DECLARE_BITMAP(values, 8);
>> +	bitmap_zero(values, 8);
> Why do you need this zeroing?
>
>> +	bitmap_set_value8(values, map_to_seg7(&map->map.seg7, linedisp->buf[0]), 0);
>> +
Without the zeroing above GCC complains about use  of a potentially 
uninitialized variable here. I think because bitmap_set_value8() does &= 
and |=.
>> +	gpiod_set_array_value_cansleep(priv->segment_gpios->ndescs, priv->segment_gpios->desc,
>> +				       priv->segment_gpios->info, values);
>> +}


More information about the linux-arm-kernel mailing list