@@ -2603,7 +2603,7 @@ static int niu_init_link(struct niu *np)
26032603 return 0 ;
26042604}
26052605
2606- static void niu_set_primary_mac (struct niu * np , unsigned char * addr )
2606+ static void niu_set_primary_mac (struct niu * np , const unsigned char * addr )
26072607{
26082608 u16 reg0 = addr [4 ] << 8 | addr [5 ];
26092609 u16 reg1 = addr [2 ] << 8 | addr [3 ];
@@ -8312,6 +8312,7 @@ static void niu_pci_vpd_validate(struct niu *np)
83128312{
83138313 struct net_device * dev = np -> dev ;
83148314 struct niu_vpd * vpd = & np -> vpd ;
8315+ u8 addr [ETH_ALEN ];
83158316 u8 val8 ;
83168317
83178318 if (!is_valid_ether_addr (& vpd -> local_mac [0 ])) {
@@ -8344,17 +8345,20 @@ static void niu_pci_vpd_validate(struct niu *np)
83448345 return ;
83458346 }
83468347
8347- eth_hw_addr_set ( dev , vpd -> local_mac );
8348+ ether_addr_copy ( addr , vpd -> local_mac );
83488349
8349- val8 = dev -> dev_addr [5 ];
8350- dev -> dev_addr [5 ] += np -> port ;
8351- if (dev -> dev_addr [5 ] < val8 )
8352- dev -> dev_addr [4 ]++ ;
8350+ val8 = addr [5 ];
8351+ addr [5 ] += np -> port ;
8352+ if (addr [5 ] < val8 )
8353+ addr [4 ]++ ;
8354+
8355+ eth_hw_addr_set (dev , addr );
83538356}
83548357
83558358static int niu_pci_probe_sprom (struct niu * np )
83568359{
83578360 struct net_device * dev = np -> dev ;
8361+ u8 addr [ETH_ALEN ];
83588362 int len , i ;
83598363 u64 val , sum ;
83608364 u8 val8 ;
@@ -8446,27 +8450,29 @@ static int niu_pci_probe_sprom(struct niu *np)
84468450 val = nr64 (ESPC_MAC_ADDR0 );
84478451 netif_printk (np , probe , KERN_DEBUG , np -> dev ,
84488452 "SPROM: MAC_ADDR0[%08llx]\n" , (unsigned long long )val );
8449- dev -> dev_addr [0 ] = (val >> 0 ) & 0xff ;
8450- dev -> dev_addr [1 ] = (val >> 8 ) & 0xff ;
8451- dev -> dev_addr [2 ] = (val >> 16 ) & 0xff ;
8452- dev -> dev_addr [3 ] = (val >> 24 ) & 0xff ;
8453+ addr [0 ] = (val >> 0 ) & 0xff ;
8454+ addr [1 ] = (val >> 8 ) & 0xff ;
8455+ addr [2 ] = (val >> 16 ) & 0xff ;
8456+ addr [3 ] = (val >> 24 ) & 0xff ;
84538457
84548458 val = nr64 (ESPC_MAC_ADDR1 );
84558459 netif_printk (np , probe , KERN_DEBUG , np -> dev ,
84568460 "SPROM: MAC_ADDR1[%08llx]\n" , (unsigned long long )val );
8457- dev -> dev_addr [4 ] = (val >> 0 ) & 0xff ;
8458- dev -> dev_addr [5 ] = (val >> 8 ) & 0xff ;
8461+ addr [4 ] = (val >> 0 ) & 0xff ;
8462+ addr [5 ] = (val >> 8 ) & 0xff ;
84598463
8460- if (!is_valid_ether_addr (& dev -> dev_addr [ 0 ] )) {
8464+ if (!is_valid_ether_addr (addr )) {
84618465 dev_err (np -> device , "SPROM MAC address invalid [ %pM ]\n" ,
8462- dev -> dev_addr );
8466+ addr );
84638467 return - EINVAL ;
84648468 }
84658469
8466- val8 = dev -> dev_addr [5 ];
8467- dev -> dev_addr [5 ] += np -> port ;
8468- if (dev -> dev_addr [5 ] < val8 )
8469- dev -> dev_addr [4 ]++ ;
8470+ val8 = addr [5 ];
8471+ addr [5 ] += np -> port ;
8472+ if (addr [5 ] < val8 )
8473+ addr [4 ]++ ;
8474+
8475+ eth_hw_addr_set (dev , addr );
84708476
84718477 val = nr64 (ESPC_MOD_STR_LEN );
84728478 netif_printk (np , probe , KERN_DEBUG , np -> dev ,
0 commit comments