summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorqctecmdr <qctecmdr@localhost>2019-11-28 02:33:17 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2019-11-28 02:33:17 -0800
commit74ba58976f508d25ca187bf9fdaa1ec981745e72 (patch)
tree0d0b4a926a4e31b1c4de4d0f1d105f8ef0ff9c57
parent7d0c0a3a5cec1dbda36c10cca14b5c33e3acbc11 (diff)
parent9255a8a1ef6f8c9c9e86234fdca6bfd61bf896da (diff)
downloaddata-kernel-74ba58976f508d25ca187bf9fdaa1ec981745e72.tar.gz
Merge "drivers: perf: Register/unregister on perf"
-rw-r--r--drivers/rmnet/perf/rmnet_perf_config.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/rmnet/perf/rmnet_perf_config.c b/drivers/rmnet/perf/rmnet_perf_config.c
index 8a5f50e..be245d3 100644
--- a/drivers/rmnet/perf/rmnet_perf_config.c
+++ b/drivers/rmnet/perf/rmnet_perf_config.c
@@ -397,7 +397,9 @@ static int rmnet_perf_config_notify_cb(struct notifier_block *nb,
switch (event) {
case NETDEV_UNREGISTER:
- if (rmnet_is_real_dev_registered(dev) &&
+ pr_info("%s(): rmnet_perf netdevice unregister, name = %s\n",
+ __func__, dev->name);
+ if (perf && rmnet_is_real_dev_registered(dev) &&
rmnet_perf_config_hook_registered() &&
(!strncmp(dev->name, "rmnet_ipa0", 10) ||
!strncmp(dev->name, "rmnet_mhi0", 10))) {
@@ -413,6 +415,7 @@ static int rmnet_perf_config_notify_cb(struct notifier_block *nb,
RCU_INIT_POINTER(rmnet_perf_deag_entry, NULL);
RCU_INIT_POINTER(rmnet_perf_desc_entry, NULL);
RCU_INIT_POINTER(rmnet_perf_chain_end, NULL);
+ perf = NULL;
}
break;
case NETDEV_REGISTER:
@@ -421,7 +424,7 @@ static int rmnet_perf_config_notify_cb(struct notifier_block *nb,
/* Check prevents us from allocating resources for every
* interface
*/
- if (!rmnet_perf_config_hook_registered() &&
+ if (!perf && !rmnet_perf_config_hook_registered() &&
strncmp(dev->name, "rmnet_data", 10) == 0) {
struct rmnet_priv *priv = netdev_priv(dev);