|
@@ -836,8 +836,11 @@ netdev_tx_t mlx4_en_xmit(struct sk_buff *skb, struct net_device *dev)
|
|
|
* whether LSO is used */
|
|
|
tx_desc->ctrl.srcrb_flags = priv->ctrl_flags;
|
|
|
if (likely(skb->ip_summed == CHECKSUM_PARTIAL)) {
|
|
|
- tx_desc->ctrl.srcrb_flags |= cpu_to_be32(MLX4_WQE_CTRL_IP_CSUM |
|
|
|
- MLX4_WQE_CTRL_TCP_UDP_CSUM);
|
|
|
+ if (!skb->encapsulation)
|
|
|
+ tx_desc->ctrl.srcrb_flags |= cpu_to_be32(MLX4_WQE_CTRL_IP_CSUM |
|
|
|
+ MLX4_WQE_CTRL_TCP_UDP_CSUM);
|
|
|
+ else
|
|
|
+ tx_desc->ctrl.srcrb_flags |= cpu_to_be32(MLX4_WQE_CTRL_IP_CSUM);
|
|
|
ring->tx_csum++;
|
|
|
}
|
|
|
|