qcacmn: Stop replenish timer during recovery

During recovery, when this timer is started, there is no
stop operation. If the timer is triggered and SSR is not
completed, it will visit re-inited data structure and lead
kernel crash.

Change-Id: I44a31d70ee80d59076e4121f6924faa470ce7575
CRs-Fixed: 3102029
This commit is contained in:
Yu Tian
2021-12-31 13:37:14 +08:00
committato da Madan Koyyalamudi
parent 5cc176837d
commit 9e61eb4514
2 ha cambiato i file con 19 aggiunte e 2 eliminazioni

Vedi File

@@ -4257,4 +4257,13 @@ static inline void qdf_set_smmu_fault_state(bool smmu_fault_state)
#else
#include <i_qdf_nbuf_api_m.h>
#endif
/**
* qdf_nbuf_stop_replenish_timer - Stop alloc fail replenish timer
*
* This function stops the alloc fail replenish timer.
*
* Return: void
*/
void qdf_nbuf_stop_replenish_timer(void);
#endif /* _QDF_NBUF_H */

Vedi File

@@ -295,7 +295,7 @@ qdf_export_symbol(qdf_nbuf_set_state);
*
* Return: void
*/
static void __qdf_nbuf_start_replenish_timer(void)
static inline void __qdf_nbuf_start_replenish_timer(void)
{
qdf_atomic_inc(&alloc_track_timer.alloc_fail_cnt);
if (qdf_mc_timer_get_current_state(&alloc_track_timer.track_timer) !=
@@ -311,7 +311,7 @@ static void __qdf_nbuf_start_replenish_timer(void)
*
* Return: void
*/
static void __qdf_nbuf_stop_replenish_timer(void)
static inline void __qdf_nbuf_stop_replenish_timer(void)
{
if (qdf_atomic_read(&alloc_track_timer.alloc_fail_cnt) == 0)
return;
@@ -365,10 +365,18 @@ void __qdf_nbuf_deinit_replenish_timer(void)
__qdf_nbuf_stop_replenish_timer();
qdf_mc_timer_destroy(&alloc_track_timer.track_timer);
}
void qdf_nbuf_stop_replenish_timer(void)
{
__qdf_nbuf_stop_replenish_timer();
}
#else
static inline void __qdf_nbuf_start_replenish_timer(void) {}
static inline void __qdf_nbuf_stop_replenish_timer(void) {}
void qdf_nbuf_stop_replenish_timer(void)
{
}
#endif
/* globals do not need to be initialized to NULL/0 */