This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / drivers / net / arm / smc91x.c
similarity index 99%
rename from drivers/net/smc91x.c
rename to drivers/net/arm/smc91x.c
index 85fae09..3968a1c 100644 (file)
@@ -86,6 +86,7 @@ static const char version[] =
 #include <linux/skbuff.h>
 
 #include <asm/io.h>
+#include <asm/hardware.h>
 #include <asm/irq.h>
 
 #include "smc91x.h"
@@ -690,20 +691,18 @@ static void smc_tx(struct net_device *dev)
        if (tx_status & TS_LOSTCAR)
                lp->stats.tx_carrier_errors++;
 
+       SMC_WAIT_MMU_BUSY();
+
        if (tx_status & TS_LATCOL) {
                PRINTK("%s: late collision occurred on last xmit\n", dev->name);
                lp->stats.tx_window_errors++;
-               if (!(lp->stats.tx_window_errors & 63) && net_ratelimit()) {
-                       printk(KERN_INFO "%s: unexpectedly large numbers of "
-                              "late collisions. Please check duplex "
-                              "setting.\n", dev->name);
-               }
+               /* It's really cheap to requeue the pkt here */
+               SMC_SET_MMU_CMD( MC_ENQUEUE );
+       } else {
+               /* kill the packet */
+               SMC_SET_MMU_CMD(MC_FREEPKT);
        }
 
-       /* kill the packet */
-       SMC_WAIT_MMU_BUSY();
-       SMC_SET_MMU_CMD(MC_FREEPKT);
-
        /* Don't restore Packet Number Reg until busy bit is cleared */
        SMC_WAIT_MMU_BUSY();
        SMC_SET_PN(saved_packet);