On Mon, 22 Apr 2019 13:03:43 +0800, crag0715@xxxxxxxxx wrote: > 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. > > Signed-off-by: Crag.Wang <crag.wang@xxxxxxxx> 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 <jakub.kicinski@xxxxxxxxxxxxx> > 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 {