RE: [PATCH v2 1/1] r8152: sync sa_family with the media type of network device

From: Mario.Limonciello
Date: Mon Apr 22 2019 - 22:03:05 EST


> -----Original Message-----
> From: crag0715@xxxxxxxxx <crag0715@xxxxxxxxx>
> Sent: Monday, April 22, 2019 12:04 AM
> To: linux-usb@xxxxxxxxxxxxxxx; netdev@xxxxxxxxxxxxxxx
> Cc: linux-kernel@xxxxxxxxxxxxxxx; hayeswang@xxxxxxxxxxx; Limonciello, Mario;
> crag0715@xxxxxxxxx; Wang, Crag; David S. Miller; Simon Glass; Grant Grundler;
> Sean Paul; Chen7, David; Kai-Heng Feng; Gustavo A. R. Silva; Charles Hyde;
> Sebastian Andrzej Siewior; zhong jiang
> Subject: [PATCH v2 1/1] r8152: sync sa_family with the media type of network
> device
>
>
> [EXTERNAL EMAIL]
>
> From: "Crag.Wang" <crag.wang@xxxxxxxx>
>
> Without this patch the socket address family sporadically gets wrong
> value ends up the dev_set_mac_address() fails to set the desired MAC
> address.

Ah yes, this is because of an uninitialized struct sockaddr, so random garbage.
I didn't catch it during my testing, good catch.

>
> Signed-off-by: Crag.Wang <crag.wang@xxxxxxxx>
> ---
> drivers/net/usb/r8152.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c
> index 4c63b40d5e00..41fb39ce69c9 100644
> --- a/drivers/net/usb/r8152.c
> +++ b/drivers/net/usb/r8152.c
> @@ -1225,6 +1225,8 @@ static int determine_ethernet_addr(struct r8152 *tp,
> struct sockaddr *sa)
> struct net_device *dev = tp->netdev;
> int ret;
>
> + sa->sa_family = dev->type;
> +
> if (tp->version == RTL_VER_01) {
> ret = pla_ocp_read(tp, PLA_IDR, 8, sa->sa_data);
> } else {
> --
> 2.20.1

Reviewed-By: Mario Limonciello <mario.limonciello@xxxxxxxx>