arm64: mm: Add ISB instruction to set_pgd()
authorWill Deacon <will@kernel.org>
Fri, 23 Aug 2019 12:03:55 +0000 (13:03 +0100)
committerWill Deacon <will@kernel.org>
Tue, 27 Aug 2019 16:38:30 +0000 (17:38 +0100)
Commit 6a4cbd63c25a ("Revert "arm64: Remove unnecessary ISBs from
set_{pte,pmd,pud}"") reintroduced ISB instructions to some of our
page table setter functions in light of a recent clarification to the
Armv8 architecture. Although 'set_pgd()' isn't currently used to update
a live page table, add the ISB instruction there too for consistency
with the other macros and to provide some future-proofing if we use it
on live tables in the future.

Reported-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/include/asm/pgtable.h

index feda7294320c50078127e4f6ab4484064e454150..2faa77635942e1f34754dec235b48a07bf7e83c4 100644 (file)
@@ -605,6 +605,7 @@ static inline void set_pgd(pgd_t *pgdp, pgd_t pgd)
 
        WRITE_ONCE(*pgdp, pgd);
        dsb(ishst);
+       isb();
 }
 
 static inline void pgd_clear(pgd_t *pgdp)