Re: [PATCH v2 03/15] auxdisplay: linedisp: Use unique number for id

From: Geert Uytterhoeven
Date: Thu Feb 15 2024 - 05:04:21 EST


On Mon, Feb 12, 2024 at 6:04 PM Andy Shevchenko
<andriy.shevchenko@xxxxxxxxxxxxxxx> wrote:
> The absence of decrementation of linedisp_id is incorrect in two ways,
> i.e. it may cause:
> - an ID exhaustion
> - (and if the above is addressed) a duplicate id number may be allocated
> next time a device is added
>
> Replace above mentioned approach by using IDA framework.
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>

Reviewed-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>

> --- a/drivers/auxdisplay/line-display.h
> +++ b/drivers/auxdisplay/line-display.h
> @@ -14,6 +14,7 @@
> /**
> * struct linedisp - character line display private data structure
> * @dev: the line display device
> + * @id: instance id of this display
> * @timer: timer used to implement scrolling
> * @update: function called to update the display
> * @buf: pointer to the buffer for the string currently displayed
> @@ -25,6 +26,7 @@
> */
> struct linedisp {
> struct device dev;
> + unsigned int id;

Note that there is a hole on 64-bit platforms.
Hence I'd move id below, so the hole is at the end of the
structure, and might be filled by future changes.

> struct timer_list timer;
> void (*update)(struct linedisp *linedisp);
> char *buf;

Gr{oetje,eeting}s,

Geert


--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68korg

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds