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 A3BB1C46CD2 for ; Tue, 2 Jan 2024 16:10:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3337C6B02A1; Tue, 2 Jan 2024 11:10:59 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 2E30A8D0006; Tue, 2 Jan 2024 11:10:59 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1AA8A6B02A4; Tue, 2 Jan 2024 11:10:59 -0500 (EST) 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 0C4546B02A1 for ; Tue, 2 Jan 2024 11:10:59 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id CED94A081B for ; Tue, 2 Jan 2024 16:10:58 +0000 (UTC) X-FDA: 81634859796.07.DC26FB6 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) by imf25.hostedemail.com (Postfix) with ESMTP id 60482A001B for ; Tue, 2 Jan 2024 16:10:55 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=qjgwENPJ; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=1QTZh1Yz; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=qjgwENPJ; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=1QTZh1Yz; dmarc=none; spf=pass (imf25.hostedemail.com: domain of vbabka@suse.cz designates 195.135.223.130 as permitted sender) smtp.mailfrom=vbabka@suse.cz ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1704211855; a=rsa-sha256; cv=none; b=zrG8JxHCj+I7bkrQzc0wHKDShDrOYnvPPf8vYfhSo73nuwJsDQLbtX//LK3Q5yUjRHNzDq c3MrR2sC0UUjyadMAKnOK25Ea1kf1E3u5jtITA7eHtNTV6JowGPPCOa7ZB+2Rgq8S7Kbbx /AB6qB7D3caBdeQhHzBtEJ45Rf9uY20= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=qjgwENPJ; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=1QTZh1Yz; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=qjgwENPJ; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=1QTZh1Yz; dmarc=none; spf=pass (imf25.hostedemail.com: domain of vbabka@suse.cz designates 195.135.223.130 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=1704211855; 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=XVgL7DZ8mWAYcWGWuopXqY0ECrWRGDftGwQn5Ry+vCc=; b=ucbPo+7KSZbIowRVOw7ddLAad3cAf35vGuuB4hhtzBwl9klkkSy42iKlJsmDhbuTvc1o13 mXcLqHD6E12uzuruzbpQgXHq1DdzMmb+vXsEHt0oowybcRPn6HQPRC4gcgsBxQcUg4JNPb crId/iDLePdaeBKn5O28RELF9ShNNWE= Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [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-out1.suse.de (Postfix) with ESMTPS id 7B815210E9; Tue, 2 Jan 2024 16:10:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1704211853; 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; bh=XVgL7DZ8mWAYcWGWuopXqY0ECrWRGDftGwQn5Ry+vCc=; b=qjgwENPJL3wvMdNf1NQhTmCqxbErIBXz24k4rN4DaX8Q5CwLgaz4bwpltIn0tDfDqPzD0q oCNjnuCrbFOEt77QCSj1nLpB3YK9GmA4gkeNYKtJjDOh/ilZqZef4tiMDP3lngyaY1Jjuo eIub1M3AYlqebWMB+WJwQwa9FNTfGl4= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1704211853; 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; bh=XVgL7DZ8mWAYcWGWuopXqY0ECrWRGDftGwQn5Ry+vCc=; b=1QTZh1YzMctn1TSoUf76eKlcAMwAyYKRbp3bUfKTABE4vhTVaUFKh8kGh5RP0RXhdSUjuN YcXEArQXJRnMziAA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1704211853; 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; bh=XVgL7DZ8mWAYcWGWuopXqY0ECrWRGDftGwQn5Ry+vCc=; b=qjgwENPJL3wvMdNf1NQhTmCqxbErIBXz24k4rN4DaX8Q5CwLgaz4bwpltIn0tDfDqPzD0q oCNjnuCrbFOEt77QCSj1nLpB3YK9GmA4gkeNYKtJjDOh/ilZqZef4tiMDP3lngyaY1Jjuo eIub1M3AYlqebWMB+WJwQwa9FNTfGl4= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1704211853; 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; bh=XVgL7DZ8mWAYcWGWuopXqY0ECrWRGDftGwQn5Ry+vCc=; b=1QTZh1YzMctn1TSoUf76eKlcAMwAyYKRbp3bUfKTABE4vhTVaUFKh8kGh5RP0RXhdSUjuN YcXEArQXJRnMziAA== 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 454BD1340C; Tue, 2 Jan 2024 16:10:53 +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 f9+XEI01lGWlegAAD6G6ig (envelope-from ); Tue, 02 Jan 2024 16:10:53 +0000 Message-ID: Date: Tue, 2 Jan 2024 17:10:53 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3 15/34] mm: slub: Unpoison the memchr_inv() return value Content-Language: en-US To: Ilya Leoshkevich , Alexander Gordeev , Alexander Potapenko , Andrew Morton , Christoph Lameter , David Rientjes , Heiko Carstens , Joonsoo Kim , Marco Elver , Masami Hiramatsu , Pekka Enberg , Steven Rostedt , Vasily Gorbik Cc: Christian Borntraeger , Dmitry Vyukov , Hyeonggon Yoo <42.hyeyoo@gmail.com>, kasan-dev@googlegroups.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-s390@vger.kernel.org, linux-trace-kernel@vger.kernel.org, Mark Rutland , Roman Gushchin , Sven Schnelle References: <20231213233605.661251-1-iii@linux.ibm.com> <20231213233605.661251-16-iii@linux.ibm.com> From: Vlastimil Babka In-Reply-To: <20231213233605.661251-16-iii@linux.ibm.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 60482A001B X-Stat-Signature: 8uprggfkxozyxjeqhnf75c7ky4xh7wni X-HE-Tag: 1704211855-321405 X-HE-Meta: U2FsdGVkX19ZpqQcqIRn4wUyzC1Qcb3mtHcQkm/fT125gnLlnBxvu/qPgI6bGU4oMXsGGDocfDO2LWwE6+kaiBMN0d4rCROtkjFObg8zKDy7w1z3oro0H44CtV0yGJVrvrmzgb+6oHZU4wKuMxAoi1TDa7ZoAZ+VQRK4XeT7WB8TQsX5ZfLdUxwImA1MTDxAXzY4+BFrwiqLvXU9kHsNzTIr/Cl9d2xzjt/BiHdXBJZbC0InYH8iXpWLwoi+7wdYs+x+gHYQMqeAJnhmWw6NW/UskDXHFqzlNXUSc8YoBtmvMV0nSZRl1CW3k/l17kV7q2ndX4Yclyxr4f7TovzDLLNIpyPA6Bgv6q/VNu99EShgMOkI3abPipdXfyvkRCTvygMwhu4coKWemm7wNsOmxoWdyGIhzcEz89srDZab9GQPLvifim1dKtXpXrGoXVdTX4Cvb5aTrWYqvEG32AB3sbcJ1eFbzvMS0exIjY2jN15tLZzzPdnOqSG7qD6AvS9jssjVWvXetiNwaDQQ6qYiTVpySm3iHzN1KnqMIaOztHeHCbRxuDZ6cIXbyXN/T7MTuVz6zsR6TF/D+MtVSihc9k75lvjEsjCMMkkTwiDxgEJGRPckMs167U16TPKaTNovo8ee+zQyWjoUF9f4lk3ZTb3sBqycqbvPbbLKT1d97V1coZrRQxpxPk6MXSxfUVvYLv2QpfzNTHDvWFChmNYjIMo0hmX27T+DM83Hg28pDPoCYShozLz5RPJyFkcAhkODam2iTOlcjBtD5Wr4321bLbaEqFLhktYglA/YBjO8E0ftkQUSnj2BbAQNkI5HE5K3qm+jHck0NLI9lqw8kygPsEPPzENWGGWUPXVMFNxVkHje/v7tJUg+EzETjwftzMsUlqXYYoGio8Jt5LJOY/kNQgposijNpEHHNJi/bWietFtSGlcKjWb3ZHr81Bq8pMK58FM/BiYl1VGqBGU9LRg hJchsWrI GbP5d5ic43zs8XZI2P1KDO5ET4/UEWMspDqbw/IRb1dsqB+CnCNyZ7dMHVooGoSOWNfQnN2vRFAnvq4HAZ7WBkaV6/W+9PsRAkcVvHF938Tn2RvSpQ3T4hK+NZPsFOo87NcmFReS9C5l866cQK1zXmKC76uq1946wNZPo+fEWBNon/QEO+kF5LOJ9yil73nBXoTqUTVWvzqn9IiBIA/LsmSL/2HlQH7dxcThNFb5TJU6QjmHFHRwe2UyUWHIcIQAwIjXJTSuo0u97xO5LT8CBvrSbprwODqB0c3MiIxOS7GCRUNTsW0M14f0XxIbSgOpmoWM2Gs2EegYodZKi7fInDogvShY/OwKwCSS3kPjEzNLK3h+OlJ7PACg8m2E7F0YjzfjuQPmPZhx0Ppj0YiUIby6Zdg== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000003, 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 12/14/23 00:24, Ilya Leoshkevich wrote: > Even though the KMSAN warnings generated by memchr_inv() are suppressed > by metadata_access_enable(), its return value may still be poisoned. > > The reason is that the last iteration of memchr_inv() returns > `*start != value ? start : NULL`, where *start is poisoned. Because of > this, somewhat counterintuitively, the shadow value computed by > visitSelectInst() is equal to `(uintptr_t)start`. > > The intention behind guarding memchr_inv() behind > metadata_access_enable() is to touch poisoned metadata without > triggering KMSAN, so unpoison its return value. > > Signed-off-by: Ilya Leoshkevich Acked-by: Vlastimil Babka > --- > mm/slub.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/mm/slub.c b/mm/slub.c > index 2d29d368894c..802702748925 100644 > --- a/mm/slub.c > +++ b/mm/slub.c > @@ -1076,6 +1076,7 @@ static int check_bytes_and_report(struct kmem_cache *s, struct slab *slab, > metadata_access_enable(); > fault = memchr_inv(kasan_reset_tag(start), value, bytes); > metadata_access_disable(); > + kmsan_unpoison_memory(&fault, sizeof(fault)); > if (!fault) > return 1; > > @@ -1182,6 +1183,7 @@ static void slab_pad_check(struct kmem_cache *s, struct slab *slab) > metadata_access_enable(); > fault = memchr_inv(kasan_reset_tag(pad), POISON_INUSE, remainder); > metadata_access_disable(); > + kmsan_unpoison_memory(&fault, sizeof(fault)); > if (!fault) > return; > while (end > fault && end[-1] == POISON_INUSE)