diff options
Diffstat (limited to 'drivers/net/cxgb3/sge.c')
| -rw-r--r-- | drivers/net/cxgb3/sge.c | 7 | 
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/net/cxgb3/sge.c b/drivers/net/cxgb3/sge.c index bfa2d56af1e..cba1401377a 100644 --- a/drivers/net/cxgb3/sge.c +++ b/drivers/net/cxgb3/sge.c @@ -2019,7 +2019,7 @@ static void rx_eth(struct adapter *adap, struct sge_rspq *rq,  	skb_pull(skb, sizeof(*p) + pad);  	skb->protocol = eth_type_trans(skb, adap->port[p->iff]);  	pi = netdev_priv(skb->dev); -	if ((pi->rx_offload & T3_RX_CSUM) && p->csum_valid && +	if ((skb->dev->features & NETIF_F_RXCSUM) && p->csum_valid &&  	    p->csum == htons(0xffff) && !p->fragment) {  		qs->port_stats[SGE_PSTAT_RX_CSUM_GOOD]++;  		skb->ip_summed = CHECKSUM_UNNECESSARY; @@ -2120,7 +2120,7 @@ static void lro_add_page(struct adapter *adap, struct sge_qset *qs,  		offset = 2 + sizeof(struct cpl_rx_pkt);  		cpl = qs->lro_va = sd->pg_chunk.va + 2; -		if ((pi->rx_offload & T3_RX_CSUM) && +		if ((qs->netdev->features & NETIF_F_RXCSUM) &&  		     cpl->csum_valid && cpl->csum == htons(0xffff)) {  			skb->ip_summed = CHECKSUM_UNNECESSARY;  			qs->port_stats[SGE_PSTAT_RX_CSUM_GOOD]++; @@ -2285,7 +2285,8 @@ static int process_responses(struct adapter *adap, struct sge_qset *qs,  	q->next_holdoff = q->holdoff_tmr;  	while (likely(budget_left && is_new_response(r, q))) { -		int packet_complete, eth, ethpad = 2, lro = qs->lro_enabled; +		int packet_complete, eth, ethpad = 2; +		int lro = !!(qs->netdev->features & NETIF_F_GRO);  		struct sk_buff *skb = NULL;  		u32 len, flags;  		__be32 rss_hi, rss_lo;  |