[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200103181701.GB22387@unicorn.suse.cz>
Date: Fri, 3 Jan 2020 19:17:01 +0100
From: Michal Kubecek <mkubecek@...e.cz>
To: netdev@...r.kernel.org
Cc: Andrew Lunn <andrew@...n.ch>, Matthew Wilcox <willy@...radead.org>,
yu kuai <yukuai3@...wei.com>, klassert@...nel.org,
davem@...emloft.net, hkallweit1@...il.com,
jakub.kicinski@...ronome.com, hslester96@...il.com, mst@...hat.com,
yang.wei9@....com.cn, linux-kernel@...r.kernel.org,
yi.zhang@...wei.com, zhengbin13@...wei.com
Subject: Re: [PATCH] net: 3com: 3c59x: remove set but not used variable
'mii_reg1'
On Fri, Jan 03, 2020 at 06:53:18PM +0100, Andrew Lunn wrote:
> On Fri, Jan 03, 2020 at 06:46:23AM -0800, Matthew Wilcox wrote:
> > On Fri, Jan 03, 2020 at 08:19:07PM +0800, yu kuai wrote:
> > > Fixes gcc '-Wunused-but-set-variable' warning:
> > >
> > > drivers/net/ethernet/3com/3c59x.c: In function ‘vortex_up’:
> > > drivers/net/ethernet/3com/3c59x.c:1551:9: warning: variable
> > > ‘mii_reg1’ set but not used [-Wunused-but-set-variable]
> > >
> > > It is never used, and so can be removed.
> > ...
> > > if (dev->if_port == XCVR_MII || dev->if_port == XCVR_NWAY) {
> > > - mii_reg1 = mdio_read(dev, vp->phys[0], MII_BMSR);
> > > mii_reg5 = mdio_read(dev, vp->phys[0], MII_LPA);
> >
> > I know nothing about the MII interface, but in general this is not
> > a safe thing to do.
>
> Hi Matthew
>
> I fully agree about the general case. However, reading the MII_BMSR
> should not have any side affects. It would be an odd Ethernet PHY if
> it did.
>
> But I am curious why this read is here. There is a slim change the
> MDIO bus is broken, and this is a workaround. So it would be good if
> somebody dug into the history and found out when this read was added
> and if there are any comments about why it is there. Or if the usage
> of mii_reg1 as been removed at some point, and the read was not
> cleaned up.
I tried to dig a bit and found that originally (before git), there was
also
if (vortex_debug > 1)
printk(KERN_INFO "%s: MII #%d status %4.4x, link partner capability %4.4x,"
" info1 %04x, setting %s-duplex.\n",
dev->name, vp->phys[0],
mii_reg1, mii_reg5,
vp->info1, ((vp->info1 & 0x8000) || vp->full_duplex) ? "full" : "half");
The whole mii code in vortex_up() was removed by commit 125d5ce8a4e9
("[PATCH] 3c59x: use mii_check_media") and later the mdio_read() calls
were restored by commit 09ce3512dcad ("[PATCH] 3c59x: fix networking for
10base2 NICs") with "Also brought back some mii stuff to be sure that it
does not break something else", but without the debugging printk().
It's not really a proof that reading MII_BMSR was only needed for the
log message but there is a good chance it was. I'm afraid we won't be
able to find anyone who would be able to tell for sure after all those
years.
Michal
Powered by blists - more mailing lists