qcacld-3.0: Fix memory allocation latency in beacon process
This is mirror change for 0f9f01950
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: I488b446c23fd01c993f7dd9bd989867fda2331d8
CRs-Fixed: 2363307
Цей коміт міститься в:

зафіксовано
nshrivas

джерело
4426f7852d
коміт
b3645e79ae
@@ -289,16 +289,16 @@ QDF_STATUS tgt_tdls_mgmt_frame_process_rx_cb(
|
||||
vdev_id = wlan_vdev_get_id(vdev);
|
||||
}
|
||||
|
||||
rx_mgmt_event = qdf_mem_malloc(sizeof(*rx_mgmt_event));
|
||||
rx_mgmt_event = qdf_mem_malloc_atomic(sizeof(*rx_mgmt_event));
|
||||
if (!rx_mgmt_event) {
|
||||
tdls_err("Failed to allocate rx mgmt event");
|
||||
tdls_debug_rl("Failed to allocate rx mgmt event");
|
||||
return QDF_STATUS_E_NOMEM;
|
||||
}
|
||||
|
||||
rx_mgmt = qdf_mem_malloc(sizeof(*rx_mgmt) +
|
||||
rx_mgmt = qdf_mem_malloc_atomic(sizeof(*rx_mgmt) +
|
||||
mgmt_rx_params->buf_len);
|
||||
if (!rx_mgmt) {
|
||||
tdls_err("Failed to allocate rx mgmt frame");
|
||||
tdls_debug_rl("Failed to allocate rx mgmt frame");
|
||||
qdf_mem_free(rx_mgmt_event);
|
||||
return QDF_STATUS_E_NOMEM;
|
||||
}
|
||||
|
Посилання в новій задачі
Заблокувати користувача