diff options
author | Steve Hodgson <shodgson@solarflare.com> | 2011-06-22 12:11:33 +0100 |
---|---|---|
committer | Ben Hutchings <bhutchings@solarflare.com> | 2011-06-25 00:43:49 +0100 |
commit | a659b2a94d87add999229ecd9f2f56817d5d737b (patch) | |
tree | 9399911c60a317dee430fc004d3a297a548788d1 | |
parent | 0e2a9c7cb941db993f481cdd6a99d70a302053e0 (diff) | |
download | blackbird-op-linux-a659b2a94d87add999229ecd9f2f56817d5d737b.tar.gz blackbird-op-linux-a659b2a94d87add999229ecd9f2f56817d5d737b.zip |
sfc: Fix Siena mac statistics on big endian platforms
[bwh: Use __force in the one place it's needed]
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
-rw-r--r-- | drivers/net/sfc/siena.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/net/sfc/siena.c b/drivers/net/sfc/siena.c index 442897b14270..5735e84c69de 100644 --- a/drivers/net/sfc/siena.c +++ b/drivers/net/sfc/siena.c @@ -420,14 +420,13 @@ static void siena_remove_nic(struct efx_nic *efx) efx->nic_data = NULL; } -#define STATS_GENERATION_INVALID ((u64)(-1)) +#define STATS_GENERATION_INVALID ((__force __le64)(-1)) static int siena_try_update_nic_stats(struct efx_nic *efx) { - u64 *dma_stats; + __le64 *dma_stats; struct efx_mac_stats *mac_stats; - u64 generation_start; - u64 generation_end; + __le64 generation_start, generation_end; mac_stats = &efx->mac_stats; dma_stats = efx->stats_buffer.addr; @@ -438,7 +437,7 @@ static int siena_try_update_nic_stats(struct efx_nic *efx) rmb(); #define MAC_STAT(M, D) \ - mac_stats->M = dma_stats[MC_CMD_MAC_ ## D] + mac_stats->M = le64_to_cpu(dma_stats[MC_CMD_MAC_ ## D]) MAC_STAT(tx_bytes, TX_BYTES); MAC_STAT(tx_bad_bytes, TX_BAD_BYTES); @@ -508,7 +507,8 @@ static int siena_try_update_nic_stats(struct efx_nic *efx) MAC_STAT(rx_internal_error, RX_INTERNAL_ERROR_PKTS); mac_stats->rx_good_lt64 = 0; - efx->n_rx_nodesc_drop_cnt = dma_stats[MC_CMD_MAC_RX_NODESC_DROPS]; + efx->n_rx_nodesc_drop_cnt = + le64_to_cpu(dma_stats[MC_CMD_MAC_RX_NODESC_DROPS]); #undef MAC_STAT @@ -537,7 +537,7 @@ static void siena_update_nic_stats(struct efx_nic *efx) static void siena_start_nic_stats(struct efx_nic *efx) { - u64 *dma_stats = (u64 *)efx->stats_buffer.addr; + __le64 *dma_stats = efx->stats_buffer.addr; dma_stats[MC_CMD_MAC_GENERATION_END] = STATS_GENERATION_INVALID; |