X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=drivers%2Fnet%2Feth16i.c;h=10e39f2b31c3993e7e5bce57be2944702235481a;hb=4085f746db1b7d6b292cf27cc713a13a1fcb2681;hp=d4e24f08b3ba3bb0c51d925109cd0ffc88964b1c;hpb=ac1d426e825ab5778995f2f6f053ca2e6b45c622;p=deliverable%2Flinux.git diff --git a/drivers/net/eth16i.c b/drivers/net/eth16i.c index d4e24f08b3ba..10e39f2b31c3 100644 --- a/drivers/net/eth16i.c +++ b/drivers/net/eth16i.c @@ -1027,7 +1027,7 @@ static void eth16i_timeout(struct net_device *dev) inw(ioaddr + TX_STATUS_REG), (inb(ioaddr + TX_STATUS_REG) & TX_DONE) ? "IRQ conflict" : "network cable problem"); - dev->trans_start = jiffies; + dev->trans_start = jiffies; /* prevent tx timeout */ /* Let's dump all registers */ if(eth16i_debug > 0) { @@ -1047,7 +1047,7 @@ static void eth16i_timeout(struct net_device *dev) } dev->stats.tx_errors++; eth16i_reset(dev); - dev->trans_start = jiffies; + dev->trans_start = jiffies; /* prevent tx timeout */ outw(ETH16I_INTR_ON, ioaddr + TX_INTR_REG); netif_wake_queue(dev); } @@ -1109,7 +1109,6 @@ static netdev_tx_t eth16i_tx(struct sk_buff *skb, struct net_device *dev) outb(TX_START | lp->tx_queue, ioaddr + TRANSMIT_START_REG); lp->tx_queue = 0; lp->tx_queue_len = 0; - dev->trans_start = jiffies; lp->tx_started = 1; netif_wake_queue(dev); } @@ -1443,8 +1442,10 @@ int __init init_module(void) dev->if_port = eth16i_parse_mediatype(mediatype[this_dev]); if(io[this_dev] == 0) { - if(this_dev != 0) /* Only autoprobe 1st one */ + if (this_dev != 0) { /* Only autoprobe 1st one */ + free_netdev(dev); break; + } printk(KERN_NOTICE "eth16i.c: Presently autoprobing (not recommended) for a single card.\n"); }