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 B31DAC41535 for ; Fri, 22 Dec 2023 11:36:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 481596B0078; Fri, 22 Dec 2023 06:36:07 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 431D66B007D; Fri, 22 Dec 2023 06:36:07 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 320386B007E; Fri, 22 Dec 2023 06:36:07 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 241A46B0078 for ; Fri, 22 Dec 2023 06:36:07 -0500 (EST) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id CC906160DBA for ; Fri, 22 Dec 2023 11:36:06 +0000 (UTC) X-FDA: 81594250332.24.C2A71B6 Received: from mail-qv1-f51.google.com (mail-qv1-f51.google.com [209.85.219.51]) by imf01.hostedemail.com (Postfix) with ESMTP id 180D940013 for ; Fri, 22 Dec 2023 11:36:04 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=NGZQ8tqr; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf01.hostedemail.com: domain of glider@google.com designates 209.85.219.51 as permitted sender) smtp.mailfrom=glider@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1703244965; 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=HlozJj1f2kvO8UJMaafcew1dPPV20AWiBo6Zcv/BbcM=; b=kFyuoUbSseFhA0NNagUNDHPyi41MNgGVzA5GxNTT+9e7wZqN3Lij0a5OQIUqpJO3pFxK7+ Q7YIxZ+YrcJyYMNrd0e+vvSnQoa7ir+x5k7le7lyTsig0VDGDzedVvXu0tMeqpGZfJBo0J Y0ZjoLNIGMDCtEGIsq7NufXyu2rjLxk= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=NGZQ8tqr; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf01.hostedemail.com: domain of glider@google.com designates 209.85.219.51 as permitted sender) smtp.mailfrom=glider@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1703244965; a=rsa-sha256; cv=none; b=DY0XmVdSoWjGnLDawDX5nw55bC81YAeTLuLxLe1yLeGLHhfvfCH6/KMQs1bPnIs/DCSoL2 Iki8xka9fJMjxXCHwhIaVhephy7LuSOsQRXO66wBuMQlOSt3I14md9fEY5eVSWm6VWpRBj ny+NHcaIcD/BqEfYgGrC2ojWDZM4qbY= Received: by mail-qv1-f51.google.com with SMTP id 6a1803df08f44-67f6272e7c6so10537236d6.1 for ; Fri, 22 Dec 2023 03:36:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1703244964; x=1703849764; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=HlozJj1f2kvO8UJMaafcew1dPPV20AWiBo6Zcv/BbcM=; b=NGZQ8tqrXT7DSuBtbjQnyfXUD/53CE5bn8Ju45lV0uETsmtI02q/GxiQ2ptBvfst7u sPm36rGfJdNM9U6qAyDHqSHvCTgISrjyL8EQJLNhZuxv1jQ9oL2KfG3oe1aKMMqdW6Nn Gi6GUsfoRtZteGaPCi+rXireImNCBQvss+vR8uEgdtS/Gv2JMJhTt1UI/nFl6Q9LR+2q 90y4dj5Wi7scB4cptekJ4M5FF71kB1aIud4bZpdQYCxKMSw3IZNSQ9QC7PrVF5XiWj7V pIfCb3GuLuxveewMI0aCPkE8kMzoEzHfIHbszSavAXhyoce0ZN7z51zKUDW1gzInjrS4 /u0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1703244964; x=1703849764; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HlozJj1f2kvO8UJMaafcew1dPPV20AWiBo6Zcv/BbcM=; b=tBNl0hukGUVQZku6Vb5hGwPANKtj0y41+FdY3qcy+A723wgXajkLev/3nUfkIn1Snz JHuvtylQ4U60ss2rLnpM2RRJ92iTVSd+4MV62Zpvx7YkSjC3xKkbM08hz5FsdKGkS001 nfmShxfBaLI+sqFGIJSU9d467hu9RGUaFvFKgFJEeXNDMTB3K6k0xHNDKwbieCwhkiQN /4yhFeh56if2BBcjgr9cXg/X0P5YXKBwY2qvPA5cbRyFM9MOHNXbq0CyWI7xwgkMgVTf /XztPxQBuhHRvPgMKa/JEV58TQG129rmqO/UvS4iEi2LxO1mKyRj57KT+cxrnO7+/a6D ZVaA== X-Gm-Message-State: AOJu0YyGbIiT9dMbNwqV2h7LVFtnVjIi6xehiFaeLWCZhZOrQrC94bsu REyF6mmYXLpR3fJGUS109Z5+a0WlfqCd+6xZ781mUnXP8J/k X-Google-Smtp-Source: AGHT+IFf/0l5PchUxoTTmnO+q1QqqQ0MLqXkv/Hk63Z/jliSYncZKvMaBddebIKgg5o5CVXYz4PTSIXPpaGQtUDONNs= X-Received: by 2002:a05:6214:b62:b0:67a:c46c:64e1 with SMTP id ey2-20020a0562140b6200b0067ac46c64e1mr1305854qvb.8.1703244964059; Fri, 22 Dec 2023 03:36:04 -0800 (PST) MIME-Version: 1.0 References: <20231213233605.661251-1-iii@linux.ibm.com> <20231213233605.661251-18-iii@linux.ibm.com> In-Reply-To: <20231213233605.661251-18-iii@linux.ibm.com> From: Alexander Potapenko Date: Fri, 22 Dec 2023 12:35:27 +0100 Message-ID: Subject: Re: [PATCH v3 17/34] lib/zlib: Unpoison DFLTCC output buffers To: Ilya Leoshkevich Cc: Alexander Gordeev , Andrew Morton , Christoph Lameter , David Rientjes , Heiko Carstens , Joonsoo Kim , Marco Elver , Masami Hiramatsu , Pekka Enberg , Steven Rostedt , Vasily Gorbik , Vlastimil Babka , 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 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 180D940013 X-Stat-Signature: fcns3yhxp87jk9wfb41kcx651kdpf8nn X-HE-Tag: 1703244964-178251 X-HE-Meta: U2FsdGVkX18aC+55a3vwJm8eiTHSU8nxHW/1I4UdYzGOjvOmSPr1a9Nry1iJZnco+bnLeCQCI7HF/JuLwR4W9bq1YR32ZurpTdZIBPUNNeQYEdPQuRc3qWeaFQlBdcSbMdBlk2VRm7BOIiazCyvfhcFCZkcdMAhkA2GC5wIq+b2KbNDWdVpLNmQwL1me31a7/iKEG0Xhdnd/04Thq1VrNYBe1g0kSaJR567W//lRtWKv628i7AbNqev6bS/O4If+cum8VIW7sv1VE3fVo+m1zUwaWfMbbL826itlJnuMN4GagjvUt731HMx5GEwP9v11umPvLw7OZRjZQUBNnDksFNypl39bUVSFvejbj6m7aWAl/n8EiQBvjx1X0OyeLTucrHzrEt4nIEvOXR9QOo8nL8BbPeCqB8jJkOUeDjvzQKfBNaz12WtlYFaCEMS9gvL9SYVVLyjtB/1Zu4mMnaqkzx54qLMGdg4q4R3iMqr2HvmoPD5ZS3R5uBpn6Nyv4vzfW856d7aSl0BUk37BOBf0VXYpJxrH8jhQ/cMUJSP7cr8395Ex7U58pfc6oaoTrinIDdt68XsKICZKoz+FwYzU37MT6iUPQF0fyTdTeg2m1PVr5Z2Y0dMZwg0KVfCycMnVR8XaJYKgXRv8KKvAr1VEmoZUkb96iIz2uQ3VVw7vfDqaA1H2aNCtE9EJQ7IivQo85JLDmko441ltQoF+9DhsABQ/qbqykKOOHESWPiNFgQSZ9G852K2w3G6WtYNPkoO4RL9MWITWFUsUa4W+Q+nRtO6SemRVAzfPER5tpjJb5JLFV9WzdNa4+u+veVmVaoRpGIA4I0Tk4ZDePAVi47Jybe4fbl6DHZh1apbNALrWAUhnlQNJ6WKs7RGd7L+dKQoD95cuyDTWTYHe/aLqolX3SHj5rEB9A0rya8FISWEIvhucZe1sbfD6k6aNduoDslPzaApdcwDAotzcYgX/5k3 9Ic9R7Wm 6bS2l5BIUHwlD+XJ8YFXrrDiuxznrwvF3lbrFhjAeeor3szleHXqIf5C8RfcNhYBzjpM+uWv2To47MvbzEK6H/nO1ycrw8xFdnjBtdyYEdoYROThgQTmgD2TD5FJBi9+U0j5re8iWmgDhlrJDQGXBqsdcGljnFII7cna0cXM28IBMUDRZi9YIoliVoXV/fnR3/QZzNbpe/5LzDjqUODTcCoqX3ZdifWssJybiafz/+T1N7FyJg95J+xGK2gAYNomGUXx+G8daL1opCnp9ztITEM+MJ/GSqH0GO3HwZUnDLeoiWkou2ftRckkm8iGwzyvoOj6HbYgcM2S/IPct5d0hH2Xu3J+R9XuCEY+JYKDRXSIOpcJWtMdeftofcw== 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, Dec 14, 2023 at 12:36=E2=80=AFAM Ilya Leoshkevich wrote: > > The constraints of the DFLTCC inline assembly are not precise: they > do not communicate the size of the output buffers to the compiler, so > it cannot automatically instrument it. > > Add the manual kmsan_unpoison_memory() calls for the output buffers. > The logic is the same as in [1]. > > [1] https://github.com/zlib-ng/zlib-ng/commit/1f5ddcc009ac3511e99fc88736a= 9e1a6381168c5 > > Reported-by: Alexander Gordeev > Signed-off-by: Ilya Leoshkevich Reviewed-by: Alexander Potapenko > @@ -34,6 +37,7 @@ static inline dfltcc_cc dfltcc( > ) > { > Byte *t2 =3D op1 ? *op1 : NULL; > + unsigned char *orig_t2 =3D t2; > size_t t3 =3D len1 ? *len1 : 0; > const Byte *t4 =3D op2 ? *op2 : NULL; > size_t t5 =3D len2 ? *len2 : 0; > @@ -59,6 +63,26 @@ static inline dfltcc_cc dfltcc( > : "cc", "memory"); > t2 =3D r2; t3 =3D r3; t4 =3D r4; t5 =3D r5; > > + switch (fn & DFLTCC_FN_MASK) { It might be a good idea to add a comment explaining what this block of code does. (And that it is no-op in non-KMSAN builds)