]> git.proxmox.com Git - mirror_qemu.git/commit
target-i386: mmu: fix handling of noncanonical virtual addresses
authorPaolo Bonzini <pbonzini@redhat.com>
Thu, 4 Nov 2021 13:47:46 +0000 (14:47 +0100)
committerPaolo Bonzini <pbonzini@redhat.com>
Mon, 8 Nov 2021 07:55:20 +0000 (08:55 +0100)
commitb04dc92e013d55c9ac8082caefff45dcfb1310e7
treeda65b6752a9cd55fd9b2a7d9ecb162a5e4373a3f
parent93eae3583256896dd91a4c2ca38dcbb8d4051cff
target-i386: mmu: fix handling of noncanonical virtual addresses

mmu_translate is supposed to return an error code for page faults; it is
not able to handle other exceptions.  The #GP case for noncanonical
virtual addresses is not handled correctly, and incorrectly raised as
a page fault with error code 1.  Since it cannot happen for nested
page tables, move it directly to handle_mmu_fault, even before the
invocation of mmu_translate.

Fixes: #676
Fixes: 661ff4879e ("target/i386: extract mmu_translate", 2021-05-11)
Cc: qemu-stable@nongnu.org
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
target/i386/tcg/sysemu/excp_helper.c