summaryrefslogtreecommitdiff
path: root/arch/um/kernel/process.c
diff options
context:
space:
mode:
authorTiwei Bie <tiwei.btw@antgroup.com>2025-10-27 08:18:10 +0800
committerJohannes Berg <johannes.berg@intel.com>2025-10-27 16:41:15 +0100
commit2670917c2fc8902558f3aba4f41e5cc5bf6e18fa (patch)
tree257b673beaa85834ea9af4e664ba34c71c40b7ad /arch/um/kernel/process.c
parent9e5a9f1c9b336871c8e76c1cefd85182c5b58541 (diff)
um: Determine sleep based on need_resched()
With SMP and NO_HZ enabled, the CPU may still need to sleep even if the timer is disarmed. Switch to deciding whether to sleep based on pending resched. Additionally, because disabling IRQs does not block SIGALRM, it is also necessary to check for any pending timer alarms. This is a preparation for adding SMP support. Signed-off-by: Tiwei Bie <tiwei.btw@antgroup.com> Link: https://patch.msgid.link/20251027001815.1666872-4-tiwei.bie@linux.dev Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'arch/um/kernel/process.c')
-rw-r--r--arch/um/kernel/process.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/um/kernel/process.c b/arch/um/kernel/process.c
index 0a9249b2b86b..3b28048f269c 100644
--- a/arch/um/kernel/process.c
+++ b/arch/um/kernel/process.c
@@ -223,6 +223,11 @@ int __uml_cant_sleep(void) {
/* Is in_interrupt() really needed? */
}
+int uml_need_resched(void)
+{
+ return need_resched();
+}
+
extern exitcall_t __uml_exitcall_begin, __uml_exitcall_end;
void do_uml_exitcalls(void)