From: Nabih Estefan <nabiheste...@google.com> ../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 working properly against uint32_t and uint16_t. Signed-off-by: Nabih Estefan <nabiheste...@google.com> Reviewed-by: Laurent Vivier <lviv...@redhat.com> Tested-by: Laurent Vivier <lviv...@redhat.com> Reviewed-by: Richard Henderson <richard.hender...@linaro.org> Message-Id: <20250429155621.2028198-1-nabiheste...@google.com> [AJB: fix commit message, remove unneeded casts] Signed-off-by: Alex Bennée <alex.ben...@linaro.org> --- v2 - change title to reflect test that failed - re-phrase ldl functions to assure unaligned works - remove excess ()'s --- tests/qtest/libqos/igb.c | 4 ++-- 1 file 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, -- 2.39.5