diff options
| author | Wolfram Sang <wsa+renesas@sang-engineering.com> | 2026-05-06 10:09:47 +0300 |
|---|---|---|
| committer | Jassi Brar <jassisinghbrar@gmail.com> | 2026-05-18 21:37:16 +0300 |
| commit | 4f176444dcc977d1888fd9220c357a4d32338ee0 (patch) | |
| tree | dfaad28253698c56f67b07190368c6ad8f4a28b4 /scripts/Makefile.thinlto | |
| parent | 96a3d2f3167f5644b30e60171898e67123c3c2c6 (diff) | |
| download | linux-4f176444dcc977d1888fd9220c357a4d32338ee0.tar.xz | |
mailbox: don't free the channel if the startup callback failed
If the optional startup() callbacks fails, we need to clear some states.
Currently, this is done by freeing the channel. This does, however, more
than needed which creates problems. Namely, it is calling the shutdown()
callback. This is totally not intuitive. No user expects that shutdown()
is called when startup() fails, similar to remove() not being called
when probe() fails. Currently, quite some mailbox users register the IRQ
in startup() and free them in shutdown(). These drivers will get a WARN
about freeing an already free IRQ. Other subtle issues could arise from
this unexpected behaviour.
To solve this problem, introduce a helper which does the minimal cleanup
and use it in both, in free_channel() and after startup() failed.
Link: https://sashiko.dev/#/patchset/20260402112709.13002-1-wsa%2Brenesas%40sang-engineering.com # second issue
Fixes: 2b6d83e2b8b7 ("mailbox: Introduce framework for mailbox")
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Jassi Brar <jassisinghbrar@gmail.com>
Diffstat (limited to 'scripts/Makefile.thinlto')
0 files changed, 0 insertions, 0 deletions
