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

Commit b1e7c45a authored by Ashok Vuyyuru's avatar Ashok Vuyyuru
Browse files

msm: ipa3: Changes to check disconnect in progress while sending data



In SSR scenario while teardown the pipe there could be possibility to
receive the UL data to avoid queuing the data checking for disconnect
InProgress flag.

Signed-off-by: default avatarAshok Vuyyuru <avuyyuru@codeaurora.org>
Change-Id: I73397e51e6e7affae71313d08356f809788db484
parent e74ef506
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -431,6 +431,12 @@ int ipa3_send(struct ipa3_sys_context *sys,

	spin_lock_bh(&sys->spinlock);

	if (unlikely(atomic_read(&sys->ep->disconnect_in_progress))) {
		IPAERR("Pipe disconnect in progress dropping the packet\n");
		spin_unlock_bh(&sys->spinlock);
		return -EFAULT;
	}

	for (i = 0; i < num_desc; i++) {
		if (!list_empty(&sys->avail_tx_wrapper_list)) {
			tx_pkt = list_first_entry(&sys->avail_tx_wrapper_list,
@@ -1445,6 +1451,7 @@ int ipa3_teardown_sys_pipe(u32 clnt_hdl)
	if (IPA_CLIENT_IS_PROD(ep->client)) {
		do {
			spin_lock_bh(&ep->sys->spinlock);
			atomic_set(&ep->disconnect_in_progress, 1);
			empty = list_empty(&ep->sys->head_desc_list);
			spin_unlock_bh(&ep->sys->spinlock);
			if (!empty)