From patchwork Mon Aug 28 15:08:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florent Revest X-Patchwork-Id: 13368074 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 E725AC83F11 for ; Mon, 28 Aug 2023 15:09:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3FF718E0021; Mon, 28 Aug 2023 11:09:10 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3AE588E001A; Mon, 28 Aug 2023 11:09:10 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 24F248E0021; Mon, 28 Aug 2023 11:09:10 -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 15BA98E001A for ; Mon, 28 Aug 2023 11:09:10 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id DC9501C9423 for ; Mon, 28 Aug 2023 15:09:09 +0000 (UTC) X-FDA: 81173846418.29.49B491B Received: from mail-wr1-f51.google.com (mail-wr1-f51.google.com [209.85.221.51]) by imf30.hostedemail.com (Postfix) with ESMTP id F1F8D80017 for ; Mon, 28 Aug 2023 15:09:07 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b="LwMgQz/P"; dmarc=pass (policy=none) header.from=chromium.org; spf=pass (imf30.hostedemail.com: domain of revest@chromium.org designates 209.85.221.51 as permitted sender) smtp.mailfrom=revest@chromium.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1693235348; a=rsa-sha256; cv=none; b=FhKhySqtWT0KzZo6hC5Tl3s7EkyzNVzH795JiITWiKInCqupuGO1JYKFR44gHtzPGXKhgV b1iOSi9ikn5S3iXCwn46GyUaUhMWCsgzNs2JUdrJ584KPnT8oXu5qVRN7LIPQStNun7LMe 4e7HQ2y9uDwNkJkX33D01eL0iMm202Y= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b="LwMgQz/P"; dmarc=pass (policy=none) header.from=chromium.org; spf=pass (imf30.hostedemail.com: domain of revest@chromium.org designates 209.85.221.51 as permitted sender) smtp.mailfrom=revest@chromium.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1693235348; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=54UPPhNi0y2AdnbsRZs/CNcj4MVRDSwIBY8KLrESmWo=; b=y0irEu4xBnnDpfMfjFfgUYywKxmpO8qT7QYnhKwYD+P97kGQkHmfVZ6HvjMx8PozE48UFR YkxHCAzHxdBvBnDJrFc4WireaVetIIOmexRAOKc47+MvxoJlsPv12JSPMQkjkZ41pibTEM nkE/ikvgzfWXpKZ076Loyitvz1H7Ptg= Received: by mail-wr1-f51.google.com with SMTP id ffacd0b85a97d-31c6cd238e0so2746001f8f.0 for ; Mon, 28 Aug 2023 08:09:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1693235346; x=1693840146; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=54UPPhNi0y2AdnbsRZs/CNcj4MVRDSwIBY8KLrESmWo=; b=LwMgQz/Pz1vI9C+GIi5muwLbzIkuznGpP9E03o8fY/OOVPIb6sBIjWAvlpDZJCYO3c dsDrAs07+54wwoOvW2N+ZRL7SQ5CIMhTMEDoBsYMYTBI3QM95BPxEPPK680uL3vkt8uo vaDJN0HfI+13p6NMtHDCzWAfIsfHMOO6Ww0uk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693235346; x=1693840146; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=54UPPhNi0y2AdnbsRZs/CNcj4MVRDSwIBY8KLrESmWo=; b=Pezov94aDXE/476wXFVr5R4wBfkcXh9FOoHhdVYLrd7Ta6f0LVxQmZdQjN79SmbDNN osMLyopbXZvX5uP42/CN//12anS4671zD2vHBQ2CBLRCQo3ycZOjAmtYuhbyyVOPtpmK fA9oZGaNHnfrBXph0AA4JEsqfhUX/wGKCPScKOSDAOn7F5PbqobkplEGQqbqplyEZ4jF UFt6aqZLQNdPRyv5KuT3VXJR/orU37yri0vujev68XQFvnBzP+KhAHHyyDKMX40RI3dO dXCRUpGBreezw00rsWTvReXalUYCOELADvjiXKXAVRM+UkJpSb7r/dHv+EaPU1bzfo0i J4KA== X-Gm-Message-State: AOJu0Yw5ODB2+3sTKkI7VeAEI1iSFq9eFnQiDATir7NH1jSmiaj7/b4o IvE3T0qib1+ell02EkqcuajD6w== X-Google-Smtp-Source: AGHT+IEsED+uVDf3QF+1TMYiMI9fwCvF0Riiqa1w3RmNOSnx23YM4S/JlhQ+bju/J7g38NJUjnBylw== X-Received: by 2002:a5d:4561:0:b0:313:f75b:c552 with SMTP id a1-20020a5d4561000000b00313f75bc552mr21799616wrc.15.1693235346658; Mon, 28 Aug 2023 08:09:06 -0700 (PDT) Received: from revest.zrh.corp.google.com ([2a00:79e0:9d:6:40c6:6cff:63b:c70a]) by smtp.gmail.com with ESMTPSA id v3-20020a5d43c3000000b003140fff4f75sm10730522wrr.17.2023.08.28.08.09.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 28 Aug 2023 08:09:06 -0700 (PDT) From: Florent Revest To: linux-kernel@vger.kernel.org, linux-mm@kvack.org Cc: akpm@linux-foundation.org, catalin.marinas@arm.com, anshuman.khandual@arm.com, joey.gouly@arm.com, mhocko@suse.com, keescook@chromium.org, david@redhat.com, peterx@redhat.com, izbyshev@ispras.ru, broonie@kernel.org, szabolcs.nagy@arm.com, kpsingh@kernel.org, gthelen@google.com, toiwoton@gmail.com, ayush.jain3@amd.com, Florent Revest Subject: [PATCH v4 1/6] kselftest: vm: Fix tabs/spaces inconsistency in the mdwe test Date: Mon, 28 Aug 2023 17:08:53 +0200 Message-ID: <20230828150858.393570-2-revest@chromium.org> X-Mailer: git-send-email 2.42.0.rc2.253.gd59a3bf2b4-goog In-Reply-To: <20230828150858.393570-1-revest@chromium.org> References: <20230828150858.393570-1-revest@chromium.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: F1F8D80017 X-Stat-Signature: nhus5dz7q4rmmrc7xqurueyk46t9s8nc X-HE-Tag: 1693235347-854287 X-HE-Meta: U2FsdGVkX1+beqzTXHmHrUnYZDxyrfzMj/u/scLD8xG2PpC6jk7k6f40+ZP7eBp2ofiZseNNlqPtv6u7hQw9b5KqH03JZLGkPeDAjUg3bV2u3tgsl5Aq0b05gYqWURpJOn85qv/rOn8WkjbXZmFtlTrenfkjUV6CGkBXviCT9VgVnd5vFHlqd27ue6jo5FdlRZCpXg9tjXEWd2g5wpmdWO1WhBAfnkP+oSrrr6nHGT68IaMR/oF2FIzvvU3wUhulsMoDVkneePtStEFjLRX4dgl6VrNsemKDRjvbcsOtyZkb7S12C9yJXVocMWdOuOtbbHSzqcn+DTzyJyThTyl3NPaZdRTPcOJ4fblpPR7DIWA6HdBcRwuUPJadlbJo/XJRkP/NhFgt6UIaCIUcK+ALS6EHsiC18h6vEdV349Ug84DHr0EYclqNSudRqrkVB79S3qK/6YzmHA5jnJ/AeMOqbzzmvrmJvGfMVQMSI5rG2rCsvzfhCn1JZh+h1/mANf7m1oMtgcEkTh7zkuoQl9z4RuYyTBw3NWAMx0I8GYqEYLhDC3vZQNNTBBwHTD1eOYoJs85jN19wxmYf4A9aNXo9VXWwWoHoRdXjG2bVuD4B5c6kW2P4zSIvi+g7Zedw8YYgMB7Lvazp5OWlz8rUp+cd6LJTiluUpCewHshMdz0ig85TMkTK/HHoCf5y8KOkJtC9ORc1gzIPEKyHxhMJrzVUwdauRuzYuHuUZ5moshWC14NHtUa3CbwZpdJql2dd4qylr1N1ADktVV9TP9un78HFdUl/CHTjshQK3kknRi3pK66XcAAyC0KOhoM+i9wYeW3QlKivMF6bhyKc2JI1CD5C2ot3X9LZ4OESQwQndkT8c1Ayjepnn385DbMwXG8T3MSz3xS2QTC+B/kyG9NVEunbPVJcatY1TybBQd2RzvE2fJpoFFcUdSsn/4BhwIVW+LfVWelAyGRmHFxo1DPip5z lzwwu+8W 944ZIGA21OkfljRI8Jkk1Mey8kmD7qukAFgJByDeySVM5LJitx+6UlY2o9J7x6Sr+HCLpsxB3J5kZEp3JcbHALnsfDOYFPx2vFT6/PgBMHrkZuQXXS7CSL3Ljh4iySMsACWMd/ZHh8EsqZ0cjYOQCrMltNfGmHNJUuG4zHDYS5GCxEMtjwe0t4Ycjm6Vs4sDQCoZf2t8MnTDAKMylQJ1tev5x6UqOW9DEUwJ0BchVs4dUvSTD5w6ivkXsd4C5fDuGe0QNfjzXwUyAgdOzBvUCuzKD2Q0Fxzlrd2Whtc7o6Qqi3SsvMgS2NsQ9o+E9EwG82VbKUSOfmtp+cfyLI666xD5NQzhlsuw5o/LJdirUvM91ET4+iFyVQVOViyZr5KrVkuehqN39pCWfbwLkitcjJUYRxt2ETUn8lCpuZ45UCiWFTSD8bjgFaA0fXdjfc0lUuxxTiMlqo9ps4ZPhHkQFqvO9musd2HmXMI+YYVbXOc62lx1pCwBPir7o7A== 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: Reviewed-by: David Hildenbrand Reviewed-by: Kees Cook Acked-by: Catalin Marinas Signed-off-by: Florent Revest --- tools/testing/selftests/mm/mdwe_test.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/testing/selftests/mm/mdwe_test.c b/tools/testing/selftests/mm/mdwe_test.c index bc91bef5d254..d0954c657feb 100644 --- a/tools/testing/selftests/mm/mdwe_test.c +++ b/tools/testing/selftests/mm/mdwe_test.c @@ -49,19 +49,19 @@ FIXTURE_VARIANT(mdwe) FIXTURE_VARIANT_ADD(mdwe, stock) { - .enabled = false, + .enabled = false, .forked = false, }; FIXTURE_VARIANT_ADD(mdwe, enabled) { - .enabled = true, + .enabled = true, .forked = false, }; FIXTURE_VARIANT_ADD(mdwe, forked) { - .enabled = true, + .enabled = true, .forked = true, }; From patchwork Mon Aug 28 15:08:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florent Revest X-Patchwork-Id: 13368075 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 ACF23C83F15 for ; Mon, 28 Aug 2023 15:09:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 29F7F8E0022; Mon, 28 Aug 2023 11:09:12 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 201308E001A; Mon, 28 Aug 2023 11:09:12 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0A1DE8E0022; Mon, 28 Aug 2023 11:09:12 -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 ED72F8E001A for ; Mon, 28 Aug 2023 11:09:11 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id B9BB9140435 for ; Mon, 28 Aug 2023 15:09:11 +0000 (UTC) X-FDA: 81173846502.06.09179DC Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) by imf20.hostedemail.com (Postfix) with ESMTP id D2CE41C0020 for ; Mon, 28 Aug 2023 15:09:09 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b="KcBVK2L/"; dmarc=pass (policy=none) header.from=chromium.org; spf=pass (imf20.hostedemail.com: domain of revest@chromium.org designates 209.85.128.54 as permitted sender) smtp.mailfrom=revest@chromium.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1693235349; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=dSsehURxisS0cPQOlmw5cEhdkgRF5G0B9O4abug5R1Y=; b=zlcGTmFHDy1wpCIlzniKgSUi8X6x8XZSg/AjDxkVdKHAotVDIvGGBQiC7Y3aVXG1q58Nnm 0L82199AUzkaK2ztl0MjraprOzb2ZVZPCKZMR5GSRKpMY9rk0/mNH9fr2OxeHj0YgLSqRb /vP/zQzYNUh3TsbPio9g47egq2+6zBc= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b="KcBVK2L/"; dmarc=pass (policy=none) header.from=chromium.org; spf=pass (imf20.hostedemail.com: domain of revest@chromium.org designates 209.85.128.54 as permitted sender) smtp.mailfrom=revest@chromium.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1693235349; a=rsa-sha256; cv=none; b=PZuncar0NPtjh8ipOAX8xSxYBQ/oCAVf4dsIn84MeES9Z5ZFt2ysDKlTXTrgcmbYUjlUzN zrRF0mmjMvLv/eZ9t8CyIv4X10sgjP6EA2inYleGduC7hXxMuuvNqZYzi7GFdVUVyClniM KzaG2KvLU8wY2zVNWjhe95X2ZUw4TZY= Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-3fef56f7248so30986685e9.3 for ; Mon, 28 Aug 2023 08:09:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1693235348; x=1693840148; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dSsehURxisS0cPQOlmw5cEhdkgRF5G0B9O4abug5R1Y=; b=KcBVK2L/+QiqeWFTYXdOHgeUKp7DE3X4tkqvOHvJL3c9l2s8PVNUDW7Vbov+Z+q4gQ mcZKACunCQ1/A/aDTljARoKg3f6xbibrlG6bzvrYRt2IfOW/RY1hCJt/5Bjtk9lSUGNn 58lL0yysgJLrF2YisIvCE3BrZVByNt8ljS8SY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693235348; x=1693840148; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dSsehURxisS0cPQOlmw5cEhdkgRF5G0B9O4abug5R1Y=; b=axVW0Faz9e9UVT+5WqTrRJv1bWQbIarLRuLNZB7Q2sWnePTOU064zkTmxN4AyyYY+X 4uAmIXhxOXEPL6/Oju+QYIrBfebiekuRByc38P+dv4OQfZ/I7go3O9sp8QSI58KuZyU+ XUHvp55idnlRt6Hl1I4Vv60qPErusj0NugPAhDteu626vbMShMhX/0ZrMumoMC4vzfzS 5ihwEDaX6Cj+tDDdjzVYrvXiVbJ47Tnv1x078gFHNp4Eg8IXQ2a87gVr1FH82YkDBk1B Pwqu5ab6ov1/TDVZlVZR8BL8EZ5J2tj6Bb5Xo8zFlfvPzDBiq+gXTcL5ju3ZO8dqpKD3 ZtbA== X-Gm-Message-State: AOJu0Yz8Q1WH3ixy4tgbhzz3RM1uLIAZ1wnHi5cyUkkKQInmJSUUzr7+ 4ISmjJp4MN+uhxbehNahzTZiSA== X-Google-Smtp-Source: AGHT+IEAybtNw1oHry9kGIGPO60mG51GaKuwtgSiIvjeqoNDFS3SqrUaPm7yaU7LHb+xUqgnOcm9kA== X-Received: by 2002:a5d:574f:0:b0:317:5ece:e16a with SMTP id q15-20020a5d574f000000b003175ecee16amr18928693wrw.50.1693235348569; Mon, 28 Aug 2023 08:09:08 -0700 (PDT) Received: from revest.zrh.corp.google.com ([2a00:79e0:9d:6:40c6:6cff:63b:c70a]) by smtp.gmail.com with ESMTPSA id v3-20020a5d43c3000000b003140fff4f75sm10730522wrr.17.2023.08.28.08.09.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 28 Aug 2023 08:09:07 -0700 (PDT) From: Florent Revest To: linux-kernel@vger.kernel.org, linux-mm@kvack.org Cc: akpm@linux-foundation.org, catalin.marinas@arm.com, anshuman.khandual@arm.com, joey.gouly@arm.com, mhocko@suse.com, keescook@chromium.org, david@redhat.com, peterx@redhat.com, izbyshev@ispras.ru, broonie@kernel.org, szabolcs.nagy@arm.com, kpsingh@kernel.org, gthelen@google.com, toiwoton@gmail.com, ayush.jain3@amd.com, Florent Revest , Ryan Roberts Subject: [PATCH v4 2/6] kselftest: vm: Fix mdwe's mmap_FIXED test case Date: Mon, 28 Aug 2023 17:08:54 +0200 Message-ID: <20230828150858.393570-3-revest@chromium.org> X-Mailer: git-send-email 2.42.0.rc2.253.gd59a3bf2b4-goog In-Reply-To: <20230828150858.393570-1-revest@chromium.org> References: <20230828150858.393570-1-revest@chromium.org> MIME-Version: 1.0 X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: D2CE41C0020 X-Stat-Signature: e18x5xqipyhpamd5ospqrgr49kipxip9 X-Rspam-User: X-HE-Tag: 1693235349-734052 X-HE-Meta: U2FsdGVkX18AdkIGhKFQTR61Gpz1J0CuipNcKpzfMQ/blDTl1Fysx50i+P15MFKIzcyFrPK71yZXC66WggVu51IkiMs9O7Dez0/e/L1tVqH5nr6+YdIQr5/EBdkfpXNSr0tyrlwByB+wJmnn/K+PRq2oeGN8oqDDVwiN9YceS1oMk7GJ23xlngEr3sO+cBjq9dJhHnZpWJn03theDqTcrjyKVqgK+/+uLQCf6zVK3smi5XFLFTfERS9qiqnu/Z9Fpj3T3RNC51O1ZF3brqCdaGq5c0umIq251+OXSAL4nByRQ0rQI1nQXDQhcQiVrupsS4+IqZUwN6J+lP25reHdOUPxZPn2uiXEoR/lShlc0PZUQ5qdcP5/FVeI87PLd8T4bfTQ5Jarl5zP3NkxcYULZ5JcrC+p0Q0Tw1LJR9fIuH2Mod0xIRlof23RabOVGoSBdRYntYqY3sjUnw/ZDW+miUDdETqmw6oyrqxkNjhJfS5dcqABra2HMkE9gSXrUrrm0BN9Ou6g5yEx04xt1N62cL8AJ1aarmbCrzSJObrDdwIXEv/ks/Yhl+K7dPc3nScKFnAhbxAI48reC8fIZPH8p6akll8yvvOwCf6BMjzEEsxrT9NRq9KZ5U7D96vUVRjtxN6lsWgaSz10+njNwOgg7a8N0dBL35cxyDu0iwh6IMgp+Ex83yAT9eVavRX9I45mJz9O8KNmPOkUEHKJKqHAcJlEb0gM55RLA8vUUlcIQiQc07rOAZHqDnqkfuzUBO9wtXgvv0SvNOF63Vu2NG9qJlbYVeGnweGPC/mcq9YCBzzvHYIOi/Km3/j6t+8gSEsF20qTG4uQcpXcENDupwejPJQmYLWqgfZOtT85Uz28fXOssABj/mAEp8BhS/XXnwKEQwDUa0WPLGzNOmMbg+cor3LakYUsBpT6ebN/kGIHbp5Fh+gmLKrAlGcI6WWh8m+tqNlPiyE/qR+KReKfNpE dYclSc9a UnID0eUHPtJk7PujEBgJdEelyQI1umFjUiAptwULxvaXAPwmof8I3WimQIhKPX1g53cyzfc/QllBcViO3KCPLqZST9XKirnm1Eov6C0dRfRt4VGB1fldEGqBpLgIqRn2BfjynnnKHduVEKvr+OKwr9K/hNpo6VAvIeE1nYDwkkC1pOkejh0/1G992ylz0ewcUFZtgL5duOlu6MI0VOugmI3y6n1w7FdDC2J+IBsbtmQMKpQbTd5ty+Tl2Tjl6E+/9OHAawiz8+3dnmeAmBC3cJm1A9QBXby1cSEn4ncFmYm1uYiBPW4vTQcYNpKtrhjrm6wORBQi+6Z+WZguaM8pai+kP9VVSNUJiC0ds4eW6RjVID5aX0r9q8URPutTq/ybo/9esJG2J4FY2m+A6Wcc9Vo4y7fwrOKpafs4lPzvhWcMmyf2RGv/AnI4vbQ/yMjp67hBJK3BqDwBHmyEiOkZ/0B19HECfMtlFHZVxP0614busg/gi5CO9wVXHCWPtZ29SUP0rlzrgfsKrV3oeBrT5cUs8fXL3kpS14ygMOc7jTK+Lx/MfYCz39uUXFA== 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: I checked with the original author, the mmap_FIXED test case wasn't properly tested and fails. Currently, it maps two consecutive (non overlapping) pages and expects the second mapping to be denied by MDWE but these two pages have nothing to do with each other so MDWE is actually out of the picture here. What the test actually intended to do was to remap a virtual address using MAP_FIXED. However, this operation unmaps the existing mapping and creates a new one so the va is backed by a new page and MDWE is again out of the picture, all remappings should succeed. This patch keeps the test case to make it clear that this situation is expected to work: MDWE shouldn't block a MAP_FIXED replacement. Signed-off-by: Florent Revest Reviewed-by: David Hildenbrand Reviewed-by: Kees Cook Reviewed-by: Catalin Marinas Reviewed-by: Ryan Roberts Tested-by: Ryan Roberts Tested-by: Ayush Jain Fixes: 4cf1fe34fd18 ("kselftest: vm: add tests for memory-deny-write-execute") --- tools/testing/selftests/mm/mdwe_test.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/tools/testing/selftests/mm/mdwe_test.c b/tools/testing/selftests/mm/mdwe_test.c index d0954c657feb..91aa9c3099e7 100644 --- a/tools/testing/selftests/mm/mdwe_test.c +++ b/tools/testing/selftests/mm/mdwe_test.c @@ -168,13 +168,10 @@ TEST_F(mdwe, mmap_FIXED) self->p = mmap(NULL, self->size, PROT_READ, self->flags, 0, 0); ASSERT_NE(self->p, MAP_FAILED); - p = mmap(self->p + self->size, self->size, PROT_READ | PROT_EXEC, + /* MAP_FIXED unmaps the existing page before mapping which is allowed */ + p = mmap(self->p, self->size, PROT_READ | PROT_EXEC, self->flags | MAP_FIXED, 0, 0); - if (variant->enabled) { - EXPECT_EQ(p, MAP_FAILED); - } else { - EXPECT_EQ(p, self->p); - } + EXPECT_EQ(p, self->p); } TEST_F(mdwe, arm64_BTI) From patchwork Mon Aug 28 15:08:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florent Revest X-Patchwork-Id: 13368076 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 AAA03C83F12 for ; Mon, 28 Aug 2023 15:09:14 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D76FE8E0023; Mon, 28 Aug 2023 11:09:13 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D270A8E001A; Mon, 28 Aug 2023 11:09:13 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BC5608E0023; Mon, 28 Aug 2023 11:09:13 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id A7FD98E001A for ; Mon, 28 Aug 2023 11:09:13 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 838C1C0442 for ; Mon, 28 Aug 2023 15:09:13 +0000 (UTC) X-FDA: 81173846586.18.84D1881 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) by imf11.hostedemail.com (Postfix) with ESMTP id AEFC840006 for ; Mon, 28 Aug 2023 15:09:11 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=Lk2KfNqd; spf=pass (imf11.hostedemail.com: domain of revest@chromium.org designates 209.85.128.53 as permitted sender) smtp.mailfrom=revest@chromium.org; dmarc=pass (policy=none) header.from=chromium.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1693235351; a=rsa-sha256; cv=none; b=f2E+VGlC6esJUNFpEs67RTsAzjxrJTeMYGB78a/exyFmx6Gghe+MPobVEt80VvnD5CRFvJ BJdoZhBplwFvfQBDDKh8URB0epypGWJ75aNgfi+u91V/jzFs9xmm3Cee91Ekx5EGTjASDS hwSdEFcttnHLNKIqqTWNXGNuloEZ2Y0= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=Lk2KfNqd; spf=pass (imf11.hostedemail.com: domain of revest@chromium.org designates 209.85.128.53 as permitted sender) smtp.mailfrom=revest@chromium.org; dmarc=pass (policy=none) header.from=chromium.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1693235351; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=U6Jw13ojRxer1CiudmSrh9Dog+8TQjAfOMQPH0B+zsU=; b=2nBmTxtQ5kHpRrtk71Ox0AbdFmJBJfiMa0NHYGkRfxysVmD53ZAKvpfex+8C6Y4IJZdvU9 NSAbEBCyN+H0DAorQCSt5IRvLrKcT50K0blqtoD72wHlPF2Hxct5/ukxK0rt8k6a2q9Bly TcwBkc449dBXti+V9f3jxff1kmM1SkY= Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-3fed963273cso26343955e9.1 for ; Mon, 28 Aug 2023 08:09:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1693235350; x=1693840150; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=U6Jw13ojRxer1CiudmSrh9Dog+8TQjAfOMQPH0B+zsU=; b=Lk2KfNqdfkyZPx8vi/h/HB59i1bm7w+8tv8ZcJZqLR9PmqVKGsJ7mj84sSlppy2pKN 1Kudx1wqbxnO03PxF1S2GCnJgmlMgd5W8AwbKxspHAQbIzqb0S5gM+Uk5xxJVtI3vi6c OzY/Fal78xF4WUGyBlsEpwHcZBptFYGjvo5+s= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693235350; x=1693840150; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=U6Jw13ojRxer1CiudmSrh9Dog+8TQjAfOMQPH0B+zsU=; b=eGE89bKKs3U7Si72emJueerZK8xq2YI2dTpcVEmuTGQvqF6dHDU9Tg///oauft4mkp 7z8ikzdQCeCDowKNF+tBIGSu+44rt67fYwfgj6vIINps2mNqo7Qhc3ESRPQohO3SsG8a iJUPaeV9RtzMF2mVXFTovbO0In5CFurnKzxUkor263QgFMh+HMsz2VKVKiQxghMPQpPJ uILcU8kzffqBgCsNlbPEihenGgpew1ApvsqS57/A8rEvsIrcxHkR8nwjmnNg2lLf+vFS OX1SNH5SYxCDxcQubFCKPHrEOnGoP+Kq7twcb9jUz2PPgJv/NZ9CvFbXLNI8YVXWIvWP BrJw== X-Gm-Message-State: AOJu0Ywst+3ZpTtNdRBcLniLLHDimwnKnc5k8qKrEe7GSuE2wwOhLFcq oYAO/2F07fej32vpEJD8lpn71w== X-Google-Smtp-Source: AGHT+IGXAqJyw97V+o4oaIks1Kj/kAns5+tLjlPhppgRBXwPa0+zcI2oLEhzNJD6x+xUpCRPgxj60Q== X-Received: by 2002:a5d:5389:0:b0:319:6997:9432 with SMTP id d9-20020a5d5389000000b0031969979432mr19677532wrv.1.1693235350535; Mon, 28 Aug 2023 08:09:10 -0700 (PDT) Received: from revest.zrh.corp.google.com ([2a00:79e0:9d:6:40c6:6cff:63b:c70a]) by smtp.gmail.com with ESMTPSA id v3-20020a5d43c3000000b003140fff4f75sm10730522wrr.17.2023.08.28.08.09.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 28 Aug 2023 08:09:09 -0700 (PDT) From: Florent Revest To: linux-kernel@vger.kernel.org, linux-mm@kvack.org Cc: akpm@linux-foundation.org, catalin.marinas@arm.com, anshuman.khandual@arm.com, joey.gouly@arm.com, mhocko@suse.com, keescook@chromium.org, david@redhat.com, peterx@redhat.com, izbyshev@ispras.ru, broonie@kernel.org, szabolcs.nagy@arm.com, kpsingh@kernel.org, gthelen@google.com, toiwoton@gmail.com, ayush.jain3@amd.com, Florent Revest Subject: [PATCH v4 3/6] kselftest: vm: Check errnos in mdwe_test Date: Mon, 28 Aug 2023 17:08:55 +0200 Message-ID: <20230828150858.393570-4-revest@chromium.org> X-Mailer: git-send-email 2.42.0.rc2.253.gd59a3bf2b4-goog In-Reply-To: <20230828150858.393570-1-revest@chromium.org> References: <20230828150858.393570-1-revest@chromium.org> MIME-Version: 1.0 X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: AEFC840006 X-Stat-Signature: hmzesczxk7jbq5enjidnu9hzusspd5ut X-Rspam-User: X-HE-Tag: 1693235351-329662 X-HE-Meta: U2FsdGVkX1/+XioxS3Fs1rmb0cTsoDYlg4eGdQWdKXZ3JgL4wEzic/GkFdaOne0Jem01WgVONEH1Bhp9WdV87hOgQ4iQb2dTU6p8M8YordyWObQBF+LHvPea5+hJmBfwt8CIDuO8c7hlZjnpg11QJZHHMp45ClzHJJq58wALXmmvWpirAXBc493bh/Xm5T3Ogl2h29w7wSywVYyYh9RcUlw+C6sA+bDnhFCd8EPsHxKtP2cZAKSQW8AEHuna7ZHqLkfelUIV8j8avrbl8M84GPVd/6OvJ7SSJyDaqxeJNumwgH6Gi+EwWecc3x3qq4OX3evPJIuBZpglzHrnSTPSH0pS/hq1f9sycULKbdkxhEk4ZxpEP7AE2FPWjlwO2YMTnO/Sxe3yQzapcaM/kmrYziCMO/BI42DxPVT5dHEM7OujGlPrP61ME3GEYQPb8sYo1HhVcl9710xW6+bSB+BECf3F26QvtXBaGn1F1dQrx5vYU3+KcjBt6B5zl4o4wzcT5S5i++tW1c19LYJmFgzYlj+rpTM/1jI+ymsPLM0fzEUDJbUxTsHo1a09l9XS9i/l7YQhl7qItrQXSQkRSPOvFuNYavkC/DVCCOM7OW+ruYtZOgQDdadhdwPnABMhbQjEELcwTzmoNTYKANLkL5lw9UiO+dRzyLsL6rSR4kSGeHlXYkcjPiPtSsvLnSP0gjiSMLDIZp2Oh4+uif3/m0/eq2Ky3HSv6IRRHjxMLhTKhNih8x2leq/0Z9/oMTw21Ra/QEtDM7TdA7F2Zn8a4yhFLWTEsIyTcpsqTIvYw9ZpQaU817TO7L+jRe0ltRdlcPprpurZ/iYDgLHMiRC4eRau8B9yq25eA7Y67IuiX621Z31uGrjdSdGe7Rre8jl4xhDT2Z3UfGrwpedVhwht7Zjc2GIiFvq8ctSgf93xSTJKPq+7y8oCe86iYYBykJaBEJi08JfVJKR90A+Pd34Jy7N MOK04p0x HOBCI3MlFHWCxidAxNVFc0k0RHtzd1PARjiqED6J0XncuBQmiKQOKxQYUb97QcvAhOhQ7TPbJIp1Ztu+Mc+sd6N9M85ik1qOu8dDDhfbCbv6L/q5XU3qipYZRBRDKHBo2TuoRS7bntk6d/XgB3oGlizxMvqcMrv+hdE8Ux65YjlEk4B5z6SRHhQQgBI7K21FwF0I0BJ3qvdoQeIJY2zbYTvU4bR7fJWvulxMpQFT+C2cnpPFXel6uGGNy0Scdq380OTLyKb7P+1x/ezSGYzob/I4uc+OEc6otlRb6MhopXf9HzuU8dO1+S3A74KWTI05ATYyeaTlEFWxkViRKV3j+Ogo/1uXFXiTgp5t5Nje7YbVhrQstzwZ0ZB8jhzoFeYvef6z8OVlAHkNwoWGUkYtb6/CFiRlNKIVYN4FBgKs/vVm9aweJERvJjCvbIdOQSa9f6rbExzTgBRi7Ldk= 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: Invalid prctls return a negative code and set errno. It's good practice to check that errno is set as expected. Signed-off-by: Florent Revest Reviewed-by: Kees Cook Acked-by: Catalin Marinas --- tools/testing/selftests/mm/mdwe_test.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tools/testing/selftests/mm/mdwe_test.c b/tools/testing/selftests/mm/mdwe_test.c index 91aa9c3099e7..1b84cf8e1bbe 100644 --- a/tools/testing/selftests/mm/mdwe_test.c +++ b/tools/testing/selftests/mm/mdwe_test.c @@ -23,14 +23,22 @@ TEST(prctl_flags) { EXPECT_LT(prctl(PR_SET_MDWE, 7L, 0L, 0L, 0L), 0); + EXPECT_EQ(errno, EINVAL); EXPECT_LT(prctl(PR_SET_MDWE, 0L, 7L, 0L, 0L), 0); + EXPECT_EQ(errno, EINVAL); EXPECT_LT(prctl(PR_SET_MDWE, 0L, 0L, 7L, 0L), 0); + EXPECT_EQ(errno, EINVAL); EXPECT_LT(prctl(PR_SET_MDWE, 0L, 0L, 0L, 7L), 0); + EXPECT_EQ(errno, EINVAL); EXPECT_LT(prctl(PR_GET_MDWE, 7L, 0L, 0L, 0L), 0); + EXPECT_EQ(errno, EINVAL); EXPECT_LT(prctl(PR_GET_MDWE, 0L, 7L, 0L, 0L), 0); + EXPECT_EQ(errno, EINVAL); EXPECT_LT(prctl(PR_GET_MDWE, 0L, 0L, 7L, 0L), 0); + EXPECT_EQ(errno, EINVAL); EXPECT_LT(prctl(PR_GET_MDWE, 0L, 0L, 0L, 7L), 0); + EXPECT_EQ(errno, EINVAL); } FIXTURE(mdwe) From patchwork Mon Aug 28 15:08:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florent Revest X-Patchwork-Id: 13368077 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 38EB4C83F15 for ; Mon, 28 Aug 2023 15:09:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 207E58E0024; Mon, 28 Aug 2023 11:09:16 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 13FED8E001A; Mon, 28 Aug 2023 11:09:16 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EFAE98E0024; Mon, 28 Aug 2023 11:09:15 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id DD2548E001A for ; Mon, 28 Aug 2023 11:09:15 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id B42881202E5 for ; Mon, 28 Aug 2023 15:09:15 +0000 (UTC) X-FDA: 81173846670.22.5B91D97 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) by imf02.hostedemail.com (Postfix) with ESMTP id 9E88680019 for ; Mon, 28 Aug 2023 15:09:13 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=WtQfO4zg; dmarc=pass (policy=none) header.from=chromium.org; spf=pass (imf02.hostedemail.com: domain of revest@chromium.org designates 209.85.128.53 as permitted sender) smtp.mailfrom=revest@chromium.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1693235353; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=9C6695DueeDZA9rTKrXkRn2f/fH50YffF9JA6g5ta/Y=; b=nDL3l2DpWKF0TQBtV+VgG3ZoyWe2jVnYH9Zh7aGtGH0J6+i/dvgLtlrtbvWs9dk9bD+m3R yNHNMUhcBqUtxgiYA7yHEqKfy4rVsDBc63EU/xc49neZQBltibUps+AHN0102yfl4RZyKX lwjcTGkq0sv7OX5oS9H/X8sXf1HSs6k= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=WtQfO4zg; dmarc=pass (policy=none) header.from=chromium.org; spf=pass (imf02.hostedemail.com: domain of revest@chromium.org designates 209.85.128.53 as permitted sender) smtp.mailfrom=revest@chromium.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1693235353; a=rsa-sha256; cv=none; b=iThTOFscXaHqxtBpfFKUUQCTusJceq9xanzN/dscPUZOP2eQP5InfjlTHX9sDmYEzfLBZo qWCBrGwTOhLC2JGG3JXoFGgo7W184vkXufKYoWY+N9MHVTU/pTpLp/Db0xjsRzYXGIw8Vb E+n4VaWiYarX5KQH5yBYFBWe878iEzA= Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-401c90ed2ecso11593255e9.0 for ; Mon, 28 Aug 2023 08:09:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1693235352; x=1693840152; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=9C6695DueeDZA9rTKrXkRn2f/fH50YffF9JA6g5ta/Y=; b=WtQfO4zgxksMpW7OaaxuZIAENI54VG0EzFAggndg9mUcIb3M2Xezcabx2+YryWgbAA N9iFiJ9bLirdEgKUNaxjDRF5W2tAbI2K3Rno8gaX6aJemzBypmY5oCw4hU97bDhNBdbn Rp2FXqPaLlJyPRfxE/Y4ar83+m9lXRdXQxNQU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693235352; x=1693840152; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9C6695DueeDZA9rTKrXkRn2f/fH50YffF9JA6g5ta/Y=; b=jAwT1C6OeyoY+hq2ckT7bN+7o5gddvk8O9wQ0jHvMdk3aKHoEmFBsig2GfVwvbFBdW xwh/yj/1MOYrzH276BxD/wGR/x4W07Mz1fyceirVkUnUyA4yMOwHlby7pJQ7juI0i06i JRVkYTJV6S6V+w4XkSkgzEZcWxt21bEqgc2ThWCmfFile9PLxaTiVAnbnwemel/Ic5EB qDT6o4OrVfiWBcb15i/rdZMfv3B1BWnmT1QB+cX+DU1Q7QTFhscevdLCx9SJKVR9ferR xFsT2PzFjgDWeZQ3RWSU8qlMLWWqMjuUz2hoouhbf/CZfHC2W8wLG4w2gpKjJ1nYJ5th yL3w== X-Gm-Message-State: AOJu0Yw0gccoaJp7UTym6Om31Dai6PjeMOgIRL9nr5f80awwE2A0CqKH TELw3l4eT4AwGfugwgwDppBRHA== X-Google-Smtp-Source: AGHT+IEXUnMXPaBwdEFmcdrUudhk8uAYHPBV2ErTGdS4NlCyRahLQ06reLojtBElYN3aftIEBravdQ== X-Received: by 2002:a7b:cb49:0:b0:3fb:a506:5656 with SMTP id v9-20020a7bcb49000000b003fba5065656mr20934266wmj.32.1693235352415; Mon, 28 Aug 2023 08:09:12 -0700 (PDT) Received: from revest.zrh.corp.google.com ([2a00:79e0:9d:6:40c6:6cff:63b:c70a]) by smtp.gmail.com with ESMTPSA id v3-20020a5d43c3000000b003140fff4f75sm10730522wrr.17.2023.08.28.08.09.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 28 Aug 2023 08:09:11 -0700 (PDT) From: Florent Revest To: linux-kernel@vger.kernel.org, linux-mm@kvack.org Cc: akpm@linux-foundation.org, catalin.marinas@arm.com, anshuman.khandual@arm.com, joey.gouly@arm.com, mhocko@suse.com, keescook@chromium.org, david@redhat.com, peterx@redhat.com, izbyshev@ispras.ru, broonie@kernel.org, szabolcs.nagy@arm.com, kpsingh@kernel.org, gthelen@google.com, toiwoton@gmail.com, ayush.jain3@amd.com, Florent Revest , stable@vger.kernel.org Subject: [PATCH v4 4/6] mm: Make PR_MDWE_REFUSE_EXEC_GAIN an unsigned long Date: Mon, 28 Aug 2023 17:08:56 +0200 Message-ID: <20230828150858.393570-5-revest@chromium.org> X-Mailer: git-send-email 2.42.0.rc2.253.gd59a3bf2b4-goog In-Reply-To: <20230828150858.393570-1-revest@chromium.org> References: <20230828150858.393570-1-revest@chromium.org> MIME-Version: 1.0 X-Rspamd-Queue-Id: 9E88680019 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: 4r9nmtgus6cokpgchf39mri6b6qjapgc X-HE-Tag: 1693235353-220418 X-HE-Meta: U2FsdGVkX19rSNbZhyHU31JdCW9x8igapGNNxrDl+Bl3XIfo1/4SGG1OGRFXJaLFGtG505/XfFpI7tS2+Bti/ayxmHhyDN1yFvq71JdhHrLPHp1MVlocSlTRabCXsaric4fvlZoGEi5pszK6lJl/v8WO3cOSMlA+9kVMlYsZSMoqhPP0MueQTmQMFahzVuZMKxa8S6jDxkAaL93TjNccdfLbp+Ry87tD9AnP6TQ0NatzkPGBmvDD4kn+HDZKElYbbsNYDn9XKo7Out1zTvo0m67D79hLWQ3wzAXHK/qcNk+ZA1tt6GPjAcqXsATfR+IE/VBRec4EnQoJewHvB5d0PM19oBkGXLaKdpl4H2l6I0riV2vdpeJxRSlm5QlV4POEU36ZIm5fWH0dhPqWHgjHUERzM2N1vdvPija7aBteNLDKITedO0TGH4u8Gox84pB6fIEcJOEK2ZxawHn+tLEqg9YsuvFrxet1RYd1LURiywkj7Vx5Sw87d3PijO8SXikN/wLEw701SD9bbSlz62m3xaSZcqRFjQDiZwF5JlqokuOcVPckROU81IlFPM8FajYs4l6DY8OvZn+TNUZFMGBQWqWjyPWsML5Kyre9VA0d9p6ZyaozEMtzO0m5atxnWfS6p45uE8ngqGPHAjB5AG9zCMh1uZm4OdnjfSwOR7YF2KRFY2aPStAjtEkZBBiuZiutvj/L2UFWmnWn7zSPkHWUV1S9s4h9FfkwI7OwHOt9EobjKNfLgBkYukoAmXdZnXIT8fa54u+JkBlJ+OOV64HUx9uwowNpB7wHA0goajp2Rd7ir7O7sBRqHSvtUFeJ7WUvHrzqLm55IyvhvvL7LqFDUtFWHFvoLjywBeAfFMYwomT2FCaNJsJcxil67wKC7rlNShhEVuKAScNOG4Hx0jm0zKWw7RNyMY6QK0+u7Zk4p4DaTpkC8+aARkYd54sGNshix4RjDfAWNbO/gLJO4iN 6xEoeH/r QN0dXV3I+mC6080pp2lkSaY/GGG+5D2fHXIx6kRLLUaHC/vMVSXntoB53mXjmU9xYwYhoI0b4TKTvqkrjmaHf+0Ky9esoSjq6/i1bx7sG+8kFswVBt98NX5BVjwtsRZ9SNcSaNvkfckma3LgBZ25NqPMM20nVXmP7gsWrKjJIKihMImm4GzohCAxKq1oia3/O9Fl3MSaS1ozweUbmDVn7igCKFdKrQqK8wVq8sNIuZk5ZnUTD23cYFjfy3kEZUe03uG/+qagtwyhILV7//vmJJe/4ElnMJh/u9YqccIeGuZAeTnX6NPSvcaViro5Sm4pcsHSEvaam4/nIacISgZz+vJV2+uCR9TUM++oJfrIURqkgBTqIwZOPgnSbQrmgz6nfHowk313uQVQW9ilzGkeardgjrtvMksiKVAV7QYKyzN394+UNhcgnFFXGWNoR6jhgPBoXfjSEwgf50n63wxfPA5jxKSP2RydcshjpmPPZOR00T4p7KVTmY8XJhdiimnh+nUv2nTE4UDTJVXdHy3RzLZrPcSdBLMpPEhePiNXuCXWQjQO895ryM4tXO7jR5IrdydEld9zhNpZ7N9ivOIweUNEMSfANfeRkUYyRDgfpJ7e7kMuQ5f/Qc4uyxXUrBe1plqfmUqxP48/2nlrjZM+p3SwScg== 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: Defining a prctl flag as an int is a footgun because on a 64 bit machine and with a variadic implementation of prctl (like in musl and glibc), when used directly as a prctl argument, it can get casted to long with garbage upper bits which would result in unexpected behaviors. This patch changes the constant to an unsigned long to eliminate that possibilities. This does not break UAPI. Fixes: b507808ebce2 ("mm: implement memory-deny-write-execute as a prctl") Cc: stable@vger.kernel.org Signed-off-by: Florent Revest Suggested-by: Alexey Izbyshev Reviewed-by: David Hildenbrand Reviewed-by: Kees Cook Acked-by: Catalin Marinas --- include/uapi/linux/prctl.h | 2 +- tools/include/uapi/linux/prctl.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/uapi/linux/prctl.h b/include/uapi/linux/prctl.h index 3c36aeade991..9a85c69782bd 100644 --- a/include/uapi/linux/prctl.h +++ b/include/uapi/linux/prctl.h @@ -283,7 +283,7 @@ struct prctl_mm_map { /* Memory deny write / execute */ #define PR_SET_MDWE 65 -# define PR_MDWE_REFUSE_EXEC_GAIN 1 +# define PR_MDWE_REFUSE_EXEC_GAIN (1UL << 0) #define PR_GET_MDWE 66 diff --git a/tools/include/uapi/linux/prctl.h b/tools/include/uapi/linux/prctl.h index 3c36aeade991..9a85c69782bd 100644 --- a/tools/include/uapi/linux/prctl.h +++ b/tools/include/uapi/linux/prctl.h @@ -283,7 +283,7 @@ struct prctl_mm_map { /* Memory deny write / execute */ #define PR_SET_MDWE 65 -# define PR_MDWE_REFUSE_EXEC_GAIN 1 +# define PR_MDWE_REFUSE_EXEC_GAIN (1UL << 0) #define PR_GET_MDWE 66 From patchwork Mon Aug 28 15:08:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florent Revest X-Patchwork-Id: 13368078 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 EDEF2C83F12 for ; Mon, 28 Aug 2023 15:09:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C15058E0025; Mon, 28 Aug 2023 11:09:17 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BA0008E001A; Mon, 28 Aug 2023 11:09:17 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9F0B18E0025; Mon, 28 Aug 2023 11:09:17 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 894838E001A for ; Mon, 28 Aug 2023 11:09:17 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 551FC160489 for ; Mon, 28 Aug 2023 15:09:17 +0000 (UTC) X-FDA: 81173846754.30.E33BDC3 Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) by imf13.hostedemail.com (Postfix) with ESMTP id 6B8BB2002D for ; Mon, 28 Aug 2023 15:09:15 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=TXgobUHz; spf=pass (imf13.hostedemail.com: domain of revest@chromium.org designates 209.85.128.47 as permitted sender) smtp.mailfrom=revest@chromium.org; dmarc=pass (policy=none) header.from=chromium.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1693235355; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=QXssY8R3UfI51/fzerFRXliKac0QknXs4XkU/07pT5E=; b=1YeGCBGMDj+LOFcKrywz4UdDS7PkcNOqFAwuWmwyLRNqYBKICTZDvb2POq2pgPi7J4/2IE ZnLM4C3ZKhfNunG059v+g9yzAomSw8oZBmAICQ405O5DDxMTr5lmMkV5tqchalXMpsdZoR NJYgpE2ou72qLZPdV9M0HKBp8Dg5erc= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1693235355; a=rsa-sha256; cv=none; b=2gwufxkZwF7cXnby9CSKruNBhggDdqG5zFYy6PlPYMLQQUcsr+ZpnyvKLrdcOYbNFSQx0x IZLpU6y6mUvSZvVhBpR20ztp8D4u/wcs0D9rUP+cota2VrjWtMdRRaF1EGh8f/8x4yJVbZ AsuGyBS8gXvojjsJfkDXswRzKuc0BGE= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=TXgobUHz; spf=pass (imf13.hostedemail.com: domain of revest@chromium.org designates 209.85.128.47 as permitted sender) smtp.mailfrom=revest@chromium.org; dmarc=pass (policy=none) header.from=chromium.org Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-3fee769fcc3so28655105e9.2 for ; Mon, 28 Aug 2023 08:09:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1693235354; x=1693840154; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=QXssY8R3UfI51/fzerFRXliKac0QknXs4XkU/07pT5E=; b=TXgobUHzdy1/oc00DCkfPuEhJu9AWsZDH7ItfMlZ9px/6av7xSZfC0WrjhZ16H5vnH +BXZsUMOLMGBNanD+Ods+R3MJffoWBq5sR8yyAUkuszZbSoBMR1IFcOLTFENcXg98b7t Yahy0kl0OhvBiWJFAmjSAeDAGABOGBOn3jPxs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693235354; x=1693840154; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=QXssY8R3UfI51/fzerFRXliKac0QknXs4XkU/07pT5E=; b=ZvzI/rwBsXeDquzY5CiGsacO+DNfNMokba0mGRc6dJMyY1u9nU8OBaPPIeKWpxOFfg sAG4jIB6xKjaIik/8YylXwsfI+Az0bMXGPTSdsHJJYDQXaEbpxMWc/pZDJr6N3krv0am YTMWHpN02LuWcNkuErQD+WGuTnl70WA8VSoekvCHKby49HvLF1emU6GQQ5mftx+K82LH TkspaaXpK0z8UHffPhecHp8BptDPuVhzCUbyijmua9Tmi6bIiXh+rTQ+/WectGS1tD4a hGS+M5SCAQWT8rFcQntrJDveNUv02z7j1b3jnUqr1qONTU8GfSCE1nblE8ic6HheIr+h dAOQ== X-Gm-Message-State: AOJu0YwytAKBf5TNPYB2+2uI85xfpwMbV+qGmWmaWwRxeTvsemJukWyV SapULpXhHNavLGJJvGrCFNo4fA== X-Google-Smtp-Source: AGHT+IGqMEI1E4b+HWptK+/EKjF7xI4VmzXlfBLXmqDJvfgj+65VugBjpc0Hy94kYyiGhQQdqXzgkQ== X-Received: by 2002:a1c:7508:0:b0:3fb:739d:27b2 with SMTP id o8-20020a1c7508000000b003fb739d27b2mr19489637wmc.8.1693235354252; Mon, 28 Aug 2023 08:09:14 -0700 (PDT) Received: from revest.zrh.corp.google.com ([2a00:79e0:9d:6:40c6:6cff:63b:c70a]) by smtp.gmail.com with ESMTPSA id v3-20020a5d43c3000000b003140fff4f75sm10730522wrr.17.2023.08.28.08.09.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 28 Aug 2023 08:09:13 -0700 (PDT) From: Florent Revest To: linux-kernel@vger.kernel.org, linux-mm@kvack.org Cc: akpm@linux-foundation.org, catalin.marinas@arm.com, anshuman.khandual@arm.com, joey.gouly@arm.com, mhocko@suse.com, keescook@chromium.org, david@redhat.com, peterx@redhat.com, izbyshev@ispras.ru, broonie@kernel.org, szabolcs.nagy@arm.com, kpsingh@kernel.org, gthelen@google.com, toiwoton@gmail.com, ayush.jain3@amd.com, Florent Revest Subject: [PATCH v4 5/6] mm: Add a NO_INHERIT flag to the PR_SET_MDWE prctl Date: Mon, 28 Aug 2023 17:08:57 +0200 Message-ID: <20230828150858.393570-6-revest@chromium.org> X-Mailer: git-send-email 2.42.0.rc2.253.gd59a3bf2b4-goog In-Reply-To: <20230828150858.393570-1-revest@chromium.org> References: <20230828150858.393570-1-revest@chromium.org> MIME-Version: 1.0 X-Rspamd-Queue-Id: 6B8BB2002D X-Rspam-User: X-Stat-Signature: 9bupw3qpg1gno9yx68sdyprajwbmpzic X-Rspamd-Server: rspam03 X-HE-Tag: 1693235355-374027 X-HE-Meta: U2FsdGVkX1+/9IkkQi/ELrNR91UKIVkVfRoemKsJVulD63sXass3QB/9m6q/DlK1D0DONt5lndddyH/7vlRWH/d0jUeowBbxAVMcumzUoI1jXozAcvxMkm0o01Bt4CMiYF9lZYyVgtiEC+Q6KqaEo56GMcph9BY6QdkDI4Odk39oD+8fuSoyklkxtjprhPEZHjsqyEubPpVqt5oi61J5zYK1lT/AnigBkMTrYMTa1DvOb+z0+B2eFjt5AyuZHIk+Zw7Wfe6T0GgalavoXZq2oP6lxItjDc3rVUDo91Ng3jbdvNZFEvTGu2SAHT9iyG8mwba/HtMXYxF4u2B7QjcRnjTzNEYQHLqcKcbKpO+kR0n7rZdgk/5kDCY/t02GPkr8r42Ezry6nv9Lpe8aT3fdOJWfBL56eTIJBhQl3xaYM3WWYnE2m0oIv7YGRAyaquDnRg70/xWa9tdWZ6yGyhDK1U4J+9RYDR4IWaSaiugJKm9dnFsQVS7hCj8WrFWar5YPNjKlkGkKxjh14JVIBe41KPfQEiSwpVPUQopmvNSnwpdCbx122sJ4aCIdkSxtqzrkvoVJVoeoNt7puGdPU9gYsbFuoJ0RK5SbNXBkL/4q5RIwjw4QVEuslgoPSfmMyrAQWERL55CbRXZ0dLgHlpceY/gsWPqnXhAlpB9aAPIAUnWpVmSxnN2FHf5U+H7DqfjvAv+/BMu5AzmI7EWl7fPk+5orpsOvVQV3dOCWnEMOqCQ7IAYRzyDUai2ene52Xy90fy/M+VGGPPyJ4tPcvRW7MIkmKAZVG8+JtxtninmiGkoVPXif46I0sczjlZg+BE100H6th7GhGPFm+zZCtZ/LnG1v5hFGVctEjOwLL4Me61YqkWwQUXLCt4UER1D+rCIzLxrFfFiMv8ijSXUMvTZlrvXNddT1LXzphkoZ9lZxhZi3Xaiu9RYw0csd5+tuovRZL8SsWFQ3M7I9oQ2p3QQ NXw816Kd F7pYaZ8M4W0+KcA07UT1NlXeCNpOejgBhRVLcX/KPCXJtYlgS6kdnnGX0F33TpymQSgyssKoSxoDNyeF8RoF+ibxxcKt7WerQkd5Zx38l/rSMz7f53cvr5yONYshoTWoRZ9JjDZaBsdEFfwJqV7T7VVIBUSKldjSFNgHa0L17HZ+nzuWSIyHATCYcF6hTWdmacnNouUrD55lwC7/uAtcPNxsbeaN6l6SanOWNHZnA81df7IKv3+tb/NYGkdgJGfrbuLEQtOmZwLFsv6CE/i2qIbwtJDnL8Vlv2biPZn6QeiQh8qcNTLhV5jKn9ZrbM9122O39et/jZVJHWSeZVdTNOX4lPx+skOH+3V9f1bJhdmnVHO+ilatDrkcDweas/ODcy+Q/8pZWEMyDDWc0BCVsewrIcxRRNOu0JK7FvFYB00p5ZFzV5Iolr+hyjIxTvJnWpLXKXM0gGW857j4ZLGppMTXEALNddTanxAMWBo/Uxz+gw1BfJQMAGcT7IrQZT2a+iIk8lBc8sQTC2Nk= 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: This extends the current PR_SET_MDWE prctl arg with a bit to indicate that the process doesn't want MDWE protection to propagate to children. To implement this no-inherit mode, the tag in current->mm->flags must be absent from MMF_INIT_MASK. This means that the encoding for "MDWE but without inherit" is different in the prctl than in the mm flags. This leads to a bit of bit-mangling in the prctl implementation. Reviewed-by: Kees Cook Reviewed-by: Catalin Marinas Signed-off-by: Florent Revest --- include/linux/sched/coredump.h | 10 ++++++++++ include/uapi/linux/prctl.h | 1 + kernel/fork.c | 2 +- kernel/sys.c | 32 ++++++++++++++++++++++++++------ tools/include/uapi/linux/prctl.h | 1 + 5 files changed, 39 insertions(+), 7 deletions(-) diff --git a/include/linux/sched/coredump.h b/include/linux/sched/coredump.h index 0ee96ea7a0e9..1b37fa8fc723 100644 --- a/include/linux/sched/coredump.h +++ b/include/linux/sched/coredump.h @@ -91,4 +91,14 @@ static inline int get_dumpable(struct mm_struct *mm) MMF_DISABLE_THP_MASK | MMF_HAS_MDWE_MASK) #define MMF_VM_MERGE_ANY 29 +#define MMF_HAS_MDWE_NO_INHERIT 30 + +static inline unsigned long mmf_init_flags(unsigned long flags) +{ + if (flags & (1UL << MMF_HAS_MDWE_NO_INHERIT)) + flags &= ~((1UL << MMF_HAS_MDWE) | + (1UL << MMF_HAS_MDWE_NO_INHERIT)); + return flags & MMF_INIT_MASK; +} + #endif /* _LINUX_SCHED_COREDUMP_H */ diff --git a/include/uapi/linux/prctl.h b/include/uapi/linux/prctl.h index 9a85c69782bd..370ed14b1ae0 100644 --- a/include/uapi/linux/prctl.h +++ b/include/uapi/linux/prctl.h @@ -284,6 +284,7 @@ struct prctl_mm_map { /* Memory deny write / execute */ #define PR_SET_MDWE 65 # define PR_MDWE_REFUSE_EXEC_GAIN (1UL << 0) +# define PR_MDWE_NO_INHERIT (1UL << 1) #define PR_GET_MDWE 66 diff --git a/kernel/fork.c b/kernel/fork.c index 7b8b63fb0438..9da5a1192c98 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -1285,7 +1285,7 @@ static struct mm_struct *mm_init(struct mm_struct *mm, struct task_struct *p, hugetlb_count_init(mm); if (current->mm) { - mm->flags = current->mm->flags & MMF_INIT_MASK; + mm->flags = mmf_init_flags(current->mm->flags); mm->def_flags = current->mm->def_flags & VM_INIT_DEF_MASK; } else { mm->flags = default_dump_filter; diff --git a/kernel/sys.c b/kernel/sys.c index 2410e3999ebe..4a8073c1b255 100644 --- a/kernel/sys.c +++ b/kernel/sys.c @@ -2368,19 +2368,41 @@ static int prctl_set_vma(unsigned long opt, unsigned long start, } #endif /* CONFIG_ANON_VMA_NAME */ +static inline unsigned long get_current_mdwe(void) +{ + unsigned long ret = 0; + + if (test_bit(MMF_HAS_MDWE, ¤t->mm->flags)) + ret |= PR_MDWE_REFUSE_EXEC_GAIN; + if (test_bit(MMF_HAS_MDWE_NO_INHERIT, ¤t->mm->flags)) + ret |= PR_MDWE_NO_INHERIT; + + return ret; +} + static inline int prctl_set_mdwe(unsigned long bits, unsigned long arg3, unsigned long arg4, unsigned long arg5) { + unsigned long current_bits; + if (arg3 || arg4 || arg5) return -EINVAL; - if (bits & ~(PR_MDWE_REFUSE_EXEC_GAIN)) + if (bits & ~(PR_MDWE_REFUSE_EXEC_GAIN | PR_MDWE_NO_INHERIT)) + return -EINVAL; + + /* NO_INHERIT only makes sense with REFUSE_EXEC_GAIN */ + if (bits & PR_MDWE_NO_INHERIT && !(bits & PR_MDWE_REFUSE_EXEC_GAIN)) return -EINVAL; + current_bits = get_current_mdwe(); + if (current_bits && current_bits != bits) + return -EPERM; /* Cannot unset the flags */ + + if (bits & PR_MDWE_NO_INHERIT) + set_bit(MMF_HAS_MDWE_NO_INHERIT, ¤t->mm->flags); if (bits & PR_MDWE_REFUSE_EXEC_GAIN) set_bit(MMF_HAS_MDWE, ¤t->mm->flags); - else if (test_bit(MMF_HAS_MDWE, ¤t->mm->flags)) - return -EPERM; /* Cannot unset the flag */ return 0; } @@ -2390,9 +2412,7 @@ static inline int prctl_get_mdwe(unsigned long arg2, unsigned long arg3, { if (arg2 || arg3 || arg4 || arg5) return -EINVAL; - - return test_bit(MMF_HAS_MDWE, ¤t->mm->flags) ? - PR_MDWE_REFUSE_EXEC_GAIN : 0; + return get_current_mdwe(); } static int prctl_get_auxv(void __user *addr, unsigned long len) diff --git a/tools/include/uapi/linux/prctl.h b/tools/include/uapi/linux/prctl.h index 9a85c69782bd..370ed14b1ae0 100644 --- a/tools/include/uapi/linux/prctl.h +++ b/tools/include/uapi/linux/prctl.h @@ -284,6 +284,7 @@ struct prctl_mm_map { /* Memory deny write / execute */ #define PR_SET_MDWE 65 # define PR_MDWE_REFUSE_EXEC_GAIN (1UL << 0) +# define PR_MDWE_NO_INHERIT (1UL << 1) #define PR_GET_MDWE 66 From patchwork Mon Aug 28 15:08:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florent Revest X-Patchwork-Id: 13368079 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 DD80BC83F11 for ; Mon, 28 Aug 2023 15:09:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 75CF38E0026; Mon, 28 Aug 2023 11:09:19 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 70B1B8E001A; Mon, 28 Aug 2023 11:09:19 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 58A978E0026; Mon, 28 Aug 2023 11:09:19 -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 43D3C8E001A for ; Mon, 28 Aug 2023 11:09:19 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 1D579120251 for ; Mon, 28 Aug 2023 15:09:19 +0000 (UTC) X-FDA: 81173846838.05.B23CCBD Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) by imf05.hostedemail.com (Postfix) with ESMTP id 43A88100024 for ; Mon, 28 Aug 2023 15:09:17 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=Gcfsc20e; spf=pass (imf05.hostedemail.com: domain of revest@chromium.org designates 209.85.128.48 as permitted sender) smtp.mailfrom=revest@chromium.org; dmarc=pass (policy=none) header.from=chromium.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1693235357; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=gkrzJ6nrXmVMKGdRpiGhMw2iKfFp7Za5H8zwt1x/uYE=; b=fXJWB93naxfCtBik48mWRGT5xo1Dwx8v/GBtTLsma258rCrRjUpwveEpSbzssceak4IKtA htNMeen6lSxtQzHYKFdbj3duN5UU272KpEIR1K0k01cJvhP2fTRbbE1qD+CRP+Ye/TVi/R trUdvTU/36uPBsfUvsKYULgVPDBsOaM= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=Gcfsc20e; spf=pass (imf05.hostedemail.com: domain of revest@chromium.org designates 209.85.128.48 as permitted sender) smtp.mailfrom=revest@chromium.org; dmarc=pass (policy=none) header.from=chromium.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1693235357; a=rsa-sha256; cv=none; b=Mq+Y8BLfsce15qgAyX57zg3LOTnshVlv6N2z8UtotbMufUmBXh4iIY/+VplmKx5Iy28umO zfKker3p5GtcSjLISKih9lP7tz5bH5BdCUP9ivBRi2HNB124MLQHoLxIBen5okjxzZDUjh dFUWruRPlZiLIPTAEdPIW3BOFJHLDCw= Received: by mail-wm1-f48.google.com with SMTP id 5b1f17b1804b1-401b0d97850so32190155e9.2 for ; Mon, 28 Aug 2023 08:09:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1693235356; x=1693840156; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=gkrzJ6nrXmVMKGdRpiGhMw2iKfFp7Za5H8zwt1x/uYE=; b=Gcfsc20eRAp56OKEVtMEAhiDJbVxd/eH0D9DHi7azczCvXZzjwAaYRmxarKUIMR+vQ 2XanoZWuX5BE9LnjXukHoeIX3vcDykgOXzBvFzYHi1NfOQfyLIgn3bbw3Ck9WAwB0Isi 39eyQXmVEHzX3V6dpy2y9FTf1Yo/Bpgl5L9hw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693235356; x=1693840156; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gkrzJ6nrXmVMKGdRpiGhMw2iKfFp7Za5H8zwt1x/uYE=; b=i3+Ch54ep9lY9TBEuBPWX/891YF+kyBb/io1aCGtOi6t+q9/zWrXI/WoRowBNIWfZY HmkzRQD9qDADxSuwoCUMId3avAxk4KL1aawEvpN6iKmD2OOJyoeGq5bB/Dw5Z8aDdiZR iOTceUy3lT82FmoGVFYGq0+lF7gz/bSv+jvT4A5Sv+C3LztKcWK4O/+ds3+S8Me09b/d JlOM/Fr/ylzsyywYydAX3e9A70zBJJybrAHvl5ohEPCb7LE979GcuU6rGegrE0+Gbqu0 4TYHshyYBc/T8Gxgjq4szLo/ajCssBYft0dmt5EX4eQV91jE/HsRJe7xOCfnfu7db7Ko OqzQ== X-Gm-Message-State: AOJu0YykAuuer8eIYsFBtsuXFeEocSAY3aFp+Aya6qOZKT7GjKf+elaW 5sJbYjUHDax1bXvy1W1YLdSTIO490E4SKrwLIm8= X-Google-Smtp-Source: AGHT+IFPERDSa8GnxhdBv9hLnJGAV2jLF6UJnAF68SaqVArOPcEFQgITwMNi2q83UONR6SeCgjDrOA== X-Received: by 2002:a7b:ce91:0:b0:401:4542:5edf with SMTP id q17-20020a7bce91000000b0040145425edfmr9094986wmj.0.1693235356077; Mon, 28 Aug 2023 08:09:16 -0700 (PDT) Received: from revest.zrh.corp.google.com ([2a00:79e0:9d:6:40c6:6cff:63b:c70a]) by smtp.gmail.com with ESMTPSA id v3-20020a5d43c3000000b003140fff4f75sm10730522wrr.17.2023.08.28.08.09.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 28 Aug 2023 08:09:15 -0700 (PDT) From: Florent Revest To: linux-kernel@vger.kernel.org, linux-mm@kvack.org Cc: akpm@linux-foundation.org, catalin.marinas@arm.com, anshuman.khandual@arm.com, joey.gouly@arm.com, mhocko@suse.com, keescook@chromium.org, david@redhat.com, peterx@redhat.com, izbyshev@ispras.ru, broonie@kernel.org, szabolcs.nagy@arm.com, kpsingh@kernel.org, gthelen@google.com, toiwoton@gmail.com, ayush.jain3@amd.com, Florent Revest Subject: [PATCH v4 6/6] kselftest: vm: Add tests for no-inherit memory-deny-write-execute Date: Mon, 28 Aug 2023 17:08:58 +0200 Message-ID: <20230828150858.393570-7-revest@chromium.org> X-Mailer: git-send-email 2.42.0.rc2.253.gd59a3bf2b4-goog In-Reply-To: <20230828150858.393570-1-revest@chromium.org> References: <20230828150858.393570-1-revest@chromium.org> MIME-Version: 1.0 X-Rspamd-Queue-Id: 43A88100024 X-Rspam-User: X-Stat-Signature: prf3emj7199gpqk5idf3547ymfmsmb3j X-Rspamd-Server: rspam01 X-HE-Tag: 1693235357-905345 X-HE-Meta: U2FsdGVkX19TgitFokfUemPvjBQwzOwJJfG8nNHLAsg1jVASF7olU6eT9tFJGOar7iedOgKd0nuJUKs+0mtpUWhoelsBqG3CvgjCjQIKR+myeryRhHxrA13UlD/mZHqKhHOHKo2MbITll76TJLEMnuySMpiw1+iOER8MZrI3A8FntAK2ajI3JaqeUdyDWVpBXpzeQBIxed5M+MBnUyijD7qLVpb2uMSzF7aERY2cZ69QCjaZ2EqRemskmhYpHPyD65YBdct2YX87j53ulkC6TfwH/RddORsaU8dAUkwVygGJerBjGvdyTW+ra/mragi+CwP9SMHGZ4vF84XYUYnihqe5ksIRCNPcfnF2Q2c/MylkfkN0xCJPxvjVyQDN+KgawVp0LLiVlZIEw27Tc1/MTkPu+faHBucYlx4+U1OeDmDEE/cpyQbkFuSMNp2lollCm4KP0YOlkRJlGcDPboyue8Q+2sehLvuoi/1rxNFknEJnRQjdAHFcgUY8HAgW/Bo7Ac9SiFUVcmG19wH6w0zYZQRkmJ6DpgcwdBkzX/WhFWKJIQYbB5kY7kt06Mt+q33kHvRC/EzKzzLwd/W52JHQyWxDRoGSXXwj017ROw+dPOdJJ1k5CU8mmK8yYWQ8i9G8B+SUNiPLBd/+IaIo/IpPcQZvmu2aTISah7p0vZpOOnPe7U5nHm4LzXpT9Y96OVbdT6F56g4yt8a23x66KiQ3UWXkifrXsqCD2or8tMLvzJO8sZ8wKP/msDMz7k2RCLDHUBo3gMYjlJ1hEgFCmRc1HzUGK02Uzg47WPChWQeHpQGvv0/JX44IAN9R/4gy4kC7OdZlMPbuRcMLTAsrmuLwPxA77QaT0AQJdzAG/eMAiF36IwyXgx8hZ1KWEYbpQGEOE5eVUX1YOgSyAE3xun1GUwYsbxuB1fLxeh0fIRunRlGgYZFpMkxU4ZwYlCp05AMPAaknHHS01v07dWiNoU9 4CWBBjFn oqWm7lJ9BkYkmvEpoEec797JoFpiLHWQFujKWwHJ6edEu7Be1gS4cTuRDjVF1a3vvvmpy8j9H91jYBD259JCHoNtqXE1P9MQKPkpTG7BcPaPhKawrNmxwubNFffhINBQT6pTjEWyKIN9ZrZ7kqoMDpI3vTFBTAxSTXhUZ17tijqt1/MamkJsARvRzng1dLRVF6QGJ78jbQJdZc9O+cvGA9qUqOeYYOH7hKdYrkObx7gaCbuGong6E3/sNHi2mT/sbA3Aheqd44vKtEFSknhYPmGS/MUjCD5hA+t00WVt831sOvB4I81uI0PuzzaccoqYRrxtUHAmxmbI6DaR9ig7jnDTrYRoA7AABJkK6YJ1mPB2Ql2qB4K8RUX+/tY1+jpQ5T7UTMlToINPR4Bn9VqnunAHN2Kc6GNT0DbGedDSVup5f7aGQN9SaMos259TFtAkZd6t3 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: Add some tests to cover the new PR_MDWE_NO_INHERIT flag of the PR_SET_MDWE prctl. Check that: - it can't be set without PR_SET_MDWE - MDWE flags can't be unset - when set, PR_SET_MDWE doesn't propagate to children Acked-by: Catalin Marinas Signed-off-by: Florent Revest Reviewed-by: Kees Cook --- tools/testing/selftests/mm/mdwe_test.c | 114 +++++++++++++++++++++++-- 1 file changed, 108 insertions(+), 6 deletions(-) diff --git a/tools/testing/selftests/mm/mdwe_test.c b/tools/testing/selftests/mm/mdwe_test.c index 1b84cf8e1bbe..200bedcdc32e 100644 --- a/tools/testing/selftests/mm/mdwe_test.c +++ b/tools/testing/selftests/mm/mdwe_test.c @@ -22,6 +22,9 @@ TEST(prctl_flags) { + EXPECT_LT(prctl(PR_SET_MDWE, PR_MDWE_NO_INHERIT, 0L, 0L, 7L), 0); + EXPECT_EQ(errno, EINVAL); + EXPECT_LT(prctl(PR_SET_MDWE, 7L, 0L, 0L, 0L), 0); EXPECT_EQ(errno, EINVAL); EXPECT_LT(prctl(PR_SET_MDWE, 0L, 7L, 0L, 0L), 0); @@ -41,6 +44,84 @@ TEST(prctl_flags) EXPECT_EQ(errno, EINVAL); } +FIXTURE(consecutive_prctl_flags) {}; +FIXTURE_SETUP(consecutive_prctl_flags) {} +FIXTURE_TEARDOWN(consecutive_prctl_flags) {} + +FIXTURE_VARIANT(consecutive_prctl_flags) +{ + unsigned long first_flags; + unsigned long second_flags; + bool should_work; +}; + +FIXTURE_VARIANT_ADD(consecutive_prctl_flags, can_keep_no_flags) +{ + .first_flags = 0, + .second_flags = 0, + .should_work = true, +}; + +FIXTURE_VARIANT_ADD(consecutive_prctl_flags, can_keep_exec_gain) +{ + .first_flags = PR_MDWE_REFUSE_EXEC_GAIN, + .second_flags = PR_MDWE_REFUSE_EXEC_GAIN, + .should_work = true, +}; + +FIXTURE_VARIANT_ADD(consecutive_prctl_flags, can_keep_both_flags) +{ + .first_flags = PR_MDWE_REFUSE_EXEC_GAIN | PR_MDWE_NO_INHERIT, + .second_flags = PR_MDWE_REFUSE_EXEC_GAIN | PR_MDWE_NO_INHERIT, + .should_work = true, +}; + +FIXTURE_VARIANT_ADD(consecutive_prctl_flags, cant_disable_mdwe) +{ + .first_flags = PR_MDWE_REFUSE_EXEC_GAIN, + .second_flags = 0, + .should_work = false, +}; + +FIXTURE_VARIANT_ADD(consecutive_prctl_flags, cant_disable_mdwe_no_inherit) +{ + .first_flags = PR_MDWE_REFUSE_EXEC_GAIN | PR_MDWE_NO_INHERIT, + .second_flags = 0, + .should_work = false, +}; + +FIXTURE_VARIANT_ADD(consecutive_prctl_flags, cant_disable_no_inherit) +{ + .first_flags = PR_MDWE_REFUSE_EXEC_GAIN | PR_MDWE_NO_INHERIT, + .second_flags = PR_MDWE_REFUSE_EXEC_GAIN, + .should_work = false, +}; + +FIXTURE_VARIANT_ADD(consecutive_prctl_flags, cant_enable_no_inherit) +{ + .first_flags = PR_MDWE_REFUSE_EXEC_GAIN, + .second_flags = PR_MDWE_REFUSE_EXEC_GAIN | PR_MDWE_NO_INHERIT, + .should_work = false, +}; + +TEST_F(consecutive_prctl_flags, two_prctls) +{ + int ret; + + EXPECT_EQ(prctl(PR_SET_MDWE, variant->first_flags, 0L, 0L, 0L), 0); + + ret = prctl(PR_SET_MDWE, variant->second_flags, 0L, 0L, 0L); + if (variant->should_work) { + EXPECT_EQ(ret, 0); + + ret = prctl(PR_GET_MDWE, 0L, 0L, 0L, 0L); + ASSERT_EQ(ret, variant->second_flags); + } else { + EXPECT_NE(ret, 0); + ASSERT_EQ(errno, EPERM); + } +} + FIXTURE(mdwe) { void *p; @@ -53,28 +134,45 @@ FIXTURE_VARIANT(mdwe) { bool enabled; bool forked; + bool inherit; }; FIXTURE_VARIANT_ADD(mdwe, stock) { .enabled = false, .forked = false, + .inherit = false, }; FIXTURE_VARIANT_ADD(mdwe, enabled) { .enabled = true, .forked = false, + .inherit = true, }; -FIXTURE_VARIANT_ADD(mdwe, forked) +FIXTURE_VARIANT_ADD(mdwe, inherited) { .enabled = true, .forked = true, + .inherit = true, }; +FIXTURE_VARIANT_ADD(mdwe, not_inherited) +{ + .enabled = true, + .forked = true, + .inherit = false, +}; + +static bool executable_map_should_fail(const FIXTURE_VARIANT(mdwe) *variant) +{ + return variant->enabled && (!variant->forked || variant->inherit); +} + FIXTURE_SETUP(mdwe) { + unsigned long mdwe_flags; int ret, status; self->p = NULL; @@ -84,13 +182,17 @@ FIXTURE_SETUP(mdwe) if (!variant->enabled) return; - ret = prctl(PR_SET_MDWE, PR_MDWE_REFUSE_EXEC_GAIN, 0L, 0L, 0L); + mdwe_flags = PR_MDWE_REFUSE_EXEC_GAIN; + if (!variant->inherit) + mdwe_flags |= PR_MDWE_NO_INHERIT; + + ret = prctl(PR_SET_MDWE, mdwe_flags, 0L, 0L, 0L); ASSERT_EQ(ret, 0) { TH_LOG("PR_SET_MDWE failed or unsupported"); } ret = prctl(PR_GET_MDWE, 0L, 0L, 0L, 0L); - ASSERT_EQ(ret, 1); + ASSERT_EQ(ret, mdwe_flags); if (variant->forked) { self->pid = fork(); @@ -121,7 +223,7 @@ TEST_F(mdwe, mmap_READ_EXEC) TEST_F(mdwe, mmap_WRITE_EXEC) { self->p = mmap(NULL, self->size, PROT_WRITE | PROT_EXEC, self->flags, 0, 0); - if (variant->enabled) { + if (executable_map_should_fail(variant)) { EXPECT_EQ(self->p, MAP_FAILED); } else { EXPECT_NE(self->p, MAP_FAILED); @@ -147,7 +249,7 @@ TEST_F(mdwe, mprotect_add_EXEC) ASSERT_NE(self->p, MAP_FAILED); ret = mprotect(self->p, self->size, PROT_READ | PROT_EXEC); - if (variant->enabled) { + if (executable_map_should_fail(variant)) { EXPECT_LT(ret, 0); } else { EXPECT_EQ(ret, 0); @@ -162,7 +264,7 @@ TEST_F(mdwe, mprotect_WRITE_EXEC) ASSERT_NE(self->p, MAP_FAILED); ret = mprotect(self->p, self->size, PROT_WRITE | PROT_EXEC); - if (variant->enabled) { + if (executable_map_should_fail(variant)) { EXPECT_LT(ret, 0); } else { EXPECT_EQ(ret, 0);