Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9255a8a1 authored by Conner Huff's avatar Conner Huff
Browse files

drivers: perf: Register/unregister on perf



Before registering perf structures make sure
it has not yet been registered before.
Conversely, if deregistering perf, make sure
that it was registered in the first place.

Signed-off-by: default avatarConner Huff <chuff@codeaurora.org>
Change-Id: I00b89f45780161615b25faebfa70e79dde530c2f
parent 7f367513
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -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);