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