diff options
author | Helge Deller <deller@gmx.de> | 2019-07-20 18:55:48 -0400 |
---|---|---|
committer | Helge Deller <deller@gmx.de> | 2019-07-21 05:03:02 -0400 |
commit | 69245c97560b40f88c609b078f4b51c5be81d88b (patch) | |
tree | f6fc46a5084063fee75400fa176f2e7989855356 /arch/parisc | |
parent | f5e03d3a04978d2866f82cb11cc7a6b808c8ce07 (diff) |
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: Helge Deller <deller@gmx.de>
Diffstat (limited to 'arch/parisc')
-rw-r--r-- | arch/parisc/kernel/pacache.S | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/parisc/kernel/pacache.S b/arch/parisc/kernel/pacache.S index ba67893a1d72..df46b0e5a915 100644 --- a/arch/parisc/kernel/pacache.S +++ b/arch/parisc/kernel/pacache.S | |||
@@ -63,7 +63,7 @@ ENTRY_CFI(flush_tlb_all_local) | |||
63 | 63 | ||
64 | /* Flush Instruction Tlb */ | 64 | /* Flush Instruction Tlb */ |
65 | 65 | ||
66 | LDREG ITLB_SID_BASE(%r1), %r20 | 66 | 88: LDREG ITLB_SID_BASE(%r1), %r20 |
67 | LDREG ITLB_SID_STRIDE(%r1), %r21 | 67 | LDREG ITLB_SID_STRIDE(%r1), %r21 |
68 | LDREG ITLB_SID_COUNT(%r1), %r22 | 68 | LDREG ITLB_SID_COUNT(%r1), %r22 |
69 | LDREG ITLB_OFF_BASE(%r1), %arg0 | 69 | LDREG ITLB_OFF_BASE(%r1), %arg0 |
@@ -103,6 +103,7 @@ fitonemiddle: /* Loop if LOOP = 1 */ | |||
103 | add %r21, %r20, %r20 /* increment space */ | 103 | add %r21, %r20, %r20 /* increment space */ |
104 | 104 | ||
105 | fitdone: | 105 | fitdone: |
106 | ALTERNATIVE(88b, fitdone, ALT_COND_NO_SPLIT_TLB, INSN_NOP) | ||
106 | 107 | ||
107 | /* Flush Data Tlb */ | 108 | /* Flush Data Tlb */ |
108 | 109 | ||