Skip to content

Commit

Permalink
parisc: Flush ITLB in flush_tlb_all_local() only on split TLB machines
Browse files Browse the repository at this point in the history
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: Helge Deller <[email protected]>
  • Loading branch information
hdeller committed Jul 21, 2019
1 parent f5e03d3 commit 69245c9
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion arch/parisc/kernel/pacache.S
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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 */

Expand Down

0 comments on commit 69245c9

Please sign in to comment.