Excessive failure log due driver is in transition state. This
is coming from stats callback function, rate limiting the logs.
Change-Id: Idcd5304c492fa538614ac45d4c7bb3a601f23bcc
CRs-Fixed: 2347721
Pktlog is not disabled as part of stop procedure. If
the DUT was booted up with WLAN turned off, the modules
will be loaded and after a timer expires they are
unloaded. At this point if WLAN was turned on, the start
procedure will try to enable pktlog and find that it
is already enabled, and will not send indication to
firmware.
Ensure pktlog is called as part of stop procedure.
Change-Id: If17fb597cabed59ef5a3220ba7e536820a940eaf
CRs-Fixed: 2349956
For the case that there is leakage of vdev, get ref of vdev by mac address
might get the incorrect vdev object. Get vdev from adapter directly.
Add help function to get vdev reference counted before use it.
Change-Id: I7d4ad1a2b7031f2877adb19bc15f690616e87c74
CRs-Fixed: 2312152
One of the HDD functions with the highest cyclomatic complexity is
__iw_setint_getnone(). In order to reduce the complexity there is a
plan to replace the existing switch with a vtable. As part of that
goal refactor the WE_SET_CHANNEL ioctl handling into a separate
function.
Change-Id: I66a8e9902b8b2a1ab2df0088630dc9a4923fbabd
CRs-Fixed: 2350065
For WDI 1.0 MCC TX, wlan driver is involved for TX and skb is
provided from IPA driver. With SMMU enabled, dma_addr is of
IPA domain. In such case, wlan driver needs to do DMA map
itself. After doing DMA map, an offset of frag_header
and ipa_header is added to the iova and skb->cb is updated
with the new iova. After TX completion, skb DMA unmap is done
but with the iova of the above offset included, which leads to
unmapped iova error.
Fix is to recalculate the iova and update skb->cb with new iova,
which has frag_header and ipa_header length removed.
Change-Id: I7d04e9b01fbd973601ee9e4e74c6bf4dd3d0f7bb
CRs-Fixed: 2338049
If Vdev id is not present driver tries to get vdev with vdev id 0
from pdev. Vdev with vdev_id 0 might not be present on pdev so use
objmgr API wlan_objmgr_pdev_get_first_vdev to get the first vdev.
Change-Id: I2ae0d6056709339a8167582ec327269aa84c93f4
CRs-Fixed: 2349702
Some CFG INI options' comment text are missing.
Add them so automation script can parse and retrieve the
correct comment text.
Change-Id: I4f79b075244c18490c52bc9a178d36c47db43878
CRs-Fixed: 2348307
Wlan should release bus clock and bandwidth when module stop,
otherwise when system enter into X0 shutdown, voted clock is still on.
Change-Id: I735cbed1289b17ab2fbc81e35043f1f663a60473
CRs-Fixed: 2341653
DSC panics in debug builds in the event of various timeout events. In
addition to these panics, print the stack trace of the invoking thread
to assist in finding the exact reason for deadlocks.
Change-Id: I69666cfc52fb7ca3638c32212bae3e3c3ddd8366
CRs-Fixed: 2349387
The driver mode can be dynamically controlled via the module parameter
"con_mode," which triggers the callback con_mode_handler(). However, if
the wlan module is loaded with a non-default con_mode, this callback
handler is invoked before module init (e.g. 'insmod wlan.ko
con_mode=5'). If con_mode_handler is invoked before module init, simply
return success, as no processing is needed.
Change-Id: Iaa426188d13507cc6c7f09a03effd881854bbf3d
CRs-Fixed: 2349370
hdd_is_valid_mac_address() currently takes a parameter named pMacAddr.
Per the Linux coding style "mixed-case names are frowned upon" and
"so-called Hungarian notation [...] is brain damaged" so rename the
parameter to mac_addr to conform to the naming convention. As part of
the cleanup relocate the documentation so that the interface is
documented, not the implementation.
Change-Id: I4abff563bb396a4ffce1356527307ce3bfed8a16
CRs-Fixed: 2347990
In case PEER send BW as 80Mhz in OPmode IE in 2.4Ghz, driver doesn't check
the SAP session BW and allow this BW in PEER assoc command to firmware.
Fix this by limiting the PEER BW to less than or equal to SAP session
BW.
Change-Id: Icf9e53fec32d30e5620e51b8664b0e92ba2b26d6
CRs-Fixed: 2346537
All references to the legacy tHalHandle have been removed, so remove
the definition itself.
Change-Id: I41e93fc7dd1bc7cb5d06300c607854b7c691f3c1
CRs-Fixed: 2348558
I9d0d7d109621237f29d66f7b06c5b63c38f63fb2 (qcacld-3.0: Introduce
mac_handle_t) introduced a "better" name for tHalHandle, so replace
tHalHandle with mac_handle_t in sap_fsm.
Change-Id: Ia61860e788b51c7becc6fc708a41f78e4658565d
CRs-Fixed: 2348557
I9d0d7d109621237f29d66f7b06c5b63c38f63fb2 (qcacld-3.0: Introduce
mac_handle_t) introduced a "better" name for tHalHandle, so replace
tHalHandle with mac_handle_t in sap_ch_select.
Change-Id: I204e955c7cda75bbed27a8653fbca4cca4f4b055
CRs-Fixed: 2348556
I9d0d7d109621237f29d66f7b06c5b63c38f63fb2 (qcacld-3.0: Introduce
mac_handle_t) introduced a "better" name for tHalHandle, so replace
tHalHandle with mac_handle_t in sap_api_link_cntl.
Change-Id: I2d54133a841112486ecfd7a7971a1fcefa471cfc
CRs-Fixed: 2348553
I9d0d7d109621237f29d66f7b06c5b63c38f63fb2 (qcacld-3.0: Introduce
mac_handle_t) introduced a "better" name for tHalHandle, so replace
tHalHandle with mac_handle_t in sap_module.
Change-Id: Ib3dbaf58c4dd4408a09a099b233f94331f46075f
CRs-Fixed: 2348555
I9d0d7d109621237f29d66f7b06c5b63c38f63fb2 (qcacld-3.0: Introduce
mac_handle_t) introduced a "better" name for tHalHandle, so replace
tHalHandle with mac_handle_t in sme_api.
Change-Id: I46690f8913a8ca34f7494e7baf38188c11073f7b
CRs-Fixed: 2348552
I9d0d7d109621237f29d66f7b06c5b63c38f63fb2 (qcacld-3.0: Introduce
mac_handle_t) introduced a "better" name for tHalHandle, so replace
tHalHandle with mac_handle_t in sme_rrm.
Change-Id: I289a11a5e0e4a788f512bcb2a6095e2070be73f9
CRs-Fixed: 2348551
I9d0d7d109621237f29d66f7b06c5b63c38f63fb2 (qcacld-3.0: Introduce
mac_handle_t) introduced a "better" name for tHalHandle, so replace
tHalHandle with mac_handle_t in sme_qos.
Change-Id: I47f4e41e7d8cceafd2232392f00fc0dad64fa842
CRs-Fixed: 2348550
I9d0d7d109621237f29d66f7b06c5b63c38f63fb2 (qcacld-3.0: Introduce
mac_handle_t) introduced a "better" name for tHalHandle, so replace
tHalHandle with mac_handle_t in sme_ft_api.
Change-Id: I0d185e15611597d396c00f7e6f2c3d27472426c9
CRs-Fixed: 2348549
I9d0d7d109621237f29d66f7b06c5b63c38f63fb2 (qcacld-3.0: Introduce
mac_handle_t) introduced a "better" name for tHalHandle, so replace
tHalHandle with mac_handle_t in sme_power_save.
Change-Id: I7030567c6f73abba10a3e0f29def78249fe91b5a
CRs-Fixed: 2348506
The LIM code should deal exclusively with the "real" MAC context, so
replace references to the opaque handle tHalHandle with references to
the actual underlying struct.
Change-Id: I2801f6531d810710d6ec0fdbd517d30f85407c25
CRs-Fixed: 2347928
One of the HDD functions with the highest cyclomatic complexity is
__iw_setint_getnone(). In order to reduce the complexity there is a
plan to replace the existing switch with a vtable. As part of that
goal refactor the WE_SET_AMPDU ioctl handling into a separate
function.
Change-Id: I76c11e2a099c2f9734a0e9b0208b339406b4a22c
CRs-Fixed: 2348656
One of the HDD functions with the highest cyclomatic complexity is
__iw_setint_getnone(). In order to reduce the complexity there is a
plan to replace the existing switch with a vtable. As part of that
goal refactor the "set dbg" ioctl handling into separate functions.
Note that the existing logic that updates the fw_log_settings in the
HDD context is obsolete, so remove that logic as part of the
refactoring.
Change-Id: Ibf632d1ef37905ca8159ea997dc07e4f2f7d12cc
CRs-Fixed: 2348502
One of the HDD functions with the highest cyclomatic complexity is
__iw_setint_getnone(). In order to reduce the complexity there is a
plan to replace the existing switch with a vtable. As part of that
goal refactor the "set vdev" ioctl handling into separate functions.
Change-Id: I73cc9fd5400fadb5812687d13741b7c430a0045c
CRs-Fixed: 2347909
In wlan_hdd_cfg80211_start_bss(), beacon head buffer is typecast
to ieee80211_mgmt structure without checking for buffer length
against beacon header length which may cause OOB access
while accessing iee80211_mgmt structure.
To address this, add check for beacon head length against beacon
header length before typecasting to iee80211_mgmt structure.
Also while accessing supported rates, length given to function
wlan_hdd_cfg80211_get_ie_ptr() is the total length of management
frame that also includes header length which may cause OOB access
while getting supported rates.
To address this, send only beacon data length and exclude header
length to function wlan_hdd_cfg80211_get_ie_ptr().
Change-Id: I442b236e48c3be8cbd8019c5c339593f9aa74e3e
CRs-Fixed: 2335957
If the wma_remove_peer fails, the caller can still proceed to
start vdev hold request timer for WMA_DELETE_STA_REQ. The Host
driver doesnot stop the timer and this results in page fault
when the timer is expired.
Check the return status of wma_remove_peer and send failure
to the caller of wma_remove_peer.
Change-Id: I63d0dfefb183cf1a88b1f7abb2686b2dfdc6bd79
CRs-Fixed: 2348248
Discrepancies between some of the CFG INI names and their comment
text were discovered during reviewing.
Fix them by making all comment text aligning with the real CFG
INI names.
Change-Id: I1bf5417ea79727da451d0d6ca1a5cd100523e49a
CRs-Fixed: 2348140
The Driver Synchronization Core (DSC) is a set of synchronization
primitives for use by the driver's orchestration layer. It provides APIs
for ensuring safe state transitions (including bring up and tear down)
of major driver objects: a single driver, associated psocs, and their
associated vdevs.
As part of integrating the DSC APIs into HDD, protect psoc sub-system
recovery (SSR).
Change-Id: I0374cdb22259763b0f61a4bea89fdb4ffc2c215c
CRs-Fixed: 2348567
The Driver Synchronization Core (DSC) is a set of synchronization
primitives for use by the driver's orchestration layer. It provides APIs
for ensuring safe state transitions (including bring up and tear down)
of major driver objects: a single driver, associated psocs, and their
associated vdevs.
As part of integrating the DSC APIs into HDD, protect psoc idle shutdown
and restart.
Change-Id: I416a8f4cfb67fabce377ff96715e3a372a3aed7d
CRs-Fixed: 2347019