X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=arch%2Farm64%2Finclude%2Fasm%2Fpgtable.h;h=07bdf5dd8ebef5bd8bac6a3e449054a561397e48;hb=2c8a21a124cab4391254680cda796036d061d9b9;hp=7f7d9b1df4e5ad03e56f5395a0b52507c4d17c08;hpb=72897b29599934753d67932fccdde4c61d03b6db;p=platform%2Fkernel%2Flinux-starfive.git diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h index 7f7d9b1..07bdf5d 100644 --- a/arch/arm64/include/asm/pgtable.h +++ b/arch/arm64/include/asm/pgtable.h @@ -826,6 +826,12 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) pte = set_pte_bit(pte, __pgprot(PTE_DIRTY)); pte_val(pte) = (pte_val(pte) & ~mask) | (pgprot_val(newprot) & mask); + /* + * If we end up clearing hw dirtiness for a sw-dirty PTE, set hardware + * dirtiness again. + */ + if (pte_sw_dirty(pte)) + pte = pte_mkdirty(pte); return pte; }