Hi Andy,
On Tue, 17 Mar 2026 at 08:34, Andy Shevchenko
[off-list ref] wrote:
On Tue, Mar 17, 2026 at 08:26:53AM +0100, Wolfram Sang wrote:
...
quoted
Thanks for tackling this issue! I agree it should be fixed, just
wondered about one thing:
quoted
While flags are often modified while under the "fwnode_link_lock",
this is not universally true.
Is it a possibility to use the lock in all code paths instead?
Because...
quoted
struct list_head consumers;
- u8 flags;
+ unsigned long flags;
... this change costs some memory on every system. Maybe it can be
avoided?
How much memory does it cost? On most 64-bit architectures is +4 bytes,
rarely +0 bytes, on m68k it might be +2bytes. On 32-bit it most likely
+0 bytes. I expect that 64-bit machines will cope with this bump.
On all architectures with natural alignment of pointers and longs,
it won't cost a thing: struct list_head contains pointers, so the
struct must be padded to a multiple of 4 or 8 bytes anyway.
On m68k[*], it will cost 2 bytes, as the existing padding is just a
single byte.
[*] Iff m68k ever switches to 32-bit alignment, there won't be an
additional cost due to the change of flags here, but of course
there would be a cost all over the place.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
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