Skip to content

Commit 79deac8

Browse files
keesPaolo Abeni
authored andcommitted
net: usb: r8152: Convert to use struct sockaddr_storage internally
To support coming API type changes, switch to sockaddr_storage usage internally. Acked-by: Gustavo A. R. Silva <[email protected]> Signed-off-by: Kees Cook <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Paolo Abeni <[email protected]>
1 parent 7da6117 commit 79deac8

File tree

1 file changed

+27
-25
lines changed

1 file changed

+27
-25
lines changed

drivers/net/usb/r8152.c

Lines changed: 27 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1665,14 +1665,14 @@ static int
16651665
rtl8152_set_speed(struct r8152 *tp, u8 autoneg, u32 speed, u8 duplex,
16661666
u32 advertising);
16671667

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,
16691670
bool in_resume)
16701671
{
16711672
struct r8152 *tp = netdev_priv(netdev);
1672-
struct sockaddr *addr = p;
16731673
int ret = -EADDRNOTAVAIL;
16741674

1675-
if (!is_valid_ether_addr(addr->sa_data))
1675+
if (!is_valid_ether_addr(addr->__data))
16761676
goto out1;
16771677

16781678
if (!in_resume) {
@@ -1683,10 +1683,10 @@ static int __rtl8152_set_mac_address(struct net_device *netdev, void *p,
16831683

16841684
mutex_lock(&tp->control);
16851685

1686-
eth_hw_addr_set(netdev, addr->sa_data);
1686+
eth_hw_addr_set(netdev, addr->__data);
16871687

16881688
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);
16901690
ocp_write_byte(tp, MCU_TYPE_PLA, PLA_CRWECR, CRWECR_NORAML);
16911691

16921692
mutex_unlock(&tp->control);
@@ -1706,7 +1706,8 @@ static int rtl8152_set_mac_address(struct net_device *netdev, void *p)
17061706
* host system provided MAC address.
17071707
* Examples of this are Dell TB15 and Dell WD15 docks
17081708
*/
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)
17101711
{
17111712
acpi_status status;
17121713
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)
17741775
ret = -EINVAL;
17751776
goto amacout;
17761777
}
1777-
memcpy(sa->sa_data, buf, 6);
1778+
memcpy(ss->__data, buf, 6);
17781779
tp->netdev->addr_assign_type = NET_ADDR_STOLEN;
17791780
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);
17811782

17821783
amacout:
17831784
kfree(obj);
17841785
return ret;
17851786
}
17861787

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)
17881790
{
17891791
struct net_device *dev = tp->netdev;
17901792
int ret;
17911793

1792-
sa->sa_family = dev->type;
1794+
ss->ss_family = dev->type;
17931795

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);
17951797
if (ret < 0) {
17961798
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);
17981800
} else {
17991801
/* if device doesn't support MAC pass through this will
18001802
* be expected to be non-zero
18011803
*/
1802-
ret = vendor_mac_passthru_addr_read(tp, sa);
1804+
ret = vendor_mac_passthru_addr_read(tp, ss);
18031805
if (ret < 0)
18041806
ret = pla_ocp_read(tp, PLA_BACKUP, 8,
1805-
sa->sa_data);
1807+
ss->__data);
18061808
}
18071809
}
18081810

18091811
if (ret < 0) {
18101812
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)) {
18121814
netif_err(tp, probe, dev, "Invalid ether addr %pM\n",
1813-
sa->sa_data);
1815+
ss->__data);
18141816
eth_hw_addr_random(dev);
1815-
ether_addr_copy(sa->sa_data, dev->dev_addr);
1817+
ether_addr_copy(ss->__data, dev->dev_addr);
18161818
netif_info(tp, probe, dev, "Random ether addr %pM\n",
1817-
sa->sa_data);
1819+
ss->__data);
18181820
return 0;
18191821
}
18201822

@@ -1824,17 +1826,17 @@ static int determine_ethernet_addr(struct r8152 *tp, struct sockaddr *sa)
18241826
static int set_ethernet_addr(struct r8152 *tp, bool in_resume)
18251827
{
18261828
struct net_device *dev = tp->netdev;
1827-
struct sockaddr sa;
1829+
struct sockaddr_storage ss;
18281830
int ret;
18291831

1830-
ret = determine_ethernet_addr(tp, &sa);
1832+
ret = determine_ethernet_addr(tp, &ss);
18311833
if (ret < 0)
18321834
return ret;
18331835

18341836
if (tp->version == RTL_VER_01)
1835-
eth_hw_addr_set(dev, sa.sa_data);
1837+
eth_hw_addr_set(dev, ss.__data);
18361838
else
1837-
ret = __rtl8152_set_mac_address(dev, &sa, in_resume);
1839+
ret = __rtl8152_set_mac_address(dev, &ss, in_resume);
18381840

18391841
return ret;
18401842
}
@@ -8421,16 +8423,16 @@ static int rtl8152_post_reset(struct usb_interface *intf)
84218423
{
84228424
struct r8152 *tp = usb_get_intfdata(intf);
84238425
struct net_device *netdev;
8424-
struct sockaddr sa;
8426+
struct sockaddr_storage ss;
84258427

84268428
if (!tp || !test_bit(PROBED_WITH_NO_ERRORS, &tp->flags))
84278429
goto exit;
84288430

84298431
rtl_set_accessible(tp);
84308432

84318433
/* 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);
84348436

84358437
netdev = tp->netdev;
84368438
if (!netif_running(netdev))

0 commit comments

Comments
 (0)