diff options
Diffstat (limited to 'target/linux/layerscape/patches-5.4/701-net-0207-dpaa2-eth-Add-reset-controls-for-debugfs-stats.patch')
-rw-r--r-- | target/linux/layerscape/patches-5.4/701-net-0207-dpaa2-eth-Add-reset-controls-for-debugfs-stats.patch | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/target/linux/layerscape/patches-5.4/701-net-0207-dpaa2-eth-Add-reset-controls-for-debugfs-stats.patch b/target/linux/layerscape/patches-5.4/701-net-0207-dpaa2-eth-Add-reset-controls-for-debugfs-stats.patch deleted file mode 100644 index 01d7b01c28..0000000000 --- a/target/linux/layerscape/patches-5.4/701-net-0207-dpaa2-eth-Add-reset-controls-for-debugfs-stats.patch +++ /dev/null @@ -1,92 +0,0 @@ -From aa80ddbb30e9ffd75e2dcaa58abf6383a5520942 Mon Sep 17 00:00:00 2001 -From: Ioana Radulescu <ruxandra.radulescu@nxp.com> -Date: Wed, 13 Feb 2019 12:23:41 +0200 -Subject: [PATCH] dpaa2-eth: Add reset controls for debugfs stats - -Allow the user to reset statistics counters through debugfs entries. - -Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com> ---- - .../ethernet/freescale/dpaa2/dpaa2-eth-debugfs.c | 64 ++++++++++++++++++++++ - 1 file changed, 64 insertions(+) - ---- a/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth-debugfs.c -+++ b/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth-debugfs.c -@@ -167,6 +167,62 @@ static const struct file_operations dpaa - .release = single_release, - }; - -+static ssize_t dpaa2_dbg_reset_write(struct file *file, const char __user *buf, -+ size_t count, loff_t *offset) -+{ -+ struct dpaa2_eth_priv *priv = file->private_data; -+ struct rtnl_link_stats64 *percpu_stats; -+ struct dpaa2_eth_drv_stats *percpu_extras; -+ struct dpaa2_eth_fq *fq; -+ struct dpaa2_eth_channel *ch; -+ int i; -+ -+ for_each_online_cpu(i) { -+ percpu_stats = per_cpu_ptr(priv->percpu_stats, i); -+ memset(percpu_stats, 0, sizeof(*percpu_stats)); -+ -+ percpu_extras = per_cpu_ptr(priv->percpu_extras, i); -+ memset(percpu_extras, 0, sizeof(*percpu_extras)); -+ } -+ -+ for (i = 0; i < priv->num_fqs; i++) { -+ fq = &priv->fq[i]; -+ memset(&fq->stats, 0, sizeof(fq->stats)); -+ } -+ -+ for (i = 0; i < priv->num_channels; i++) { -+ ch = priv->channel[i]; -+ memset(&ch->stats, 0, sizeof(ch->stats)); -+ } -+ -+ return count; -+} -+ -+static const struct file_operations dpaa2_dbg_reset_ops = { -+ .open = simple_open, -+ .write = dpaa2_dbg_reset_write, -+}; -+ -+static ssize_t dpaa2_dbg_reset_mc_write(struct file *file, -+ const char __user *buf, -+ size_t count, loff_t *offset) -+{ -+ struct dpaa2_eth_priv *priv = file->private_data; -+ int err; -+ -+ err = dpni_reset_statistics(priv->mc_io, 0, priv->mc_token); -+ if (err) -+ netdev_err(priv->net_dev, -+ "dpni_reset_statistics() failed %d\n", err); -+ -+ return count; -+} -+ -+static const struct file_operations dpaa2_dbg_reset_mc_ops = { -+ .open = simple_open, -+ .write = dpaa2_dbg_reset_mc_write, -+}; -+ - void dpaa2_dbg_add(struct dpaa2_eth_priv *priv) - { - struct dentry *dir; -@@ -183,6 +239,14 @@ void dpaa2_dbg_add(struct dpaa2_eth_priv - - /* per-fq stats file */ - debugfs_create_file("ch_stats", 0444, dir, priv, &dpaa2_dbg_ch_ops); -+ -+ /* reset stats */ -+ debugfs_create_file("reset_stats", 0200, dir, priv, -+ &dpaa2_dbg_reset_ops); -+ -+ /* reset MC stats */ -+ debugfs_create_file("reset_mc_stats", 0222, dir, priv, -+ &dpaa2_dbg_reset_mc_ops); - } - - void dpaa2_dbg_remove(struct dpaa2_eth_priv *priv) |