mirror of https://gitee.com/openkylin/linux.git
f049729c05
There are a couple of places in KVM fault handling code which implicitly use smp_processor_id() via kvm_mips_get_kernel_asid() and kvm_mips_get_user_asid() from preemptable context. This is unsafe as a preemption could cause the guest kernel ASID to be changed, resulting in a host TLB entry being written with the wrong ASID. Fix by disabling preemption around the kvm_mips_get_*_asid() call and the corresponding kvm_mips_host_tlb_write(). Signed-off-by: James Hogan <james.hogan@imgtec.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: "Radim KrÄmář" <rkrcmar@redhat.com> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: linux-mips@linux-mips.org Cc: kvm@vger.kernel.org Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> |
||
---|---|---|
.. | ||
00README.txt | ||
Kconfig | ||
Makefile | ||
callback.c | ||
commpage.c | ||
commpage.h | ||
dyntrans.c | ||
emulate.c | ||
fpu.S | ||
interrupt.c | ||
interrupt.h | ||
locore.S | ||
mips.c | ||
msa.S | ||
stats.c | ||
tlb.c | ||
trace.h | ||
trap_emul.c |