mm/mglru: add dummy pmd_dirty()
authorKinsey Ho <kinseyho@google.com>
Wed, 27 Dec 2023 14:12:04 +0000 (14:12 +0000)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 5 Jan 2024 18:17:44 +0000 (10:17 -0800)
Add dummy pmd_dirty() for architectures that don't provide it.
This is similar to commit 6617da8fb565 ("mm: add dummy pmd_young()
for architectures not having it").

Link: https://lkml.kernel.org/r/20231227141205.2200125-5-kinseyho@google.com
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202312210606.1Etqz3M4-lkp@intel.com/
Closes: https://lore.kernel.org/oe-kbuild-all/202312210042.xQEiqlEh-lkp@intel.com/
Signed-off-by: Kinsey Ho <kinseyho@google.com>
Suggested-by: Yu Zhao <yuzhao@google.com>
Cc: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Cc: Donet Tom <donettom@linux.vnet.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
arch/loongarch/include/asm/pgtable.h
arch/mips/include/asm/pgtable.h
arch/riscv/include/asm/pgtable.h
arch/s390/include/asm/pgtable.h
arch/sparc/include/asm/pgtable_64.h
arch/x86/include/asm/pgtable.h
include/linux/pgtable.h

index 29d9b12298bc843ecf24012d37f9042079d939e5..8b5df1bbf9e9c21b09c04639c7ac5c4f3c8d4a4d 100644 (file)
@@ -523,6 +523,7 @@ static inline pmd_t pmd_wrprotect(pmd_t pmd)
        return pmd;
 }
 
+#define pmd_dirty pmd_dirty
 static inline int pmd_dirty(pmd_t pmd)
 {
        return !!(pmd_val(pmd) & (_PAGE_DIRTY | _PAGE_MODIFIED));
index 430b208c01307b7db1ea367ee12efb2317ee81ff..e27a4c83c54869407c6a388f76ed5da12af91c32 100644 (file)
@@ -655,6 +655,7 @@ static inline pmd_t pmd_mkwrite_novma(pmd_t pmd)
        return pmd;
 }
 
+#define pmd_dirty pmd_dirty
 static inline int pmd_dirty(pmd_t pmd)
 {
        return !!(pmd_val(pmd) & _PAGE_MODIFIED);
index ab00235b018f899e0ca0d0de297a4f14cc9d5c13..7b4287f360547e32a9fbe70cf76d47659b77c214 100644 (file)
@@ -673,6 +673,7 @@ static inline int pmd_write(pmd_t pmd)
        return pte_write(pmd_pte(pmd));
 }
 
+#define pmd_dirty pmd_dirty
 static inline int pmd_dirty(pmd_t pmd)
 {
        return pte_dirty(pmd_pte(pmd));
index 601e87fa8a9ab1a4f8153dea132144d34643e90a..1299b56e43f6f9ff52854ae826188a7480c892d9 100644 (file)
@@ -770,6 +770,7 @@ static inline int pud_write(pud_t pud)
        return (pud_val(pud) & _REGION3_ENTRY_WRITE) != 0;
 }
 
+#define pmd_dirty pmd_dirty
 static inline int pmd_dirty(pmd_t pmd)
 {
        return (pmd_val(pmd) & _SEGMENT_ENTRY_DIRTY) != 0;
index 5e41033bf4ca4b94d64d29d4f335be59a1186e49..a8c871b7d78608dd5897a5fe7a1ebf040dc09141 100644 (file)
@@ -706,6 +706,7 @@ static inline unsigned long pmd_write(pmd_t pmd)
 #define pud_write(pud) pte_write(__pte(pud_val(pud)))
 
 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
+#define pmd_dirty pmd_dirty
 static inline unsigned long pmd_dirty(pmd_t pmd)
 {
        pte_t pte = __pte(pmd_val(pmd));
index 08b5cb22d9a6763ec0c23261cf78b12b50609623..9d077bca6a103ecfcbd02424483fd5971995bafd 100644 (file)
@@ -141,6 +141,7 @@ static inline int pte_young(pte_t pte)
        return pte_flags(pte) & _PAGE_ACCESSED;
 }
 
+#define pmd_dirty pmd_dirty
 static inline bool pmd_dirty(pmd_t pmd)
 {
        return pmd_flags(pmd) & _PAGE_DIRTY_BITS;
index 9ecc20fa626964af71d3106e0c4f5d8d2a94bf46..466cf477551a8c94de0a1c79a459e3ae74cde203 100644 (file)
@@ -184,6 +184,13 @@ static inline int pmd_young(pmd_t pmd)
 }
 #endif
 
+#ifndef pmd_dirty
+static inline int pmd_dirty(pmd_t pmd)
+{
+       return 0;
+}
+#endif
+
 /*
  * A facility to provide lazy MMU batching.  This allows PTE updates and
  * page invalidations to be delayed until a call to leave lazy MMU mode