lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <05a159af-6689-70db-9506-09059a09f1a5@gmail.com>
Date:   Fri, 26 May 2017 17:33:49 -0700
From:   Florian Fainelli <f.fainelli@...il.com>
To:     Woojung.Huh@...rochip.com, netdev@...r.kernel.org
Cc:     davem@...emloft.net, andrew@...n.ch
Subject: Re: [PATCH net-next 1/3] net: phy: Create sysfs reciprocal links for
 attached_dev/phydev

On 05/26/2017 05:20 PM, Woojung.Huh@...rochip.com wrote:
>> OK, I am confused now. You are describing what is going on with your
>> platform right? Can you describe a bit further here what is happening
>> and with which type of interface? Is this with the CPU interface or
>> something?
> 
> Yes. It's on our platform.
> Like your platform, fixed phy is used to connect switch CPU port/master netdev.
> GMAC of SoC is cadence/macb.c with fixed phy modification.
> 
> static int macb_mii_probe(struct net_device *dev)
> {
> 	...
> 	phydev = phy_find_first(bp->mii_bus);
> 	if (!phydev) {
> 		phydev = fixed_phy_register(PHY_POLL, &fphy_status, -1, NULL);
> 		if (IS_ERR(phydev)) {
> 			netdev_err(dev, "no PHY found\n");
> 			return -ENXIO;
> 		}> 	}
> 	...
> When failed to find phydev from phy_find_first(), it forces to fixed phy.
> 	...
> 	/* attach the mac to the phy */
> 	ret = phy_connect_direct(dev, phydev, &macb_handle_link_change,
> 				 bp->phy_interface);
> 
> sysfs_create_lin() inside of phy_connect_direct() fails.

OK, so here is what is happening: macb_mii_init() calls macb_mii_probe()
and so by the time we call phy_connect_direct(), we have not called
register_netdevice() yet, netdev_register_kobject() has not been called
either, and so sysfs_create_link() fails....

Let me think about a way to solve that, even though I am leaning towards
ignoring the errors from sysfs_create_link() rather than fixing each and
every Ethernet driver to make it probe its MII bus *after* calling
register_netdevice()....

> 
> What is driver you are testing? I can check the file.

Drivers involved are the following:

drivers/net/ethernet/broadcom/bcmsysport.c,
drivers/net/dsa/bcm_sf2.c
drivers/net/ethernet/broadcom/genet/
drivers/net/phy/bcm7xxx.c
-- 
Florian

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ