From nobody Sun Feb 8 20:33:02 2026 Received: from mail-pf1-f176.google.com (mail-pf1-f176.google.com [209.85.210.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4090229D260 for ; Wed, 4 Feb 2026 02:28:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770172101; cv=none; b=k7KTrQqq/GjNbaTjWbVOv8AeA/d5ocIa/8kS+Z5lzPiFwOrk/TjCE/Nx4CYECL8aL1bx1gdDh0WZvnOmFegiyVeLd65rmNkB0yoz8oxtT1TykWIMrKhLyhAnLf5hRjqbLQ+K4HpbO/uf2GbmoHfjVp4qgrbFDJiLw+lEtN5vXys= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770172101; c=relaxed/simple; bh=CvYzjfP7rw4yGGJRdX8B4balTna1wcyExbLjMjY+2gM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dKv005y7Am/y9dJ+wV163L1vs0bTxDlDO79IZYe61dxaAX7eZVtuxCfGW7o2/mH6+MDpSVcSHsoVLpNis+bZ3lrEvkvfmLTjzDP11HWptitlLkCZqozn8DR0xdhcSIBx7q5N8Eb8edSKw+sfxVGf+scZHsyVSiJSBINJcScv2Gw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=NPev4Nj6; arc=none smtp.client-ip=209.85.210.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="NPev4Nj6" Received: by mail-pf1-f176.google.com with SMTP id d2e1a72fcca58-82318702afbso5213471b3a.1 for ; Tue, 03 Feb 2026 18:28:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770172099; x=1770776899; darn=vger.kernel.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=hjmnnaJ+dU4QzslBxUrlmdhSXDXCpeTGjd28jp/dBEQ=; b=NPev4Nj6MZv8TtZc5TUkucKKyaCeCQFsQeDygiaMV3DK5IAeeRLiU0dxtGdpj5xcH4 FN+KIgKdn5EflUydJEQft++zWabJhZEIQAk6hvvkjlfyIBTO8oV2Le6VA9+skcivWo+n 020qaMgi3VlPbfuQOQUg3ElgP78KM2bA1RIpka7vVlVGk+ynlQCY/dE5LQZfLC9NlFiH 90S1Ybquy2LRunlQZANJs4Sufrvsstfico932Ta2S5gCno6quztZSon7KZnCOMvqqSol PHvIVOkL+3QYplbeRudvvr+zFGsthi9a52ELD4j1quPiaMEgQhAW3BiBSolzW5WcV7kx s5Uw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770172099; x=1770776899; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=hjmnnaJ+dU4QzslBxUrlmdhSXDXCpeTGjd28jp/dBEQ=; b=P+mjeiC6MvcNIFQuyKd0ynEOwa9yzewuMwsx1Ec6oJvrRTCpqlImQDc0F7UqAFswdI FT4/Nc/d4/yrwrIlXZQNkxG1red9R84v0CAHQwBvhBDjMwto0cacDF6Rk2AHcN/PJ9Hq Qc/ifC/gSdH5n/VHYAeuwU968/k0GwhKnPAn3IuQO0GmCWpT6BXiebTN8KgtnoijRlTg OT8FHqix0X9fHDLQtH1JBNB0xDR9B9EhPsFE+I9t5yE7+1VWK40jg1dkekrw2DZHuxQn QC7c1G2cC0MRlewA42LE273iFleYg0IaM9aVRK7XEzmexhzDfO7aDhBRlZYar8LOjQBT k30g== X-Forwarded-Encrypted: i=1; AJvYcCUHTPO7gE/GW80roFmS9YElEz40AlbzC8ANDDqd81xG8R0IszjJU83MzFsU6fE909g8/qsQKDuI2DbXwOk=@vger.kernel.org X-Gm-Message-State: AOJu0YzeqG336REEcWMmkSwExZ6XIHU87JL9kwCCwn1U+kiA2i1NxaxE qYSLLcYSi4kBiAZyiGVQy2cMB9jL4viic37nEXRmA1NhUpXtmhIToQCV X-Gm-Gg: AZuq6aK1RVPGSEW3QMkGRZt6jFrBzVr+8awIK09Tv3YWABryUvICVF7poHqPRXTnXvj trRsONsuGBHn6gTNEbvVVM8p/0SxqsoGCjivOmzvacZndVJQ10jSz1Zv77VrFSmtmTzOwbke9T5 LMGkvCj+nvfGtXZgTxN2y37owbwbOEJSJfN+neGjFtfAXyRq89ntXuOUUcNlz3gLG58/tkpxMXT nnzwE90AT7hXMB5brRayBukFpe+IBzcsYiQdCDJyVs9dwt/FjVJ0GjYx+XnDb3VYoIT2qHgPGe3 pq6+/d78a9E4e+qlVeF10NmcHfv/ooXp8cxAAsyzBiKvM697iHXCC7RWnQT5lQc6Ngm5BVznPSo 0Pqk95aZ0DRHu3gukjNz20xO96Z93yzIy265E6SF/ox13qS+1wdVrdImkKye5HWEQ+arHLtrWxj TYUMBdvcJhPGZBLkwEyNz6qPzAUBoxJMjeMDVnhhkviayE+fxeVNBzymYUo4sxw6ADUs5hBp93I mSTwB8MLwA2sZzp X-Received: by 2002:a05:6a20:a122:b0:370:73c1:6a87 with SMTP id adf61e73a8af0-393724cde89mr1471194637.58.1770172099431; Tue, 03 Feb 2026 18:28:19 -0800 (PST) Received: from ikb-h07-29-noble.in.iijlab.net ([202.214.97.5]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2a93397c472sm6721415ad.89.2026.02.03.18.28.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Feb 2026 18:28:18 -0800 (PST) Received: by ikb-h07-29-noble.in.iijlab.net (Postfix, from userid 1010) id 421DD1200C31; Wed, 4 Feb 2026 11:28:17 +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 v14 01/13] x86/um: nommu: elf loader for fdpic Date: Wed, 4 Feb 2026 11:27:59 +0900 Message-ID: X-Mailer: git-send-email 2.43.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" As UML supports CONFIG_MMU=3Dn 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 07d48738b402..82a919132aff 100644 --- a/arch/um/include/asm/mmu.h +++ b/arch/um/include/asm/mmu.h @@ -21,6 +21,11 @@ typedef struct mm_context { spinlock_t sync_tlb_lock; 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; =20 #define INIT_MM_CONTEXT(mm) \ diff --git a/arch/um/include/asm/ptrace-generic.h b/arch/um/include/asm/ptr= ace-generic.h index 86d74f9d33cf..62e9916078ec 100644 --- a/arch/um/include/asm/ptrace-generic.h +++ b/arch/um/include/asm/ptrace-generic.h @@ -29,6 +29,12 @@ struct pt_regs { =20 #define PTRACE_OLDSETOPTIONS 21 =20 +#ifdef CONFIG_BINFMT_ELF_FDPIC +#define PTRACE_GETFDPIC 31 +#define PTRACE_GETFDPIC_EXEC 0 +#define PTRACE_GETFDPIC_INTERP 1 +#endif + struct task_struct; =20 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 22d0111b543b..388fe669886c 100644 --- a/arch/x86/um/asm/elf.h +++ b/arch/x86/um/asm/elf.h @@ -9,6 +9,7 @@ #include =20 #define CORE_DUMP_USE_REGSET +#define ELF_FDPIC_CORE_EFLAGS 0 =20 #ifdef CONFIG_X86_32 =20 @@ -158,8 +159,11 @@ extern int arch_setup_additional_pages(struct linux_bi= nprm *bprm, =20 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 =20 typedef unsigned long elf_greg_t; diff --git a/fs/Kconfig.binfmt b/fs/Kconfig.binfmt index 1949e25c7741..0a92bebd5f75 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 --=20 2.43.0