|
@@ -92,6 +92,12 @@ static int orion_mdio_wait_ready(struct mii_bus *bus)
|
|
if (time_is_before_jiffies(end))
|
|
if (time_is_before_jiffies(end))
|
|
++timedout;
|
|
++timedout;
|
|
} else {
|
|
} else {
|
|
|
|
+ /* wait_event_timeout does not guarantee a delay of at
|
|
|
|
+ * least one whole jiffie, so timeout must be no less
|
|
|
|
+ * than two.
|
|
|
|
+ */
|
|
|
|
+ if (timeout < 2)
|
|
|
|
+ timeout = 2;
|
|
wait_event_timeout(dev->smi_busy_wait,
|
|
wait_event_timeout(dev->smi_busy_wait,
|
|
orion_mdio_smi_is_done(dev),
|
|
orion_mdio_smi_is_done(dev),
|
|
timeout);
|
|
timeout);
|