From: Neil Armstrong <hidden> Date: 2015-10-29 13:23:36
Add missing netif_carrier_off and phy_disconnect calls to the
dsa_switch_destroy function to make sure the netdev and phy
ressources are clean before complete removal.
Signed-off-by: Frode Isaksen <redacted>
Signed-off-by: Neil Armstrong <redacted>
---
net/dsa/dsa.c | 2 ++
1 file changed, 2 insertions(+)
From: kbuild test robot <hidden> Date: 2015-10-29 13:45:40
Hi Neil,
[auto build test ERROR on net/master -- if it's inappropriate base, please suggest rules for selecting the more suitable base]
url: https://github.com/0day-ci/linux/commits/Neil-Armstrong/Further-fix-for-dsa-unbinding/20151029-212633
config: x86_64-randconfig-x010-201543 (attached as .config)
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64
Note: the linux-review/Neil-Armstrong/Further-fix-for-dsa-unbinding/20151029-212633 HEAD 3c957c00de125eeffe9f50eda7cf94a98855f615 builds fine.
It only hurts bisectibility.
All errors (new ones prefixed by >>):
net/dsa/dsa.c: In function 'dsa_switch_destroy':
quoted
net/dsa/dsa.c:459:18: error: 'p' undeclared (first use in this function)
phy_disconnect(p->phy);
^
net/dsa/dsa.c:459:18: note: each undeclared identifier is reported only once for each function it appears in
vim +/p +459 net/dsa/dsa.c
453
454 if (!ds->ports[port])
455 continue;
456
457 netif_carrier_off(ds->ports[port]);
458 unregister_netdev(ds->ports[port]);
> 459 phy_disconnect(p->phy);
460 free_netdev(ds->ports[port]);
461 }
462
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
From: Andrew Lunn <andrew@lunn.ch> Date: 2015-10-29 14:01:11
On Thu, Oct 29, 2015 at 02:23:25PM +0100, Neil Armstrong wrote:
quoted hunk
Add missing netif_carrier_off and phy_disconnect calls to the
dsa_switch_destroy function to make sure the netdev and phy
ressources are clean before complete removal.
Signed-off-by: Frode Isaksen <redacted>
Signed-off-by: Neil Armstrong <redacted>
---
net/dsa/dsa.c | 2 ++
1 file changed, 2 insertions(+)
Once you make it actually compile....
I'm not sure this is safe. The loop above this one has just destroyed
some phys, and now you are potentially disconnecting a phy you just
destroyed, causing it to be accessed?
I would suggest you first fix the ordering in dsa_switch_destroy()
and then add the missing netif_carrier_off() and phy_disconnect().
Thanks
Andrew
Once you make it actually compile....
I'm not sure this is safe. The loop above this one has just destroyed
some phys, and now you are potentially disconnecting a phy you just
destroyed, causing it to be accessed?
I would suggest you first fix the ordering in dsa_switch_destroy()
and then add the missing netif_carrier_off() and phy_disconnect().
Thanks
Andrew
Yes, you are right, I will submit a cleaned up version.
I forgot the fixed phy case actually.
Thanks,
Neil