Re: [PATCH] connector: improved unaligned access error fix

From: David Miller
Date: Thu Nov 14 2013 - 17:20:35 EST


From: Chris Metcalf <cmetcalf@xxxxxxxxxx>
Date: Thu, 14 Nov 2013 12:09:21 -0500

> In af3e095a1fb4, Erik Jacobsen fixed one type of unaligned access
> bug for ia64 by converting a 64-bit write to use put_unaligned().
> Unfortunately, since gcc will convert a short memset() to a series
> of appropriately-aligned stores, the problem is now visible again
> on tilegx, where the memset that zeros out proc_event is converted
> to three 64-bit stores, causing an unaligned access panic.
>
> A better fix for the original problem is to ensure that proc_event
> is aligned to 8 bytes here. We can do that relatively easily by
> arranging to start the struct cn_msg aligned to 8 bytes and then
> offset by 4 bytes. Doing so means that the immediately following
> proc_event structure is then correctly aligned to 8 bytes.
>
> The result is that the memset() stores are now aligned, and as an
> added benefit, we can remove the put_unaligned() calls in the code.
>
> Signed-off-by: Chris Metcalf <cmetcalf@xxxxxxxxxx>

This looks fine to me, applied and queued up for -stable, thanks
Chris.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/