18 lines
514 B
Diff
18 lines
514 B
Diff
|
--- a/drivers/net/au1000_eth.c
|
||
|
+++ b/drivers/net/au1000_eth.c
|
||
|
@@ -1036,10 +1036,14 @@ static void au1000_multicast_list(struct
|
||
|
}
|
||
|
}
|
||
|
|
||
|
+#define AU1000_KNOWN_PHY_IOCTLS (SIOCGMIIPHY & 0xfff0)
|
||
|
static int au1000_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
|
||
|
{
|
||
|
struct au1000_private *aup = netdev_priv(dev);
|
||
|
|
||
|
+ if((cmd & AU1000_KNOWN_PHY_IOCTLS) != AU1000_KNOWN_PHY_IOCTLS)
|
||
|
+ return -EINVAL;
|
||
|
+
|
||
|
if (!netif_running(dev)) return -EINVAL;
|
||
|
|
||
|
if (!aup->phy_dev) return -EINVAL; // PHY not controllable
|