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개의 파일을 삭제

파일 보기

@@ -809,9 +809,10 @@ static QDF_STATUS wlan_mgmt_txrx_rx_handler_list_copy(
struct mgmt_rx_handler *rx_handler_node;
while (rx_handler) {
rx_handler_node = qdf_mem_malloc(sizeof(*rx_handler_node));
rx_handler_node =
qdf_mem_malloc_atomic(sizeof(*rx_handler_node));
if (!rx_handler_node) {
mgmt_txrx_err("Couldn't allocate memory for rx handler node");
mgmt_txrx_err_rl("Couldn't allocate memory for rx handler node");
return QDF_STATUS_E_NOMEM;
}