Log session id in sme_open_session to know what session id
is allocated by object manager.
Change-Id: I1842d772916d5a6bd251aead727d3448a46d9e41
CRs-Fixed: 2030327
hdd_skb_orphan is currently a static function. If not used, it may cause
compilation error.
Make the function static inline.
Change-Id: I5d78f597f2f694d370dbe7631be0a7ebc8572b0d
CRs-Fixed: 2020167
Currently, in case the application send buffer size is very small (< 64k),
the application TX throughput is limited by its send buffer
(sk->sk_sndbuf). Once the send buffer is full (sk->sk_wmem_alloc
becomes greater or equal to sk->sk_sndbuf), the application can send
more data only when TX completions have arrived for some of the buffers
in the send buffer and some space is created.
Allow application(s) to send as much data over the wlan interface as
they may have, limited by the capability of the driver. Since the
driver has a limited number of TX descriptors, the maximum amount of
outstanding TX buffers are limited by the maximum number of TX
descriptors for that interface. For example, if the number of TX
descriptors for wlan0 are 1200, there can be at max 1200 (MSDU sized) TX packets.
Change-Id: I75eca2f4e10ecde1a5b347a305e896ac17d4ef7c
CRs-Fixed: 2016357
In one of the recent fixes, we are setting the TSO seg contents to zero
when the segment is added back to the free list. The segment cookie is
not re-initalized at this point. Hence, when this segment is
re-allocated, it fails the cookie check and there is a system crash.
Fix the issue by reinitializing the segment cookie after zero-ing out
its contents.
Change-Id: I7947e3ce4f80f1b19ebf5ef73ff75dee19ec7364
CRs-Fixed: 2011786
On stability test bed a double free of TSO segment is reported via the
TX completion path. Made following changes -
- Check for duplicate TX completions before freeing TSO segments.
- Add debug logs to check if TX descriptors are being freed from the
control path.
Change-Id: I30178de90cd0161001ded70adc26066adc9cbcb3
CRs-Fixed: 2006868
Currently the rx throughput level is getting set to TP_NONE immediately
after it goes high. This will send incorrect values for
tcp_adv_win_scaling to cnss-daemon.
Fix the RX throuhgput level by making next_rx_level a static variable.
Now if next_rx_level is calculated to be HIGH, it will stay HIGH until
RX throughput falls below the threshold
Change-Id: Iaa36e4ff6d846e29b3beadd998a3d6fd334c1a5b
CRs-Fixed: 2004944
Currently the number of TX packets sent is simply calculated by the
number of times hard_xmit_function is called. We use the number of TX
(and Rx) packets in a 100ms interval, to tweak the system for high
bandwidth scenarios.
For, TSO jumbo packets, in high throughput scenarios, the number of TX
packets received in 100ms interval remains low because of aggregation.
This causes the driver to incorrectly detect the throughput mode(low).
Calculate total TX packet (in 100 ms interval) based on the size of the TSO
jumbo packet. This will allow the driver to trigger high throughput mode
and tweak system parameters correctly.
Change-Id: I3c7a3c3992b41d3a00ff903e6317a62394c1c0fe
CRs-Fixed: 2002971
The existing HIF NAPI blacklist feature uses irq_blacklist_on(off) APIs
which make a call to the userspace irq_balancer.
Replace these APIs with kernel API irq_modify_status to mark (or
unmark) the individual interrupts with IRQ_NO_BALANCING flag.
Once marked, the msm-irq-balancer will not be able to move the
CE interrupts around
Change-Id: I55b3302b11e6b3a380228d637f20def920760af1
CRs-Fixed: 1114161
Interrupt blacklisting in kernel 4.4 happens through a user-space
entity. The kernel APIs irq_blacklist_on(off) essentially send
a message to the user space service(irq balancer) and
therefore are not synchronous and do not guarantee that blacklisting
has actually taken effect. It will be granted with some latency
(userspace entity's processing delay).
Make blacklisting more robust by:
a) move irq (if it has been moved around after blacklist_on call
has been made and not yet honored) to the designated CPU
on IRQ reception
b) stop cpu_isolation in blacklisting mode boost API
c) modify NAPI stats to indicate blacklisting mode
CRs-Fixed: 1093770
Change-Id: I410768d3e0215e510924859d678c66ad7d87b1ec
Currently NAPI stats are retrieved as a part of iwpriv getStats command.
The buffer available for this command is limited and NAPI stats get
truncated.
Add a new dumpStats parameter (9) to dump NAPI stats.
The following command will dump NAPI Stats into kmsg.
>iwpriv wlan0 dumpStats 9
Cleanup existing getStats
Change-Id: I0d804295d96a495b4afa576c8258f08c9c2b9bbb
CRs-Fixed: 1076563
Move the logs to appropriate log levels to reduce
the log spam in wlan_hdd_cfg80211.c
Change-Id: I2388a913fa301368754d9c1bf365a3a8478d9997
CRs-Fixed: 2014745
Move the logs to appropriate log levels to reduce
the log spam in wlan_hdd_cfg.c
Change-Id: I38c0f7920f1f7b478fae497c65df5daa8192c6d3
CRs-Fixed: 2014745
Move the logs to appropriate log levels to reduce
the log spam in wlan_hdd_assoc.c
Change-Id: I07d05203058448c1f7a6680da36b244667f6104e
CRs-Fixed: 2014745
Currently the config ini "wlanLoggingFEToConsole" specifically talks
about enabling the logs to kmsg for FATAL and ERROR logs.
This cfg.ini item should not be specific to any log level, instead
it should just depict whether logging to console should be enabled
or not. Hence change wlanLoggingFEToConsole to wlanLoggingToConsole.
Change-Id: I54e340ed58891175b53ac2d0137d15a2baea1c9f
CRs-Fixed: 2014745
Per OEM request an INI item is needed to enable/disable the Adaptive
Noise Immunity feature, so add support for gEnableANI.
Change-Id: Ie6867c0024a716bf65dca1eeab8dd2b58141eff7
CRs-Fixed: 2028697
Add an ioctl that allows a user to dump a specified number of records to
dmesg for WMI and Credit History.
Change-Id: I644dcf5edcb2f875af1e99e7b4677cde37081674
CRs-Fixed: 2028760
Currently, during del_virtual_iface if adapter is of type SAP
and cac is active, then host schedules a work which stop and
close adapter and in same context it again stop /close_Adapter.
As a part of this fix, avoid stop / close adapter if cac is
in progress.
Change-Id: I68a53b3b67f4a0222a35c15a3d4a9574dd3a9e90
CRs-Fixed: 2027509
Rx buffer hash table memory is not freed in htt_rx_attach
when target index allocation fails.
Fix is to free memory in failure case.
CRs-Fixed: 2025050
Change-Id: Ibbe238dc7d2f6dc2c31fe94569c9aa744714e930
IEEE80211_NUM_BAND is not defined in newer kernels, Add changes
to replace IEEE80211_NUM_BAND by NUM_NL80211_BANDS.
CRs-Fixed: 2028465
Change-Id: Id811a434aa791f096ef4921db0f2ab8b42bc9f23
In FTM mode pdev is getting created twice due to
two service ready events from the firmware beacause
of module stop and start.
Add logic to reuse the psoc/pdev for module stop and start.
Change-Id: Ib5a92020c3c01ccfa699167eef8d7a633a27db13
CRs-Fixed: 2029041
QXDM log shows HDD IPA packet dump from all the packets through
Rx exception path. Change the packet dump only for DATAPATH module
in debug level.
Fix compilation error when IPA_OFFLOAD not defined.
Change-Id: I2761c78bbe3e59e7d956d0e3df628d22e9bbe610
CRs-Fixed: 1102003
If the TDLS links exists and SAP comes up, there is a chance
that the peer is created for SAP before deleting TDLS peers,
thus leading to crash.
The fix is to teardown the TDLS links before starting hostapd
or starting the association process to avoid TDLS in concurrency
case.
Change-Id: I06c0d4f8965d3a1e614e8bd89f2d6af0a504fa9e
CRs-Fixed: 2027831
There is a comparison between constant and boolean inside
update cds config api which will always fail.
To address this issue change the type of variable from boolean to
uint8_t.
Change-Id: I7ba4d9fedd148d713af334b394757da2a496f5a5
CRs-Fixed: 2027402
The dump_tx_desc function is called to report the number of freed and used
tx descriptors when a suspend is rejected by data path. The debug code
was directly referencing a data field whereas the code to check the freed
and used descriptors used a function that reports a different number under
certain compilation flags. Use the function in the debug statement such that
the value checked is the value printed.
Change-Id: Iad3f519dc88319c7a421f77376dd43e15e6eaf09
CRs-Fixed: 1113880
Several constants in rrm_global.h use logical || where a bitwise | was
probably intended. clang warns about this.
Hence, use bitwise operator instead of logical operator.
Change-Id: I5a0543096e7f213f3d60f3eda03eb7765595a364
CRs-Fixed: 2028989
In Napier emulation, due to the FPGA slowness and the need from
firmware side to live debug issues during driver load, increase
driver probe timeout accordingly.
Change-Id: I7e435082cebabe9ec6d15dc5c11a73b7db84f19b
CRs-fixed: 2028294
In FTM mode con mode change handler does module stop
after holding SSR protect and module stop bails
out assuming its idle mode module stop. Make sure to
do module stop properly for FTM mode even if SSR
protect lock is taken by con mode change handler.
Change-Id: I5d2d7006bb9f4897a5dd22893cdf6a7a864de97b
CRs-Fixed: 2027020
During driver recovery, following a crash in firmware, there is a
chance to get stuck waiting for the MC thread to exit after it has
already done so. This is due to an external thread being active in the
driver when it should not be possible. Improve logging in such cases
to find out which thread is running, and skip waiting for MC thread
shutdown if it is already stopped to prevent getting hung.
Change-Id: I53ddc3afb8561ecd2d6b708b6488c503068c49a6
CRs-Fixed: 2027020
When flow pool is created, pool status is set to FLOW_POOL_ACTIVE_UNPAUSED
irrespective of whether netif queues are paused or not.
Also, when descriptors are transferred from invalid pool to deficient pool,
pool status is not checked. So, if deficient pool is paused, then even
after receiving required descriptors from invalid pool, its status and
netif queues will still remain paused due to which traffic will not be able
to resume ever.
Sync pool status with netif queue status by:
1) Unpausing netif queues as well when pool is created.
2) If deficient pool is paused and on receiving descriptors from invalid
pool, no. of descriptors goes beyond start threshold, unpause the
queues and set the pool status to FLOW_POOL_ACTIVE_UNPAUSED.
Change-Id: I69390e40130892d218372e4a8a0ab4b0c7b94b7e
CRs-Fixed: 2025759
In case of dfs offload, do not run cac timer, as cac will also be
offloaded in that case. Decide the same based of service bit info.
Change-Id: If4dd62628270ff0ba8632a9cd644a9d7ed6f31a4
CRs-Fixed: 2021357
Add support to fill cac duration and dfs region in vdev
start command, these values are used in firmware on phyerror
processing and cac timer offload cases.
Change-Id: I8bfbd4a3f59002f92ee2e5e321c15da849fce9ec
CRs-Fixed: 2021357
There is race condition between the bus bandwidth work and cleaning up
an adapter. Under some conditions, it is possible for the bus bandwidth
work to access a paritally destroyed adapter, leading to a
use-after-free. To prevent the race condition, use the following
sequence:
1) Stop the bandwidth timer
2) Flush pending bandwidth work
3) Cleanup the adapter
4) Restart the bandwidth timer, if needed
Change-Id: I7166e75e65433d2dcb818ff8b41fe959c510a2e9
CRs-Fixed: 2025184
While implementing the fix for "qcacld-3.0: Fix wlan_hdd_driver_ops
kernel-doc" it was observed that the kernel-doc for functions
wlan_hdd_bus_suspend() and wlan_hdd_bus_resume() did not match the
function signatures. Update the kernel-doc to match the actual code,
and in the case of wlan_hdd_bus_suspend() update one call in
hdd_enable_ext_wow() to align with the real interface instead of the
previously documented interface.
Change-Id: I6f25c954f5328a029fadeceadc23cfc242de6bf7
CRs-Fixed: 2025169
Currently not all of the wlan_hdd_driver_ops public APIs have their
documentation in the interface (header) file. Update the files so that
the public interface, not the implementation, is documented.
Change-Id: I68a809c9bc2a844232a0f5d07086f924f8ce1ace
CRs-Fixed: 2024274
The kernel checkpatch script has detected some issues in
wlan_hdd_driver_ops.h and wlan_hdd_driver_ops.c, so fix them.
Change-Id: I1b08d9dd5147eeebeba2f545d7530bdff6867a5e
CRs-Fixed: 2024274
When DUT receives roam sync ind, addts and delts commands
needs to be removed as part of csr_roam_sync_callback,
Otherwise these commands will be active SME commands forever
as PE wont send resp as older PE session is deleted as part
of RSI indication.
Fix is to remove addts and delts command on roam sync ind.
Change-Id: I1df8416a76dff3899c146823bec04595877788f7
CRs-Fixed: 2023723
This is a qcacld-2.0 to qcacld-3.0 propagation.
Don't access user space memory directly in
drv_cmd_get_ibss_peer_info_all.
Change-Id: I36a706e2e91d1ed2a43897ac2eef9d81b2de7335
CRs-Fixed: 2022841
This is a qcacld-2.0 to qcacld-3.0 propagation.
Fix the variable uninitialized compile error.
Change-Id: I941d76a75a52b4cc6bd3de831b04f960f506f802
CRs-Fixed: 2022835
For some of the configurations, the default is not one of the
in-range values because we want to detect if the value has been
set or not.
Hence, do the range check when a value is present in the cfg.ini.
Change-Id: I4db722ed5053e2248dc23c7417d192fe6093ee46
CRs-Fixed: 2014145
This is a qcacld-2.0 to qcacld-3.0 propagation.
Firmware currently sets the default access category to ARP packets
as voice traffic id and host does not have a way to override this.
As a part of this change, add the cfg.ini support to override this
default access category.
Change-Id: I268cb9c0254d14f143615790c570ac5a255b359d
CRs-Fixed: 1111993
This is a qcacld-2.0 to qcacld-3.0 propagation.
The counter is incremented and logged for each -EBUSY and reset when
scan request is successfully accepted.
It should help us debug cases where the recovery timeout logic
isn't working well or is too slow to react.
Change-Id: I9dd4384cec2a6aefb56e97c1d871c2d2a4819bf6
CRs-Fixed: 1113120
qcacld-2.0 to qcacld-3.0 propagation.
Two threads accessing the procfs entry might end up in race condition and
lead to use-after-free for hdd_ctx->driver_dump_mem.
Hence, acquire a lock to protect hdd_ctx.
Change-Id: If871f4ceadf650978e16b4a336f688a0dae1c494
CRs-Fixed: 2005832
psoc is allocated during start module and destroy in stop modules.
due to this if psoc is used after stop modules it cause crash.
psoc should be the first thing to get allocated and last thing
to get destroyed.
Fix it by calling psoc destroy at the ned of the wlan exit and
allocating in wlan start.
Change-Id: I969a5688751ddfad9ab9c3152e6af0680d2be605
CRs-Fixed: 2027351
Add support to update HE MCS. lim_populate_he_mcs_set() is added to
take care of populating the rates and MCS values.
Change-Id: I12c0ab95cc566c906f1707010dfb2ef3ec4fa681
CRs-Fixed: 1073481
when wlan_mac.bin doesn’t end with ‘\0’,
get_next_line() can access the unexpected area.
Fix this by adding 0 to the end of the buffer.
Change-Id: I01971aa5ad9679338a19e837f73969367d5b08f8
CRs-Fixed: 2026925
During p2p negotiation/invitation if the TX status for the actions frames
are reported success when they actually failed, the supplicant will
not retransmit the failed frames. It will move on to the next action
frame in the protocol. This would lead to GO Negotiation failure.
CRs-Fixed: 1112657
Change-Id: I9b462524793d8ced5ae86de75e085458070e6513
Update correct check while unpacking PPE threshold. Incorrect
placement of parentheses may lead to unexpected behavor.
Change-Id: If1af2ab7a0601e4a25183cb8fbaf0dfd99e9bf58
CRs-Fixed: 1073481
Update HE ops correctly in vdev start request. Currently the update
is done in a local copy and is not updating the vdev start request.
Fix is to copy the local he ops value into vdev start request.
Change-Id: Ife5b40a8df3d6a47c2f170efdb7aae009bb8be95
CRs-Fixed: 1073481
Decrement the peer ref cnt incremented while getting peer through
wlan_objmgr_get_peer() to pass it to wlan_mgmt_txrx_mgmt_frame_tx().
Change-Id: I2791075d63610d76fa1c70d3efe76df2b2618b01
CRs-Fixed: 2025052
TDLS mutex is not unlocked properly in few error instances.
Thus, the thread gets stuck.
The fix is to unlock mutex properly before returning.
Change-Id: Ic16015e568dd91af17b3bb1ba9b19722cb0f82d9
CRs-Fixed: 2026737