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

Commit fb652f1b authored by Subash Abhinov Kasiviswanathan's avatar Subash Abhinov Kasiviswanathan Committed by Gerrit - the friendly Code Review server
Browse files

rmnet_shs: Fix vnd delete handling



Previously shs would mark a vnd deleted by using the ep struct
passed from rmnet. However rmnet driver frees the ep struct before
the shs vnd_del notification callback. This causes shs to incorrectly
no invalidate freed vnds.

This change adds a internal struct to check for vnd match in order for
rmnet_shs to correctly invalidate vnds.

Change-Id: I1e4e86ad0ab5abe2abd569e33fba65198badb17c
Acked-by: default avatarRaul Martinez <mraul@qti.qualcomm.com>
Signed-off-by: default avatarConner Huff <chuff@codeaurora.org>
parent 91d8d047
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -1277,8 +1277,10 @@ void rmnet_shs_wq_reset_ep_active(struct net_device *dev)
		if (!ep)
			continue;

		if (ep->ep->egress_dev == dev)
		if (ep->netdev == dev){
			ep->is_ep_active = 0;
			ep->netdev = NULL;
		}
	}

}
@@ -1291,8 +1293,11 @@ void rmnet_shs_wq_set_ep_active(struct net_device *dev)
		if (!ep)
			continue;

		if (ep->ep->egress_dev == dev)
		if (ep->ep->egress_dev == dev){
			ep->is_ep_active = 1;
			ep->netdev = dev;

		}
	}

}
+1 −0
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@
struct rmnet_shs_wq_ep_s {
	struct list_head ep_list_id;
	struct rmnet_endpoint *ep;
	struct net_device *netdev;
	int  new_lo_core[MAX_CPUS];
	int  new_hi_core[MAX_CPUS];
	u16 default_core_msk;