[PATCH] via-velocity: don't annotate MAC registers as packed
From: Ulrich Hecht <hidden>
Date: 2011-05-25 11:08:25
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 <redacted> --- drivers/net/via-velocity.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/net/via-velocity.h b/drivers/net/via-velocity.h
index 70da79d..659b211 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 {
--
1.7.1