--- a/drivers/net/gianfar.c +++ b/drivers/net/gianfar.c @@ -908,6 +908,14 @@ static int gfar_probe(struct of_device * udelay(2); tempval = (MACCFG1_TX_FLOW | MACCFG1_RX_FLOW); + /* + * Do not enable flow control on chips earlier than rev 1.1, + * because of the eTSEC27 erratum + */ + tempval = 0; + if (mfspr(SPRN_SVR) & 0xffff >= 0x0011) + tempval = (MACCFG1_TX_FLOW | MACCFG1_RX_FLOW); + gfar_write(®s->maccfg1, tempval); /* Initialize MACCFG2. */