powerpc/book3s: Fix flush_tlb cpu_spec hook to take a generic argument.
The flush_tlb hook in cpu_spec was introduced as a generic function hook to invalidate TLBs. But the current implementation of flush_tlb hook takes IS (invalidation selector) as an argument which is architecture dependent. Hence, It is not right to have a generic routine where caller has to pass non-generic argument. This patch fixes this and makes flush_tlb hook as high level API. Reported-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:

committed by
Michael Ellerman

parent
7f664cf9e4
commit
45706bb53d
@@ -84,7 +84,7 @@ static long kvmppc_realmode_mc_power7(struct kvm_vcpu *vcpu)
|
||||
}
|
||||
if (dsisr & DSISR_MC_TLB_MULTI) {
|
||||
if (cur_cpu_spec && cur_cpu_spec->flush_tlb)
|
||||
cur_cpu_spec->flush_tlb(TLBIEL_INVAL_SET_LPID);
|
||||
cur_cpu_spec->flush_tlb(TLB_INVAL_SCOPE_LPID);
|
||||
dsisr &= ~DSISR_MC_TLB_MULTI;
|
||||
}
|
||||
/* Any other errors we don't understand? */
|
||||
@@ -102,7 +102,7 @@ static long kvmppc_realmode_mc_power7(struct kvm_vcpu *vcpu)
|
||||
break;
|
||||
case SRR1_MC_IFETCH_TLBMULTI:
|
||||
if (cur_cpu_spec && cur_cpu_spec->flush_tlb)
|
||||
cur_cpu_spec->flush_tlb(TLBIEL_INVAL_SET_LPID);
|
||||
cur_cpu_spec->flush_tlb(TLB_INVAL_SCOPE_LPID);
|
||||
break;
|
||||
default:
|
||||
handled = 0;
|
||||
|
Reference in New Issue
Block a user