From d10358de8d70aaeb965a974d56e9b72f6c6dbb3a Mon Sep 17 00:00:00 2001 From: Ulrich Hecht Date: Wed, 25 May 2011 01:07:22 +0000 Subject: [PATCH] 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: Ulrich Hecht Signed-off-by: David S. Miller --- drivers/net/via-velocity.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/via-velocity.h b/drivers/net/via-velocity.h index d7227539484e..0f1f05f6c4f8 100644 --- a/drivers/net/via-velocity.h +++ b/drivers/net/via-velocity.h @@ -1096,7 +1096,7 @@ struct mac_regs { volatile __le16 PatternCRC[8]; /* 0xB0 */ volatile __le32 ByteMask[4][4]; /* 0xC0 */ -} __packed; +}; enum hw_mib {