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 1A3CFC636CD for ; Tue, 7 Feb 2023 03:54:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AA52C6B0071; Mon, 6 Feb 2023 22:54:26 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A54BF6B0075; Mon, 6 Feb 2023 22:54:26 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 880F06B007B; Mon, 6 Feb 2023 22:54:26 -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 787936B0075 for ; Mon, 6 Feb 2023 22:54:26 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 59893C0AB3 for ; Tue, 7 Feb 2023 03:54:26 +0000 (UTC) X-FDA: 80439128532.22.CFA9437 Received: from mail-pj1-f43.google.com (mail-pj1-f43.google.com [209.85.216.43]) by imf08.hostedemail.com (Postfix) with ESMTP id 8748216000A for ; Tue, 7 Feb 2023 03:54:23 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=CCUTutBo; spf=pass (imf08.hostedemail.com: domain of shiyn.lin@gmail.com designates 209.85.216.43 as permitted sender) smtp.mailfrom=shiyn.lin@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1675742063; 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=7Fn2XJ6BeCuZXUbdo2K6qkX2BSn2D/fR6IYZR7N3Gdw=; b=2Gdc+qjqYLcAlThkTJr3PK+r9zTXUNmjkL5UcIr2/47883hRfMM9yuWhS+VmlNHux0m8f4 zfWXtmC5fHiRhJYUKGlkpONIMrOflUlYq7MJPfhDgVBWZj+2bSa9vzn3xCgofAsCAhRmY+ DZ2Ax2OSzoPj60t84SVIlhkEYIGlNZc= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=CCUTutBo; spf=pass (imf08.hostedemail.com: domain of shiyn.lin@gmail.com designates 209.85.216.43 as permitted sender) smtp.mailfrom=shiyn.lin@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1675742063; a=rsa-sha256; cv=none; b=cVjbyBIRdNL+iGX9TpRJfHMYY8uDPce3eOkRBadLS2QlZ72eN2C9XuC3Yx9g4KZ7zGWkhB KVzqEYIb2FOtHDlLZ8rEK8cMk/NqT5GRSWpK8SDN+/i9oGc3rxXP29P/iUSlEkAXk70CQ7 6zwZlGtKb15c6+rd3YQgr+US/QLbOzY= Received: by mail-pj1-f43.google.com with SMTP id hv11-20020a17090ae40b00b002307b580d7eso9845660pjb.3 for ; Mon, 06 Feb 2023 19:54:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; 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=7Fn2XJ6BeCuZXUbdo2K6qkX2BSn2D/fR6IYZR7N3Gdw=; b=CCUTutBoo2pbeZ3p1iGL8KlrwP8i3sjy+zx/AKmz1K9JrJ6oIfbvMlkFe++UpZ/o9c jLR0f59TMqFDvtBg/ZmOnybfErE0kys1xmXLilQ4FNTfi+LYKDLdIAWZW2V+uXG84A8G rJ0AdKYEfh/6NMITd7LBVlt8V4YMumtaI/ciIbWz7MN+mzdB5Mx+rEKHHtpThg8oRG3L At7ypimq/NDP8NtbuqqygEIWJ/zadD+1PVG6vwc4ahN51pv4KYtCTrdPMnGhQa4H4iEe V0DTtr2SOV4h13OOuEpVbRXS1EibeJGHdSfw/VsQXeEnMfZsXT51uoS1YherAt6a013L XX+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=7Fn2XJ6BeCuZXUbdo2K6qkX2BSn2D/fR6IYZR7N3Gdw=; b=fkT30OonlV8lVP3+CTC3NoM+nBXwg5tpj3E6Rx0qyH2rpJpLeNQwb03pGiElXL4Kro EJJCqPeMIl/4/dAp2gkWKY3YBN28qH32BXW8kLDg6VsMN496Q4Hj5/6Zy9apvZYvXnCs wZOtqR+b3eM0npm6VXGTsn6tQdtrywnMQYQmjmNH87pkjDjYFNwSNuFrBzqkdZFYGjNQ dv024uNWyx41CU9F93KReMvnRpCWOD6yPJ3f4CweQIe5kvI/PS8wcWdEMnu4DFspR05u pU1DUxDKp6ZILvbpO1C3qgkM7hDrCyfXHk78YcaTj4TfcL6/jnOifiwY0z/I8aIbCpn1 Qlzg== X-Gm-Message-State: AO0yUKX5DihRbt5/d1kfIuUbnIhv5/3dBp58FkBw0Ds13e82vQ7B4L43 Xywi5JRS/RL7DhKGpnGvZ24= X-Google-Smtp-Source: AK7set8H/+HhL0xGcMIRPsUXfCYGK7THtXNOLIHlQ4vaHRULRWfe88k0qBDEJHUrIvleBegMqDXp6Q== X-Received: by 2002:a17:902:c404:b0:198:c27f:8954 with SMTP id k4-20020a170902c40400b00198c27f8954mr1407914plk.54.1675742062426; Mon, 06 Feb 2023 19:54:22 -0800 (PST) Received: from strix-laptop.hitronhub.home ([123.110.9.95]) by smtp.googlemail.com with ESMTPSA id q4-20020a170902b10400b0019682e27995sm7647655plr.223.2023.02.06.19.54.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Feb 2023 19:54:21 -0800 (PST) From: Chih-En Lin To: Andrew Morton , Qi Zheng , David Hildenbrand , "Matthew Wilcox (Oracle)" , Christophe Leroy , John Hubbard , Nadav Amit , Barry Song Cc: Steven Rostedt , Masami Hiramatsu , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Yang Shi , Peter Xu , Vlastimil Babka , "Zach O'Keefe" , Yun Zhou , Hugh Dickins , Suren Baghdasaryan , Pasha Tatashin , Yu Zhao , Juergen Gross , Tong Tiangen , Liu Shixin , Anshuman Khandual , Li kunyu , Minchan Kim , Miaohe Lin , Gautam Menghani , Catalin Marinas , Mark Brown , Will Deacon , Vincenzo Frascino , Thomas Gleixner , "Eric W. Biederman" , Andy Lutomirski , Sebastian Andrzej Siewior , "Liam R. Howlett" , Fenghua Yu , Andrei Vagin , Barret Rhoden , Michal Hocko , "Jason A. Donenfeld" , Alexey Gladkov , linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-trace-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Dinglan Peng , Pedro Fonseca , Jim Huang , Huichun Feng , Chih-En Lin Subject: [PATCH v4 09/14] mm/mprotect: Break COW PTE before changing protection Date: Tue, 7 Feb 2023 11:51:34 +0800 Message-Id: <20230207035139.272707-10-shiyn.lin@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230207035139.272707-1-shiyn.lin@gmail.com> References: <20230207035139.272707-1-shiyn.lin@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 8748216000A X-Stat-Signature: w646joqm39pwg4az7wd8sp186ad4emiw X-Rspam-User: X-HE-Tag: 1675742063-246382 X-HE-Meta: U2FsdGVkX19fNOTXOl/BEn5fPlaKE8ABlCK7tibDRqR+Ta1XurSqbFTLNnACa0vUyPKK0gN2Bf4HWysKt2ryKw169JVB7NyncyTPdhNB8j3gSe5CxJElt8Ylof1YBSVvw3ZQhzKq+eNYnbvI239uPH7CVkZnQDLIBXyi5lqxJI0383R/HdLfR/56idSHaW2X39fYxo2jG9nx198+77xjjEKwXh/7HasJ/jZz4oiVZ19R1IfJiHFiW7b7Q+Ee18E/7ADUtJR+JLktfWJXzNmMkuWLww6iX75ujkMKA+n5Ftky6jFnnR8Hj8J+3Mmp/UImv/iZVT5XD/JKZnY7kE8MBR7lj6xiyox0fJHIrB0cqUJXn36cQdSS6wDJE7MyvTh3ymCov81kMtMM+ODPCKTuYulK+zPdTYjwW84LlPliW05X9gcvRJFO5LMw/wtLGnKZDhCh5hLxlYxdiQ99VPPS8a1J1bPe0ltoK0jrq1Foax8ue69npmAZPncjqDigP8/Gmov17hu0irAJjFhTnYk1nViAFf1+aTvD7FAr5/ZUZL8bjg8QCpAH7eY99PQfDROqpgyzFRICXL9Cw8a8t/rDWtj67bdhFnGj6oz/Uin050tPyB5E4tTaKzvpFxiIB51FKlOkWlnsoUHAv/y7SbUJeogLYIxnNigLBCvHVoiLm8bWHdnQ/1pHzyrHSQFVGK7na45V2kxTQrtU1Lq8j7JU8IZXjM9vDl5xB0hbeFyfZMduKPrdixg2xyjWg+oT43dKzCzfMruoNPJ7iwdY2Oooof+EPN56aPCpwO/f0vYBv8E/aq7AEtjBEfYnSFHBL2lomXPMJdVjNSaQRsVhpc82DXa3BhsZprlUS1kT4D10KrW5F2sckosSkL99SjwZA3o/JTpPigM3NJlFuen7OuFT95Ob1xsufK+tyJ9Ajm0E8yRBMRNaFdv/pImqrxxa5uvScY4Y1ZpkSUg78P7EW8l 0wAGi1J0 So5x2f/0jZl9LXCHJm+b5bdk+uToConnSaeZ8sog0bJ0KSE6uQHLa/bf96D/ilI6EWu9f5Z4Lrp8EwI29B3svzJel/hrDEZZqVk0NrMGjItrbe86mD6yDipW0W+FM079e9MAkkmwJXn9JF5aP1J/opIAPpMj0axxcw1OMQMMw5MD27+ptNSst0Pak0nToW+b4iWBhVzaLbCMfHIRkxwmuOo5AAD/Vxu0q/dX8kBqH4craN4fssHNUba2MgrIknTxc90GPdDAZl9dRkzG+A2WSh+Zkj1hyHsDQPWm9Z2pBDb48BpIT/eiPPQhTvfAW+qxze2NZYVD9tRipAqEbUJvc0/X++CUFPzZ8jn7wL5+TeOZesQKPU99JuKmbVRX7auwm1ELrqLazjJ2oyT/ruyu8BGs/X2czTOq6x5HMKUp80gs7ccVbSeNXmUN/nBDtBQtEFG5OR6cLGlwHfmg+OocxheG92NgA3HtHqxm/9J1xQJGUYKqBPxuqatsoXrW1RflFKDrhyj+48wINgi47kcNSYx5OEzfWuTLQ86GfiHEfeuMAtrBWZsyeXSRJ3Q== 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: If the PTE table is COW-ed, break it before changing the protection. Signed-off-by: Chih-En Lin --- mm/mprotect.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/mm/mprotect.c b/mm/mprotect.c index 61cf60015a8b..8b18cd0e5c5e 100644 --- a/mm/mprotect.c +++ b/mm/mprotect.c @@ -103,6 +103,9 @@ static unsigned long change_pte_range(struct mmu_gather *tlb, if (pmd_trans_unstable(pmd)) return 0; + if (break_cow_pte(vma, pmd, addr)) + return 0; + /* * The pmd points to a regular pte so the pmd can't change * from under us even if the mmap_lock is only hold for @@ -314,6 +317,12 @@ static inline int pmd_none_or_clear_bad_unless_trans_huge(pmd_t *pmd) return 1; if (pmd_trans_huge(pmdval)) return 0; + /* + * If the entry point to COW-ed PTE, it's write protection bit + * will cause pmd_bad(). + */ + if (!pmd_write(pmdval)) + return 0; if (unlikely(pmd_bad(pmdval))) { pmd_clear_bad(pmd); return 1; -- 2.34.1