From cf267e864c449cdc71cefed3d764bcf30a7ad82a Mon Sep 17 00:00:00 2001 From: blogic Date: Tue, 24 Jul 2007 21:11:28 +0000 Subject: fixed au1000 eth0 ioctl patch git-svn-id: svn://svn.openwrt.org/openwrt/trunk@8147 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../au1000-2.6/patches/014-au1000_eth_ioctl.patch | 29 +++++++--------------- 1 file changed, 9 insertions(+), 20 deletions(-) diff --git a/target/linux/au1000-2.6/patches/014-au1000_eth_ioctl.patch b/target/linux/au1000-2.6/patches/014-au1000_eth_ioctl.patch index 5996ccf2a..6187a7d5a 100644 --- a/target/linux/au1000-2.6/patches/014-au1000_eth_ioctl.patch +++ b/target/linux/au1000-2.6/patches/014-au1000_eth_ioctl.patch @@ -1,26 +1,15 @@ -diff --git a/drivers/net/au1000_eth.c b/drivers/net/au1000_eth.c -index c27cfce..99a1c61 100644 ---- a/drivers/net/au1000_eth.c -+++ b/drivers/net/au1000_eth.c -@@ -1316,12 +1316,20 @@ static void set_rx_mode(struct net_device *dev) +--- linux-2.6.22.1.orig/drivers/net/au1000_eth.c 2007-07-24 18:43:25.527583520 +0200 ++++ linux-2.6.22.1/drivers/net/au1000_eth.c 2007-07-24 23:07:00.388821102 +0200 +@@ -1320,9 +1320,12 @@ + } + } + ++#define AU1000_KNOWN_PHY_IOCTLS (SIOCGMIIPHY & 0xfff0) static int au1000_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) { struct au1000_private *aup = (struct au1000_private *)dev->priv; -+ struct mii_ioctl_data *data = if_mii(rq); -+ int rc = -EOPNOTSUPP; ++ 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 - -- return phy_mii_ioctl(aup->phy_dev, if_mii(rq), cmd); -+ switch (cmd) { -+ default: -+ rc = phy_mii_ioctl(aup->phy_dev, data, cmd); -+ break; -+ } -+ -+ return rc; - } - - static struct net_device_stats *au1000_get_stats(struct net_device *dev) -- cgit v1.2.3