The vnic server reports the statistics buffer in big endian format and must
be converted to cpu endian in order to be displayed correctly on little
endian lpars.

Signed-off-by: John Allen <jal...@linux.vnet.ibm.com>
---
diff --git a/drivers/net/ethernet/ibm/ibmvnic.c 
b/drivers/net/ethernet/ibm/ibmvnic.c
index a264c6992328..285ea23bac6a 100644
--- a/drivers/net/ethernet/ibm/ibmvnic.c
+++ b/drivers/net/ethernet/ibm/ibmvnic.c
@@ -1807,7 +1807,8 @@ static void ibmvnic_get_ethtool_stats(struct net_device 
*dev,
        wait_for_completion(&adapter->stats_done);

        for (i = 0; i < ARRAY_SIZE(ibmvnic_stats); i++)
-               data[i] = IBMVNIC_GET_STAT(adapter, ibmvnic_stats[i].offset);
+               data[i] = be64_to_cpu(IBMVNIC_GET_STAT(adapter,
+                                               ibmvnic_stats[i].offset));

        for (j = 0; j < adapter->req_tx_queues; j++) {
                data[i] = adapter->tx_stats_buffers[j].packets;

Reply via email to