All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Tiwei Bie" <tiwei.btw@antgroup.com>
To: richard@nod.at, anton.ivanov@cambridgegreys.com,
	johannes@sipsolutions.net
Cc: <linux-um@lists.infradead.org>, "Tiwei Bie" <tiwei.btw@antgroup.com>
Subject: [PATCH v3 4/4] um: Prohibit the VM_CLONE flag in run_helper_thread()
Date: Wed, 19 Mar 2025 21:55:23 +0800	[thread overview]
Message-ID: <20250319135523.97050-5-tiwei.btw@antgroup.com> (raw)
In-Reply-To: <20250319135523.97050-1-tiwei.btw@antgroup.com>

Directly creating helper threads with VM_CLONE using clone can
compromise the thread safety of errno. Since all these helper
threads have been converted to use os_run_helper_thread(), let's
prevent using this flag in run_helper_thread().

Signed-off-by: Tiwei Bie <tiwei.btw@antgroup.com>
---
 arch/um/os-Linux/helper.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/um/os-Linux/helper.c b/arch/um/os-Linux/helper.c
index df22cba24d82..89c2ad2a4e3a 100644
--- a/arch/um/os-Linux/helper.c
+++ b/arch/um/os-Linux/helper.c
@@ -122,6 +122,10 @@ int run_helper_thread(int (*proc)(void *), void *arg, unsigned int flags,
 	unsigned long stack, sp;
 	int pid, status, err;
 
+	/* To share memory space, use os_run_helper_thread() instead. */
+	if (flags & CLONE_VM)
+		return -EINVAL;
+
 	stack = alloc_stack(0, __uml_cant_sleep());
 	if (stack == 0)
 		return -ENOMEM;
-- 
2.34.1



  parent reply	other threads:[~2025-03-19 13:55 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-19 13:55 [PATCH v3 0/4] um: Make errno multi-thread safe Tiwei Bie
2025-03-19 13:55 ` [PATCH v3 1/4] um: Add pthread-based helper support Tiwei Bie
2025-03-19 13:55 ` [PATCH v3 2/4] um: ubd: Switch to the pthread-based helper Tiwei Bie
2025-03-19 13:55 ` [PATCH v3 3/4] um: Switch to the pthread-based helper in sigio workaround Tiwei Bie
2025-03-19 13:55 ` Tiwei Bie [this message]
2025-03-20  8:32   ` [PATCH v3 4/4] um: Prohibit the VM_CLONE flag in run_helper_thread() Johannes Berg
2025-03-20 14:42     ` Tiwei Bie
2025-03-26  6:54     ` Tiwei Bie
2025-03-26  7:13       ` Johannes Berg

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=20250319135523.97050-5-tiwei.btw@antgroup.com \
    --to=tiwei.btw@antgroup.com \
    --cc=anton.ivanov@cambridgegreys.com \
    --cc=johannes@sipsolutions.net \
    --cc=linux-um@lists.infradead.org \
    --cc=richard@nod.at \
    /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.