diff options
Diffstat (limited to 'drivers/net/ehea/ehea_ethtool.c')
-rw-r--r-- | drivers/net/ehea/ehea_ethtool.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/net/ehea/ehea_ethtool.c b/drivers/net/ehea/ehea_ethtool.c index decec8cfe96b..29ef7a98f8be 100644 --- a/drivers/net/ehea/ehea_ethtool.c +++ b/drivers/net/ehea/ehea_ethtool.c | |||
@@ -183,6 +183,9 @@ static char ehea_ethtool_stats_keys[][ETH_GSTRING_LEN] = { | |||
183 | {"PR5 free_swqes"}, | 183 | {"PR5 free_swqes"}, |
184 | {"PR6 free_swqes"}, | 184 | {"PR6 free_swqes"}, |
185 | {"PR7 free_swqes"}, | 185 | {"PR7 free_swqes"}, |
186 | {"LRO aggregated"}, | ||
187 | {"LRO flushed"}, | ||
188 | {"LRO no_desc"}, | ||
186 | }; | 189 | }; |
187 | 190 | ||
188 | static void ehea_get_strings(struct net_device *dev, u32 stringset, u8 *data) | 191 | static void ehea_get_strings(struct net_device *dev, u32 stringset, u8 *data) |
@@ -239,6 +242,18 @@ static void ehea_get_ethtool_stats(struct net_device *dev, | |||
239 | for (k = 0; k < 8; k++) | 242 | for (k = 0; k < 8; k++) |
240 | data[i++] = atomic_read(&port->port_res[k].swqe_avail); | 243 | data[i++] = atomic_read(&port->port_res[k].swqe_avail); |
241 | 244 | ||
245 | for (k = 0, tmp = 0; k < EHEA_MAX_PORT_RES; k++) | ||
246 | tmp |= port->port_res[k].lro_mgr.stats.aggregated; | ||
247 | data[i++] = tmp; | ||
248 | |||
249 | for (k = 0, tmp = 0; k < EHEA_MAX_PORT_RES; k++) | ||
250 | tmp |= port->port_res[k].lro_mgr.stats.flushed; | ||
251 | data[i++] = tmp; | ||
252 | |||
253 | for (k = 0, tmp = 0; k < EHEA_MAX_PORT_RES; k++) | ||
254 | tmp |= port->port_res[k].lro_mgr.stats.no_desc; | ||
255 | data[i++] = tmp; | ||
256 | |||
242 | } | 257 | } |
243 | 258 | ||
244 | const struct ethtool_ops ehea_ethtool_ops = { | 259 | const struct ethtool_ops ehea_ethtool_ops = { |