Several IGVM directives (memory map, vp-count, environment info, MADT, device tree) _can_ place their data at a byte_offset within a shared parameter area, letting multiple parameters be packed into one area.
Patch 1 introduces qigvm_find_param_validate(), which looks up a parameter area and validates that byte_offset falls within it in one step, and uses it in the vp-count and environment-info handlers, which already relied on byte_offset. Patch 2 fixes the memory map, MADT and device tree handlers, which ignored byte_offset entirely and always wrote at the start of the buffer, potentially corrupting earlier data when several parameters share an area. Signed-off-by: Luigi Leonardi <[email protected]> --- Changes in v2: - Inverted commit order: first I introduce the helper and use it where necessary, then in commit 2 I handle the `offset`. [Stefano] - The helper now returns data and size, that already consider the byte offset [Stefano] - Link to v1: https://lore.kernel.org/qemu-devel/[email protected] --- Luigi Leonardi (2): igvm: validate byte_offset before using it in parameter directives igvm: honor byte_offset when writing memory map, MADT and device tree backends/igvm.c | 92 +++++++++++++++++++++++++++++++----------- include/system/igvm-internal.h | 6 +++ target/i386/igvm.c | 12 +++--- 3 files changed, 81 insertions(+), 29 deletions(-) --- base-commit: d2e570cc0f97b936902a5b1b86b73c0f5998b475 change-id: 20260902-fix_offset-a268cb12aafc Best regards, -- Luigi Leonardi <[email protected]>
