Message ID | 20190920161826.15942-1-sthemmin@microsoft.com |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
Series | [net] skge: fix checksum byte order | expand |
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.
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 --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; }