Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 24fe1b0e authored by Will Deacon's avatar Will Deacon Committed by Catalin Marinas
Browse files

arm64: Remove unnecessary ISBs from set_{pte,pmd,pud}



Commit 7f0b1bf0 ("arm64: Fix barriers used for page table modifications")
fixed a reported issue with fixmap page-table entries not being visible
to the walker due to a missing DSB instruction. At the same time, it added
ISB instructions to the arm64 set_{pte,pmd,pud} functions, which are not
required by the architecture and make little sense in isolation.

Remove the redundant ISBs.

Acked-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
parent 42938868
Loading
Loading
Loading
Loading
+1 −5
Original line number Diff line number Diff line
@@ -224,10 +224,8 @@ static inline void set_pte(pte_t *ptep, pte_t pte)
	 * Only if the new pte is valid and kernel, otherwise TLB maintenance
	 * or update_mmu_cache() have the necessary barriers.
	 */
	if (pte_valid_not_user(pte)) {
	if (pte_valid_not_user(pte))
		dsb(ishst);
		isb();
	}
}

extern void __sync_icache_dcache(pte_t pteval);
@@ -434,7 +432,6 @@ static inline void set_pmd(pmd_t *pmdp, pmd_t pmd)
{
	WRITE_ONCE(*pmdp, pmd);
	dsb(ishst);
	isb();
}

static inline void pmd_clear(pmd_t *pmdp)
@@ -485,7 +482,6 @@ static inline void set_pud(pud_t *pudp, pud_t pud)
{
	WRITE_ONCE(*pudp, pud);
	dsb(ishst);
	isb();
}

static inline void pud_clear(pud_t *pudp)