Re: [PATCH net-next 4/8] net: dsa: mv88e6xxx: do not increment bus refcount
From: Vivien Didelot <hidden>
Date: 2016-06-10 19:59:30
Also in:
lkml
Hi, Andrew Lunn [off-list ref] writes:
On Wed, Jun 08, 2016 at 08:44:52PM -0400, Vivien Didelot wrote:quoted
The MDIO device probe and remove functions are respectively incrementing and decrementing the bus refcount themselves. Since these bus level actions are out of the device scope, remove them.I agree with the patch. But have you checked the mdio layer is doing the right thing? If not, we should fix that first.
So I added some printing after incrementing/decrementing the refcount in
get_device/put_device to track &ps->bus->dev, which name is "0.1".
Regardless having this patch or not, the refcount of the 0.1 mii_bus
device is 5 before loading the mv88e6xxx module on vf610-zii-dev-rev-b.
Below is a portion of dmesg:
[ 8.921647] get_device: 400d1000.etherne refcount: 4
[ 8.926225] get_device: 0.1 refcount: 2
[ 8.929561] get_device: mdio-mux refcount: 5
[ 8.934076] get_device: 0.1 refcount: 3
[ 8.937446] get_device: 0.1 refcount: 4
[ 8.940792] put_device: 0.1 refcount: 3
[ 8.944181] libphy: mdio_mux: probed
[ 8.947885] mdio_bus 0.1:00: mdio_device_register
[ 8.952649] get_device: 0.1:00 refcount: 2
[ 8.956283] get_device: 0.1 refcount: 4
[ 8.959838] get_device: 0.1:00 refcount: 3
[ 8.963991] get_device: 0.1:00 refcount: 4
[ 8.967598] put_device: 0.1:00 refcount: 3
[ 8.971298] get_device: 0.2 refcount: 2
[ 8.974687] get_device: mdio-mux refcount: 7
So it seems like of_ is managing the bus refcount on events such as a
new child node (0.1:00).
Thanks,
Vivien