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: Ashok Vuyyuru <avuyyuru@codeaurora.org> Change-Id: I73397e51e6e7affae71313d08356f809788db484
This commit is contained in:
parent
e74ef50626
commit
b1e7c45a8c
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user