diff --git a/drivers/net/cxgb3/sge.c b/drivers/net/cxgb3/sge.c index 272a0168f3e9ffb32d3f4c2b40529e3a1d1c38bc..8205aa4ae945bee947e8613b5dd18f1208142f4e 100644 --- a/drivers/net/cxgb3/sge.c +++ b/drivers/net/cxgb3/sge.c @@ -2201,8 +2201,7 @@ static int process_responses(struct adapter *adap, struct sge_qset *qs, } 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 dadd08cd801b5fdebe4d39be9ef12c0bcac27d58..802a9516ce416fa230938ff9afb2bed40fda78f9 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 811855bc42312607e5545b0de1b1e995bd7a1369..54332b0059df72d6e6dccbaf9168ca5c62715235 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