Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 628592cc authored by Herbert Xu's avatar Herbert Xu Committed by David S. Miller
Browse files

[NETDRV]: Perform missing csum_offset conversions



When csum_offset was introduced we did a conversion from csum to
csum_offset where applicable.  A couple of drivers were missed in
this process.

It was harmless to begin with since the two fields coincided.  Now
that we've made them different with the addition of csum_start, the
missed drivers must be converted or they can't send packets out at
all that require checksum offload.

Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 663ead3b
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -1328,7 +1328,7 @@ static int atl1_tx_csum(struct atl1_adapter *adapter, struct sk_buff *skb,


	if (likely(skb->ip_summed == CHECKSUM_PARTIAL)) {
	if (likely(skb->ip_summed == CHECKSUM_PARTIAL)) {
		cso = skb_transport_offset(skb);
		cso = skb_transport_offset(skb);
		css = cso + skb->csum;
		css = cso + skb->csum_offset;
		if (unlikely(cso & 0x1)) {
		if (unlikely(cso & 0x1)) {
			printk(KERN_DEBUG "%s: payload offset != even number\n",
			printk(KERN_DEBUG "%s: payload offset != even number\n",
				atl1_driver_name);
				atl1_driver_name);
+2 −1
Original line number Original line Diff line number Diff line
@@ -2959,7 +2959,8 @@ e1000_tx_csum(struct e1000_adapter *adapter, struct e1000_tx_ring *tx_ring,


		context_desc->lower_setup.ip_config = 0;
		context_desc->lower_setup.ip_config = 0;
		context_desc->upper_setup.tcp_fields.tucss = css;
		context_desc->upper_setup.tcp_fields.tucss = css;
		context_desc->upper_setup.tcp_fields.tucso = css + skb->csum;
		context_desc->upper_setup.tcp_fields.tucso =
			css + skb->csum_offset;
		context_desc->upper_setup.tcp_fields.tucse = 0;
		context_desc->upper_setup.tcp_fields.tucse = 0;
		context_desc->tcp_seg_setup.data = 0;
		context_desc->tcp_seg_setup.data = 0;
		context_desc->cmd_and_length = cpu_to_le32(E1000_TXD_CMD_DEXT);
		context_desc->cmd_and_length = cpu_to_le32(E1000_TXD_CMD_DEXT);