Currently HDD sends a FW memory dump request to firmware without
checking support for this feature. This can lead to a crash as firmware
doesn't send the command response if feature is not supported.
Add a check in HDD so that the request is only sent when FW memory dump
capability is advertised by the firmware.
Change-Id: I73b980f50910e13aa5f2d2434f07b6f985dd5010
CRs-fixed: 1090806
Currently in hdd_wlan_shutdown() and hdd_wlan_re_init() there are
calls to cds_get_global_context(), but the returned context isn't
actually used, so remove these calls.
Change-Id: I21b2a4955d926fe0694f4f8a3097d9a5d5bef02e
CRs-Fixed: 2117018
Currently cds_init() returns a pointer to the CDS Global Context. At
one time this was necessary since it was required to subsequently pass
this context pointer to other CDS APIs. But now CDS internally
maintains a pointer to its context, and no CDS APIs now require this
pointer, so no longer return the pointer. The ultimate goal is to keep
all references to the CDS context inside CDS.
Change-Id: Id068a2d351e492eca7b84ef23f277939104c8b46
CRs-Fixed: 2117004
The pcds_context field in struct hdd_context is no longer referenced,
so remove the field along with the code that currently initializes it.
Change-Id: Ibac0eedfa0c1e2bd170af9f91812fd25c0ab3ce7
CRs-Fixed: 2116985
In hdd_softap_sta_deauth() and hdd_softap_sta_disassoc() there
currently exist debug logs which are logging the CDS context
pointer. These logs serve no useful purpose, so remove them.
Change-Id: I3844cb1346dcc6050ad16f28caf7b07b1e79cfe4
CRs-Fixed: 2116979
Currently HDD passes the CDS context to sme_get_rssi(), which in turn
passes it to csr_get_rssi(), which in turn uses it to populate the
p_cds_context field in the tAniGetRssiReq message. Upon processing of
this message by csr_update_rssi() the p_cds_context is checked for
NULL but is otherwise unused. Since the CDS context is not needed,
remove it from all of the RSSI APIs.
Change-Id: I5836e3192205576f6ff4614a29356e73fe674848
CRs-Fixed: 2116954
See change "qcacld-3.0: Refine API wlansap_open()" for the API history.
Update wlansap_get_chan_width() to use the true struct pointer type.
Change-Id: Iec86249524c042ae6dba818bb5983fd91d9e61fd
CRs-Fixed: 2116267
See change "qcacld-3.0: Refine API wlansap_open()" for the API
history. Rename wlansap_set_mode() to wlansap_set_acl_mode() to align
with the naming of the "get" function, and update it to use the true
struct pointer type.
Change-Id: Ic4ad32ffa222f5fc70b0619cb150d737a573c474
CRs-Fixed: 2116267
At one time the WLAN driver only supported a single SAP. At that time
most SAP APIs took the global context pointer as a param, and from
that they could extract the pointer to the one & only SAP context.
Later the MBSSID feature was added, and conditional compilation was
introduced such that either the global context pointer or a per-BSS
SAP context pointer was used. Finally in qcacld-3.0 the conditional
compilation was removed, leaving just the MBSSID behavior. However one
of the artifacts that was left behind was that the SAP APIs are
currently defined to take a void *context which prevents the compiler
from performing proper type checking.
Update wlansap_open() to return the true struct pointer type so that
it can then be used by other SAP APIs.
Change-Id: I216ed653e4feb9960357a168d4981e7a7a92411e
CRs-Fixed: 2116267
Currently sme_enable_uapsd_for_ac() & sme_disable_uapsd_for_ac() take
a cds_ctx parameter. This parameter is no longer used, so remove it.
Change-Id: I36e57975bcfeded648513dce79f32a2fd8f56f5a
CRs-Fixed: 2115518
Currently hdd_context_create() directly dereferences the global CDS
context pointer in order to save a pointer to the HDD context. This is
a layering violation. Instead update cds_set_context() to handle the
HDD context, and call that from hdd_context_create() to save the
pointer to the HDD context.
Change-Id: Ie54725225a7dd5653eeb35e94aa3f3a752edc62a
CRs-Fixed: 2115513
At one time the predecessor to the current driver was managed via
wireless extensions, but now the driver is managed by cfg80211. The
SAP implementation of SIOCSIWMLME now performs no useful actions, so
remove it.
Change-Id: I5da7e63d2efbc0d97dbdaec306bad2ae7a9cb0ef
CRs-Fixed: 2115350
At one time the predecessor to the current driver was managed via
wireless extensions, but now the driver is managed by cfg80211. The
SAP implementation of SIOCSIWENCODEEXT now performs no useful actions,
so remove it.
Change-Id: I10cb2a339a2a5f8be5114a6987a82f4fbad8b497
CRs-Fixed: 2115349
Change "qcacld-3.0: Remove obsolete SAP support for SIOCSIWAUTH"
removed the only caller of hdd_softap_tkip_mic_fail_counter_measure().
Since this function is now unused and obsolete, remove it.
Change-Id: If69881bbe922220341faad78bc992aa57d7e2f7c
CRs-Fixed: 2115340
At one time the predecessor to the current driver was managed via
wireless extensions, but now the driver is managed by cfg80211. The
SAP implementation of SIOCSIWAUTH now performs no useful actions, so
remove it.
Change-Id: If9b9fec53b8b594d50528f0fa8deaf611b39930e
CRs-Fixed: 2115339
At one time the predecessor to the current driver was managed via
wireless extensions, but now the driver is managed by cfg80211. The
SAP implementation of SIOCSIWGENIE now performs no useful actions, so
remove it.
Change-Id: Ia17f94ce648c41d7c25cf98ff1fbfbe5a5fc4c51
CRs-Fixed: 2114955
ARP/NS/NA packets will not get chance to be transmitted if
netif queues are paused due to low tx descriptor availability.
Send ARP/NS/NA packets from HI PRIO queue so that it can be transmitted
in noisy environment.
Change-Id: Ibb414463d1471c19d5db99e12517c77b02564318
CRs-Fixed: 2081348
Host driver is ignoring beacon/probe response update for SAP before
4-way handshakes completed. Due to this beacon/probe response is not
updated with the latest updates from the userspace. This can lead to
re-connection failure/delay after disconnect.
Change-Id: I3a735a2c867c4cfac9662551221fbf22d5afb29d
CRs-Fixed: 2027658
Current method for calculating LISTEN INTERVAL are static
configuration a.ka. ini based. Now OEM / USER want to take
control of setting LISTEN INTERVAL as per their applications
need. Once if USER configure the LISTEN INTERVAL value using
vendor command then host should avoid changing the LI value
during each suspend/resume. User LI value will be override
configuration. Once USER will Disable the LI using vendor
command then host can fallback to current default method.
Change-Id: Ia9b412b073c059df0cdff7bcda8198f7581e796d
CRs-Fixed: 2040298
Enable the TX orphan by ini key gEnableTxOrphan, which is protected by
TX flow control.
Change-Id: Ib8e6d88ea0c7fda62f2d13ae3c592866ddc82521
CRs-Fixed: 2115621
If the ssid_len was greater than the PRE_CAC_SSID string,
memcmp would do an out of bounds memory read. Fix by
adding a length check.
Change-Id: I0d72cfdb2faea74db06640df7418f2a7aecd9afb
CRs-Fixed: 2098988
The Wow pattern id should be identified unique for different vdevs of
legacy firmware, and latest firmware accept same Wow pattern id on
different vdevs.
This change is to differentiate this behavior using
WMI_SERVICE_UNIFIED_WOW_CAPABILITY flag, and supply a set of APIs to
manipulate pattern id.
Change-Id: I5fe7623a309a0c3baa14fb7312107c057e994462
CRs-Fixed: 2103017
When kernel panic happen, if WiFi FW is still active,
it may cause NOC errors/memory corruption, to avoid
this, inject a fw crash first.
Propagated from qcacld-2.0
Change-Id: I97a696a02dfd73aaca212ef1bca9f3597df1e382
CRs-Fixed: 2052332
Requirement to detect if a PLD OP has stuck for a long time.
Define a timer for 30 seconds and let it run during pld ops
probe, reinit, remove and shutdown. Upon expiry print important
debug information then either trigger recovery or BUG ON.
Change-Id: I6c132cb71917cec7dead9c6c91ce6778e20bffe7
CRs-Fixed: 2090785
In certain restart sequence of the modem, wlan driver is forcefully
removed and re-probed during the firmware ready. Supplicant receives
the RTM_DELLINK/RTM_NEWLINK events as part of unregistration of netdev
from remove and registration of the netdev again as part of re-probe.
As soon as the RTM_NEWLINK indication is received by the supplicant
it tries to bring up the interface, the request for bringing up
the interface is rejected by the driver since it is still in the
re-probing phase resulting in the scan failure and other failures.
To mitigate issue synchronize the interface up with the loading/unloading
of the driver.
Change-Id: Ie467e729a4736a0ee580c4df8d75099cf070d7bf
CRs-Fixed: 2058390
Packet filter params is supported only for Station mode presently,
configuring the filter for other modes results in failure in fw.
To mitigate the issue reject the packet filter for other modes than
Station mode.
CRs-Fixed: 2029356
Change-Id: Ic2c1786dcf8d8980a104af2ee6916489dd2ec423
Applications in the userspace can sleep on the RTM events from
the driver. One such application waiting of RTM_NEW_LINK indication
does interface up as soon as it recieves the indication, so the
kernel takes rtnl_lock to call the dev_open on the interface.
Load/unload of the driver and dev_open of the interfaces are
synchronized with hdd_init_deinit_lock. So the __hdd_open is waiting
on the hdd_init_deinit_lock which is currently held by the driver
loading context. After registering the interfaces driver goes to
register the netdev notifier which is blocked on the rtnl_lock
currently held by the dev_open resulting in deadlock.
To mitigate the issue register the netdev notifier before the
interfaces are registered.
Change-Id: Ibb0c187a43ad87fa535ff583316af430e1ddf04f
CRs-Fixed: 2078720
In the Loadonce unload never driver the modules_start and modules_stop
happen multiple times and presently the memory for target_name is
allocated multiple times during the start_modules but freed only
once during the module_exit, so when the driver is unloaded
this can result in a crash.
Moving this to stop_modules will help in freeing this everytimg.
Change-Id: I87a92c8b411fb0ae148a293d74e6914246b88014
CRs-Fixed: 2107392
In certain cases during the SSR/PDR after shutdown the interface
up of the driver can be invoked before complete recovery is completed.
This can lead to accessing the bus which is not clocked or other issues.
Block the interface up from the upper layer until the recovery is completed.
CRs-Fixed: 2096446
Change-Id: I6b6569a10520d58e005e56046288ccc10592f725
Roam sync indication checks for csr roam state to determine if user
disconnect is not in progress. But there can be a race condition
where the csr roam state is not updated by disconnect and while
roam sync check the state and proceed.
To fix this set the disconnect in progress flag in sme session
as soon as disconnect starts in HDD and use that to determine if user
disconnect is not in progress when roam sync is received.
Change-Id: Icf541b698eb194621d19b03f281ec3dfd552e373
CRs-Fixed: 2112912
Add support for handling vendor sub command
QCA_NL80211_VENDOR_SUBCMD_ACTIVE_TOS and parsing its attributes.
CRs-Fixed: 2069865
Change-Id: I38f761f20007a04063b0e0680793aedcabd02c6a
Set the limit off-channel command parameters and conc_system_pref
according to active tos indication from application.
CRs-Fixed: 2066088
Change-Id: I896999adb59aa468daf33364c708d95ef3062018
Currently during PDR after client disassociation IPA client
disconnect event is not send because of recovery in progress
condition. After reload IPA pipes are not enabled as IPA context
number of connected stations are non zero which leads to data stall
of backhaul traffic. In this change remove recovery in progress check
which is not necessary in this case.
Change-Id: Id465f78fc224e2c08fb3977266e7032666a22692
CRs-Fixed: 2105106
Currently there is a race condition during enable of IPA WDI pipes
after IPA_RM_RESOURCE_GRANTED notification from IPA RM and at the
same time client disconnect happens. Because of this race condition
subsequent enable IPA pipes at the time of client connection IPA
driver returns error as the pipes are not disabled before. In this
change after requesting IPA resource check for IPA pipes state and
if pipes are not enabled then enable the pipes.
Change-Id: Idd0d4089efa5b81d5301a278fb0dd836db0ecb48
CRs-Fixed: 2082118
IPA's exception path buffer is not freed if adapter is invalid.
Free exception path buffer if adapter is invalid.
Change-Id: Iacaea4d96a6233764da3cf4b302d7ed9affe6d95
CRs-Fixed: 2092131
The IPA SKB's stuck in exception path are flushed after
adapter is deleted can lead to null pointer dereference of
adapter as IPA skb's have reference to this adapter in
their CB struct.
Flush ipa_pm work during the stop adapter and ensure the queue
is emptied and no outstanding buffer from IPA exception path.
CRs-Fixed: 2092131
Change-Id: I24f0c166cee1b5e0fed1c0c49a53c1a2117c900c
Add ini items for current and candidate rssi thresholds used in
mbo bss transition context.
Change-Id: I834c87aaaf776cdc293718fb994b4aae38af6a8b
CRs-Fixed: 2007107
During initialization, bug report lock is initialized after logger
thread is created and during deinitialization, bug report lock is
destroyed before logger thread exits. As logger thread uses this
lock there is a possibility of logger thread to access uninitialized
lock.
To mitigate this issue initialize/deinitialize lock after/before
creating logging thread.
Change-Id: I973c9b6c7eed38cbbc09258a54e587078ddb37e1
CRs-Fixed: 2094510
Device crashed while accessing the unintialized
memory as part of scan request processing.
Initialize the scan params structure to zero.
Change-Id: Iaf430c6edb485a009f8d932ce0c2d033b9ec6137
CRs-Fixed: 2116256
Moved unnecessary kernel message to debug logs where ever not
required in kernel logs
Change-Id: If7b69fbdc4afea4597d38a44f786ee221ee917b2
CRs-Fixed: 2042092
As part of start_ap new beacon memory is allocated and filled with
the parameters sent by the upper layer. If there is any failure
during the start the bss, the memory is not freed resulting in
the leak.
Free the allocated beacon memory if there is any failure in starting
the bss.
Change-Id: Idc263ffbb352e56d65d397b200facb23b7ab207c
CRs-fixed: 2033325
Currently logs are printed from HDD during scan and connect for every
retry, which is causing MCThread to get stuck at printk and crash
Rate limit the hdd logs to print for every 5 retries to avoid filling
the log buffer. Also change some error logs to debug level.
Change-Id: I09ad38cd89bbd20081673142bf5a350c55b0f005
CRs-Fixed: 2090761
With the latest logging guidelines info logs will be routed to
console there are lot of redundant logs causing the watchdog
bark during driver initialization.
Reduce the loglevel from info to debug so these will be logged via
Loggerapp.
CRs-Fixed: 2040730
Change-Id: I2f073e3ab2fe9c129867cadd54c9f27a6b0e65c8
In hdd_send_re_assoc_event api to get ieee80211_channel,
channel number is passed to ieee80211_get_channel kernel
API which expect frequency as an argument.
Pass frequency to ieee80211_get_channel API instead of
channel number.
CRs-fixed: 2053536
Change-Id: I216889d13252c56e817c4e09e77459cc38f8e9ec
Currently hdd_clear_fils_connection_info is called for all device
modes which is leading to crash in SAP mode due to illegal memory
access.
Add check to invoke hdd_clear_fils_connection_info only if the
device mode is STA.
Change-Id: Ia0e28c29d809865169c254b0d45013aad39e13d2
CRs-Fixed: 2106324
Currently, Host performs validation of NLA attribute
QCA_WLAN_VENDOR_ATTR_OCB_SET_CONFIG_CHANNEL_ARRAY twice
which leads to memory leak.
As a part of fix, Check for SET_CONFIG_CHANNEL_ARRAY
only once and free memory in error scenario.
Change-Id: I5c90c937682417b8181fda7d499908b9425d4c6a
CRs-Fixed: 2103954
When host receives roam sync indication from firmware
and if state in PE is not equal to eLIM_SME_LINK_EST_STATE
then roam is aborted. As part of eCSR_ROAM_FT_START,
ft_carrier_on flag is set to true but is not set to false
as part of roam abort handling in hdd_sme_roam_callback api.
This results in not sending subsequent connect result to nl.
Fix is to set ft_carrier_on to false on roam abort.
Change-Id: I43c65730fd439145c22dbf77b0deb47a1bf2ef45
CRs-Fixed: 2105072
Currently, Host configures the NS entries through vendor command
where host do not check the active offload is enable or disabled.
Hence it is not configuring according to active offload ini.
As part of fix, Cache the vendor command value and check whether
active offload is enabled or not before configuration to fwr.
Change-Id: Icb11e43198a75975418a2c9ed95d5f1df05ce0c5
CRs-fixed: 2105071