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

From: Chris Packham
Date: Sun Mar 03 2024 - 14:58:24 EST



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);
>> +}