]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/net/mv643xx_eth.c
Merge git://git.infradead.org/mtd-2.6
[linux-2.6-omap-h63xx.git] / drivers / net / mv643xx_eth.c
index d25a30251139bd1f33fbe02b013b23888f266d1c..b9dcdbd369f87b87e5e9e12650e50d7ada6d9465 100644 (file)
@@ -38,6 +38,7 @@
 #include <linux/init.h>
 #include <linux/dma-mapping.h>
 #include <linux/in.h>
+#include <linux/ip.h>
 #include <linux/tcp.h>
 #include <linux/udp.h>
 #include <linux/etherdevice.h>
@@ -1065,9 +1066,12 @@ static int smi_wait_ready(struct mv643xx_eth_shared_private *msp)
                return 0;
        }
 
-       if (!wait_event_timeout(msp->smi_busy_wait, smi_is_done(msp),
-                               msecs_to_jiffies(100)))
-               return -ETIMEDOUT;
+       if (!smi_is_done(msp)) {
+               wait_event_timeout(msp->smi_busy_wait, smi_is_done(msp),
+                                  msecs_to_jiffies(100));
+               if (!smi_is_done(msp))
+                       return -ETIMEDOUT;
+       }
 
        return 0;
 }