@@ -967,8 +967,10 @@ int net_ipv6_addr_generate_iid(struct net_if *iface,
967967 if (prefix == NULL ) {
968968 UNALIGNED_PUT (htonl (0xfe800000 ), & tmp_prefix .s6_addr32 [0 ]);
969969 } else {
970- UNALIGNED_PUT (prefix -> s6_addr32 [0 ], & tmp_prefix .s6_addr32 [0 ]);
971- UNALIGNED_PUT (prefix -> s6_addr32 [1 ], & tmp_prefix .s6_addr32 [1 ]);
970+ UNALIGNED_PUT (UNALIGNED_GET (& prefix -> s6_addr32 [0 ]),
971+ & tmp_prefix .s6_addr32 [0 ]);
972+ UNALIGNED_PUT (UNALIGNED_GET (& prefix -> s6_addr32 [1 ]),
973+ & tmp_prefix .s6_addr32 [1 ]);
972974 }
973975
974976 ret = gen_stable_iid (if_index , & tmp_prefix , network_id , network_id_len ,
@@ -983,8 +985,8 @@ int net_ipv6_addr_generate_iid(struct net_if *iface,
983985 UNALIGNED_PUT (htonl (0xfe800000 ), & tmp_addr .s6_addr32 [0 ]);
984986 UNALIGNED_PUT (0 , & tmp_addr .s6_addr32 [1 ]);
985987 } else {
986- UNALIGNED_PUT (prefix -> s6_addr32 [0 ], & tmp_addr .s6_addr32 [0 ]);
987- UNALIGNED_PUT (prefix -> s6_addr32 [1 ], & tmp_addr .s6_addr32 [1 ]);
988+ UNALIGNED_PUT (UNALIGNED_GET ( & prefix -> s6_addr32 [0 ]) , & tmp_addr .s6_addr32 [0 ]);
989+ UNALIGNED_PUT (UNALIGNED_GET ( & prefix -> s6_addr32 [1 ]) , & tmp_addr .s6_addr32 [1 ]);
988990 }
989991
990992 if (IS_ENABLED (CONFIG_NET_IPV6_IID_EUI_64 )) {
0 commit comments