diff mbox series

enetc: add ioctl() support for PHY-related ops

Message ID 20191107083937.18228-1-michael@walle.cc
State Accepted
Delegated to: David Miller
Headers show
Series enetc: add ioctl() support for PHY-related ops | expand

Commit Message

Michael Walle Nov. 7, 2019, 8:39 a.m. UTC
If there is an attached PHY try to handle the requested ioctl with its
handler, which allows the userspace to access PHY registers, for
example. This will make mii-diag and similar tools work.

Signed-off-by: Michael Walle <michael@walle.cc>
---
 drivers/net/ethernet/freescale/enetc/enetc.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Andrew Lunn Nov. 7, 2019, 3:25 p.m. UTC | #1
On Thu, Nov 07, 2019 at 09:39:37AM +0100, Michael Walle wrote:
> If there is an attached PHY try to handle the requested ioctl with its
> handler, which allows the userspace to access PHY registers, for
> example. This will make mii-diag and similar tools work.
> 
> Signed-off-by: Michael Walle <michael@walle.cc>
> ---
>  drivers/net/ethernet/freescale/enetc/enetc.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/freescale/enetc/enetc.c b/drivers/net/ethernet/freescale/enetc/enetc.c
> index b6ff89307409..25af207f1962 100644
> --- a/drivers/net/ethernet/freescale/enetc/enetc.c
> +++ b/drivers/net/ethernet/freescale/enetc/enetc.c
> @@ -1599,7 +1599,10 @@ int enetc_ioctl(struct net_device *ndev, struct ifreq *rq, int cmd)
>  	if (cmd == SIOCGHWTSTAMP)
>  		return enetc_hwtstamp_get(ndev, rq);
>  #endif
> -	return -EINVAL;
> +
> +	if (!ndev->phydev)
> +		return -EINVAL;

Hi Michael

I think EOPNOTSUPP is normal. Yes, you are just moving around what was
there before, but you could make this improvement as well.

If you don't want to:

Reviewed-by: Andrew Lunn <andrew@lunn.ch>

    Andrew
David Miller Nov. 7, 2019, 11:25 p.m. UTC | #2
From: Michael Walle <michael@walle.cc>
Date: Thu,  7 Nov 2019 09:39:37 +0100

> If there is an attached PHY try to handle the requested ioctl with its
> handler, which allows the userspace to access PHY registers, for
> example. This will make mii-diag and similar tools work.
> 
> Signed-off-by: Michael Walle <michael@walle.cc>

Applied.
diff mbox series

Patch

diff --git a/drivers/net/ethernet/freescale/enetc/enetc.c b/drivers/net/ethernet/freescale/enetc/enetc.c
index b6ff89307409..25af207f1962 100644
--- a/drivers/net/ethernet/freescale/enetc/enetc.c
+++ b/drivers/net/ethernet/freescale/enetc/enetc.c
@@ -1599,7 +1599,10 @@  int enetc_ioctl(struct net_device *ndev, struct ifreq *rq, int cmd)
 	if (cmd == SIOCGHWTSTAMP)
 		return enetc_hwtstamp_get(ndev, rq);
 #endif
-	return -EINVAL;
+
+	if (!ndev->phydev)
+		return -EINVAL;
+	return phy_mii_ioctl(ndev->phydev, rq, cmd);
 }
 
 int enetc_alloc_msix(struct enetc_ndev_priv *priv)