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

Commit 69245c97 authored by Helge Deller's avatar Helge Deller
Browse files

parisc: Flush ITLB in flush_tlb_all_local() only on split TLB machines



flush_tlb_all_local() flushes the ITLB and DTLB of the CPU.
In case the machine does not have separate ITLBs and DTLBs, use the
alternative functionality to replace the code which flushes the ITLB
with nops while keeping the code which flushes the DTLB.

Signed-off-by: default avatarHelge Deller <deller@gmx.de>
parent f5e03d3a
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -63,7 +63,7 @@ ENTRY_CFI(flush_tlb_all_local)

	/* Flush Instruction Tlb */

	LDREG		ITLB_SID_BASE(%r1), %r20
88:	LDREG		ITLB_SID_BASE(%r1), %r20
	LDREG		ITLB_SID_STRIDE(%r1), %r21
	LDREG		ITLB_SID_COUNT(%r1), %r22
	LDREG		ITLB_OFF_BASE(%r1), %arg0
@@ -103,6 +103,7 @@ fitonemiddle: /* Loop if LOOP = 1 */
	add		%r21, %r20, %r20		/* increment space */

fitdone:
	ALTERNATIVE(88b, fitdone, ALT_COND_NO_SPLIT_TLB, INSN_NOP)

	/* Flush Data Tlb */