diff options
| author | Johannes Berg <johannes.berg@intel.com> | 2026-09-28 09:39:35 +0200 |
|---|---|---|
| committer | Johannes Berg <johannes.berg@intel.com> | 2026-09-30 08:28:02 +0200 |
| commit | 2f88f5689de1a039764d00f466209acf0c010eaf (patch) | |
| tree | 5389d264a99072c7ce594523e64de732548d2b3b /tools/lib/python | |
| parent | 0e70b1de88ef1973cf752ae27930683eb2acd338 (diff) | |
| download | linux-next-2f88f5689de1a039764d00f466209acf0c010eaf.tar.gz linux-next-2f88f5689de1a039764d00f466209acf0c010eaf.zip | |
um: fix shutdown __inittext access
Since first moving __init text into the right place in commit
8966ed0b2d48 ("um: move init text between __init_begin/end")
and then making all init sections inaccessible, shutdown and
reboot crash instead of working correctly, for the obvious
reason that the functions are __init but run on the way out.
Removing the __init markers would work in some way, but that
would bubble through a lot of functions.
Instead, mark the relevant functions __noreturn (including
longjmp() since that's now needed so start_idle_thread() can
be __noreturn), and split out the part of main() that's done
on the way out into a new os_exit() function that's called
directly.
Reported-by: Hajime Tazaki <thehajime@gmail.com>
Closes: https://lore.kernel.org/linux-um/m24ifc4v6m.wl-thehajime@gmail.com/
Fixes: a418ab8fddea ("um: mprotect() __init memory")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Tested-by: Hajime Tazaki <thehajime@gmail.com>
Link: https://patch.msgid.link/20260928093934.ca7af44c59ca.I470ece16d176ea704aa6e5767b755055d106da35@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'tools/lib/python')
0 files changed, 0 insertions, 0 deletions
