diff mbox series

[net] skge: fix checksum byte order

Message ID 20190920161826.15942-1-sthemmin@microsoft.com
State Accepted
Delegated to: David Miller
Headers show
Series [net] skge: fix checksum byte order | expand

Commit Message

Stephen Hemminger Sept. 20, 2019, 4:18 p.m. UTC
From: Stephen Hemminger <stephen@networkplumber.org>

Running old skge driver on PowerPC causes checksum errors
because hardware reported 1's complement checksum is in little-endian
byte order.

Reported-by: Benoit <benoit.sansoni@gmail.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/net/ethernet/marvell/skge.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

David Miller Sept. 24, 2019, 2:55 p.m. UTC | #1
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Fri, 20 Sep 2019 18:18:26 +0200

> From: Stephen Hemminger <stephen@networkplumber.org>
> 
> Running old skge driver on PowerPC causes checksum errors
> because hardware reported 1's complement checksum is in little-endian
> byte order.
> 
> Reported-by: Benoit <benoit.sansoni@gmail.com>
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>

Applied and queued up for -stable.
Florian Fainelli Sept. 24, 2019, 4:49 p.m. UTC | #2
On 9/20/19 9:18 AM, Stephen Hemminger wrote:
> From: Stephen Hemminger <stephen@networkplumber.org>
> 
> Running old skge driver on PowerPC causes checksum errors
> because hardware reported 1's complement checksum is in little-endian
> byte order.
> 
> Reported-by: Benoit <benoit.sansoni@gmail.com>
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>

Fixes: 383181ac7e59 ("[PATCH] skge: check length from PHY")

> ---
>  drivers/net/ethernet/marvell/skge.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/marvell/skge.c b/drivers/net/ethernet/marvell/skge.c
> index 0a2ec387a482..095f6c71b4fa 100644
> --- a/drivers/net/ethernet/marvell/skge.c
> +++ b/drivers/net/ethernet/marvell/skge.c
> @@ -3108,7 +3108,7 @@ static struct sk_buff *skge_rx_get(struct net_device *dev,
>  	skb_put(skb, len);
>  
>  	if (dev->features & NETIF_F_RXCSUM) {
> -		skb->csum = csum;
> +		skb->csum = le16_to_cpu(csum);
>  		skb->ip_summed = CHECKSUM_COMPLETE;
>  	}
>  
>
diff mbox series

Patch

diff --git a/drivers/net/ethernet/marvell/skge.c b/drivers/net/ethernet/marvell/skge.c
index 0a2ec387a482..095f6c71b4fa 100644
--- a/drivers/net/ethernet/marvell/skge.c
+++ b/drivers/net/ethernet/marvell/skge.c
@@ -3108,7 +3108,7 @@  static struct sk_buff *skge_rx_get(struct net_device *dev,
 	skb_put(skb, len);
 
 	if (dev->features & NETIF_F_RXCSUM) {
-		skb->csum = csum;
+		skb->csum = le16_to_cpu(csum);
 		skb->ip_summed = CHECKSUM_COMPLETE;
 	}