2019-04-22 05:09:34

by Crag Wang

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

From: "Crag.Wang" <[email protected]>

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.

Signed-off-by: Crag.Wang <[email protected]>
---
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


2019-04-23 00:44:45

by Jakub Kicinski

[permalink] [raw]
Subject: Re: [PATCH v2 1/1] r8152: sync sa_family with the media type of network device

On Mon, 22 Apr 2019 13:03:43 +0800, [email protected] wrote:
> From: "Crag.Wang" <[email protected]>
>
> 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.
>
> Signed-off-by: Crag.Wang <[email protected]>

Code looks reasonable. This must have been caused by:

Fixes: 25766271e42f ("r8152: Refresh MAC address during USBDEVFS_RESET")

which is still in net-next. In the future please make sure you read:

https://www.kernel.org/doc/html/latest/networking/netdev-FAQ.html

In particular:

https://www.kernel.org/doc/html/latest/networking/netdev-FAQ.html#q-how-do-i-indicate-which-tree-net-vs-net-next-my-patch-should-be-in

To assure smooth flow of your patches into the tree :)

Reviewed-by: Jakub Kicinski <[email protected]>

> 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 {

2019-04-23 04:27:21

by Crag Wang

[permalink] [raw]
Subject: Re: [PATCH v2 1/1] r8152: sync sa_family with the media type of network device

On Tue, Apr 23, 2019 at 4:39 AM Jakub Kicinski
<[email protected]> wrote:
>
> On Mon, 22 Apr 2019 13:03:43 +0800, [email protected] wrote:
> > From: "Crag.Wang" <[email protected]>
> >
> > 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.
> >
> > Signed-off-by: Crag.Wang <[email protected]>
>
> Code looks reasonable. This must have been caused by:
>
> Fixes: 25766271e42f ("r8152: Refresh MAC address during USBDEVFS_RESET")
>
> which is still in net-next. In the future please make sure you read:
>
> https://www.kernel.org/doc/html/latest/networking/netdev-FAQ.html
>
> In particular:
>
> https://www.kernel.org/doc/html/latest/networking/netdev-FAQ.html#q-how-do-i-indicate-which-tree-net-vs-net-next-my-patch-should-be-in
>
> To assure smooth flow of your patches into the tree :)
>
> Reviewed-by: Jakub Kicinski <[email protected]>
>
Yes, patch is intended to fix 25766271e42f which is still in net-next.

It appears that prefix is desired in the subject. Thanks for sharing the info.

Crag

2019-04-23 04:53:38

by Mario Limonciello

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

> -----Original Message-----
> From: [email protected] <[email protected]>
> Sent: Monday, April 22, 2019 12:04 AM
> To: [email protected]; [email protected]
> Cc: [email protected]; [email protected]; Limonciello, Mario;
> [email protected]; 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" <[email protected]>
>
> 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 <[email protected]>
> ---
> 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 <[email protected]>

2019-04-23 05:16:47

by David Miller

[permalink] [raw]
Subject: Re: [PATCH v2 1/1] r8152: sync sa_family with the media type of network device

From: [email protected]
Date: Mon, 22 Apr 2019 13:03:43 +0800

> From: "Crag.Wang" <[email protected]>
>
> 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.
>
> Signed-off-by: Crag.Wang <[email protected]>

Applied to net-next with Fixes: tag added.