blob: ab4d0e2f6827b26f8edf8d91eed0a1620415eff3 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
|
QEMU SVM VMCB exit_code is uint32_t when AMD spec requires uint64_t
Description of problem:
QEMU's SVM implementation incorrectly uses a 32-bit parameter for the exit code in the `cpu_vmexit` function, despite the AMD SVM specification requiring a 64-bit exit code field in the VMCB (Virtual Machine Control Block).
I think the issue is in `target/i386/svm.c` in the `cpu_vmexit` function.
The `exit_code` parameter is declared as `uint32_t` but should be `uint64_t` according to the AMD SVM specification. This causes exit codes to be truncated to 32 bits, resulting in values like 0xffff_ffff instead of the expected 0xffff_ffff_ffff_ffff.
Steps to reproduce:
Additional information:
[this](https://stackoverflow.com/questions/79632531/qemu-svm-vmcb-exit-code-is-uint32-t-when-amd-spec-requires-uint64-t?noredirect=1#comment140448815_79632531) question I posted on stack overflow
|