net/ll_temac: FIX : Wait for indirect wait to end
authorRicardo Ribalda <ricardo.ribalda@gmail.com>
Mon, 7 Nov 2011 23:39:57 +0000 (23:39 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 9 Nov 2011 20:39:57 +0000 (15:39 -0500)
While tracing down a connectivity problem on the temac I connected a
probe to the Cross bar irq, and it was triggered when doing
ifdown->ifup.

This is fixed once waiting for the indirect write to end. Since it is
not on the hot path there is no performance loss.

Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/xilinx/ll_temac_main.c

index 05a1ffad20d2f7f9fb3b7dc813ebc92d4b26f424..2681b53820eefaf3edaa8e6e336b9b6de12d8bf0 100644 (file)
@@ -114,6 +114,7 @@ void temac_indirect_out32(struct temac_local *lp, int reg, u32 value)
                return;
        temac_iow(lp, XTE_LSW0_OFFSET, value);
        temac_iow(lp, XTE_CTL0_OFFSET, CNTLREG_WRITE_ENABLE_MASK | reg);
+       temac_indirect_busywait(lp);
 }
 
 /**