diff options
Diffstat (limited to 'drivers/net/ethernet/intel/ice/ice_txrx.c')
| -rw-r--r-- | drivers/net/ethernet/intel/ice/ice_txrx.c | 9 | 
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/net/ethernet/intel/ice/ice_txrx.c b/drivers/net/ethernet/intel/ice/ice_txrx.c index a2d0aad8cfdd..b6fa83c619dd 100644 --- a/drivers/net/ethernet/intel/ice/ice_txrx.c +++ b/drivers/net/ethernet/intel/ice/ice_txrx.c @@ -1923,12 +1923,15 @@ int ice_tx_csum(struct ice_tx_buf *first, struct ice_tx_offload_params *off)  				  ICE_TX_CTX_EIPT_IPV4_NO_CSUM;  			l4_proto = ip.v4->protocol;  		} else if (first->tx_flags & ICE_TX_FLAGS_IPV6) { +			int ret; +  			tunnel |= ICE_TX_CTX_EIPT_IPV6;  			exthdr = ip.hdr + sizeof(*ip.v6);  			l4_proto = ip.v6->nexthdr; -			if (l4.hdr != exthdr) -				ipv6_skip_exthdr(skb, exthdr - skb->data, -						 &l4_proto, &frag_off); +			ret = ipv6_skip_exthdr(skb, exthdr - skb->data, +					       &l4_proto, &frag_off); +			if (ret < 0) +				return -1;  		}  		/* define outer transport */  | 
