diff options
author | David S. Miller <davem@davemloft.net> | 2006-03-15 17:26:28 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-03-16 19:17:38 -0500 |
commit | c3d7a3a4eb5e8f290d7b1d61430eed1ebedeb936 (patch) | |
tree | a616111ca9d23e58bb4e2b434216104831a1e186 /drivers/net/e1000 | |
parent | b27a1ed571e12e7ec75b8907bf02fd69fd2bfe10 (diff) |
[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>
Diffstat (limited to 'drivers/net/e1000')
-rw-r--r-- | drivers/net/e1000/e1000_main.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c index 4c4db96d0b7b..84dcca3776ee 100644 --- a/drivers/net/e1000/e1000_main.c +++ b/drivers/net/e1000/e1000_main.c | |||
@@ -3710,7 +3710,7 @@ e1000_clean_rx_irq(struct e1000_adapter *adapter, | |||
3710 | e1000_rx_checksum(adapter, | 3710 | e1000_rx_checksum(adapter, |
3711 | (uint32_t)(status) | | 3711 | (uint32_t)(status) | |
3712 | ((uint32_t)(rx_desc->errors) << 24), | 3712 | ((uint32_t)(rx_desc->errors) << 24), |
3713 | rx_desc->csum, skb); | 3713 | le16_to_cpu(rx_desc->csum), skb); |
3714 | 3714 | ||
3715 | skb->protocol = eth_type_trans(skb, netdev); | 3715 | skb->protocol = eth_type_trans(skb, netdev); |
3716 | #ifdef CONFIG_E1000_NAPI | 3716 | #ifdef CONFIG_E1000_NAPI |
@@ -3854,11 +3854,11 @@ e1000_clean_rx_irq_ps(struct e1000_adapter *adapter, | |||
3854 | } | 3854 | } |
3855 | 3855 | ||
3856 | e1000_rx_checksum(adapter, staterr, | 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 | skb->protocol = eth_type_trans(skb, netdev); | 3858 | skb->protocol = eth_type_trans(skb, netdev); |
3859 | 3859 | ||
3860 | if (likely(rx_desc->wb.upper.header_status & | 3860 | if (likely(rx_desc->wb.upper.header_status & |
3861 | E1000_RXDPS_HDRSTAT_HDRSP)) | 3861 | cpu_to_le16(E1000_RXDPS_HDRSTAT_HDRSP))) |
3862 | adapter->rx_hdr_split++; | 3862 | adapter->rx_hdr_split++; |
3863 | #ifdef CONFIG_E1000_NAPI | 3863 | #ifdef CONFIG_E1000_NAPI |
3864 | if (unlikely(adapter->vlgrp && (staterr & E1000_RXD_STAT_VP))) { | 3864 | if (unlikely(adapter->vlgrp && (staterr & E1000_RXD_STAT_VP))) { |
@@ -3884,7 +3884,7 @@ e1000_clean_rx_irq_ps(struct e1000_adapter *adapter, | |||
3884 | #endif | 3884 | #endif |
3885 | 3885 | ||
3886 | next_desc: | 3886 | next_desc: |
3887 | rx_desc->wb.middle.status_error &= ~0xFF; | 3887 | rx_desc->wb.middle.status_error &= cpu_to_le32(~0xFF); |
3888 | buffer_info->skb = NULL; | 3888 | buffer_info->skb = NULL; |
3889 | 3889 | ||
3890 | /* return some buffers to hardware, one at a time is too slow */ | 3890 | /* return some buffers to hardware, one at a time is too slow */ |