| 1 | --- a/drivers/net/au1000_eth.c |
| 2 | +++ b/drivers/net/au1000_eth.c |
| 3 | @@ -1035,10 +1035,14 @@ static void au1000_multicast_list(struct |
| 4 | } |
| 5 | } |
| 6 | |
| 7 | +#define AU1000_KNOWN_PHY_IOCTLS (SIOCGMIIPHY & 0xfff0) |
| 8 | static int au1000_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) |
| 9 | { |
| 10 | struct au1000_private *aup = netdev_priv(dev); |
| 11 | |
| 12 | + if((cmd & AU1000_KNOWN_PHY_IOCTLS) != AU1000_KNOWN_PHY_IOCTLS) |
| 13 | + return -EINVAL; |
| 14 | + |
| 15 | if (!netif_running(dev)) return -EINVAL; |
| 16 | |
| 17 | if (!aup->phy_dev) return -EINVAL; // PHY not controllable |
| 18 | |