All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] arm64: mm: fix pmd_leaf()
@ 2022-04-03  2:49 ` Muchun Song
  0 siblings, 0 replies; 12+ messages in thread
From: Muchun Song @ 2022-04-03  2:49 UTC (permalink / raw)
  To: catalin.marinas, will, akpm, anshuman.khandual, aneesh.kumar,
	steven.price, lengxujun2007, arnd
  Cc: linux-arm-kernel, linux-kernel, smuchun, duanxiongchun,
	Muchun Song, Qian Cai

The pmd_leaf() is used to test a leaf mapped PMD, however, it misses
the PROT_NONE mapped PMD on arm64.  Fix it.  A real world issue [1]
caused by this was reported by Qian Cai.

Link: https://patchwork.kernel.org/comment/24798260/ [1]
Fixes: 8aa82df3c123 ("arm64: mm: add p?d_leaf() definitions")
Reported-by: Qian Cai <quic_qiancai@quicinc.com>
Signed-off-by: Muchun Song <songmuchun@bytedance.com>
---
 arch/arm64/include/asm/pgtable.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
index 94e147e5456c..09eaae46a19b 100644
--- a/arch/arm64/include/asm/pgtable.h
+++ b/arch/arm64/include/asm/pgtable.h
@@ -535,7 +535,7 @@ extern pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn,
 				 PMD_TYPE_TABLE)
 #define pmd_sect(pmd)		((pmd_val(pmd) & PMD_TYPE_MASK) == \
 				 PMD_TYPE_SECT)
-#define pmd_leaf(pmd)		pmd_sect(pmd)
+#define pmd_leaf(pmd)		(pmd_present(pmd) && !(pmd_val(pmd) & PMD_TABLE_BIT))
 #define pmd_bad(pmd)		(!pmd_table(pmd))
 
 #define pmd_leaf_size(pmd)	(pmd_cont(pmd) ? CONT_PMD_SIZE : PMD_SIZE)
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2022-04-04 15:25 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-03  2:49 [PATCH] arm64: mm: fix pmd_leaf() Muchun Song
2022-04-03  2:49 ` Muchun Song
2022-04-04  9:19 ` Will Deacon
2022-04-04  9:19   ` Will Deacon
2022-04-04 10:51   ` Steven Price
2022-04-04 10:51     ` Steven Price
2022-04-04 11:40   ` Muchun Song
2022-04-04 11:40     ` Muchun Song
2022-04-04 14:10     ` Aneesh Kumar K V
2022-04-04 14:10       ` Aneesh Kumar K V
2022-04-04 15:24       ` Muchun Song
2022-04-04 15:24         ` Muchun Song

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.