From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7E1A4C7115A for ; Sun, 22 Jun 2025 21:33:30 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 02D276B00A9; Sun, 22 Jun 2025 17:33:30 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EF8B76B00AA; Sun, 22 Jun 2025 17:33:29 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D99C96B00AB; Sun, 22 Jun 2025 17:33:29 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id C2A756B00A9 for ; Sun, 22 Jun 2025 17:33:29 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id DE42E140F38 for ; Sun, 22 Jun 2025 21:33:28 +0000 (UTC) X-FDA: 83584338096.25.CD8AA89 Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) by imf01.hostedemail.com (Postfix) with ESMTP id 0137740002 for ; Sun, 22 Jun 2025 21:33:26 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=P7PZ21R6; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf01.hostedemail.com: domain of thehajime@gmail.com designates 209.85.214.179 as permitted sender) smtp.mailfrom=thehajime@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1750628007; a=rsa-sha256; cv=none; b=WJKyVsQVM+PM1iedJ0FXtP9fmGrV7wyHKbZ2WrcnnoN9S3pj2hOME/Q8P0Gi1g3sIrByaG Abg9v17vT6lsPvvQ+EBKjjDN96axJDiO6CtRlpfc5z88zOt8u8MvXemvjJnDIMG3xEt/5m 9pM4+fYji9BPvYHdiucuLhCZs+2oAKI= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=P7PZ21R6; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf01.hostedemail.com: domain of thehajime@gmail.com designates 209.85.214.179 as permitted sender) smtp.mailfrom=thehajime@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1750628007; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=AAQlIsbb3rspPlz+RCx7t45Zo7U4vMMrJR2HDEEY2UE=; b=ktg4fJO+oTBO0XbD7ni4Mq/9GeeFwgMgpqY6xul8KBjrH1Srkcvie/YBlvnZXC7y9sP3IN NbGmo3GLyNSoSfuu6AHeenNIotg1EPuMG6rMVaVlkXF04Q0sucwn16pqFvOmoJnxyL8Fw8 R69V0uD9ZPoCggrNJAleGx3qDi1Wxmc= Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-2363497cc4dso30041825ad.1 for ; Sun, 22 Jun 2025 14:33:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750628006; x=1751232806; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=AAQlIsbb3rspPlz+RCx7t45Zo7U4vMMrJR2HDEEY2UE=; b=P7PZ21R6BhLQLC+yvnLZv9p7svR2bs9/uH0ZxCdakFPYoChZXz/ygsmXSkDHqBfdZc zE4DQohoV2HvPRm3NcCEdCweQCNQk1Khpcl7qTuJnormh9iLv2BWiJ+kfxfg2VMv14HK JKNDWqVi7ieEH8S7n1vgISOKN30xPHORyRQ4OKjmTEty1RjYKsPCW+W5XURVAvIsTEu5 ATzzIBzg6JI0H9JaWhGPwxHPpuWw/R/X+Hnv3HX+9+m6pfmceYgZiWvVib/iTEBmZkCq a0wP/O185mH8Uv3+XawrRJ3b6wOvHCDKtOxZ0HitDm2NTh8QGnJDThRs4bnPJOwFvDgd 0OiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750628006; x=1751232806; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=AAQlIsbb3rspPlz+RCx7t45Zo7U4vMMrJR2HDEEY2UE=; b=YAyd4MJsJIfX8WG3gFKDZS6F/hwK0TEqVcj5Tz6PRfNB0DcW1i/ZmspbWhrs7zfBee Ru3m5Tcu+EAin6bzmYa1aceMY8kjz+onrDMkA1yVj4y/3VgypkFPHOh668lToMZuoWXF x09ylFUYWIZcsH1dgzedQ8iCZJEEhYm07MVrMGEktU8Z2EJl6SisDbK8gFN2OGasxliK ohvLdmlFv7eGLLOt+M9wQjH05nkYez6ybA7L75eN3+JqXePs7Q22EJE/5tl+Hy0lgTnC D2CASuLFp9AZG659hJTbB//AiSTUV3gVzu1tDONSY7HqZ8i+MO9fH+HNRaqvVvT7n0rV XPiQ== X-Forwarded-Encrypted: i=1; AJvYcCXsQgmwRR6JDo9RnJLrw2Jr0fSgXnzR23RYTaC3ZBXiusFK0UYRS4mfxv5DBNnMxmy+1Nks/Dy2FA==@kvack.org X-Gm-Message-State: AOJu0YxnedHDHw4ekh7PvK32lZPens71zU5WWurm4IiohBH4Y6VDQV5t PXjaMKt8tEZ8NMwGdnb47mFem/EXrfydW4WvI+pQzUEMGzvxFfAmCNk9 X-Gm-Gg: ASbGncsGMPFWsaHJ7RMh/xu827iJGlttZ9wxXfqVuoIxlacyWmMUggZLZ+wr303Ysnf qMaBiLNxcC2eSrAeOrLIWqDP9O3iRfHIamU4PSgr4is0u4/ohbUv3TwuHqR0GaCzgR117G0YyjT G6CAm2QwAZpK5v6/0IdNo2+3v/oF6WtlBq22kCIeWFN6djPUE/9KtvljAZCVe0txo1/ULhcfOEX BKv99qeBgWEtvuuWugqPJju2L51OgUBecQuZCsVXdfMEy3AXuMcrfN43VglBKhm5E32m3gUK2iH yczBdd8qB95CyX6xduF4Qz2FVtnLJTpySUOxD4FiJZ9CKq4G6MmSBqmyt+hpPVbn3dfG2E7YbzP jWNveXkhDCvR/Y6an3ZeX+L+vLu0suJeT X-Google-Smtp-Source: AGHT+IE/OyFdRvoMZNChjYSNeiwAt0sGgB2Kp3DYDGisjy/68Lf7lJEd62sOTC8wwxO80U6hLupeeg== X-Received: by 2002:a17:902:ec85:b0:234:f825:b2c3 with SMTP id d9443c01a7336-237d983d1e7mr177001775ad.17.1750628005666; Sun, 22 Jun 2025 14:33:25 -0700 (PDT) Received: from ikb-h07-29-noble.in.iijlab.net ([202.214.97.5]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-237d83d5c97sm67821005ad.70.2025.06.22.14.33.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 22 Jun 2025 14:33:24 -0700 (PDT) Received: by ikb-h07-29-noble.in.iijlab.net (Postfix, from userid 1010) id 2359AEF1EA6; Mon, 23 Jun 2025 06:33:16 +0900 (JST) From: Hajime Tazaki To: linux-um@lists.infradead.org Cc: thehajime@gmail.com, ricarkol@google.com, Liam.Howlett@oracle.com, linux-kernel@vger.kernel.org, Eric Biederman , Kees Cook , Alexander Viro , Christian Brauner , Jan Kara , linux-mm@kvack.org, linux-fsdevel@vger.kernel.org Subject: [PATCH v10 01/13] x86/um: nommu: elf loader for fdpic Date: Mon, 23 Jun 2025 06:32:59 +0900 Message-ID: X-Mailer: git-send-email 2.43.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 0137740002 X-Stat-Signature: q8gauo4qk65spc8zhmhb8h5erqw1qjeb X-Rspam-User: X-HE-Tag: 1750628006-253938 X-HE-Meta: U2FsdGVkX19qjr0guZxh+SnBI0m6nI8+ntVWg6YLl4tn7kC0l4v7XrT57doz2XuRGz29SneogiL9I6qK3m4DYx9jFc9aeOCszjgwIq8mCGPKb81f3LLDDH0lGQBZ7x2ctCQHs7gmU58XoF4+frSselY5bnXCmAHo3+JpIG+2kK4tUvtjxXlX4+9A3BpaOU2uTXvyQcalTYpshm5fwJ/NpP/UfILHNY0Kf/YjEDFHqr97zOsS68oX5T9xqSWG+Nk97024myvrxA1dvmimJATLBA93W0nNCAynLkxgUiAXa9D0LjongN/VA/0Ab7hR23YLRiL3IxbnG/+jojlrQ8TwsjyfSxCpVtsLbd9H2RGcx2PnazwFgVteChJR37i2ssj9lZVVRsmSDIg6IfcW9q6GdbYuWAPQCetIbrJjqnhjGiGjNWQY05216oS+pa18VZM0UW2hUEHwC/V6D/DCWl14yX/a2PrlG/VW2qr/b6+gJCetqAp06403xOYi7tHXXHXyB6qq4t6q56C+QcfeX84Uobullz18L/cxyLLLh7HcFhFB26SzFDfEIoZKUdPWt1csoEGU3gbzk759dfAF7d1Tz29J+zVFfAmLMdJykKipGQFtz1LmD5/5C3zuAqkG6eqK2tAe8gSPw84y7Rm8nUFnhhigYFIhuLupm7yyBuFrOKiAp9+VemckGx0COcuoLgNzNcVgoJziHFqY+l8NEcXS9QXjDrtru5JebU9aN+T2DaBhOXFk2wARobp/elNiSxFa+D3GkwzE9Qsj0op5JBCYPYAgllvdKlnE7UmkMG3kbZ1XpAvVPLt1IW/h/w5D6lVQFBoBgREI228YQjTAbh/KvykcHgKfY6rR91jbHQzi0KzjWgpj2Y2u2Zn+3ccPy6y2i/Ug4umjjjEYslq9iq7HRd9PRDp5nhclbx0AditPuGe98gUazk9VgGRwC6XwzadXDWojG5RLs2KD4XSSnlU Wsa1gxnR NxCZDFVtSEujNT9aX2peoz2nACkgLohaswhm5yTtrDw7+i4AHpjENpK+pnwAo7feNPj49nCfZd0rKrFDsxH9zoi0IrE+6fCIgoGyzdhTap1EusfeAswGJgZb7CAuHCc6rlkqkEoOFwA/2886HQ1tFncam8u0Ag1T5kUYMIF0SwQWXwSt7QfiJCiXVZHC5QL3cAS0e/jdt8iOESEFNgIpy2VsTHXb0zv679kfgGSn3LOFsYvK2tRABC3Z455xTSTn0JoqOeawIPLV1dPGV7PGawM9tstdmBbabnh3lHprwVTT9ZRWqoBM0FFiMBGZznlqEjbfn74imp/QZybyGjarj3IBdeAyU2V+qHXkqm7+frIktCt8Z+TjXPEG4XNBETdQqAwCEOhp0cTYOwdUmxjWYM/ghn+nTBhubvwOet1VIu8grN57uq4Str5TAoHz4rQXvxI9vYaU/0DGbwCSB7ChLHJw4FxykFJAYp6g6KLhmGl/sRBqS2v6Qo8HSMkli41q8eUHaIVjDmmxzdwY9XbC1s4zpABFl+SvHnA09pORcjfhgsZa5SBbmc/poTfS+53XcwrHlDFdf+6d2zjBNqdBevHzNMalMymQjeBtb X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: As UML supports CONFIG_MMU=n case, it has to use an alternate ELF loader, FDPIC ELF loader. In this commit, we added necessary definitions in the arch, as UML has not been used so far. It also updates Kconfig file to use BINFMT_ELF_FDPIC under !MMU environment. Cc: Eric Biederman Cc: Kees Cook Cc: Alexander Viro Cc: Christian Brauner Cc: Jan Kara Cc: linux-mm@kvack.org Cc: linux-fsdevel@vger.kernel.org Acked-by: Kees Cook Signed-off-by: Hajime Tazaki Signed-off-by: Ricardo Koller --- arch/um/include/asm/mmu.h | 5 +++++ arch/um/include/asm/ptrace-generic.h | 6 ++++++ arch/x86/um/asm/elf.h | 8 ++++++-- fs/Kconfig.binfmt | 2 +- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/arch/um/include/asm/mmu.h b/arch/um/include/asm/mmu.h index 4d0e4239f3cc..e9661846b4a3 100644 --- a/arch/um/include/asm/mmu.h +++ b/arch/um/include/asm/mmu.h @@ -17,6 +17,11 @@ typedef struct mm_context { /* Address range in need of a TLB sync */ unsigned long sync_tlb_range_from; unsigned long sync_tlb_range_to; + +#ifdef CONFIG_BINFMT_ELF_FDPIC + unsigned long exec_fdpic_loadmap; + unsigned long interp_fdpic_loadmap; +#endif } mm_context_t; #endif diff --git a/arch/um/include/asm/ptrace-generic.h b/arch/um/include/asm/ptrace-generic.h index 4696f24d1492..4ff844bcb1cd 100644 --- a/arch/um/include/asm/ptrace-generic.h +++ b/arch/um/include/asm/ptrace-generic.h @@ -29,6 +29,12 @@ struct pt_regs { #define PTRACE_OLDSETOPTIONS 21 +#ifdef CONFIG_BINFMT_ELF_FDPIC +#define PTRACE_GETFDPIC 31 +#define PTRACE_GETFDPIC_EXEC 0 +#define PTRACE_GETFDPIC_INTERP 1 +#endif + struct task_struct; extern long subarch_ptrace(struct task_struct *child, long request, diff --git a/arch/x86/um/asm/elf.h b/arch/x86/um/asm/elf.h index 62ed5d68a978..33f69f1eac10 100644 --- a/arch/x86/um/asm/elf.h +++ b/arch/x86/um/asm/elf.h @@ -9,6 +9,7 @@ #include #define CORE_DUMP_USE_REGSET +#define ELF_FDPIC_CORE_EFLAGS 0 #ifdef CONFIG_X86_32 @@ -190,8 +191,11 @@ extern int arch_setup_additional_pages(struct linux_binprm *bprm, extern unsigned long um_vdso_addr; #define AT_SYSINFO_EHDR 33 -#define ARCH_DLINFO NEW_AUX_ENT(AT_SYSINFO_EHDR, um_vdso_addr) - +#define ARCH_DLINFO \ +do { \ + NEW_AUX_ENT(AT_SYSINFO_EHDR, um_vdso_addr); \ + NEW_AUX_ENT(AT_MINSIGSTKSZ, 0); \ +} while (0) #endif typedef unsigned long elf_greg_t; diff --git a/fs/Kconfig.binfmt b/fs/Kconfig.binfmt index bd2f530e5740..419ba0282806 100644 --- a/fs/Kconfig.binfmt +++ b/fs/Kconfig.binfmt @@ -58,7 +58,7 @@ config ARCH_USE_GNU_PROPERTY config BINFMT_ELF_FDPIC bool "Kernel support for FDPIC ELF binaries" default y if !BINFMT_ELF - depends on ARM || ((M68K || RISCV || SUPERH || XTENSA) && !MMU) + depends on ARM || ((M68K || RISCV || SUPERH || UML || XTENSA) && !MMU) select ELFCORE help ELF FDPIC binaries are based on ELF, but allow the individual load -- 2.43.0