{"id":2175645,"url":"http://patchwork.ozlabs.org/api/1.0/patches/2175645/?format=json","project":{"id":2,"url":"http://patchwork.ozlabs.org/api/1.0/projects/2/?format=json","name":"Linux PPC development","link_name":"linuxppc-dev","list_id":"linuxppc-dev.lists.ozlabs.org","list_email":"linuxppc-dev@lists.ozlabs.org","web_url":"https://github.com/linuxppc/wiki/wiki","scm_url":"https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git","webscm_url":"https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/"},"msgid":"<20251219-pgtable_check_v18rebase-v18-8-755bc151a50b@linux.ibm.com>","date":"2025-12-18T17:09:40","name":"[v18,08/12] mm/page_table_check: Reinstate address parameter in [__]page_table_check_pte_clear()","commit_ref":null,"pull_url":null,"state":"handled-elsewhere","archived":false,"hash":"d73d86be3d36111f8798556523e2d90d9201d5a5","submitter":{"id":76551,"url":"http://patchwork.ozlabs.org/api/1.0/people/76551/?format=json","name":"Andrew Donnellan","email":"ajd@linux.ibm.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linuxppc-dev/patch/20251219-pgtable_check_v18rebase-v18-8-755bc151a50b@linux.ibm.com/mbox/","series":[{"id":485885,"url":"http://patchwork.ozlabs.org/api/1.0/series/485885/?format=json","date":"2025-12-18T17:09:32","name":"Support page table check on PowerPC","version":18,"mbox":"http://patchwork.ozlabs.org/series/485885/mbox/"}],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2175645/checks/","tags":{},"headers":{"Return-Path":"\n <linuxppc-dev+bounces-14876-incoming=patchwork.ozlabs.org@lists.ozlabs.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=ibm.com header.i=@ibm.com header.a=rsa-sha256\n header.s=pp1 header.b=gkHape/f;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.ozlabs.org\n (client-ip=2404:9400:21b9:f100::1; helo=lists.ozlabs.org;\n envelope-from=linuxppc-dev+bounces-14876-incoming=patchwork.ozlabs.org@lists.ozlabs.org;\n receiver=patchwork.ozlabs.org)","lists.ozlabs.org;\n arc=none smtp.remote-ip=148.163.158.5","lists.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=linux.ibm.com","lists.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=ibm.com header.i=@ibm.com header.a=rsa-sha256\n header.s=pp1 header.b=gkHape/f;\n\tdkim-atps=neutral","lists.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=linux.ibm.com\n (client-ip=148.163.158.5; helo=mx0b-001b2d01.pphosted.com;\n envelope-from=ajd@linux.ibm.com; receiver=lists.ozlabs.org)"],"Received":["from lists.ozlabs.org (lists.ozlabs.org\n [IPv6:2404:9400:21b9:f100::1])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4dXHJ8589xz1y2F\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 19 Dec 2025 04:11:20 +1100 (AEDT)","from boromir.ozlabs.org (localhost [127.0.0.1])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 4dXHHv5NfWz2yjn;\n\tFri, 19 Dec 2025 04:11:07 +1100 (AEDT)","from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com\n [148.163.158.5])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 4dXHHt6bCQz2yFY\n\tfor <linuxppc-dev@lists.ozlabs.org>; Fri, 19 Dec 2025 04:11:06 +1100 (AEDT)","from pps.filterd (m0356516.ppops.net [127.0.0.1])\n\tby mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id\n 5BIAUOgf021603;\n\tThu, 18 Dec 2025 17:10:54 GMT","from pps.reinject (localhost [127.0.0.1])\n\tby mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4b0wjqb7rf-1\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);\n\tThu, 18 Dec 2025 17:10:54 +0000 (GMT)","from m0356516.ppops.net (m0356516.ppops.net [127.0.0.1])\n\tby pps.reinject (8.18.1.12/8.18.0.8) with ESMTP id 5BIHAr7C002024;\n\tThu, 18 Dec 2025 17:10:53 GMT","from ppma11.dal12v.mail.ibm.com\n (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219])\n\tby mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4b0wjqb7rc-1\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);\n\tThu, 18 Dec 2025 17:10:53 +0000 (GMT)","from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1])\n\tby ppma11.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id\n 5BIG7F5P005674;\n\tThu, 18 Dec 2025 17:10:52 GMT","from smtprelay05.wdc07v.mail.ibm.com ([172.16.1.72])\n\tby ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 4b1tgp87cb-1\n\t(version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);\n\tThu, 18 Dec 2025 17:10:52 +0000","from smtpav03.dal12v.mail.ibm.com (smtpav03.dal12v.mail.ibm.com\n [10.241.53.102])\n\tby smtprelay05.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id\n 5BIHAoMw21365448\n\t(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);\n\tThu, 18 Dec 2025 17:10:50 GMT","from smtpav03.dal12v.mail.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id 736095805A;\n\tThu, 18 Dec 2025 17:10:50 +0000 (GMT)","from smtpav03.dal12v.mail.ibm.com (unknown [127.0.0.1])\n\tby IMSVA (Postfix) with ESMTP id 29AE858063;\n\tThu, 18 Dec 2025 17:10:44 +0000 (GMT)","from jarvis.ozlabs.ibm.com (unknown [9.36.16.51])\n\tby smtpav03.dal12v.mail.ibm.com (Postfix) with ESMTP;\n\tThu, 18 Dec 2025 17:10:43 +0000 (GMT)"],"ARC-Seal":"i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1766077867;\n\tcv=none;\n b=c9pSSV/zXmBjopvPhqShK50IOv8LNQMCgp7M7cqLpUNFx7Zz/4MAQXRdDJ87IUbQkLwTs4sUVZiJ796UY97Yc7X7CSt7PaDfG+jrvdUX1MKSlUZ/8hPve2iJQ8rUJq6GkijYoFVw5VdJbOaslh/bvGRV7wAmUEEmMrzZgcFh6wSkUj9UwIF77xk8W0EhZNTuZfjUtNje+SngccAoQ/qycrFPshkhZUD8rgM2GaZRED4CSqdaP67/FbV6jo/GcjfQtHpw3ZlhvI81Ivk0i2nmRNfCizKfrjrBN0K3NnMOS6QizgQYcux0n5o0c9Yboh+wtfSaqClvNc8FetPrBC8WYw==","ARC-Message-Signature":"i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707;\n\tt=1766077867; c=relaxed/relaxed;\n\tbh=H/w/fSn72/VmP53WNGDX6nGiFGwqFhlL7pz/p8V4Uk8=;\n\th=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References:\n\t In-Reply-To:To:Cc;\n b=H8vDH3FDCfEsbOrTspqJnULkJI4T/0Km3IM1asJXNHpSjLPyRFF1nk3j6kQ1EU1pMS7tTziIQs/vyIUNPjTAFnJAYJ/4MlqzojPb/bI/DrSejEUEjyIzoKgAcRrFNELzB5U8jeybGE1/nf8YlmNktn1v5mY3oefxhWqNGGqJnNQNoxsWJCY3fKrSxCCy8S/MukHsnC/oomulwDWIaEyxlvnJOV4pN4owdZaGUQiRVBpfMuPEB8zUona+F7M8EEG0HnXBS5yKNpoBZnJttSPpv+sLzyyXFOGsskqDmkYFXeF9aq6zx0FSGC7RKVyggVAhJ6KG/qD5ozlAamnsH6q1Kg==","ARC-Authentication-Results":"i=1; lists.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=linux.ibm.com;\n dkim=pass (2048-bit key;\n unprotected) header.d=ibm.com header.i=@ibm.com header.a=rsa-sha256\n header.s=pp1 header.b=gkHape/f; dkim-atps=neutral;\n spf=pass (client-ip=148.163.158.5; helo=mx0b-001b2d01.pphosted.com;\n envelope-from=ajd@linux.ibm.com;\n receiver=lists.ozlabs.org) smtp.mailfrom=linux.ibm.com","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc\n\t:content-transfer-encoding:content-type:date:from:in-reply-to\n\t:message-id:mime-version:references:subject:to; s=pp1; bh=H/w/fS\n\tn72/VmP53WNGDX6nGiFGwqFhlL7pz/p8V4Uk8=; b=gkHape/f8wlm87feHs36tA\n\tFzlUXzj4I+j7dwjLx7Kctvv6FaKnrKutG++pWdo19+zWS1R3UTREdJv6mzwtrGlu\n\tS/SGqh3w6LDhT/cmWFMX1TSMwBh+8rKMnNhln/+NBltrUeuiRTRX81nSY44EHcYF\n\t/F27At6cog89OIFiSpgeA6FB7RWXAfhrjNIt5L1JtXYv5kpGLDTJUhAhWUISgBqJ\n\tgWyoGyZ20GE/Ndj08lJ0ZBPGi9mY6K2T+bbYoxud+0uUQhDdGL9jnfiXXiKM+q0L\n\tc5LdHq2lNBIsGW+wmdrKJ376tThPO0rDbMaKamIW6D5wECk1iOA4hpZ+ifyw0+FQ\n\t==","From":"Andrew Donnellan <ajd@linux.ibm.com>","Date":"Fri, 19 Dec 2025 04:09:40 +1100","Subject":"[PATCH v18 08/12] mm/page_table_check: Reinstate address parameter\n in [__]page_table_check_pte_clear()","X-Mailing-List":"linuxppc-dev@lists.ozlabs.org","List-Id":"<linuxppc-dev.lists.ozlabs.org>","List-Help":"<mailto:linuxppc-dev+help@lists.ozlabs.org>","List-Owner":"<mailto:linuxppc-dev+owner@lists.ozlabs.org>","List-Post":"<mailto:linuxppc-dev@lists.ozlabs.org>","List-Archive":"<https://lore.kernel.org/linuxppc-dev/>,\n  <https://lists.ozlabs.org/pipermail/linuxppc-dev/>","List-Subscribe":"<mailto:linuxppc-dev+subscribe@lists.ozlabs.org>,\n  <mailto:linuxppc-dev+subscribe-digest@lists.ozlabs.org>,\n  <mailto:linuxppc-dev+subscribe-nomail@lists.ozlabs.org>","List-Unsubscribe":"<mailto:linuxppc-dev+unsubscribe@lists.ozlabs.org>","Precedence":"list","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"7bit","Message-Id":"\n <20251219-pgtable_check_v18rebase-v18-8-755bc151a50b@linux.ibm.com>","References":"\n <20251219-pgtable_check_v18rebase-v18-0-755bc151a50b@linux.ibm.com>","In-Reply-To":"\n <20251219-pgtable_check_v18rebase-v18-0-755bc151a50b@linux.ibm.com>","To":"linux-mm@kvack.org, linuxppc-dev@lists.ozlabs.org,\n        Pasha Tatashin <pasha.tatashin@soleen.com>,\n        Andrew Morton <akpm@linux-foundation.org>,\n        Madhavan Srinivasan <maddy@linux.ibm.com>,\n        Nicholas Piggin <npiggin@gmail.com>,\n Rohan McLure <rmclure@nvidia.com>,\n        Christophe Leroy <chleroy@kernel.org>","Cc":"Alexandre Ghiti <alex@ghiti.fr>, x86@kernel.org,\n        Nicholas Miehlbradt <nicholas@linux.ibm.com>,\n        Sweet Tea Dorminy <sweettea-kernel@dorminy.me>,\n        Andrew Donnellan <andrew+kernel@donnellan.id.au>,\n        Srish Srinivasan <ssrish@linux.ibm.com>,\n        linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org,\n        linux-riscv@lists.infradead.org","X-Mailer":"b4 0.14.2","X-TM-AS-GCONF":"00","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjUxMjEzMDAwMSBTYWx0ZWRfXyW/AHu/sJjPm\n b95QWXHVntQ+5Qp4i7lInwLggP+sFMm+Sh/Tv6w4gw0GJTAqCr8QHLHeXEk0VGTGvS38qP/so7h\n xCP9f/1sIGQFPiFvM/Frm/cgYnxEeGCfwV0KNp9HRB7lFhbjgiBulZQYbcFJhxkGetl+13z0EuE\n JsXZPH9juzkLygRRR+WnRh08uM2+oIhZhZmgdkOe/c9jmX1TEFoLJCRbnF6kL/V9AZuQTUl+oP9\n CPJjcqIpX7EM+bL2t0lBIWrDA7WSp0FQVCvpy7ritINWcAIHnoD6Nu8H/NQTmDdl1WcQAv7buKH\n FD1ORS2ONPw9iBSyWfQAiRDLMfyVxFcJSVkRZIAAroivJ9eCyXxhLWzkjZ3LE3/Rzmr66zyBZF2\n D/E8nsr7PfKp83KFl2MJTAvpbkPVZw==","X-Proofpoint-GUID":"5Yp_muOMmFYPg8SoPPTo8b4fMYAx304e","X-Proofpoint-ORIG-GUID":"kUFzuvcp4Yqhwu3JiKAwrki2bEfwTDz2","X-Authority-Analysis":"v=2.4 cv=Kq5AGGWN c=1 sm=1 tr=0 ts=6944359e cx=c_pps\n a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17\n a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=VkNPw1HP01LnGYTKEx00:22\n a=VnNF1IyMAAAA:8 a=7ipKWUHlAAAA:8 a=VwQbUJbxAAAA:8 a=h0uksLzaAAAA:8\n a=PxBa0D0WfF5aqmTnE1kA:9 a=QEXdDO2ut3YA:10 a=gpc5p9EgBqZVLdJeV_V1:22\n a=MSi_79tMYmZZG2gvAgS0:22","X-Proofpoint-Virus-Version":"vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49\n definitions=2025-12-18_02,2025-12-17_02,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n suspectscore=0 malwarescore=0 impostorscore=0 clxscore=1015 spamscore=0\n priorityscore=1501 lowpriorityscore=0 bulkscore=0 phishscore=0 adultscore=0\n classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0\n reason=mlx scancount=1 engine=8.19.0-2510240000 definitions=main-2512130001","X-Spam-Status":"No, score=-0.7 required=3.0 tests=DKIM_SIGNED,DKIM_VALID,\n\tRCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,\n\tSPF_PASS autolearn=disabled version=4.0.1 OzLabs 8","X-Spam-Checker-Version":"SpamAssassin 4.0.1 (2024-03-25) on lists.ozlabs.org"},"content":"From: Rohan McLure <rmclure@linux.ibm.com>\n\nThis reverts commit aa232204c468 (\"mm/page_table_check: remove unused\nparameter in [__]page_table_check_pte_clear\").\n\nReinstate previously unused parameters for the purpose of supporting\npowerpc platforms, as many do not encode user/kernel ownership of the\npage in the pte, but instead in the address of the access.\n\n[ajd@linux.ibm.com: rebase, fix additional occurrence and loop handling]\nSigned-off-by: Rohan McLure <rmclure@linux.ibm.com>\nReviewed-by: Pasha Tatashin <pasha.tatashin@soleen.com>\nAcked-by: Ingo Molnar <mingo@kernel.org>  # x86\nAcked-by: Alexandre Ghiti <alexghiti@rivosinc.com> # riscv\nSigned-off-by: Andrew Donnellan <ajd@linux.ibm.com>\n---\nv13: fix an additional occurrence\nv15: rebase, fix loop handling\n---\n arch/arm64/include/asm/pgtable.h |  2 +-\n arch/riscv/include/asm/pgtable.h |  2 +-\n arch/x86/include/asm/pgtable.h   |  4 ++--\n include/linux/page_table_check.h | 11 +++++++----\n include/linux/pgtable.h          |  4 ++--\n mm/page_table_check.c            |  7 ++++---\n 6 files changed, 17 insertions(+), 13 deletions(-)","diff":"diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h\nindex 5abad90913eb8b0a3aa867cd5a66107bbf96e177..ce64c560e284e1c2ff9d698cf868070ed58ba045 100644\n--- a/arch/arm64/include/asm/pgtable.h\n+++ b/arch/arm64/include/asm/pgtable.h\n@@ -1342,7 +1342,7 @@ static inline pte_t __ptep_get_and_clear_anysz(struct mm_struct *mm,\n \n \tswitch (pgsize) {\n \tcase PAGE_SIZE:\n-\t\tpage_table_check_pte_clear(mm, pte);\n+\t\tpage_table_check_pte_clear(mm, address, pte);\n \t\tbreak;\n \tcase PMD_SIZE:\n \t\tpage_table_check_pmd_clear(mm, address, pte_pmd(pte));\ndiff --git a/arch/riscv/include/asm/pgtable.h b/arch/riscv/include/asm/pgtable.h\nindex f179970fe47d333565a9199e0991e806aed44346..9af5bfc780800fe2f974daa5329277c46877f848 100644\n--- a/arch/riscv/include/asm/pgtable.h\n+++ b/arch/riscv/include/asm/pgtable.h\n@@ -662,7 +662,7 @@ static inline pte_t ptep_get_and_clear(struct mm_struct *mm,\n {\n \tpte_t pte = __pte(atomic_long_xchg((atomic_long_t *)ptep, 0));\n \n-\tpage_table_check_pte_clear(mm, pte);\n+\tpage_table_check_pte_clear(mm, address, pte);\n \n \treturn pte;\n }\ndiff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h\nindex 5a2b2d3a80d83d8eff2c1a6f69df3e80590c684a..6ec6cf7ad2d4d92da7d3396bc96a5b5902e81576 100644\n--- a/arch/x86/include/asm/pgtable.h\n+++ b/arch/x86/include/asm/pgtable.h\n@@ -1252,7 +1252,7 @@ static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr,\n \t\t\t\t       pte_t *ptep)\n {\n \tpte_t pte = native_ptep_get_and_clear(ptep);\n-\tpage_table_check_pte_clear(mm, pte);\n+\tpage_table_check_pte_clear(mm, addr, pte);\n \treturn pte;\n }\n \n@@ -1268,7 +1268,7 @@ static inline pte_t ptep_get_and_clear_full(struct mm_struct *mm,\n \t\t * care about updates and native needs no locking\n \t\t */\n \t\tpte = native_local_ptep_get_and_clear(ptep);\n-\t\tpage_table_check_pte_clear(mm, pte);\n+\t\tpage_table_check_pte_clear(mm, addr, pte);\n \t} else {\n \t\tpte = ptep_get_and_clear(mm, addr, ptep);\n \t}\ndiff --git a/include/linux/page_table_check.h b/include/linux/page_table_check.h\nindex 3973b69ae294e501a9c6c3140bc462d6d9b7d203..12268a32e8be151f66f2787ce87096f10d4fa744 100644\n--- a/include/linux/page_table_check.h\n+++ b/include/linux/page_table_check.h\n@@ -14,7 +14,8 @@ extern struct static_key_true page_table_check_disabled;\n extern struct page_ext_operations page_table_check_ops;\n \n void __page_table_check_zero(struct page *page, unsigned int order);\n-void __page_table_check_pte_clear(struct mm_struct *mm, pte_t pte);\n+void __page_table_check_pte_clear(struct mm_struct *mm, unsigned long addr,\n+\t\t\t\t  pte_t pte);\n void __page_table_check_pmd_clear(struct mm_struct *mm, unsigned long addr,\n \t\t\t\t  pmd_t pmd);\n void __page_table_check_pud_clear(struct mm_struct *mm, unsigned long addr,\n@@ -45,12 +46,13 @@ static inline void page_table_check_free(struct page *page, unsigned int order)\n \t__page_table_check_zero(page, order);\n }\n \n-static inline void page_table_check_pte_clear(struct mm_struct *mm, pte_t pte)\n+static inline void page_table_check_pte_clear(struct mm_struct *mm,\n+\t\t\t\t\t      unsigned long addr, pte_t pte)\n {\n \tif (static_branch_likely(&page_table_check_disabled))\n \t\treturn;\n \n-\t__page_table_check_pte_clear(mm, pte);\n+\t__page_table_check_pte_clear(mm, addr, pte);\n }\n \n static inline void page_table_check_pmd_clear(struct mm_struct *mm,\n@@ -119,7 +121,8 @@ static inline void page_table_check_free(struct page *page, unsigned int order)\n {\n }\n \n-static inline void page_table_check_pte_clear(struct mm_struct *mm, pte_t pte)\n+static inline void page_table_check_pte_clear(struct mm_struct *mm,\n+\t\t\t\t\t      unsigned long addr, pte_t pte)\n {\n }\n \ndiff --git a/include/linux/pgtable.h b/include/linux/pgtable.h\nindex 2d1f7369624c504b531beb8965e7352770a5f4bc..827dca25c0bc77025653f31075ed6913355bda08 100644\n--- a/include/linux/pgtable.h\n+++ b/include/linux/pgtable.h\n@@ -634,7 +634,7 @@ static inline pte_t ptep_get_and_clear(struct mm_struct *mm,\n {\n \tpte_t pte = ptep_get(ptep);\n \tpte_clear(mm, address, ptep);\n-\tpage_table_check_pte_clear(mm, pte);\n+\tpage_table_check_pte_clear(mm, address, pte);\n \treturn pte;\n }\n #endif\n@@ -693,7 +693,7 @@ static inline void ptep_clear(struct mm_struct *mm, unsigned long addr,\n \t * No need for ptep_get_and_clear(): page table check doesn't care about\n \t * any bits that could have been set by HW concurrently.\n \t */\n-\tpage_table_check_pte_clear(mm, pte);\n+\tpage_table_check_pte_clear(mm, addr, pte);\n }\n \n #ifdef CONFIG_GUP_GET_PXX_LOW_HIGH\ndiff --git a/mm/page_table_check.c b/mm/page_table_check.c\nindex e8280b0b6dda97ee68bb52593df454665bac9acf..de9e54bd27e6f2bce68304a0b3e99b139f33c313 100644\n--- a/mm/page_table_check.c\n+++ b/mm/page_table_check.c\n@@ -145,7 +145,8 @@ void __page_table_check_zero(struct page *page, unsigned int order)\n \trcu_read_unlock();\n }\n \n-void __page_table_check_pte_clear(struct mm_struct *mm, pte_t pte)\n+void __page_table_check_pte_clear(struct mm_struct *mm, unsigned long addr,\n+\t\t\t\t  pte_t pte)\n {\n \tif (&init_mm == mm)\n \t\treturn;\n@@ -209,7 +210,7 @@ void __page_table_check_ptes_set(struct mm_struct *mm, unsigned long addr,\n \tpage_table_check_pte_flags(pte);\n \n \tfor (i = 0; i < nr; i++)\n-\t\t__page_table_check_pte_clear(mm, ptep_get(ptep + i));\n+\t\t__page_table_check_pte_clear(mm, addr + PAGE_SIZE * i, ptep_get(ptep + i));\n \tif (pte_user_accessible_page(pte))\n \t\tpage_table_check_set(pte_pfn(pte), nr, pte_write(pte));\n }\n@@ -275,7 +276,7 @@ void __page_table_check_pte_clear_range(struct mm_struct *mm,\n \t\tif (WARN_ON(!ptep))\n \t\t\treturn;\n \t\tfor (i = 0; i < PTRS_PER_PTE; i++) {\n-\t\t\t__page_table_check_pte_clear(mm, ptep_get(ptep));\n+\t\t\t__page_table_check_pte_clear(mm, addr, ptep_get(ptep));\n \t\t\taddr += PAGE_SIZE;\n \t\t\tptep++;\n \t\t}\n","prefixes":["v18","08/12"]}