[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200312114131.070d9a1c@donnerap.cambridge.arm.com>
Date: Thu, 12 Mar 2020 11:41:31 +0000
From: Andre Przywara <andre.przywara@....com>
To: Radhey Shyam Pandey <radheys@...inx.com>
Cc: "David S . Miller" <davem@...emloft.net>,
Michal Simek <michals@...inx.com>,
Robert Hancock <hancock@...systems.ca>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 09/14] net: axienet: Add mii-tool support
On Mon, 13 Jan 2020 06:12:10 +0000
Radhey Shyam Pandey <radheys@...inx.com> wrote:
Hi,
(sorry, forgot to send this out before posting v2)
> > -----Original Message-----
> > From: Andre Przywara <andre.przywara@....com>
> > Sent: Friday, January 10, 2020 5:24 PM
> > To: David S . Miller <davem@...emloft.net>; Radhey Shyam Pandey
> > <radheys@...inx.com>
> > Cc: Michal Simek <michals@...inx.com>; Robert Hancock
> > <hancock@...systems.ca>; netdev@...r.kernel.org; linux-arm-
> > kernel@...ts.infradead.org; linux-kernel@...r.kernel.org
> > Subject: [PATCH 09/14] net: axienet: Add mii-tool support
> >
> > mii-tool is useful for debugging, and all it requires to work is to wire
> > up the ioctl ops function pointer.
> > Add this to the axienet driver to enable mii-tool.
> >
> > Signed-off-by: Andre Przywara <andre.przywara@....com>
> > ---
> > drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 11 +++++++++++
> > 1 file changed, 11 insertions(+)
> >
> > diff --git a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
> > b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
> > index 7a747345e98e..64f799f3d248 100644
> > --- a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
> > +++ b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c
> > @@ -1152,6 +1152,16 @@ static void axienet_poll_controller(struct net_device
> > *ndev)
> > }
> > #endif
> >
> > +static int axienet_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
> > +{
> > + struct axienet_local *lp = netdev_priv(dev);
> > +
> > + if (!netif_running(dev))
> > + return -EINVAL;
>
> I think phy ioctl should be allowed even if the device is not up.
> Or is there any specific reason for keeping it?
I found that some of the drivers check this (macb, stmmac), while others (dpaa2, mvneta, mvpp2, mtk_eth) don't. I don't know the reasons for that, so I play safe here.
Happy to change this if someone provides some rationale.
Cheers,
Andre.
>
> > +
> > + return phylink_mii_ioctl(lp->phylink, rq, cmd);
> > +}
> > +
> > static const struct net_device_ops axienet_netdev_ops = {
> > .ndo_open = axienet_open,
> > .ndo_stop = axienet_stop,
> > @@ -1159,6 +1169,7 @@ static const struct net_device_ops
> > axienet_netdev_ops = {
> > .ndo_change_mtu = axienet_change_mtu,
> > .ndo_set_mac_address = netdev_set_mac_address,
> > .ndo_validate_addr = eth_validate_addr,
> > + .ndo_do_ioctl = axienet_ioctl,
> > .ndo_set_rx_mode = axienet_set_multicast_list,
> > #ifdef CONFIG_NET_POLL_CONTROLLER
> > .ndo_poll_controller = axienet_poll_controller,
> > --
> > 2.17.1
>
Powered by blists - more mailing lists