summary refs log tree commit diff stats
path: root/results/scraper/gitlab/issues_text/target_missing/host_missing/accel_missing/2977
blob: 63545e09f1a904b19856b3b80c5f5cc1afbf573b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
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