Signed-off-by: Francois Romieu <[EMAIL PROTECTED]> diff -puN drivers/net/r8169.c~r8169-780 drivers/net/r8169.c --- a/drivers/net/r8169.c~r8169-780 2005-08-24 23:11:15.947273681 +0200 +++ b/drivers/net/r8169.c 2005-08-24 23:11:15.991266546 +0200 @@ -857,6 +857,13 @@ static void rtl8169_get_regs(struct net_ spin_unlock_irqrestore(&tp->lock, flags); } +static int rtl8169_nway_reset(struct net_device *dev) +{ + struct rtl8169_private *tp = netdev_priv(dev); + + return mii_nway_restart(&tp->mii_if); +} + static u32 rtl8169_get_msglevel(struct net_device *dev) { struct rtl8169_private *tp = netdev_priv(dev); @@ -983,8 +990,17 @@ static struct ethtool_ops rtl8169_ethtoo .get_strings = rtl8169_get_strings, .get_stats_count = rtl8169_get_stats_count, .get_ethtool_stats = rtl8169_get_ethtool_stats, + .nway_reset = rtl8169_nway_reset, }; +static int rtl8169_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) +{ + struct rtl8169_private *tp = netdev_priv(dev); + + return !netif_running(dev) ? -EINVAL : + generic_mii_ioctl(&tp->mii_if, if_mii(ifr), cmd, NULL); +} + static void rtl8169_write_gmii_reg_bit(void __iomem *ioaddr, int reg, int bitnum, int bitval) { @@ -1468,6 +1484,7 @@ rtl8169_init_one(struct pci_dev *pdev, c dev->get_stats = rtl8169_get_stats; SET_ETHTOOL_OPS(dev, &rtl8169_ethtool_ops); dev->stop = rtl8169_close; + dev->do_ioctl = rtl8169_ioctl; dev->tx_timeout = rtl8169_tx_timeout; dev->set_multicast_list = rtl8169_set_rx_mode; dev->watchdog_timeo = RTL8169_TX_TIMEOUT;
_ - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html