[U-Boot] [PATCH] usb: fix unaligned access in device_qual()

Marek Vasut marex at denx.de
Mon Jul 8 15:06:14 CEST 2013


Dear Albert ARIBAUD,

> Hi Marek,
> 
> On Wed, 3 Jul 2013 15:30:20 +0200, Marek Vasut <marex at denx.de> wrote:
> > Dear Albert ARIBAUD,
> > 
> > > Hi Marek,
> > > 
> > > On Thu, 27 Jun 2013 15:23:33 +0200, Marek Vasut <marex at denx.de> wrote:
> > > > Hello Albert,
> > > > 
> > > > > Hi Marek,
> > > > > 
> > > > > On Thu, 27 Jun 2013 13:26:39 +0200, Marek Vasut <marex at denx.de> wrote:
> > > > > > Dear Heiko Schocher,
> > > > > > 
> > > > > > > while playing with dfu, I tapped in an unaligned access
> > > > > > > when doing on the host side a "lsusb -d [vendornr]: -v"
> > > > > > 
> > > > > > > I get on the board:
> > > > > > Applied, thanks
> > > > > 
> > > > > Now we have console log output in commit messages. :(
> > > > 
> > > > Don't be sad, I will buy you a tartelette ;)
> > > 
> > > Actually the sad part is that the patch in itself is bad: the actual
> > > alignment boundary should have been 16 bit, not one cacheline. Also,
> > > the issue could / should have been solved by reordering the fields
> > > rather than using an attribute.
> > 
> > Why 16 bit? I think cacheline alignment here makes sense if the
> > descriptor is to be flush()'d from dcache.
> 
> If it is then it should be moved out of the struct it currently lives
> in, in order to avoid a big alignment gap, and replaced with a pointer.
> Also, the commit message would then be wrong...

Good point, Heiko, can you comment?

Best regards,
Marek Vasut


More information about the U-Boot mailing list