On Tue, 29 Apr 2025 at 16:56, Nabih Estefan <nabiheste...@google.com> wrote: > > v2: used ldl_le_p and lduw_l_p instead of memcpy as per upstream > suggestion. > > ``` > ../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 use memcpy to assure > alignment is correct against uint32_t and uint16_t. > > Signed-off-by: Nabih Estefan <nabiheste...@google.com> > --- > 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..2e0bb58617 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((uint32_t *)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((uint16_t *)(address + 4)));
ldl_le_p() etc take a 'void *' -- the casts here should not be necessary. thanks -- PMM