 msleep_interruptible(4 * 1000); 
static void e100_diag_test(struct net_device *netdev,	struct ethtool_test *test, u64 *data){	struct ethtool_cmd cmd;	struct nic *nic = netdev_priv(netdev);	int i, err;	memset(data, 0, E100_TEST_LEN * sizeof(u64));	data[0] = !mii_link_ok(&nic->mii);	data[1] = e100_eeprom_load(nic);	if(test->flags & ETH_TEST_FL_OFFLINE) {		/* save speed, duplex & autoneg settings */		err = mii_ethtool_gset(&nic->mii, &cmd);		if(netif_running(netdev))			e100_down(nic);		data[2] = e100_self_test(nic);		data[3] = e100_loopback_test(nic, lb_mac);		data[4] = e100_loopback_test(nic, lb_phy);		/* restore speed, duplex & autoneg settings */		err = mii_ethtool_sset(&nic->mii, &cmd);		if(netif_running(netdev))			e100_up(nic);	}	for(i = 0; i < E100_TEST_LEN; i++)		test->flags |= data[i] ? ETH_TEST_FL_FAILED : 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/a074fb860846937a4a46dbbf439cbbb2e2ba960c/e100.c/clean/drivers/net/e100.c