From: Andreas Oetken <andreas.oet...@siemens.com>

sup_multicast_addr is passed to ether_addr_equal for address comparison
which casts the address inputs to u16 leading to an unaligned access.
Aligning the sup_multicast_addr to u16 boundary fixes the issue.

Signed-off-by: Andreas Oetken <andreas.oet...@siemens.com>
---
 net/hsr/hsr_main.h | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/net/hsr/hsr_main.h b/net/hsr/hsr_main.h
index 7dc92ce5a134..a9c30a608e35 100644
--- a/net/hsr/hsr_main.h
+++ b/net/hsr/hsr_main.h
@@ -217,7 +217,10 @@ struct hsr_priv {
        u8 net_id;              /* for PRP, it occupies most significant 3 bits
                                 * of lan_id
                                 */
-       unsigned char           sup_multicast_addr[ETH_ALEN];
+       unsigned char           sup_multicast_addr[ETH_ALEN] 
__aligned(sizeof(u16));
+                               /* Align to u16 boundary to avoid unaligned 
access
+                                * in ether_addr_equal
+                                */
 #ifdef CONFIG_DEBUG_FS
        struct dentry *node_tbl_root;
 #endif
-- 
2.30.0

Reply via email to