tests/tcg/plugins/mem.c: fix endian swap in update_region_info

value returned by qemu_plugin_mem_get_value() is always in host-endian
order, so we need to convert TO target endianness and not FROM it.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Link: https://lore.kernel.org/qemu-devel/20260325024252.3369186-4-pierrick.bouvier@linaro.org
Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
This commit is contained in:
Pierrick Bouvier
2026-03-24 19:42:52 -07:00
parent a08fff99be
commit e074c90947

View File

@@ -154,20 +154,20 @@ static void update_region_info(uint64_t region, uint64_t offset,
val_size = 1;
break;
case QEMU_PLUGIN_MEM_VALUE_U16:
swapped_value.data.u16 = be ? GUINT16_FROM_BE(value.data.u16) :
GUINT16_FROM_LE(value.data.u16);
swapped_value.data.u16 = be ? GUINT16_TO_BE(value.data.u16) :
GUINT16_TO_LE(value.data.u16);
val_ptr = &swapped_value.data.u16;
val_size = 2;
break;
case QEMU_PLUGIN_MEM_VALUE_U32:
swapped_value.data.u32 = be ? GUINT32_FROM_BE(value.data.u32) :
GUINT32_FROM_LE(value.data.u32);
swapped_value.data.u32 = be ? GUINT32_TO_BE(value.data.u32) :
GUINT32_TO_LE(value.data.u32);
val_ptr = &swapped_value.data.u32;
val_size = 4;
break;
case QEMU_PLUGIN_MEM_VALUE_U64:
swapped_value.data.u64 = be ? GUINT64_FROM_BE(value.data.u64) :
GUINT64_FROM_LE(value.data.u64);
swapped_value.data.u64 = be ? GUINT64_TO_BE(value.data.u64) :
GUINT64_TO_LE(value.data.u64);
val_ptr = &swapped_value.data.u64;
val_size = 8;
break;