From nobody Mon Feb 9 04:41:16 2026 Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B95F03612C6 for ; Wed, 14 Jan 2026 07:28:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=193.142.43.55 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768375708; cv=none; b=ini03cvPTCO2sED+AQf9UPmMjs4oEpz3bFUOtjJZGMLgikadvFxQyeqTu00oYlsKFb/50Db82AiRnB9ZK2JQLuR/YdVtA/GSykBdU1GCP1JRWV+TE8FRvUN4I1RGUKljgHDHMCu4zg//JVGC6Q/GBwdKAQJIOw7ApplXCsu0La0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768375708; c=relaxed/simple; bh=ZkCW0y1qBYlQUwt7ET0wm5t9Ac/g46X+vbejvWmozno=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=HCK/+0Zf+WrIbYDvNFhirMROg9w1XpMeH8eEEFkm5rlJIGLZURtRf67jNEvuaTWJGLQogYaNiQnaDT92TJrrmFgHhrIVIzucP+kOpreS2yPY5tCWBkDK72GcwQbRwD0SfiRD8G9nAvP/4ruNIqcnQc/4awsdCNBJhcACxjevQgQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de; spf=pass smtp.mailfrom=linutronix.de; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=lVXaiMQV; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=2HtSlf6u; arc=none smtp.client-ip=193.142.43.55 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linutronix.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="lVXaiMQV"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="2HtSlf6u" From: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1768375701; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=oZLC1OcX/4X/172DOOta5GPxHR7S1+1EA8wRTIuT8Os=; b=lVXaiMQVJdv+PLdbhiWcS6321TuD3FaklqUcveKiVC6oEuEyJS1l/UFGojFx8VQXh8MtvO 0IcXHEXGMXLDRXGG6pheay/blpmXvIwcFS4zvEGzFLEbgMhVZbT5qtzj4DYKcctMWkxjiD B4Q4FBBvihx84YI5kyZ8fXMl8aMqNR/uiWpQTYTWz8ynfubBf7xoPvdXEDSfClFE8ia6mc U9YZpCoKumJGEKYEvJq+YWk8q0DXmNhIz32gmj6lASoU0+EpOLNhy+yypSs5Qx03aUBGyr eyJVsOy7yXJgEx2PtMo3ZVH/gMr5ynyLELxYi6myykuj3INxyE4n4XuJ6aMDoA== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1768375701; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=oZLC1OcX/4X/172DOOta5GPxHR7S1+1EA8wRTIuT8Os=; b=2HtSlf6uMwJwxNTkRZHj5p0Xc6SIrnGv/15OPCbc4geYRpmVvEz5rej/ZfvRhkuGz3EDyn IUoBivPpzN8aHfCg== Date: Wed, 14 Jan 2026 08:28:13 +0100 Subject: [PATCH v3 1/5] ARC: Always use SWAPE instructions for __arch_swab32() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260114-headers_install-config-leak-v3-1-c14cde735a79@linutronix.de> References: <20260114-headers_install-config-leak-v3-0-c14cde735a79@linutronix.de> In-Reply-To: <20260114-headers_install-config-leak-v3-0-c14cde735a79@linutronix.de> To: Vineet Gupta , Russell King , Dinh Nguyen , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" Cc: linux-snps-arc@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Arnd Bergmann , =?utf-8?q?Thomas_Wei=C3=9Fschuh?= X-Developer-Signature: v=1; a=ed25519-sha256; t=1768375700; l=5361; i=thomas.weissschuh@linutronix.de; s=20240209; h=from:subject:message-id; bh=ZkCW0y1qBYlQUwt7ET0wm5t9Ac/g46X+vbejvWmozno=; b=zna2F7uRhB71MyLnmHI5GDtU7owNIO4QC4K/Uj4j+HFbF5p4uH8gQYMJYvRLgD5u84t49BB48 ukxcz+nCTP3Ad2NStdUDxlfZL/qHPqWJ3avcy8B0088w88C/Zs5i+bV X-Developer-Key: i=thomas.weissschuh@linutronix.de; a=ed25519; pk=pfvxvpFUDJV2h2nY0FidLUml22uGLSjByFbM6aqQQws= Since commit 67a697e7576 ("ARC: retire ARC750 support") all supported CPUs have the 'swape' instruction. Always use the implementation of __arch_swabe() which uses 'swape'. ARCH_USE_BUILTIN_BSWAP can not be used as that results on libcalls on -mcpu=3Darc700. As as side-effect, remove a leak of an internal kconfig symbol through the UAPI headers. Suggested-by: Arnd Bergmann Link: https://lore.kernel.org/lkml/0ae2688a-5a22-405b-adaf-9b5ad712b245@app= .fastmail.com/ Suggested-by: Vineet Gupta Link: https://lore.kernel.org/lkml/a033a402-e3c5-4982-9fff-b6a4c55817ae@ker= nel.org/ Signed-off-by: Thomas Wei=C3=9Fschuh --- arch/arc/Kconfig | 5 ---- arch/arc/Makefile | 3 +- arch/arc/include/uapi/asm/swab.h | 63 ------------------------------------= ---- scripts/headers_install.sh | 1 - 4 files changed, 1 insertion(+), 71 deletions(-) diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig index f27e6b90428e..2ed7186c81c5 100644 --- a/arch/arc/Kconfig +++ b/arch/arc/Kconfig @@ -121,7 +121,6 @@ choice config ARC_CPU_770 bool "ARC770" depends on ISA_ARCOMPACT - select ARC_HAS_SWAPE help Support for ARC770 core introduced with Rel 4.10 (Summer 2011) This core has a bunch of cool new features: @@ -340,10 +339,6 @@ config ARC_HAS_LLSC default y depends on !ARC_CANT_LLSC =20 -config ARC_HAS_SWAPE - bool "Insn: SWAPE (endian-swap)" - default y - if ISA_ARCV2 =20 config ARC_USE_UNALIGNED_MEM_ACCESS diff --git a/arch/arc/Makefile b/arch/arc/Makefile index 0c5e6e6314f2..868805ffcfea 100644 --- a/arch/arc/Makefile +++ b/arch/arc/Makefile @@ -9,7 +9,7 @@ ifeq ($(CROSS_COMPILE),) CROSS_COMPILE :=3D $(call cc-cross-prefix, arc-linux- arceb-linux- arc-lin= ux-gnu-) endif =20 -cflags-y +=3D -fno-common -pipe -fno-builtin -mmedium-calls -D__linux__ +cflags-y +=3D -fno-common -pipe -fno-builtin -mmedium-calls -mswape -D__li= nux__ =20 tune-mcpu-def-$(CONFIG_ISA_ARCOMPACT) :=3D -mcpu=3Darc700 tune-mcpu-def-$(CONFIG_ISA_ARCV2) :=3D -mcpu=3Dhs38 @@ -41,7 +41,6 @@ endif cflags-y +=3D -fsection-anchors =20 cflags-$(CONFIG_ARC_HAS_LLSC) +=3D -mlock -cflags-$(CONFIG_ARC_HAS_SWAPE) +=3D -mswape =20 ifdef CONFIG_ISA_ARCV2 =20 diff --git a/arch/arc/include/uapi/asm/swab.h b/arch/arc/include/uapi/asm/s= wab.h index 8d1f1ef44ba7..417ea30f29f5 100644 --- a/arch/arc/include/uapi/asm/swab.h +++ b/arch/arc/include/uapi/asm/swab.h @@ -19,9 +19,6 @@ =20 #include =20 -/* Native single cycle endian swap insn */ -#ifdef CONFIG_ARC_HAS_SWAPE - #define __arch_swab32(x) \ ({ \ unsigned int tmp =3D x; \ @@ -32,66 +29,6 @@ tmp; \ }) =20 -#else - -/* Several ways of Endian-Swap Emulation for ARC - * 0: kernel generic - * 1: ARC optimised "C" - * 2: ARC Custom instruction - */ -#define ARC_BSWAP_TYPE 1 - -#if (ARC_BSWAP_TYPE =3D=3D 1) /******* Software only ********/ - -/* The kernel default implementation of htonl is - * return x<<24 | x>>24 | - * (x & (__u32)0x0000ff00UL)<<8 | (x & (__u32)0x00ff0000UL)>>8; - * - * This generates 9 instructions on ARC (excluding the ld/st) - * - * 8051fd8c: ld r3,[r7,20] ; Mem op : Get the value to be swapped - * 8051fd98: asl r5,r3,24 ; get 3rd Byte - * 8051fd9c: lsr r2,r3,24 ; get 0th Byte - * 8051fda0: and r4,r3,0xff00 - * 8051fda8: asl r4,r4,8 ; get 1st Byte - * 8051fdac: and r3,r3,0x00ff0000 - * 8051fdb4: or r2,r2,r5 ; combine 0th and 3rd Bytes - * 8051fdb8: lsr r3,r3,8 ; 2nd Byte at correct place in Dst Reg - * 8051fdbc: or r2,r2,r4 ; combine 0,3 Bytes with 1st Byte - * 8051fdc0: or r2,r2,r3 ; combine 0,3,1 Bytes with 2nd Byte - * 8051fdc4: st r2,[r1,20] ; Mem op : save result back to mem - * - * Joern suggested a better "C" algorithm which is great since - * (1) It is portable to any architecture - * (2) At the same time it takes advantage of ARC ISA (rotate intrns) - */ - -#define __arch_swab32(x) \ -({ unsigned long __in =3D (x), __tmp; \ - __tmp =3D __in << 8 | __in >> 24; /* ror tmp,in,24 */ \ - __in =3D __in << 24 | __in >> 8; /* ror in,in,8 */ \ - __tmp ^=3D __in; \ - __tmp &=3D 0xff00ff; \ - __tmp ^ __in; \ -}) - -#elif (ARC_BSWAP_TYPE =3D=3D 2) /* Custom single cycle bswap instruction */ - -#define __arch_swab32(x) \ -({ \ - unsigned int tmp =3D x; \ - __asm__( \ - " .extInstruction bswap, 7, 0x00, SUFFIX_NONE, SYNTAX_2OP \n"\ - " bswap %0, %1 \n"\ - : "=3Dr" (tmp) \ - : "r" (tmp)); \ - tmp; \ -}) - -#endif /* ARC_BSWAP_TYPE=3Dzzz */ - -#endif /* CONFIG_ARC_HAS_SWAPE */ - #if !defined(__STRICT_ANSI__) || defined(__KERNEL__) #define __SWAB_64_THRU_32__ #endif diff --git a/scripts/headers_install.sh b/scripts/headers_install.sh index 0e4e939efc94..727f7f82c2c7 100755 --- a/scripts/headers_install.sh +++ b/scripts/headers_install.sh @@ -70,7 +70,6 @@ configs=3D$(sed -e ' # # The format is : in each line. config_leak_ignores=3D" -arch/arc/include/uapi/asm/swab.h:CONFIG_ARC_HAS_SWAPE arch/arm/include/uapi/asm/ptrace.h:CONFIG_CPU_ENDIAN_BE8 arch/nios2/include/uapi/asm/swab.h:CONFIG_NIOS2_CI_SWAB_NO arch/nios2/include/uapi/asm/swab.h:CONFIG_NIOS2_CI_SWAB_SUPPORT --=20 2.52.0 From nobody Mon Feb 9 04:41:16 2026 Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B82C635FF70 for ; Wed, 14 Jan 2026 07:28:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=193.142.43.55 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768375707; cv=none; b=Dqf7hgseTcvGCe+0y1PxAahiLE2zM2jkw/2eI0F5xlze6ZO0v7WmRBvE6BWRPxr7DteMaVCabrRSQuDrYdakinzxXQbir293ICaW16t8r12A7KJcxZt04B8r4d2bIW7zHj0tAI5yPZrfFdsk9LgPemvjfiXDdP0iK6MP58yM7MY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768375707; c=relaxed/simple; bh=fz1o/QC//id3SLCiEx9I+QB/CLj6vfH/ATM2HwtC2M4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=oVceDqEcPFc2UibudJbfxnMh+8GUB75ShS6cnKxTm4mg1hjI1bvb4rjKIPvCS/2NtTrAe7egkHggY+LJOmseT5r1VVFRnKhEQjzK1HOsDIHiuTf3FjifEfxwXHijCgc7fMAiI+H1hNB8tMJn6c4mgKz186/GyJzIdTWfARRCQ08= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de; spf=pass smtp.mailfrom=linutronix.de; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=4BbFAtdV; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=bW0A42Sf; arc=none smtp.client-ip=193.142.43.55 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linutronix.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="4BbFAtdV"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="bW0A42Sf" From: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1768375702; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5s1E1yisqHJGGPTpys4I/1xezHpPYE2+zak8zKkm6YU=; b=4BbFAtdVbeRT7QbtXdm7bwd1qzzQzz3pXAwe++yn8h4N2z4yqZt7qIQUhAXU3dEJ7k2RqK rspzaRRTZEym0P4RUrwgcVmf9CncxjaxxHLHcuELoqDOdB3mhqMJpELLzpGOj/9VuMV0Ug a1sedRk8JNqjLqtaCzo4f2Ef6XTLvPOlsuP9Mec/+tabPFfbtMdDJJMADHB6Ew8JbYCkAN D3B3jbi/QIxjxDYzXOSLBtg7Fm4zVlwRQMkx2m5tAkJsyH8H9XaBWSUl1oTfiO4R2W4jFo pta9lRZETVcj69i9hI4nCuwwZA0pO8sKd6Kiu+vO0skOgOKUONscMrobzrtIFw== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1768375702; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5s1E1yisqHJGGPTpys4I/1xezHpPYE2+zak8zKkm6YU=; b=bW0A42SfLtA7Amv19PyrViAn0Ddkpow0ImosXbhiOzuhGrK32qVLu8dHt4vjabxoNOyQpn w/fXAZilw5myHUAA== Date: Wed, 14 Jan 2026 08:28:14 +0100 Subject: [PATCH v3 2/5] ARM: uapi: Drop PSR_ENDSTATE Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260114-headers_install-config-leak-v3-2-c14cde735a79@linutronix.de> References: <20260114-headers_install-config-leak-v3-0-c14cde735a79@linutronix.de> In-Reply-To: <20260114-headers_install-config-leak-v3-0-c14cde735a79@linutronix.de> To: Vineet Gupta , Russell King , Dinh Nguyen , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" Cc: linux-snps-arc@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Arnd Bergmann , =?utf-8?q?Thomas_Wei=C3=9Fschuh?= X-Developer-Signature: v=1; a=ed25519-sha256; t=1768375700; l=2940; i=thomas.weissschuh@linutronix.de; s=20240209; h=from:subject:message-id; bh=fz1o/QC//id3SLCiEx9I+QB/CLj6vfH/ATM2HwtC2M4=; b=J8tj378LP5E6jN1LFUC1whqX29eQyRdeMxXOv8p2BckKLdfyfbJlXwKzRNYpu2PNBehdXAHwT PVdkbcvuBfFDzjLqp9UWLeUVPJttaCMJqqXnO2o4ztQre80S5Ba3IMF X-Developer-Key: i=thomas.weissschuh@linutronix.de; a=ed25519; pk=pfvxvpFUDJV2h2nY0FidLUml22uGLSjByFbM6aqQQws= The symbol PSR_ENDSTATE is pointless for userspace. Drop it from the UAPI headers and instead inline it into the only two callers. As as side-effect, remove a leak of an internal kconfig symbol through the UAPI headers. Suggested-by: Arnd Bergmann Link: https://lore.kernel.org/lkml/d2ad12f2-3d65-4bef-890c-65d78a33d790@app= .fastmail.com/ Signed-off-by: Thomas Wei=C3=9Fschuh --- arch/arm/include/asm/processor.h | 3 ++- arch/arm/include/uapi/asm/ptrace.h | 9 --------- arch/arm/kernel/signal.c | 3 ++- scripts/headers_install.sh | 1 - 4 files changed, 4 insertions(+), 12 deletions(-) diff --git a/arch/arm/include/asm/processor.h b/arch/arm/include/asm/proces= sor.h index 326864f79d18..bba83228bc22 100644 --- a/arch/arm/include/asm/processor.h +++ b/arch/arm/include/asm/processor.h @@ -73,7 +73,8 @@ static inline void arch_thread_struct_whitelist(unsigned = long *offset, regs->ARM_cpsr =3D USR26_MODE; \ if (elf_hwcap & HWCAP_THUMB && pc & 1) \ regs->ARM_cpsr |=3D PSR_T_BIT; \ - regs->ARM_cpsr |=3D PSR_ENDSTATE; \ + if (IS_ENABLED(CONFIG_CPU_ENDIAN_BE8)) \ + regs->ARM_cpsr |=3D PSR_E_BIT; \ regs->ARM_pc =3D pc & ~1; /* pc */ \ regs->ARM_sp =3D sp; /* sp */ \ }) diff --git a/arch/arm/include/uapi/asm/ptrace.h b/arch/arm/include/uapi/asm= /ptrace.h index 8896c23ccba7..2ef917957005 100644 --- a/arch/arm/include/uapi/asm/ptrace.h +++ b/arch/arm/include/uapi/asm/ptrace.h @@ -102,15 +102,6 @@ #define PSR_IT_MASK 0x0600fc00 /* If-Then execution state mask */ #define PSR_ENDIAN_MASK 0x00000200 /* Endianness state mask */ =20 -/* - * Default endianness state - */ -#ifdef CONFIG_CPU_ENDIAN_BE8 -#define PSR_ENDSTATE PSR_E_BIT -#else -#define PSR_ENDSTATE 0 -#endif - /*=20 * These are 'magic' values for PTRACE_PEEKUSR that return info about wher= e a * process is located in memory. diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c index 79a6730fa0eb..7be9188d83d9 100644 --- a/arch/arm/kernel/signal.c +++ b/arch/arm/kernel/signal.c @@ -337,7 +337,8 @@ setup_return(struct pt_regs *regs, struct ksignal *ksig, return 1; } =20 - cpsr |=3D PSR_ENDSTATE; + if (IS_ENABLED(CONFIG_CPU_ENDIAN_BE8)) + cpsr |=3D PSR_E_BIT; =20 /* * Maybe we need to deliver a 32-bit signal to a 26-bit task. diff --git a/scripts/headers_install.sh b/scripts/headers_install.sh index 727f7f82c2c7..4f03521f4026 100755 --- a/scripts/headers_install.sh +++ b/scripts/headers_install.sh @@ -70,7 +70,6 @@ configs=3D$(sed -e ' # # The format is : in each line. config_leak_ignores=3D" -arch/arm/include/uapi/asm/ptrace.h:CONFIG_CPU_ENDIAN_BE8 arch/nios2/include/uapi/asm/swab.h:CONFIG_NIOS2_CI_SWAB_NO arch/nios2/include/uapi/asm/swab.h:CONFIG_NIOS2_CI_SWAB_SUPPORT arch/x86/include/uapi/asm/auxvec.h:CONFIG_IA32_EMULATION --=20 2.52.0 From nobody Mon Feb 9 04:41:16 2026 Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C47D83612F3 for ; Wed, 14 Jan 2026 07:28:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=193.142.43.55 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768375707; cv=none; b=S3HHae6lXPQjsisqWSK7QdsiZ7MzIrQxbGYRV4mqrhPoxScvaYxzKfSrEXbMtwXJOhHTAyJ4/oZqZnPBBSwkvAvI+X2FbI4tG4kLENVoqfdVYcxeLVtdkwUmwDmZHymQ7MHTxbar975UQoC+LHoFJAmYVP+m3afmSM2RJgo1Ss0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768375707; c=relaxed/simple; bh=mE+0AJr1mZB6A2o+OL0n7XdbaqJ3PgEVC2ckr3OVoI0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GXDbRsPCB34L3NCw8DP+PMyBsbd8IQim3QkDkks/h7k0CQHxsfdA8It+QGG1GmCTam6KtiWcdo1zyUlta+gEYuCQceK3ltbKnaTXrlCwGRrDk+YFtCpWu2zMB02cXrloodxTVEIwK8UqnP+/pctyNRHcsKuOnuwfa8uaIhrDEdY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de; spf=pass smtp.mailfrom=linutronix.de; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=dAc3knak; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=U/JNrNkB; arc=none smtp.client-ip=193.142.43.55 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linutronix.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="dAc3knak"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="U/JNrNkB" From: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1768375702; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Y7a/8gcbX01XP0/CB6Qd22scjF/OCyrYXm0gztMHssc=; b=dAc3knakfpp5DOvozjUAzoewOZ2pVCF/gzFHHIZ75ZyWUHoMYvGm/4/09V1mA7934bDNxI o8gD9fHx/aoRilno7/lwiTZRd10IK5bC8RN+D7DKML6UnnYDtoNVpHNgyAI9Lw6eKvpVs3 e/KiA20HVCghVVTcxUPZB34U1So1sEh5Gw/BgVehGVuJoZAuEb7t18x2pegQqJ5mefjAvm fV1es3dz7yXmx0JDg+jFub20M6R/nf90wgBOsSdhhloAi1vbdnBvni4ArSXLfh+Zs5Z2Og oJWVW3QVgWeA6LWHyckX4gMdJvDzi3ymAV6AV7ZY4eLe0avARB78clO/ETU8lQ== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1768375702; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Y7a/8gcbX01XP0/CB6Qd22scjF/OCyrYXm0gztMHssc=; b=U/JNrNkBGW3Y1nOEUaTFB2cpGsA8hZXMVJD6By/YcVfJ2SSkYeJjE6uzVutPg+0uOmQEFf hiXM8qitjatAN+BQ== Date: Wed, 14 Jan 2026 08:28:15 +0100 Subject: [PATCH v3 3/5] nios2: uapi: Remove custom asm/swab.h from UAPI Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260114-headers_install-config-leak-v3-3-c14cde735a79@linutronix.de> References: <20260114-headers_install-config-leak-v3-0-c14cde735a79@linutronix.de> In-Reply-To: <20260114-headers_install-config-leak-v3-0-c14cde735a79@linutronix.de> To: Vineet Gupta , Russell King , Dinh Nguyen , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" Cc: linux-snps-arc@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Arnd Bergmann , =?utf-8?q?Thomas_Wei=C3=9Fschuh?= X-Developer-Signature: v=1; a=ed25519-sha256; t=1768375700; l=1518; i=thomas.weissschuh@linutronix.de; s=20240209; h=from:subject:message-id; bh=mE+0AJr1mZB6A2o+OL0n7XdbaqJ3PgEVC2ckr3OVoI0=; b=zHTjG8R/h7uXxKeC9I3uek7xU7TY91UMhtbGC20yAPj5ya4N/uCIjgRNXiJw13vsOPf8QLkN/ AdLzoLuojFQDPOjMqW281pckTTVbMF16RgvhBWDqP94AqSmP3qrsZXA X-Developer-Key: i=thomas.weissschuh@linutronix.de; a=ed25519; pk=pfvxvpFUDJV2h2nY0FidLUml22uGLSjByFbM6aqQQws= UAPI headers are not supposed to leak references to kconfig symbols. They are undefined there in any case. As all actual definitions of this header are guarded behind a kconfig symbol, for userspace the header is always identical to its asm-generic variant. Make the custom UAPI header a kernel-internal one, so the leaks of kconfig symbols are fixed and userspace will instead use asm-generic/swab.h directly. Suggested-by: Arnd Bergmann Link: https://lore.kernel.org/lkml/93c55086-931a-4282-a94c-de4954047fa9@app= .fastmail.com/ Signed-off-by: Thomas Wei=C3=9Fschuh --- arch/nios2/include/{uapi =3D> }/asm/swab.h | 0 scripts/headers_install.sh | 2 -- 2 files changed, 2 deletions(-) diff --git a/arch/nios2/include/uapi/asm/swab.h b/arch/nios2/include/asm/sw= ab.h similarity index 100% rename from arch/nios2/include/uapi/asm/swab.h rename to arch/nios2/include/asm/swab.h diff --git a/scripts/headers_install.sh b/scripts/headers_install.sh index 4f03521f4026..613f400a67d1 100755 --- a/scripts/headers_install.sh +++ b/scripts/headers_install.sh @@ -70,8 +70,6 @@ configs=3D$(sed -e ' # # The format is : in each line. config_leak_ignores=3D" -arch/nios2/include/uapi/asm/swab.h:CONFIG_NIOS2_CI_SWAB_NO -arch/nios2/include/uapi/asm/swab.h:CONFIG_NIOS2_CI_SWAB_SUPPORT arch/x86/include/uapi/asm/auxvec.h:CONFIG_IA32_EMULATION arch/x86/include/uapi/asm/auxvec.h:CONFIG_X86_64 " --=20 2.52.0 From nobody Mon Feb 9 04:41:16 2026 Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 422393612EB for ; Wed, 14 Jan 2026 07:28:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=193.142.43.55 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768375710; cv=none; b=ap6UMwaQBnh4TnYf8ld4sQiA2UYyokNAcR8SHhG7cIo8RtLJfXSLknfW5SaivUmbQzoTQhyJ7GHLop9zytZ5QXCZQejw2gtjtpkFk4hWxDTLPeUmw93VYTq1bm9/hdgf3mM2J0cCKFVAtHmQiUsV8dEu8Ym7hcF7ptsL/LzjvMA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768375710; c=relaxed/simple; bh=1ntrFEOo6yMiRT1zeHWBcYc625HQZOv1NUT0dl13IAY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Vy2XPPwz+0rP3yrmLKjyrGFkb8iJY9Q9sblZKdtvSvaBXB86328CO7obRPdhJAAFgdSZqmpz0OK0M8US93LdehCZT2py6wVxGaXMcw3GiyDIgdsjdjYnkbD+YJFqeMOH1k6PNhF8ylYuDM9x0tDEcr64ct3L4hN9ey2OtZ3iuiM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de; spf=pass smtp.mailfrom=linutronix.de; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=gaXlW5zA; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=+CvknTft; arc=none smtp.client-ip=193.142.43.55 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linutronix.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="gaXlW5zA"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="+CvknTft" From: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1768375703; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Aig1PLerlTshO4U9aCkB6AyEJOyKwJW4ZrYV/oqt+Zo=; b=gaXlW5zA/MYXd6NbKuezEsmax7N92NNr4JWvZvwHId5OISIAYn8uD46FhMFrA9rhwh2PRT EU0b26GySHVzPsAzOYDbM/keTxzpVFwGiiun2TuBUg0SjiaXLmaSw4FrRiQOQQ9XMbJWPP H2U0UVpJJaO8U29C2enDwnR/UMAAVPLvLhgDXm4BCz/Wm8CvPydD5Uz1rPKaScpvPLSzZQ rgzesRbic6oQ6uN+Kg/qW5KULzgEACr+K8gTep6zyB8EfKJ4cD/jfpsV22tvs/Ghi949iy qP1+gYIKJIv8w9mfjwbEjWjCxH+yuA+6vENEqyRliyuWEZqmJlNFMlp8zP0fxQ== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1768375703; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Aig1PLerlTshO4U9aCkB6AyEJOyKwJW4ZrYV/oqt+Zo=; b=+CvknTftYYD7GsBliqMP9VsegNPf4yvMf3lA0DILNaZeqSNhWWacnQesZmGXC/a3+kji+5 9N/szH70sgpJCXCQ== Date: Wed, 14 Jan 2026 08:28:16 +0100 Subject: [PATCH v3 4/5] x86/uapi: Stop leaking kconfig references to userspace Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260114-headers_install-config-leak-v3-4-c14cde735a79@linutronix.de> References: <20260114-headers_install-config-leak-v3-0-c14cde735a79@linutronix.de> In-Reply-To: <20260114-headers_install-config-leak-v3-0-c14cde735a79@linutronix.de> To: Vineet Gupta , Russell King , Dinh Nguyen , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" Cc: linux-snps-arc@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Arnd Bergmann , =?utf-8?q?Thomas_Wei=C3=9Fschuh?= X-Developer-Signature: v=1; a=ed25519-sha256; t=1768375700; l=1708; i=thomas.weissschuh@linutronix.de; s=20240209; h=from:subject:message-id; bh=1ntrFEOo6yMiRT1zeHWBcYc625HQZOv1NUT0dl13IAY=; b=unZ0CyXvkfkoMgqz27osbmzz+sWFiYYt2jt4IQ0m90dr/ZexgmllmyMRDCycdCQ5buZiUfe11 jvv3AV3A6BDC47vBKjbr1LRDnU26RzSjl1j0vpNZO74hj4Hi4fc7GQm X-Developer-Key: i=thomas.weissschuh@linutronix.de; a=ed25519; pk=pfvxvpFUDJV2h2nY0FidLUml22uGLSjByFbM6aqQQws= UAPI headers are not supposed to leak references to kconfig symbols. These won't be set when building userspace. Hide the kconfig reference behind 'if defined(__KERNEL__)', so it will be stripped by headers_install.sh. The result for userspace will be the same, but the exceptions in headers_install.sh can also be removed. Signed-off-by: Thomas Wei=C3=9Fschuh --- There is no point in exposing AT_VECTOR_SIZE_ARCH in the UAPI in any case and I have another series in the works to get rid of it completely. --- arch/x86/include/uapi/asm/auxvec.h | 2 +- scripts/headers_install.sh | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/arch/x86/include/uapi/asm/auxvec.h b/arch/x86/include/uapi/asm= /auxvec.h index 6beb55bbefa4..bdde9e18f94e 100644 --- a/arch/x86/include/uapi/asm/auxvec.h +++ b/arch/x86/include/uapi/asm/auxvec.h @@ -11,7 +11,7 @@ #define AT_SYSINFO_EHDR 33 =20 /* entries in ARCH_DLINFO: */ -#if defined(CONFIG_IA32_EMULATION) || !defined(CONFIG_X86_64) +#if defined(__KERNEL__) && (defined(CONFIG_IA32_EMULATION) || !defined(CON= FIG_X86_64)) # define AT_VECTOR_SIZE_ARCH 3 #else /* else it's non-compat x86-64 */ # define AT_VECTOR_SIZE_ARCH 2 diff --git a/scripts/headers_install.sh b/scripts/headers_install.sh index 613f400a67d1..1301ba68d772 100755 --- a/scripts/headers_install.sh +++ b/scripts/headers_install.sh @@ -70,8 +70,6 @@ configs=3D$(sed -e ' # # The format is : in each line. config_leak_ignores=3D" -arch/x86/include/uapi/asm/auxvec.h:CONFIG_IA32_EMULATION -arch/x86/include/uapi/asm/auxvec.h:CONFIG_X86_64 " =20 for c in $configs --=20 2.52.0 From nobody Mon Feb 9 04:41:16 2026 Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1F9553612F7 for ; Wed, 14 Jan 2026 07:28:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=193.142.43.55 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768375714; cv=none; b=kygQU241GUUTSzxdh0ss6hbjJeXWbF9XkITM+ALKdUfGS8asSAlv7nAiPsdkHFbx/30nYSop3oo63QDjAcv45kkLr9D55r99rTp2qACCVk7ONIOa6cgCLGv1iK3KFSV+LQrX94QXqGdFoi3LvmUHbvnooR2uEkKx5YTwSQN0Eik= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768375714; c=relaxed/simple; bh=3m2ChPrsGt9AyZmjEghF2edS4ROwGKo0RjvgqUHiJ78=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=m9MvS8/JnjFGl8nguqwgu66N63V/p5sIWI85UJdkCZF5egN4QOSrt33anp94+H8PVCl/usmjAmqG6KiLLbUwCUpnbXRW8ZVtz8NaRzKmy4127ft8MxkOA/1S4bgNrCMJrPbavryWMQK0EtUmNc4lIlShOdbmwnxgSnetwbBwdng= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de; spf=pass smtp.mailfrom=linutronix.de; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=wItPH+Oo; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=RF+Q28Ca; arc=none smtp.client-ip=193.142.43.55 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linutronix.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="wItPH+Oo"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="RF+Q28Ca" From: =?utf-8?q?Thomas_Wei=C3=9Fschuh?= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1768375703; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+Nm08QPvja+X8sRm8npcNZeirzQwsu4YExZqsNCkcus=; b=wItPH+OoIYy3lUp6cVpUQfuoL332WR9ZjDhwfbPKpI0SrIu4V+6s1sgqJOwpmQt9voqBAj PWp3RDZl8/zT3zyBcNdXsrbB1PdonxmaqqH09K8jYZXY15MSg2JvizasD3v8wkIUU7c5m6 X22JrDYz15uc+Kh8pZV6ov9gSpwbpLtYHTjol6rOt3Ct463Z7QssZFhKETFIjtMODfRMGG M4OBbbusunYaiQFhQto21qgNL0QPJOxkSc2d9sF8BeWZCMiRNed+40oKvywoksJfSQZXJC K9IOLrfaEMQyZaAvaFQ3q1RKg/UZ3YhlJPvdLNgchXimEd2tHXRP3lJ4flWeTQ== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1768375703; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+Nm08QPvja+X8sRm8npcNZeirzQwsu4YExZqsNCkcus=; b=RF+Q28CaOAPU284VmexIc0aZUHHF4X9c+sm/M+O89NQF1b95cB+Q3vTI+FefXHS+cXKsOY jWI3d35p0L0pJ6Dg== Date: Wed, 14 Jan 2026 08:28:17 +0100 Subject: [PATCH v3 5/5] scripts: headers_install.sh: Remove config leak ignore machinery Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260114-headers_install-config-leak-v3-5-c14cde735a79@linutronix.de> References: <20260114-headers_install-config-leak-v3-0-c14cde735a79@linutronix.de> In-Reply-To: <20260114-headers_install-config-leak-v3-0-c14cde735a79@linutronix.de> To: Vineet Gupta , Russell King , Dinh Nguyen , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" Cc: linux-snps-arc@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Arnd Bergmann , =?utf-8?q?Thomas_Wei=C3=9Fschuh?= X-Developer-Signature: v=1; a=ed25519-sha256; t=1768375701; l=1231; i=thomas.weissschuh@linutronix.de; s=20240209; h=from:subject:message-id; bh=3m2ChPrsGt9AyZmjEghF2edS4ROwGKo0RjvgqUHiJ78=; b=7ty2MFg8qSJqB+q7bjSW5inNXThYk4N2JoLlON7IXq+tQEtXUwlpj4X/HEZYc//zsIziRhwTS FgMiJYIWX5mBkmu/K7U33GBloiLdM4qcamai/7jcU/noDvmu6P54Rak X-Developer-Key: i=thomas.weissschuh@linutronix.de; a=ed25519; pk=pfvxvpFUDJV2h2nY0FidLUml22uGLSjByFbM6aqQQws= There are no entries left to ignore and none should be added again. Remove the now unused logic. Signed-off-by: Thomas Wei=C3=9Fschuh --- scripts/headers_install.sh | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/scripts/headers_install.sh b/scripts/headers_install.sh index 1301ba68d772..9c15e748761c 100755 --- a/scripts/headers_install.sh +++ b/scripts/headers_install.sh @@ -64,30 +64,10 @@ configs=3D$(sed -e ' d ' $OUTFILE) =20 -# The entries in the following list do not result in an error. -# Please do not add a new entry. This list is only for existing ones. -# The list will be reduced gradually, and deleted eventually. (hopefully) -# -# The format is : in each line. -config_leak_ignores=3D" -" - for c in $configs do - leak_error=3D1 - - for ignore in $config_leak_ignores - do - if echo "$INFILE:$c" | grep -q "$ignore$"; then - leak_error=3D - break - fi - done - - if [ "$leak_error" =3D 1 ]; then - echo "error: $INFILE: leak $c to user-space" >&2 - exit 1 - fi + echo "error: $INFILE: leak $c to user-space" >&2 + exit 1 done =20 rm -f $TMPFILE --=20 2.52.0