mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-21 00:10:09 +00:00
wil6210: Fix IP version indication for Tx csum offload
Bit DMA_CFG_DESC_TX_OFFLOAD_CFG_L3T_IPV4_POS should be set for IPv4 only. Don't set it for IPv6 Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
83982cbe2b
commit
df2d08eed2
1 changed files with 3 additions and 2 deletions
|
@ -673,9 +673,12 @@ static int wil_tx_desc_offload_cksum_set(struct wil6210_priv *wil,
|
|||
if (skb->ip_summed != CHECKSUM_PARTIAL)
|
||||
return 0;
|
||||
|
||||
d->dma.b11 = ETH_HLEN; /* MAC header length */
|
||||
|
||||
switch (skb->protocol) {
|
||||
case cpu_to_be16(ETH_P_IP):
|
||||
protocol = ip_hdr(skb)->protocol;
|
||||
d->dma.b11 |= BIT(DMA_CFG_DESC_TX_OFFLOAD_CFG_L3T_IPV4_POS);
|
||||
break;
|
||||
case cpu_to_be16(ETH_P_IPV6):
|
||||
protocol = ipv6_hdr(skb)->nexthdr;
|
||||
|
@ -701,8 +704,6 @@ static int wil_tx_desc_offload_cksum_set(struct wil6210_priv *wil,
|
|||
}
|
||||
|
||||
d->dma.ip_length = skb_network_header_len(skb);
|
||||
d->dma.b11 = ETH_HLEN; /* MAC header length */
|
||||
d->dma.b11 |= BIT(DMA_CFG_DESC_TX_OFFLOAD_CFG_L3T_IPV4_POS);
|
||||
/* Enable TCP/UDP checksum */
|
||||
d->dma.d0 |= BIT(DMA_CFG_DESC_TX_0_TCP_UDP_CHECKSUM_EN_POS);
|
||||
/* Calculate pseudo-header */
|
||||
|
|
Loading…
Reference in a new issue