Subject: Re: [PATCH net-next 4/8] net: dsa: mv88e6xxx: do not increment bus refcount

From: Andrew Lunn <[email-masked]>
Date: Fri, 10 Jun 2016 22:06:43 +0200

On Fri, Jun 10, 2016 at 03:59:22PM -0400, Vivien Didelot wrote:
> Hi,
> 
> Andrew Lunn <[email-masked]> writes:
> 
> > On Wed, Jun 08, 2016 at 08:44:52PM -0400, Vivien Didelot wrote:
> >> 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).

Great, thanks for looking at this.

Acked-by: Andrew Lunn <[email-masked]>

    Andrew