diff --git a/drivers/net/cxgb3/sge.c b/drivers/net/cxgb3/sge.c index 272a0168f3e..8205aa4ae94 100644 --- a/drivers/net/cxgb3/sge.c +++ b/drivers/net/cxgb3/sge.c @@ -2201,8 +2201,7 @@ no_mem: } else if ((len = ntohl(r->len_cq)) != 0) { struct sge_fl *fl; - if (eth) - lro = qs->lro_enabled && is_eth_tcp(rss_hi); + lro &= eth && is_eth_tcp(rss_hi); fl = (len & F_RSPD_FLQ) ? &qs->fl[1] : &qs->fl[0]; if (fl->use_pages) { diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c index dadd08cd801..802a9516ce4 100644 --- a/drivers/net/gianfar.c +++ b/drivers/net/gianfar.c @@ -372,6 +372,9 @@ static int gfar_probe(struct of_device *ofdev, /* Reset MAC layer */ gfar_write(&priv->regs->maccfg1, MACCFG1_SOFT_RESET); + /* We need to delay at least 3 TX clocks */ + udelay(2); + tempval = (MACCFG1_TX_FLOW | MACCFG1_RX_FLOW); gfar_write(&priv->regs->maccfg1, tempval); diff --git a/drivers/net/gianfar.h b/drivers/net/gianfar.h index 811855bc423..54332b0059d 100644 --- a/drivers/net/gianfar.h +++ b/drivers/net/gianfar.h @@ -314,7 +314,7 @@ extern const char gfar_driver_version[]; #define ATTRELI_EI(x) (x) #define BD_LFLAG(flags) ((flags) << 16) -#define BD_LENGTH_MASK 0x00ff +#define BD_LENGTH_MASK 0x0000ffff /* TxBD status field bits */ #define TXBD_READY 0x8000