@@ -1998,7 +1998,7 @@ static int link_update_master(Link *link, sd_netlink_message *message) {
19981998}
19991999
20002000static int link_update_hardware_address (Link * link , sd_netlink_message * message ) {
2001- struct hw_addr_data old ;
2001+ struct hw_addr_data addr ;
20022002 int r ;
20032003
20042004 assert (link );
@@ -2008,26 +2008,27 @@ static int link_update_hardware_address(Link *link, sd_netlink_message *message)
20082008 if (r < 0 && r != - ENODATA )
20092009 return log_link_debug_errno (link , r , "rtnl: failed to read broadcast address: %m" );
20102010
2011- old = link -> hw_addr ;
2012- r = netlink_message_read_hw_addr (message , IFLA_ADDRESS , & link -> hw_addr );
2011+ r = netlink_message_read_hw_addr (message , IFLA_ADDRESS , & addr );
20132012 if (r == - ENODATA )
20142013 return 0 ;
20152014 if (r < 0 )
20162015 return log_link_debug_errno (link , r , "rtnl: failed to read hardware address: %m" );
20172016
2018- if (hw_addr_equal (& link -> hw_addr , & old ))
2017+ if (hw_addr_equal (& link -> hw_addr , & addr ))
20192018 return 0 ;
20202019
2021- if (hw_addr_is_null (& old ))
2022- log_link_debug (link , "Saved hardware address: %s" , HW_ADDR_TO_STR (& link -> hw_addr ));
2020+ if (hw_addr_is_null (& link -> hw_addr ))
2021+ log_link_debug (link , "Saved hardware address: %s" , HW_ADDR_TO_STR (& addr ));
20232022 else {
20242023 log_link_debug (link , "Hardware address is changed: %s → %s" ,
2025- HW_ADDR_TO_STR (& old ), HW_ADDR_TO_STR (& link -> hw_addr ));
2024+ HW_ADDR_TO_STR (& link -> hw_addr ), HW_ADDR_TO_STR (& addr ));
20262025
2027- if (hashmap_get (link -> manager -> links_by_hw_addr , & old ) == link )
2028- hashmap_remove (link -> manager -> links_by_hw_addr , & old );
2026+ if (hashmap_get (link -> manager -> links_by_hw_addr , & link -> hw_addr ) == link )
2027+ hashmap_remove (link -> manager -> links_by_hw_addr , & link -> hw_addr );
20292028 }
20302029
2030+ link -> hw_addr = addr ;
2031+
20312032 if (!hw_addr_is_null (& link -> hw_addr )) {
20322033 r = hashmap_ensure_put (& link -> manager -> links_by_hw_addr , & hw_addr_hash_ops , & link -> hw_addr , link );
20332034 if (r == - EEXIST && streq_ptr (link -> kind , "bond" ))
0 commit comments