Christos Zoulas writes:
> In article <20190106003905.60969f...@cvs.netbsd.org>,
> Rin Okuyama <source-changes-d@NetBSD.org> wrote:
> >-=-=-=-=-=-
> >
> >Module Name: src
> >Committed By:        rin
> >Date:                Sun Jan  6 00:39:05 UTC 2019
> >
> >Modified Files:
> >     src/sys/dev/usb: if_axe.c
> >
> >Log Message:
> >Fix kernel panic on arm reported by @furandon_pig on Twitter.
> >
> >Hardware header is 2-byte aligned in RX buffer, not 4-byte.
> >For some architectures, __builtin_memcpy() of GCC 6 attempts to
> >copy 4-byte header at once, which results in alignment error.
> 
> This is really ugly..
> 
> https://stackoverflow.com/questions/24883410/armcc-problems-with-memcpy-alignment-exceptions
> 
> Perhaps there is a better solution? Can't memcpy be smarter?

hmmm, what happens if struct axe_sframe_hdr is not marked
"packed"?  this feels like a compiler bug, but perhaps it
is assuming it can write 4 bytes to the structure when it
is only 2 byte aligned.

is there a small test case that reproduces the problem?
preferably in user land?


.mrg.

Reply via email to