Forráskód Böngészése

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

qctecmdr 3 éve
szülő
commit
db830a061d
1 módosított fájl, 7 hozzáadás és 0 törlés
  1. 7 0
      drivers/platform/msm/ipa/ipa_v3/ipa_dp.c

+ 7 - 0
drivers/platform/msm/ipa/ipa_v3/ipa_dp.c

@@ -492,6 +492,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,
@@ -1592,6 +1598,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)