@@ -1665,14 +1665,14 @@ static int
1665
1665
rtl8152_set_speed (struct r8152 * tp , u8 autoneg , u32 speed , u8 duplex ,
1666
1666
u32 advertising );
1667
1667
1668
- static int __rtl8152_set_mac_address (struct net_device * netdev , void * p ,
1668
+ static int __rtl8152_set_mac_address (struct net_device * netdev ,
1669
+ struct sockaddr_storage * addr ,
1669
1670
bool in_resume )
1670
1671
{
1671
1672
struct r8152 * tp = netdev_priv (netdev );
1672
- struct sockaddr * addr = p ;
1673
1673
int ret = - EADDRNOTAVAIL ;
1674
1674
1675
- if (!is_valid_ether_addr (addr -> sa_data ))
1675
+ if (!is_valid_ether_addr (addr -> __data ))
1676
1676
goto out1 ;
1677
1677
1678
1678
if (!in_resume ) {
@@ -1683,10 +1683,10 @@ static int __rtl8152_set_mac_address(struct net_device *netdev, void *p,
1683
1683
1684
1684
mutex_lock (& tp -> control );
1685
1685
1686
- eth_hw_addr_set (netdev , addr -> sa_data );
1686
+ eth_hw_addr_set (netdev , addr -> __data );
1687
1687
1688
1688
ocp_write_byte (tp , MCU_TYPE_PLA , PLA_CRWECR , CRWECR_CONFIG );
1689
- pla_ocp_write (tp , PLA_IDR , BYTE_EN_SIX_BYTES , 8 , addr -> sa_data );
1689
+ pla_ocp_write (tp , PLA_IDR , BYTE_EN_SIX_BYTES , 8 , addr -> __data );
1690
1690
ocp_write_byte (tp , MCU_TYPE_PLA , PLA_CRWECR , CRWECR_NORAML );
1691
1691
1692
1692
mutex_unlock (& tp -> control );
@@ -1706,7 +1706,8 @@ static int rtl8152_set_mac_address(struct net_device *netdev, void *p)
1706
1706
* host system provided MAC address.
1707
1707
* Examples of this are Dell TB15 and Dell WD15 docks
1708
1708
*/
1709
- static int vendor_mac_passthru_addr_read (struct r8152 * tp , struct sockaddr * sa )
1709
+ static int vendor_mac_passthru_addr_read (struct r8152 * tp ,
1710
+ struct sockaddr_storage * ss )
1710
1711
{
1711
1712
acpi_status status ;
1712
1713
struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER , NULL };
@@ -1774,47 +1775,48 @@ static int vendor_mac_passthru_addr_read(struct r8152 *tp, struct sockaddr *sa)
1774
1775
ret = - EINVAL ;
1775
1776
goto amacout ;
1776
1777
}
1777
- memcpy (sa -> sa_data , buf , 6 );
1778
+ memcpy (ss -> __data , buf , 6 );
1778
1779
tp -> netdev -> addr_assign_type = NET_ADDR_STOLEN ;
1779
1780
netif_info (tp , probe , tp -> netdev ,
1780
- "Using pass-thru MAC addr %pM\n" , sa -> sa_data );
1781
+ "Using pass-thru MAC addr %pM\n" , ss -> __data );
1781
1782
1782
1783
amacout :
1783
1784
kfree (obj );
1784
1785
return ret ;
1785
1786
}
1786
1787
1787
- static int determine_ethernet_addr (struct r8152 * tp , struct sockaddr * sa )
1788
+ static int determine_ethernet_addr (struct r8152 * tp ,
1789
+ struct sockaddr_storage * ss )
1788
1790
{
1789
1791
struct net_device * dev = tp -> netdev ;
1790
1792
int ret ;
1791
1793
1792
- sa -> sa_family = dev -> type ;
1794
+ ss -> ss_family = dev -> type ;
1793
1795
1794
- ret = eth_platform_get_mac_address (& tp -> udev -> dev , sa -> sa_data );
1796
+ ret = eth_platform_get_mac_address (& tp -> udev -> dev , ss -> __data );
1795
1797
if (ret < 0 ) {
1796
1798
if (tp -> version == RTL_VER_01 ) {
1797
- ret = pla_ocp_read (tp , PLA_IDR , 8 , sa -> sa_data );
1799
+ ret = pla_ocp_read (tp , PLA_IDR , 8 , ss -> __data );
1798
1800
} else {
1799
1801
/* if device doesn't support MAC pass through this will
1800
1802
* be expected to be non-zero
1801
1803
*/
1802
- ret = vendor_mac_passthru_addr_read (tp , sa );
1804
+ ret = vendor_mac_passthru_addr_read (tp , ss );
1803
1805
if (ret < 0 )
1804
1806
ret = pla_ocp_read (tp , PLA_BACKUP , 8 ,
1805
- sa -> sa_data );
1807
+ ss -> __data );
1806
1808
}
1807
1809
}
1808
1810
1809
1811
if (ret < 0 ) {
1810
1812
netif_err (tp , probe , dev , "Get ether addr fail\n" );
1811
- } else if (!is_valid_ether_addr (sa -> sa_data )) {
1813
+ } else if (!is_valid_ether_addr (ss -> __data )) {
1812
1814
netif_err (tp , probe , dev , "Invalid ether addr %pM\n" ,
1813
- sa -> sa_data );
1815
+ ss -> __data );
1814
1816
eth_hw_addr_random (dev );
1815
- ether_addr_copy (sa -> sa_data , dev -> dev_addr );
1817
+ ether_addr_copy (ss -> __data , dev -> dev_addr );
1816
1818
netif_info (tp , probe , dev , "Random ether addr %pM\n" ,
1817
- sa -> sa_data );
1819
+ ss -> __data );
1818
1820
return 0 ;
1819
1821
}
1820
1822
@@ -1824,17 +1826,17 @@ static int determine_ethernet_addr(struct r8152 *tp, struct sockaddr *sa)
1824
1826
static int set_ethernet_addr (struct r8152 * tp , bool in_resume )
1825
1827
{
1826
1828
struct net_device * dev = tp -> netdev ;
1827
- struct sockaddr sa ;
1829
+ struct sockaddr_storage ss ;
1828
1830
int ret ;
1829
1831
1830
- ret = determine_ethernet_addr (tp , & sa );
1832
+ ret = determine_ethernet_addr (tp , & ss );
1831
1833
if (ret < 0 )
1832
1834
return ret ;
1833
1835
1834
1836
if (tp -> version == RTL_VER_01 )
1835
- eth_hw_addr_set (dev , sa . sa_data );
1837
+ eth_hw_addr_set (dev , ss . __data );
1836
1838
else
1837
- ret = __rtl8152_set_mac_address (dev , & sa , in_resume );
1839
+ ret = __rtl8152_set_mac_address (dev , & ss , in_resume );
1838
1840
1839
1841
return ret ;
1840
1842
}
@@ -8421,16 +8423,16 @@ static int rtl8152_post_reset(struct usb_interface *intf)
8421
8423
{
8422
8424
struct r8152 * tp = usb_get_intfdata (intf );
8423
8425
struct net_device * netdev ;
8424
- struct sockaddr sa ;
8426
+ struct sockaddr_storage ss ;
8425
8427
8426
8428
if (!tp || !test_bit (PROBED_WITH_NO_ERRORS , & tp -> flags ))
8427
8429
goto exit ;
8428
8430
8429
8431
rtl_set_accessible (tp );
8430
8432
8431
8433
/* reset the MAC address in case of policy change */
8432
- if (determine_ethernet_addr (tp , & sa ) >= 0 )
8433
- dev_set_mac_address (tp -> netdev , & sa , NULL );
8434
+ if (determine_ethernet_addr (tp , & ss ) >= 0 )
8435
+ dev_set_mac_address (tp -> netdev , ( struct sockaddr * ) & ss , NULL );
8434
8436
8435
8437
netdev = tp -> netdev ;
8436
8438
if (!netif_running (netdev ))
0 commit comments