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 CAFF4E77197 for ; Thu, 9 Jan 2025 08:56:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D97936B007B; Thu, 9 Jan 2025 03:56:54 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D485A6B0082; Thu, 9 Jan 2025 03:56:54 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BE8656B0083; Thu, 9 Jan 2025 03:56:54 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 60DBE6B007B for ; Thu, 9 Jan 2025 03:56:54 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id C0CC6141798 for ; Thu, 9 Jan 2025 08:56:53 +0000 (UTC) X-FDA: 82987308306.19.3233410 Received: from fout-a1-smtp.messagingengine.com (fout-a1-smtp.messagingengine.com [103.168.172.144]) by imf13.hostedemail.com (Postfix) with ESMTP id D0A8E2000D for ; Thu, 9 Jan 2025 08:56:51 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=arndb.de header.s=fm1 header.b=N0f63wdm; dkim=pass header.d=messagingengine.com header.s=fm2 header.b="k 1jm5ab"; spf=pass (imf13.hostedemail.com: domain of arnd@arndb.de designates 103.168.172.144 as permitted sender) smtp.mailfrom=arnd@arndb.de; dmarc=pass (policy=none) header.from=arndb.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1736413011; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=XaB+Ck7nxPsi1AU/Ik3zZJz+uK6Ih4GsicawNA5NprQ=; b=lfMyvo/F2Df2M3B5OhZQRKJPDQfOGWn1/P0zbJFZkZQMq6xRR4Iv7xsLI8YfvRlrXvHir0 Q8gR8CCj++hYv7qwvdgAhVBpS4XkTqQnl3KmMsKYdfEJ+Is6AVaukHCHkNLPLpi8ifLf5T Oaf/A/aW18xtB4qonz6jhQCOaI2AXFY= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=arndb.de header.s=fm1 header.b=N0f63wdm; dkim=pass header.d=messagingengine.com header.s=fm2 header.b="k 1jm5ab"; spf=pass (imf13.hostedemail.com: domain of arnd@arndb.de designates 103.168.172.144 as permitted sender) smtp.mailfrom=arnd@arndb.de; dmarc=pass (policy=none) header.from=arndb.de ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1736413011; a=rsa-sha256; cv=none; b=iMV2BwLsAh4z3QmMAWCqkxiZdE8HL4dXrwNkrEIoUF+eUMGUCjMKagv+cAREaM5eR4Lc8o 9NJLP49/O8v3Vd8a5NuR1i59brPUvvtcWsyvqrFAcjZJ0M3yRAEsXwg9VB99TiWzVcL+o1 ht+SOwvaVMBSN9S3hWMZNvoNmJsqm8w= Received: from phl-compute-10.internal (phl-compute-10.phl.internal [10.202.2.50]) by mailfout.phl.internal (Postfix) with ESMTP id 2DADD13808D6; Thu, 9 Jan 2025 03:56:51 -0500 (EST) Received: from phl-imap-11 ([10.202.2.101]) by phl-compute-10.internal (MEProxy); Thu, 09 Jan 2025 03:56:51 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arndb.de; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm1; t=1736413011; x=1736499411; bh=XaB+Ck7nxPsi1AU/Ik3zZJz+uK6Ih4GsicawNA5NprQ=; b= N0f63wdmcvkoKozoVJfycF3bbYXp7dZJ46CqbI93McMyi5veqqhlRAWALX3EjSMo 4yNCsFObApFEtAKekwQnxy2vNSPD697WMJZc3PXXcwzTWmfJypzshGNNqAVgy0ey bXuykbVyDLglc6bH+5mW/g/Gx1BlDCwsT9iXKay1FbM8KcytGEJu1VMIDDOc1b6C hgGey7xdNzdPjb85ALTEDlhQmzqW5Nfj77rxhw/NrS4nVqHSCCL9OIdlBYvzTByi 0Esh/gFX827Pf+jD2G0KM9QUi0cwZErNXPRRgyYtbVW2gNt51GKNs4HCTEfmPhsN fSy1SxfsoGogmFsWkmxVBQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1736413011; x= 1736499411; bh=XaB+Ck7nxPsi1AU/Ik3zZJz+uK6Ih4GsicawNA5NprQ=; b=k 1jm5abDOh/xLoDwK2om+OAm5riBvIbc+0bqxRRdrftSVRkh9fBRs3Tp+moNap0Nt sPWaGpHwH1gQs9+13KuXDV3Wa/X9x3YpxtRpeHaVuy+AVvP2LUCcy+L3jYdEuj68 MZSPeyJ5k0a2Lgxbl5y1lVR7caEXaoBNjUhAhRHk+MhQfpMwkN9w+OlAEjYPJo9H EFimEYdVwEUQ2Y6DTK6MZFRE1qq7kviG8ctOfQzi1yY6xUbdHif/URtlbbJ0XbjS NTPawFs4gzg+DfXgjPhYZfShXZtm+BHpA9F6VVtwyWysawQbbMKS+LaS/tGrjCpA CxPiYU+03tWmMA3JXWsoQ== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefuddrudeghedguddviecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdp uffrtefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivg hnthhsucdlqddutddtmdenucfjughrpefoggffhffvvefkjghfufgtgfesthejredtredt tdenucfhrhhomhepfdetrhhnugcuuegvrhhgmhgrnhhnfdcuoegrrhhnugesrghrnhgusg druggvqeenucggtffrrghtthgvrhhnpefhtdfhvddtfeehudekteeggffghfejgeegteef gffgvedugeduveelvdekhfdvieenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmh epmhgrihhlfhhrohhmpegrrhhnugesrghrnhgusgdruggvpdhnsggprhgtphhtthhopedu kedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepiigvhhgrseguvggsihgrnhdroh hrghdprhgtphhtthhopehsrghmsehgvghnthhoohdrohhrghdprhgtphhtthhopehmrght thhsthekkeesghhmrghilhdrtghomhdprhgtphhtthhopehkvggvsheskhgvrhhnvghlrd horhhgpdhrtghpthhtohepphgruhhlmhgtkheskhgvrhhnvghlrdhorhhgpdhrtghpthht oheplhhinhhugidqmhhmsehkvhgrtghkrdhorhhgpdhrtghpthhtoheprhhitghhrghrug drhhgvnhguvghrshhonheslhhinhgrrhhordhorhhgpdhrtghpthhtohepghgvvghrthes lhhinhhugidqmheikehkrdhorhhgpdhrtghpthhtoheplhhoohhnghgrrhgthheslhhish htshdrlhhinhhugidruggvvh X-ME-Proxy: Feedback-ID: i56a14606:Fastmail Received: by mailuser.phl.internal (Postfix, from userid 501) id 5D39D2220072; Thu, 9 Jan 2025 03:56:50 -0500 (EST) X-Mailer: MessagingEngine.com Webmail Interface MIME-Version: 1.0 Date: Thu, 09 Jan 2025 09:56:28 +0100 From: "Arnd Bergmann" To: "John Paul Adrian Glaubitz" , "Richard Henderson" , "Matt Turner" , "Eric W. Biederman" , "Kees Cook" , "Paul E. McKenney" , linux-alpha@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: "Michael Cree" , "Sam James" , "Maciej W. Rozycki" , "Geert Uytterhoeven" , "Michael Karcher" , "Chris Hofstaedtler" , util-linux@vger.kernel.org, linux-mips@vger.kernel.org, loongarch@lists.linux.dev Message-Id: <82d33a2d-dffe-4268-a175-4536b3f9c07f@app.fastmail.com> In-Reply-To: References: <20250103140148.370368-1-glaubitz@physik.fu-berlin.de> <24f03227-1b55-4e50-b6e9-7ac74fda2602@app.fastmail.com> <678ee681-12c3-4e79-a04b-495daf343846@app.fastmail.com> Subject: Re: [PATCH] alpha: Fix personality flag propagation across an exec Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: D0A8E2000D X-Rspam-User: X-Stat-Signature: n1s5mupxu9qj64tsmxuofy5xwdiz3c1q X-HE-Tag: 1736413011-613008 X-HE-Meta: U2FsdGVkX19wv5e4m6XPCsfaiHR5O2T/TUHZEvccm95ZYPmnfaLlySjOr+xoYMl4K31QaYTnGz65+gn6WbGml5mOMbki2iNC9bBERqbR34Ppo2gqTgsw+EE7RH0fvTN2NVgITnkMjD4tS0agpW4rMndcNTHilxTJB6C7AGm/LVhoNAvnCRumfQ7juNkJ2n9jpC8wPOzUbrMrtmbSF4FqBB7Au+2vWzPcueHWHi5OI8FEY/SppXduNeyvwsfIAgaCIsbUO8JYSZPdevi34NZLOB9qbzgNrpxbz44CidjAEnH7QWxparMlw8cloi/UU5oQrKF+qc/YEiFEBint8LQAYfI1XFL4Vcb31f6BSRHy+ZQAYlLWFtd3k4hJEyCinVElGHnSKvjvIYdKbtiqRD7nSkkPF76WAfBbN88G7a4+eg6vNfIRNaJgvu0gZ57SNPIxaZW9yDgcw/CnDH/qSExVjLB0D4dpFNOWOHJ07MMS0bRQzJuRAXaw1GA9gokDmBZIl1wbjFdBJ3Vt8rq1G/hxYAAUGJuZLuyKZ6YwuWcVdKf6vRucwSoY5brbfOoKw61xJAG9p4bAp+hqR8CAPIXwYqqykIg5FsUmvEyy1cAv0Q0XgjwK7KWCOEF6tKkYIgmcu0xMl3yGYQ/CvxymqIK2TSii/aBrFDHD6MdM+yfqscUTglAWNM3/zXXHCLzQQnGHiJuCCVqjOTZWjywV/r/Ji9bbx8j+/sZ/ybqKyUUWKYzsxkXustUylNknfyQR6rKtUVKMW/ichc3xNueR8JnoYWBm5Qz6OeEFNPyJ5Oe473QsB6Ee/9otpmVFyChsDNS2MvAbcmuwhB2tWOgCQQ+ICPxCaf7nQ0lFgdEcgBbzgaSWX6seoKKlSXM4z3akWJTzXOgN4bwzg9PoU5ZMdfNAFmhmGzROoH821ZuhjBrMv+KdO9NT+VejyDtQkwlFNyCyuij3P/6MZ8XPMclZoQf fIhyGuTn E5OGoPMl0bMAr6Af0HUNq4rzg8eWXjF2S8YtpaOzeB14Fnxufi96bWxg+Bz/WI9EC21nOScZBHqG0tBL+X1VYfwHFyBy1kQdxiuLKsXvupAkBu/JFUAbFP3FhwKH43IpBeeDpwjELnzQX6OeVBbkjOCgOQKuO7UgQc5WeCZ/Y3FoHqq0nts8ta7I6sbPgmalzcgYOI6PffY1jbH/wRnY/Uy79x5opWQ3grPcsT6rWgwX5l/w= 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: On Thu, Jan 9, 2025, at 09:46, John Paul Adrian Glaubitz wrote: > On Thu, 2025-01-09 at 09:43 +0100, Arnd Bergmann wrote: >> On Thu, Jan 9, 2025, at 09:01, Arnd Bergmann wrote: >> > On Fri, Jan 3, 2025, at 15:01, John Paul Adrian Glaubitz wrote: >> > >> > > >> > > #define SET_PERSONALITY(EX) \ >> > > - set_personality(((EX).e_flags & EF_ALPHA_32BIT) \ >> > > - ? PER_LINUX_32BIT : PER_LINUX) >> > > + set_personality((((EX).e_flags & EF_ALPHA_32BIT) \ >> > > + ? PER_LINUX_32BIT : PER_LINUX) | (current->personality & (~PER_MASK))) >> > >> > This looks wrong to me: since ADDR_LIMIT_32BIT is not part of >> > PER_MASK, executing a regular binary from a taso binary no longer >> > reverts back to the entire 64-bit address space. >> > >> > It seems that the behavior on most other architectures changed in 2012 >> > commit 16f3e95b3209 ("cross-arch: don't corrupt personality flags upon >> > exec()"). >> > > > So, if I understand this correctly, we should just use PER_MASK on alpha > for 64-bit executables and allow the bits to be cleared for 32-bit binaries? I think ideally the EF_ALPHA_32BIT handling should use TIF_32BIT as we do on other architectures, at that point the custom SET_PERSONALITY() can be removed in favor of the asm-generic version. Alternatively this could do something like the arm32 version (note that on arm, PER_LINUX_32BIT/ADDR_LIMIT_32BIT means "allow using the entire 32-bit address space rather than limiting to 26 bits for compatibility", while on alpha it means "use only 31 instead of 42 bits for addressing", but the logic can be the same): unsigned int personality = current->personality & ~PER_MASK; /* * APCS-26 is only valid for OABI executables */ if ((eflags & EF_ARM_EABI_MASK) == EF_ARM_EABI_UNKNOWN && (eflags & EF_ARM_APCS_26)) personality &= ~ADDR_LIMIT_32BIT; else personality |= ADDR_LIMIT_32BIT; set_personality(personality); In any case, I think we should fix alpha, mips and loongarch at the same time, to make sure it doesn't take another decade to fix the rest. Arnd