Currently when supplicant sends set_pmkid_cache (Either after initial
connection or after session timeout with AP) to host to set
the new pmkid derived after the EAP is done. Host deletes PMK entry
only if bssid/ssid matches.
For OKC, the PMK derived from the initially associated AP will be
used for deriving PMKID for all APs. In case of connection with OKC
supported APs, If STA receive session timeout from AP, HOST should
delete older PMK of all APs which have the same PMK. Else While
roaming HOST could send older PMK to OKC supported AP and this
results PMK flush in FW and leads to full EAP.
Change-Id: I95881db229d5193cbdc22c5f30e1375b3892fbd4
CRs-Fixed: 2679737
Currently in the driver, we are printing the WOW pattern to the kernel
logs. This pattern is an array and printing it one by one can lead to
excessive logging.
Instead of printing one by one, use qdf_trace_hex_dump() to print the
pattern in one go. Also move the logging from kernel to the driver logs.
Change-Id: I6a3b02b0e57d8c27bb5ea4a7c44f67634c0f33fd
CRs-Fixed: 2661242
In the function __wlan_cfg80211_set_interop_issues_ap_config the
adapter->vdev pointer is being passed to fetch the psoc without any
prior NULL check. This can lead to NULL pointer dereference.
Add a NULL sanity check before performing action based on adapter->vdev
CRs-Fixed: 2681524
Change-Id: I0c58a3a263fe5166e0c13a5f866f4bccfa031086
If osif_vdev_sync_op_start failed, that means operation on
net_dev is not permitted. So, free the skb before return.
Change-Id: Icd366c2d9d947e39f26f1b21878bfe0154a55fdc
CRs-Fixed: 2681018
Currently there is a check to validate if the station is in
associated state or not in the hdd lost link cp stats info cb,
There is a race condition where if the disconnection happens
from ap in that case the callback gets invoked before the
connection state in the station context gets updated and thus
the rssi on disconnect is not updated.
To address above issue remove the check to validate the station
state and update the rssi on disconnect irrespective of the
state of the connection.
Change-Id: I9cc6a08cdf0a1081adfde7a9423a665bc977cffc
CRs-Fixed: 2678667
Add support to parse the HTT_T2H_MSG_TYPE_CFR_DUMP_COMPL_IND
message. This target to host message is received when CFR feature
is enabled.
Change-Id: I592cd5ca663018f2958550e6e3e383bb796ee168
CRs-Fixed: 2680730
OBSS scan enable WMI command is not correctly set for one of
the TLV of the command which corrupted the length of the next
TLV of the command and lead to command send failure.
Correct the buffer offset of the TLV in the OBSS scan WMI command.
Change-Id: Ieb9467c52ae9d9dab602485b4b63fc9de48e6924
CRs-Fixed: 2681000
Some of the psoc/pdev specific sysfs entries are valid only for
mission mode and a no-op for the non-mission modes.
Add a sanity check for global mode type while adding and removing
the interface.
Change-Id: If017f583f9b3a29c7d43e59709227a9ba639764d
CRs-Fixed: 2682924
Currently FEATURE_FW_LOG_PARSING is enabled if the
target is not lahina. With the new requirement it is
required to enable this feature by default.
To address above requirement enable this feature by default.
Change-Id: I2a1e944c7ae76b3747c73202f3b25fa880111d2f
CRs-Fixed: 2683325
Move adapter-specific sysfs files, create/destroy, to start/stop adapter
such that unwanted sysfs creations can be avoided for sap only files.
Change-Id: Icff8df5f773fda0560400360c37d644274df456e
CRs-Fixed: 2683477
Currently there are no logs to check at what time SAR safety timer
or sar unsolicited timer starts or stops.
Add debug logs to know the exact time when the sar safety timer
and sar unsolicited timer start and stop.
Change-Id: I2feaff17c6940a18d35bc4271549eda5dc36a13a
CRs-Fixed: 2679214
As part of WEXT replacement, replace unit_test_target with
a sysfs file.
file path: /sys/class/net/wlanxx/unit_test_target
wlanxx is adapter name
example: echo 5 2 2 1 > unit_test_target
Change-Id: I7815a4238dc39e468ae8e43d26405dc72a0a84df
CRs-Fixed: 2681473
As part of WEXT replacement, replace wlan_suspend/wlan_resume
with a sysfs file.
file path: /sys/class/net/wlanxx/wlan_suspend
/sys/class/net/wlanxx/wlan_resume
wlanxx is adapter name
example:
echo 0 0 > wlan_suspend
echo > wlan_resume
Change-Id: I378afaa5f0ee00d893f4f9eb3e6ce2e80062b43f
CRs-Fixed: 2680776
As part of WEXT replacement, replace crash_inject with a sysfs file.
file path: /sys/class/net/wlanxx/crash_inject
wlanxx is adapter name
example: echo 1 1 > crash_inject
Change-Id: Ica3e2c0941e9217b42ed7cd3194fe98c8f0d0aa9
CRs-Fixed: 2680684
Define dummy APIs for wlan_hdd_cfg80211_stats_ext_callback,
wlan_hdd_cfg80211_stats_ext2_callback when EXT_STATS feature
is disabled to avoid unknown symbol error.
Change-Id: Ic53d316da986a2eeafbea75eeb6e0aa4e91d15ec
Wlan driver is not caching the thermal mitigation level
configured by framework. As a result after ssr thermal
level is not send to fw.
Fix, to cache the thermal level in the driver and apply
it after ssr.
change-ID: I7ede84a11149e093b6a674c3a72f0aeb54a980db
CRs-Fixed: 2678533
In function lim_send_probe_req_mgmt_frame, pesession is being used
without sanity check.
Add sanity check for pesession.
Change-Id: Iea52db4399cc50e4e7cd99bec92677e845274153
CRs-Fixed: 2668308
Currently, SIR_MAX_NUM_STA_IN_IBSS(16) is used while updating
sta_ctx->conn_info in hdd_save_peer/hdd_delete_peer. IBSS
supports maximum 16 peers but NDP might support more based
on platform. This restricts the max supported NDP peers to 16.
But host driver supports MAX_PEERS(32) no.of peers and use the
same here as sta_ctx->conn_info has support for MAX_PEERS(32)
mac addresses.
Change-Id: Ic52422435f97929e22cf3c0897ce9173793ee12e
CRs-Fixed: 2673110
NDI delete response is sent to userspace only when NDI is in
NAN_DATA_NDI_DELETING_STATE state. But NDI could be in
NAN_DATA_DISCONNECTED_STATE state if cleanup happens through
NDP_END_ALL path. Driver doesn't send response to userspace in
this case.
Send the response to userspace in NAN_DATA_DISCONNECTED_STATE also
as the application might be waiting for NDI delete status.
Also, use set/get APIs and avoid accessing NDI state directly.
Change-Id: I81a6b19a77144c76dde145f126c45b2ca67ff093
CRs-Fixed: 2679581
Remove instances of CFG_COUNTRY_CODE and country_code from
wlan_mlme_reg struct.
Remove redundant country code APIs.
This change is needed because the country code is no longer
stored in CFG file, and subsequently, there is no need for
CFG_COUNTRY_CODE.
Change-Id: Ia4b3b40d0dccfde696352967f2902dfba344a445
CRs-Fixed: 2634079
Currently while filling in the hang event data for the event
HANG_EVT_TAG_LEGACY_MAC, the header is not getting filled in. This can
cause the data to go out of sync.
Add the header to the data before filling in the values.
Change-Id: Iedcb39623276e5f04ef9ffb5b3284e67f6c89312
CRs-Fixed: 2678949
Cleanup logging, usage of %p or %pk will lead to information leak.
Always use %pK instead when ever logging the address.
Change-Id: Id60782855f242175183f88e9f1c2efb9eb578404
CRs-Fixed: 2677373
Cleanup logging, usage of %p or %pk will lead to information leak.
Always use %pK instead when ever logging the address.
Change-Id: Id11e1b52b394eb10bb2b32fc2ee2e04116f98026
CRs-Fixed: 2677373
peer_timer_bitmask of hang_data was uninitialized which may
contain a garbage value.
Initialized the variable with 0.
Change-Id: I5875bb0d121bcbf14a2afc9efec6697cf4b4dba4
CRs-Fixed: 2680955
In case of driver unload, there can be a race condition
since the timer for processing monitor status ring can run
in parallel to the unload time wow ack response handler,
which is also flushing all the monitor status ring entries.
To avoid this race condition, stop the monitor reap timer
as a part of target suspend, and process all the outstanding
entries in the monitor status ring.
This will make sure that the monitor status ring is
processed from only one context at any given time.
Change-Id: Iaff01b2d61ba53eb7ab442b2c1886ba8076a4a8b
CRs-Fixed: 2678973
Because of a race that happen during vdev delete, RX packets can get
queued to the RX thread after the RX flush (done as part of peer deletion)
and by the time RX thread is woken up for processing, the netdev pointer
would be NULL leading to a crash.
Avoid this by dropping pending frames in the RX thread during peer unmap
as well.
Change-Id: Id79d7d05c487fcabfd104a15dc4038d48703b07c
CRs-Fixed: 2681195
As a part of LL stats get NB operation, the driver sends the LL stats
req to the FW, waits for the response and sends back the stats in a
synchronous reply. All this happens as a part of one single NB
operation.
Within this operation, if an rmmod comes, there can be a possiblity
of a memory leak. In function hdd_link_layer_process_radio_stats, there
is a check to validate the hdd_context and return if the driver is
undergoing load/unload. As a part of the premature return, some memory
are not freed properly.
To resolve this, remove the validity check from the NB operation. The
operation itself comes with DSC synchronization and ensures that the
hdd_context remains valid atleast until the operation is complete. Thus
there is no need for the redundant check of validity of hdd_context,
which resolves the memory leak issue also.
Change-Id: Ieea755e83addac99659dbd6e0e5f160b86e6f9fa
CRs-Fixed: 2679081
As part of WEXT replacement, replace reassoc with a sysfs file.
file path: /sys/class/net/wlanxx/reassoc
where wlanxx is adapter name
example: echo 0 > reassoc
Change-Id: Ib4f3582bb8c164dd4f3ab739367520b9aeb0f5b9
CRs-Fixed: 2676629
As part of WEXT replacement, replace set_fw_mode_cfg with a sysfs file.
file path: /sys/kernel/wifi/set_fw_mode_cfg
example: echo 1 1 > set_fw_mode_cfg
Change-Id: I851df440f9eb5f73798deaf3b4d0f128f6925f26
CRs-Fixed: 2675570
Use wlan_reg_get_channel_state_for_freq API to get channel
state and identify 6Ghz channel as non-dfs channel.
Change-Id: Ib134a71c62e24324abc12e5a5b11a524e89de810
CRs-Fixed: 2681608