From: Tiwei Bie <tiwei.bie@linux.dev>
To: richard@nod.at, anton.ivanov@cambridgegreys.com,
johannes@sipsolutions.net
Cc: linux-um@lists.infradead.org, tiwei.btw@antgroup.com,
tiwei.bie@linux.dev
Subject: [PATCH 4/9] um: Preserve errno within signal handler
Date: Sun, 27 Jul 2025 14:29:32 +0800 [thread overview]
Message-ID: <20250727062937.1369050-5-tiwei.bie@linux.dev> (raw)
In-Reply-To: <20250727062937.1369050-1-tiwei.bie@linux.dev>
From: Tiwei Bie <tiwei.btw@antgroup.com>
We rely on errno to determine if a syscall has failed. However,
the current signal handler may modify errno. Preserve errno within
the signal handler to ensure it remains async-signal safe.
Signed-off-by: Tiwei Bie <tiwei.btw@antgroup.com>
---
arch/um/os-Linux/signal.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/arch/um/os-Linux/signal.c b/arch/um/os-Linux/signal.c
index 11f07f498270..217a71244b69 100644
--- a/arch/um/os-Linux/signal.c
+++ b/arch/um/os-Linux/signal.c
@@ -201,8 +201,11 @@ static void hard_handler(int sig, siginfo_t *si, void *p)
{
ucontext_t *uc = p;
mcontext_t *mc = &uc->uc_mcontext;
+ int errno_saved = errno;
(*handlers[sig])(sig, (struct siginfo *)si, mc);
+
+ errno = errno_saved;
}
void set_handler(int sig)
--
2.34.1
next prev parent reply other threads:[~2025-07-27 6:30 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-27 6:29 [PATCH 0/9] um: Add SMP support Tiwei Bie
2025-07-27 6:29 ` [PATCH 1/9] um: Stop tracking virtual CPUs via mm_cpumask() Tiwei Bie
2025-07-27 6:29 ` [PATCH 2/9] um: Remove unused cpu_data and current_cpu_data macros Tiwei Bie
2025-07-27 6:29 ` [PATCH 3/9] um: vdso: Implement __vdso_getcpu() via syscall Tiwei Bie
2025-07-27 6:29 ` Tiwei Bie [this message]
2025-07-27 6:29 ` [PATCH 5/9] um: Turn signals_* into thread-local variables Tiwei Bie
2025-07-27 6:29 ` [PATCH 6/9] um: Determine sleep based on need_resched() Tiwei Bie
2025-07-27 6:29 ` [PATCH 7/9] um: Define timers on a per-CPU basis Tiwei Bie
2025-07-27 6:29 ` [PATCH 8/9] um: Support directing IO signals to calling thread Tiwei Bie
2025-07-27 6:29 ` [PATCH 9/9] um: Add initial SMP support Tiwei Bie
2025-07-28 10:47 ` Johannes Berg
2025-07-28 15:28 ` Randy Dunlap
2025-07-28 16:04 ` Tiwei Bie
2025-07-28 16:27 ` Johannes Berg
2025-07-29 15:06 ` Tiwei Bie
2025-07-29 15:37 ` Johannes Berg
2025-07-30 4:18 ` Tiwei Bie
2025-08-10 4:33 ` Tiwei Bie
2025-07-28 13:55 ` Johannes Berg
2025-07-28 16:06 ` Tiwei Bie
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250727062937.1369050-5-tiwei.bie@linux.dev \
--to=tiwei.bie@linux.dev \
--cc=anton.ivanov@cambridgegreys.com \
--cc=johannes@sipsolutions.net \
--cc=linux-um@lists.infradead.org \
--cc=richard@nod.at \
--cc=tiwei.btw@antgroup.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.