Excerpts from Fabiano Rosas's message of February 25, 2021 6:36 am:
> Nicholas Piggin <npig...@gmail.com> writes:
> 
>> Switching the MMU from radix<->radix mode is tricky particularly as the
>> MMU can remain enabled and requires a certain sequence of SPR updates.
>> Move these together into their own functions.
>>
>> This also includes the radix TLB check / flush because it's tied in to
>> MMU switching due to tlbiel getting LPID from LPIDR.
>>
>> Signed-off-by: Nicholas Piggin <npig...@gmail.com>
>> ---
> 
> <snip>
> 
>> @@ -4117,7 +4138,7 @@ int kvmhv_run_single_vcpu(struct kvm_vcpu *vcpu, u64 
>> time_limit,
>>  {
>>      struct kvm_run *run = vcpu->run;
>>      int trap, r, pcpu;
>> -    int srcu_idx, lpid;
>> +    int srcu_idx;
>>      struct kvmppc_vcore *vc;
>>      struct kvm *kvm = vcpu->kvm;
>>      struct kvm_nested_guest *nested = vcpu->arch.nested;
>> @@ -4191,13 +4212,6 @@ int kvmhv_run_single_vcpu(struct kvm_vcpu *vcpu, u64 
>> time_limit,
>>      vc->vcore_state = VCORE_RUNNING;
>>      trace_kvmppc_run_core(vc, 0);
>>
>> -    if (cpu_has_feature(CPU_FTR_HVMODE)) {
>> -            lpid = nested ? nested->shadow_lpid : kvm->arch.lpid;
>> -            mtspr(SPRN_LPID, lpid);
>> -            isync();
>> -            kvmppc_check_need_tlb_flush(kvm, pcpu, nested);
>> -    }
>> -
> 
> What about the counterpart to this^ down below?
> 
>       if (cpu_has_feature(CPU_FTR_HVMODE)) {
>               mtspr(SPRN_LPID, kvm->arch.host_lpid);
>               isync();
>       }

Good catch, you're right that can be removed too.

Thanks,
Nick

Reply via email to