diff options
| author | Alok Kumar <alokkuma@codeaurora.org> | 2019-08-07 17:39:32 +0530 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2019-10-25 04:15:46 -0700 |
| commit | 56e4e5efe8b94d88c6642ebf2e057f91826e099f (patch) | |
| tree | 4ce6f6c82dbf49687a887d4cb137f1f6b8d20849 | |
| parent | 700a1204af197134f49fdbe3a536acb3603407cc (diff) | |
qcacmn: Reset rx_pending to avoid continuous tasklet scheduling
The rx_pending flag is never set to 0 if the check for
TARGET_REGISTER_ACCESS_ALLOWED(scn) is failed when target is
not reachable. Since, the rx_pending flag is not set to 0,
ce_check_rx_pending(CE_state) check inside ce_tasklet() will
be true and tasklet gets rescheduled again and again.
Reset the rx_pending flag before TARGET_REGISTER_ACCESS_ALLOWED(scn)
check in ce_per_engine_service() to avoid continuous scheduling of
tasklet when check for TARGET_REGISTER_ACCESS_ALLOWED(scn) fails.
Change-Id: Ib9268e6cf2bdcd0ed0bf84934e9370bcef1cdbab
CRs-Fixed: 2375307
| -rw-r--r-- | hif/src/ce/ce_service.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/hif/src/ce/ce_service.c b/hif/src/ce/ce_service.c index 79d71ba1bb1d..bad8ca6e3557 100644 --- a/hif/src/ce/ce_service.c +++ b/hif/src/ce/ce_service.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2018 The Linux Foundation. All rights reserved. + * Copyright (c) 2013-2019 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -1999,6 +1999,7 @@ more_watermarks: CE_WATERMARK_MASK | HOST_IS_COPY_COMPLETE_MASK); } else { + qdf_atomic_set(&CE_state->rx_pending, 0); HIF_ERROR_RL(HIF_RATE_LIMIT_CE_ACCESS_LOG, "%s: target access is not allowed", __func__); goto unlock_end; |
