summary refs log tree commit diff stats
path: root/tests
diff options
context:
space:
mode:
authorNabih Estefan <nabihestefan@google.com>2025-06-03 12:01:51 +0100
committerAlex Bennée <alex.bennee@linaro.org>2025-06-07 16:40:39 +0100
commit26b20dc20745d68c7a425326f189ae0ca91bf1d6 (patch)
treed244739012ea8b4da56aa5017cf5c7e6c3cba4b8 /tests
parent4f5c81844c3b9185ad1cf80c1e17b05ec22e944a (diff)
downloadfocaccia-qemu-26b20dc20745d68c7a425326f189ae0ca91bf1d6.tar.gz
focaccia-qemu-26b20dc20745d68c7a425326f189ae0ca91bf1d6.zip
tests/qtest: Avoid unaligned access in IGB test
  ../tests/qtest/libqos/igb.c:106:5: runtime error: load of misaligned address 0x562040be8e33 for type 'uint32_t', which requires 4 byte alignment

Instead of straight casting the uint8_t array, we can use ldl_le_p and
lduw_l_p to assure the unaligned access works properly against
uint32_t and uint16_t.

Signed-off-by: Nabih Estefan <nabihestefan@google.com>
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
Tested-by: Laurent Vivier <lvivier@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20250429155621.2028198-1-nabihestefan@google.com>
[AJB: fix commit message, remove unneeded casts]
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
Message-ID: <20250603110204.838117-5-alex.bennee@linaro.org>
Diffstat (limited to 'tests')
-rw-r--r--tests/qtest/libqos/igb.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/tests/qtest/libqos/igb.c b/tests/qtest/libqos/igb.c
index f40c4ec4cd..ab3ef6f0c3 100644
--- a/tests/qtest/libqos/igb.c
+++ b/tests/qtest/libqos/igb.c
@@ -104,10 +104,10 @@ static void igb_pci_start_hw(QOSGraphObject *obj)
     e1000e_macreg_write(&d->e1000e, E1000_RDT(0), 0);
     e1000e_macreg_write(&d->e1000e, E1000_RDH(0), 0);
     e1000e_macreg_write(&d->e1000e, E1000_RA,
-                        le32_to_cpu(*(uint32_t *)address));
+                        ldl_le_p(address));
     e1000e_macreg_write(&d->e1000e, E1000_RA + 4,
                         E1000_RAH_AV | E1000_RAH_POOL_1 |
-                        le16_to_cpu(*(uint16_t *)(address + 4)));
+                        lduw_le_p(address + 4));
 
     /* Set supported receive descriptor mode */
     e1000e_macreg_write(&d->e1000e,