Nabih Estefan <nabiheste...@google.com> writes:

> On Wed, Apr 30, 2025 at 5:03 AM Peter Maydell <peter.mayd...@linaro.org> 
> wrote:
>>
>> 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.
>
> Should I send a new patch to fix this if it's already been queued to
> testing/next?
> Or can it be fixed directly in that branch?

I'll fix it up, I've taken notes when I re-base.

>
> Thanks,
> Nabih
>
>>
>> thanks
>> -- PMM

-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro

Reply via email to