Commit 9434dbfe authored by Shahed Shaikh's avatar Shahed Shaikh Committed by David S. Miller

qlcnic: Fix ethtool statistics collection

o Properly fill statistics data into buffer.
  Update buffer pointer properly after filling statistics data into buffer.
Signed-off-by: default avatarShahed Shaikh <shahed.shaikh@qlogic.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 1075822c
...@@ -1071,8 +1071,7 @@ qlcnic_get_strings(struct net_device *dev, u32 stringset, u8 *data) ...@@ -1071,8 +1071,7 @@ qlcnic_get_strings(struct net_device *dev, u32 stringset, u8 *data)
} }
} }
static void static u64 *qlcnic_fill_stats(u64 *data, void *stats, int type)
qlcnic_fill_stats(u64 *data, void *stats, int type)
{ {
if (type == QLCNIC_MAC_STATS) { if (type == QLCNIC_MAC_STATS) {
struct qlcnic_mac_statistics *mac_stats = struct qlcnic_mac_statistics *mac_stats =
...@@ -1121,6 +1120,7 @@ qlcnic_fill_stats(u64 *data, void *stats, int type) ...@@ -1121,6 +1120,7 @@ qlcnic_fill_stats(u64 *data, void *stats, int type)
*data++ = QLCNIC_FILL_STATS(esw_stats->local_frames); *data++ = QLCNIC_FILL_STATS(esw_stats->local_frames);
*data++ = QLCNIC_FILL_STATS(esw_stats->numbytes); *data++ = QLCNIC_FILL_STATS(esw_stats->numbytes);
} }
return data;
} }
static void qlcnic_get_ethtool_stats(struct net_device *dev, static void qlcnic_get_ethtool_stats(struct net_device *dev,
...@@ -1148,7 +1148,7 @@ static void qlcnic_get_ethtool_stats(struct net_device *dev, ...@@ -1148,7 +1148,7 @@ static void qlcnic_get_ethtool_stats(struct net_device *dev,
/* Retrieve MAC statistics from firmware */ /* Retrieve MAC statistics from firmware */
memset(&mac_stats, 0, sizeof(struct qlcnic_mac_statistics)); memset(&mac_stats, 0, sizeof(struct qlcnic_mac_statistics));
qlcnic_get_mac_stats(adapter, &mac_stats); qlcnic_get_mac_stats(adapter, &mac_stats);
qlcnic_fill_stats(data, &mac_stats, QLCNIC_MAC_STATS); data = qlcnic_fill_stats(data, &mac_stats, QLCNIC_MAC_STATS);
} }
if (!(adapter->flags & QLCNIC_ESWITCH_ENABLED)) if (!(adapter->flags & QLCNIC_ESWITCH_ENABLED))
...@@ -1160,7 +1160,7 @@ static void qlcnic_get_ethtool_stats(struct net_device *dev, ...@@ -1160,7 +1160,7 @@ static void qlcnic_get_ethtool_stats(struct net_device *dev,
if (ret) if (ret)
return; return;
qlcnic_fill_stats(data, &port_stats.rx, QLCNIC_ESW_STATS); data = qlcnic_fill_stats(data, &port_stats.rx, QLCNIC_ESW_STATS);
ret = qlcnic_get_port_stats(adapter, adapter->ahw->pci_func, ret = qlcnic_get_port_stats(adapter, adapter->ahw->pci_func,
QLCNIC_QUERY_TX_COUNTER, &port_stats.tx); QLCNIC_QUERY_TX_COUNTER, &port_stats.tx);
if (ret) if (ret)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment