qcacmn: Fix memory allocation latency in beacon process

Currently if the number of APs in the STA environment
are many, then the STA will receive many beacons, whose
beacon process path can take long time, in the kernel
work queue, hence the other processes have to wait
for them to complete, and may get timeout, if the
the time to process the beaocns is larger than their
process timeout.

Fix is to :-
1. Add rate limit to failure conditions of memory
not allocated
2. Make memory allocation in path of beacon process
atomic.

Change-Id: I0b15fd4924bb7d696a33adeb1875f1f9c277db18
CRs-Fixed: 2360624
This commit is contained in:
gaurank kathpalia
2018-12-04 19:55:15 +05:30
committed by nshrivas
부모 3b381fb22d
커밋 0f9f019505
6개의 변경된 파일19개의 추가작업 그리고 12개의 파일을 삭제

파일 보기

@@ -272,14 +272,14 @@ QDF_STATUS tgt_scan_bcn_probe_rx_callback(struct wlan_objmgr_psoc *psoc,
bcn = qdf_mem_malloc_atomic(sizeof(*bcn));
if (!bcn) {
scm_err("Failed to allocate memory for bcn");
scm_debug_rl("Failed to allocate memory for bcn");
status = QDF_STATUS_E_NOMEM;
goto free;
}
bcn->rx_data =
qdf_mem_malloc_atomic(sizeof(*rx_param));
if (!bcn->rx_data) {
scm_err("Failed to allocate memory for rx_data");
scm_debug_rl("Failed to allocate memory for rx_data");
status = QDF_STATUS_E_NOMEM;
goto free;
}