Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

[PATCH] e1000 endianness bugs

return -E_NO_BIG_ENDIAN_TESTING;

[E1000]: Fix 4 missed endianness conversions on RX descriptor fields.

Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

authored by

David S. Miller and committed by
Jeff Garzik
c3d7a3a4 b27a1ed5

+4 -4
+4 -4
drivers/net/e1000/e1000_main.c
··· 3710 3710 e1000_rx_checksum(adapter, 3711 3711 (uint32_t)(status) | 3712 3712 ((uint32_t)(rx_desc->errors) << 24), 3713 - rx_desc->csum, skb); 3713 + le16_to_cpu(rx_desc->csum), skb); 3714 3714 3715 3715 skb->protocol = eth_type_trans(skb, netdev); 3716 3716 #ifdef CONFIG_E1000_NAPI ··· 3854 3854 } 3855 3855 3856 3856 e1000_rx_checksum(adapter, staterr, 3857 - rx_desc->wb.lower.hi_dword.csum_ip.csum, skb); 3857 + le16_to_cpu(rx_desc->wb.lower.hi_dword.csum_ip.csum), skb); 3858 3858 skb->protocol = eth_type_trans(skb, netdev); 3859 3859 3860 3860 if (likely(rx_desc->wb.upper.header_status & 3861 - E1000_RXDPS_HDRSTAT_HDRSP)) 3861 + cpu_to_le16(E1000_RXDPS_HDRSTAT_HDRSP))) 3862 3862 adapter->rx_hdr_split++; 3863 3863 #ifdef CONFIG_E1000_NAPI 3864 3864 if (unlikely(adapter->vlgrp && (staterr & E1000_RXD_STAT_VP))) { ··· 3884 3884 #endif 3885 3885 3886 3886 next_desc: 3887 - rx_desc->wb.middle.status_error &= ~0xFF; 3887 + rx_desc->wb.middle.status_error &= cpu_to_le32(~0xFF); 3888 3888 buffer_info->skb = NULL; 3889 3889 3890 3890 /* return some buffers to hardware, one at a time is too slow */