diff -urpN ethtool_git/ethtool.c my-ethtool/ethtool.c --- ethtool_git/ethtool.c 2006-10-18 14:17:10.000000000 +0900 +++ my-ethtool/ethtool.c 2006-10-18 14:18:45.000000000 +0900 @@ -1576,7 +1576,9 @@ static int do_gset(int fd, struct ifreq ecmd.cmd = ETHTOOL_GSET; ifr->ifr_data = (caddr_t)&ecmd; - err = ioctl(fd, SIOCETHTOOL, ifr); + for (;;) { + err = ioctl(fd, SIOCETHTOOL, ifr); + } if (err == 0) { err = dump_ecmd(&ecmd); if (err)