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 04D93D3A667 for ; Wed, 30 Oct 2024 09:18:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8D1308D0001; Wed, 30 Oct 2024 05:18:32 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 880046B00A6; Wed, 30 Oct 2024 05:18:32 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6FABC8D0001; Wed, 30 Oct 2024 05:18:32 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 51B8D6B00A5 for ; Wed, 30 Oct 2024 05:18:32 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id F189B1C50B0 for ; Wed, 30 Oct 2024 09:18:31 +0000 (UTC) X-FDA: 82729717098.25.A4D6A17 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by imf04.hostedemail.com (Postfix) with ESMTP id 2094740007 for ; Wed, 30 Oct 2024 09:17:56 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=DEMqJNHK; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b="QGyfx+/R"; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=TICKER+c; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=rYiOW9we; dmarc=none; spf=pass (imf04.hostedemail.com: domain of vbabka@suse.cz designates 195.135.223.131 as permitted sender) smtp.mailfrom=vbabka@suse.cz ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1730279792; a=rsa-sha256; cv=none; b=sOyHQEqwNpw1E3Mg4suD4C+yfh6wocS7xv7Zyvr9Whsx/dgDrfNq2CjIzqwomnrDCZCS5v +lq6y25inrD8MjNno0OdgOi9QwR02E8MkFfzKhzvo+pb2++n/R2JRx8i1YNi9iLnSCLxxQ UE/KO4Wm7PT13X5Y/S3ReisWWqpN/ZU= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=DEMqJNHK; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b="QGyfx+/R"; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=TICKER+c; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=rYiOW9we; dmarc=none; spf=pass (imf04.hostedemail.com: domain of vbabka@suse.cz designates 195.135.223.131 as permitted sender) smtp.mailfrom=vbabka@suse.cz ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1730279792; 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=iL32MhgwIVaUwx+2Rkq/tXWgVqdWXvRc6rQkuMz1UM8=; b=KjBv1fpie+w37VHn9C+1B02mAsstwIxlDT3EfksILvPRUOO/aMSSI9vQgE5PXBJ4MjDyPq Mw2f13mGieZLzTOqfWQuhQ+PblkJU20iNf8dDXU87qRrBngWuvUl802p92RFCSVgE2u3Kl 6H2x9KhEzieNahVN7poEePB78btaeas= Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id CEA5B1FB5D; Wed, 30 Oct 2024 09:18:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1730279908; h=from:from:reply-to: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:autocrypt:autocrypt; bh=iL32MhgwIVaUwx+2Rkq/tXWgVqdWXvRc6rQkuMz1UM8=; b=DEMqJNHKLrzjfQIOYSGiK/vbrffMlFkYdttRh6PLK6FUtI2MAC0iFVxODzCFNNC/d7ahdZ ynSXDjRPoBCFPhD92MHFM7rtLKZ6aDVIo+C3aX5vDO/H4t0cb/z/LClnywdrLYHGJKbjYF qkraDveVoaqIsqyI5mvE4AMe8dW2ziA= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1730279908; h=from:from:reply-to: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:autocrypt:autocrypt; bh=iL32MhgwIVaUwx+2Rkq/tXWgVqdWXvRc6rQkuMz1UM8=; b=QGyfx+/RWv5NzERuJEmjW1Ktp00aW5LjfovFQ06FFLQ92InL08AjAilsKNbfhO1e1Zgzp9 10LQIbkISY/C8NAQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1730279907; h=from:from:reply-to: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:autocrypt:autocrypt; bh=iL32MhgwIVaUwx+2Rkq/tXWgVqdWXvRc6rQkuMz1UM8=; b=TICKER+cps5YRQkApPvfWcrO/hO6e4sM4gA+qCXyIDBb0n82ijdYuTJCH+iJx7+CiHXS6h qKU8vN/nIQt6MVRWqaAbj+aM697ha6e08qyhSQl6XcgHkeazaFBdRnGNiJ4lOInAqzg6GY l4SiKsPV05vb3MGAYt6nvQf5/l6shsI= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1730279907; h=from:from:reply-to: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:autocrypt:autocrypt; bh=iL32MhgwIVaUwx+2Rkq/tXWgVqdWXvRc6rQkuMz1UM8=; b=rYiOW9weIzCs0fwyW//c92HnOskpX3UOQV3TSCItpyUhHTBGeiMGtuuyLAhU/u3zjfLFWp 7hcEJ/N4XQUN5LAg== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id A1A2213AD9; Wed, 30 Oct 2024 09:18:27 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id iVcZJ+P5IWc0IQAAD6G6ig (envelope-from ); Wed, 30 Oct 2024 09:18:27 +0000 Message-ID: Date: Wed, 30 Oct 2024 10:18:27 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH hotfix 6.12 v4 4/5] mm: refactor arch_calc_vm_flag_bits() and arm64 MTE handling Content-Language: en-US To: Lorenzo Stoakes , Andrew Morton Cc: "Liam R . Howlett" , Jann Horn , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Linus Torvalds , Peter Xu , Catalin Marinas , Will Deacon , Mark Brown , "David S . Miller" , Andreas Larsson , "James E . J . Bottomley" , Helge Deller References: From: Vlastimil Babka Autocrypt: addr=vbabka@suse.cz; keydata= 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 EP+ylKVEKb0Q2A== In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 2094740007 X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: pbkiipu7sqqnq44oepmdfgy4it1u3zzw X-HE-Tag: 1730279876-199836 X-HE-Meta: U2FsdGVkX1/DJL3TDxpx3hmExsW/gzw1vCwjLI/c1aOwsaCi3dSD0BWx3/Uo/aw4eGLzvP8tzrWjroSzDeqcm4xo7UkxAvk9L88N+sheIfpdpGG4SCu2I60oxi7ZYJTOLAijh6tdm34GgyzwgWeYaC1/c8xgk9X+PA+XSDhbYuGBndFgPdpMchcZRGteJNEcRpUS5mhaHvqaHOnfHpwjR/UzAGDNEyYcIHfG+JQLAK/AgxQFdOrUDnFQWUcdaiWzy6b0/iLDP/G9Q4glnEg2F1xMl0EgskDnyMP1yauU8RpwABnMdLPQgjxBOjOs2OFKJr1HqXzeRg6YJqMVct1zbnoIX0x0+UDkoqENKlopPDH+5ILIrLmAe2fbAEE1GxibzDSsQpbihEZGC5pojQPI1+R+7K/6HDImU7+rGdTCizzy2srgyit+3vwMymfOeFgNVCGV87z05qrTY71++pnzJWAzS1t4NoF0T/PeY+xNDkZzzlKGV4iTCy6hLe/DJWv86v2FP7C4QqLjKaDt/m6wDRtpkc/QStjUFK+rb/ucJjN0htGvoIiNKr3ccoWJcV2ly+9xbr5DOa4pSufV89nMhgWVVxibVy0kZVFRPTtKfIplGMTjD66NqodsJ7w/JCMsRCpZCkdHIFwXuqioZ0XwtISZaFuNNkJR2/jHfMdsQ9wvGU86cLVhKY7RTkN7oRGF86gMEAOMMXZ+6aJmai6cByCvr9o4unjkfdhhz8pLCmVCdGs0FBVegGKrVhDbU+H9V6eagYEfieixPyBpP+Jbwp+2cvwVAlrXjqd1yvFxpda+8ulaoovmpZkzaF22iJkjmH/xDTZjntVnjWcsmq1UTzTRs1WO25O7LCF6i8mjLUyn70vUC5CqJp/zMVgaa4mf2PR3pXHrgCvw6Qr6/ivxuy0JElCkEip70/kE6xwI8NuxlZARgjHs/pfjAjJE/ypwLzA+eZtFFqsDAHy4rIi mKdJ+URr VkrQepjLbsqDhXEUUl3ebFw9bnv3M9Fq52Hr2iyjTw2PRVnSu4sY2up6zn97J0elsgXeGkpV15zd4ReH14r5fwfxDWqE/NKpn2Rj7aiavt1uN4M5zXC955/oxE2bh5Ks2lL3dAXZhMFUND/LPna7MJ1man/EFIFScXJmn3NJe4LcvV8W/bmbVfiQ/ip7LRdGSDS6b2APbqYcQMqFpj2sIJr6EN3ZnGCpljO1kZqj4+wCulsd70EvyJ4HZi/f8KQvEVa1pXF4EO1NovFHGTFW1wMxzAv71V0jj39OaNgShSd8CQSK9IbgJcIGtz157Vh0hGbA3eKoE3Fypj53b5TLeN1NKoKr80UdzMVn/u7uY2jXwC4YX6uAmL4mTJawuil/ziq6XE5AM/HpcYZvyHPXnbDkyTXyq3Q4dnHYR3GI0o5CysmmSn1gpcaoaAsPhlyeIMl3/xdVsjiv9vsVgORvEbnZ7SA== 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 10/29/24 19:11, Lorenzo Stoakes wrote: > Currently MTE is permitted in two circumstances (desiring to use MTE having > been specified by the VM_MTE flag) - where MAP_ANONYMOUS is specified, as > checked by arch_calc_vm_flag_bits() and actualised by setting the > VM_MTE_ALLOWED flag, or if the file backing the mapping is shmem, in which > case we set VM_MTE_ALLOWED in shmem_mmap() when the mmap hook is activated > in mmap_region(). > > The function that checks that, if VM_MTE is set, VM_MTE_ALLOWED is also set > is the arm64 implementation of arch_validate_flags(). > > Unfortunately, we intend to refactor mmap_region() to perform this check > earlier, meaning that in the case of a shmem backing we will not have > invoked shmem_mmap() yet, causing the mapping to fail spuriously. > > It is inappropriate to set this architecture-specific flag in general mm > code anyway, so a sensible resolution of this issue is to instead move the > check somewhere else. > > We resolve this by setting VM_MTE_ALLOWED much earlier in do_mmap(), via > the arch_calc_vm_flag_bits() call. > > This is an appropriate place to do this as we already check for the > MAP_ANONYMOUS case here, and the shmem file case is simply a variant of the > same idea - we permit RAM-backed memory. > > This requires a modification to the arch_calc_vm_flag_bits() signature to > pass in a pointer to the struct file associated with the mapping, however > this is not too egregious as this is only used by two architectures anyway > - arm64 and parisc. > > So this patch performs this adjustment and removes the unnecessary > assignment of VM_MTE_ALLOWED in shmem_mmap(). > > Suggested-by: Catalin Marinas > Reported-by: Jann Horn > Fixes: deb0f6562884 ("mm/mmap: undo ->mmap() when arch_validate_flags() fails") > Cc: stable > Signed-off-by: Lorenzo Stoakes Reviewed-by: Vlastimil Babka > --- a/arch/arm64/include/asm/mman.h > +++ b/arch/arm64/include/asm/mman.h > @@ -6,6 +6,8 @@ > > #ifndef BUILD_VDSO > #include > +#include > +#include > #include > > static inline unsigned long arch_calc_vm_prot_bits(unsigned long prot, > @@ -31,19 +33,21 @@ static inline unsigned long arch_calc_vm_prot_bits(unsigned long prot, > } > #define arch_calc_vm_prot_bits(prot, pkey) arch_calc_vm_prot_bits(prot, pkey) > > -static inline unsigned long arch_calc_vm_flag_bits(unsigned long flags) > +static inline unsigned long arch_calc_vm_flag_bits(struct file *file, > + unsigned long flags) > { > /* > * Only allow MTE on anonymous mappings as these are guaranteed to be > * backed by tags-capable memory. The vm_flags may be overridden by a > * filesystem supporting MTE (RAM-based). We should also eventually remove the last sentence or even replace it with its negation, or somebody might try reintroducing the pattern that won't work anymore (wasn't there such a hugetlbfs thing in -next?). > */ > - if (system_supports_mte() && (flags & MAP_ANONYMOUS)) > + if (system_supports_mte() && > + ((flags & MAP_ANONYMOUS) || shmem_file(file))) > return VM_MTE_ALLOWED; > > return 0; > }