Commit d10358de authored by Ulrich Hecht's avatar Ulrich Hecht Committed by David S. Miller

via-velocity: don't annotate MAC registers as packed

On ARM, memory accesses through packed pointers behave in unexpected
ways in GCC releases 4.3 and higher; see https://lkml.org/lkml/2011/2/2/163
for discussion.

In this particular case, 32-bit I/O registers are accessed bytewise,
causing incorrect setting of the DMA address registers which in turn
leads to an error interrupt storm that brings the system to a halt.

Since the mac_regs structure does not need any packing anyway, this patch
simply removes the attribute to fix the issue.
Signed-off-by: default avatarUlrich Hecht <uli@suse.de>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 1ba37c51
...@@ -1096,7 +1096,7 @@ struct mac_regs { ...@@ -1096,7 +1096,7 @@ struct mac_regs {
volatile __le16 PatternCRC[8]; /* 0xB0 */ volatile __le16 PatternCRC[8]; /* 0xB0 */
volatile __le32 ByteMask[4][4]; /* 0xC0 */ volatile __le32 ByteMask[4][4]; /* 0xC0 */
} __packed; };
enum hw_mib { enum hw_mib {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment