During performance testing system stability issues were observed which
were attributed to excess logging in hdd_check_wext_control(). In
order to avoid such issue, rate limit those messages.
Change-Id: Ia0fa6f8a3fd7150ab3b8f2417bdb5087241c51e3
CRs-Fixed: 2332711
Avoid excessive console logging from NUD stats cb which
can lead to watchdog error.
Change-Id: Ida3c732fd5fe4c9ea0f9e08df2bf1656023bb810
CRs-Fixed: 2332618
__wlan_hdd_cfg80211_change_iface() has a number of obvious style issues.
Lightly refactor __wlan_hdd_cfg80211_change_iface() to address the low
hanging fruit.
Change-Id: Ib2efa7405e986e73a5c5b6fc7e5509eeebd2e6f3
CRs-Fixed: 2330973
wlan_hdd_cfg80211_set_txpower() currently expects the input power to
be in units of dBm. However cfg80211 specifies the set_tx_power()
method will pass the power in mBm, and that to get dBm the driver
should use MBM_TO_DBM(). The userspace tool "iw" also expects the
power to be in mBm.
In order to comply with the definition of cfg80211, change the
implementation of wlan_hdd_cfg80211_set_txpower() to expect the power
in mBm and use MBM_TO_DBM() to convert the power to dBm. But for
backward compatibility with userspace entities which are expecting the
current implementation, if the converted power is 0 then assume the
input power is already in dBm and use it without conversion.
Change-Id: I7c64f7ac14249a307357c91f8bea4dad8d59ff28
CRs-Fixed: 2331003
Currently the command timeout value in serialization for start_bss
and stop_bss commands for SAP are set to 30 seconds which is too high.
Reduce the command timeout value for SAP start_bss and stop_bss
commands in serialization to 10 seconds.
Change-Id: I1bcfe13de92a703ec55445b344a502f7843bbed8
CRs-Fixed: 2331830
Check for dhcp packet type before processing on packet sta_id.
This reduces per packet mem_copy and mem_cmp instructions for
sap Rx.
Change-Id: I4a2732ff4d9e3fa31aace25cc824f26b0c339b52
CRs-Fixed: 2331420
There is no sanity check for hdd context and sap config in
start acs api which may lead to NULL pointer access.
To avoid this issue, validate hdd context and sap config
before accessing these pointers.
Change-Id: I0a3f6a91a6bc5a517c035c9e7d706e66aea62fd4
CRs-Fixed: 2331412
Currently in function wlan_hdd_cfg80211_start_bss(), copying
supported rates and extended rates from information element pointer
without checking for array bounds which may cause OOB access.
To address this issue, add length checks before copying supported
rates and extended rates.
Change-Id: Ic6363e97bb3498a5dd23bc5e5f9b9f3ce093509d
CRs-Fixed: 2312995
PLD FW down uevent is asynchronous which races against all critical
driver transition events like probe, remove, shutdown, reinit and
hence move wmi_stop to wma shutdown notifier callbakk such that its
protected against all critical driver transition events.
Change-Id: I91046efeab8bc13b9f5c37d5a4d02b66c63e35a9
CRs-Fixed: 2330980
When interface change timer expires, wma_wmi_service_close() is
called from hdd_iface_change_callback()->hdd_wlan_stop_modules()
->cds_close(). wmi_handle is made null here. At the same time,
if there is a modem reboot, host will receive early
indication from FW. Due to this, icnss driver sent
ICNSS_UEVENT_FW_DOWN event to host and it calls wmi_stop() again
from icnss_call_driver_uevent()->pld_snoc_uevent()->
wlan_hdd_pld_uevent() -> wlan_hdd_set_the_pld_uevent()->
wma_wmi_stop() -> wmi_stop(). As wmi_handle which was marked
null during wlan stop modules, this causes potential NULL
pointer dereference.
Flush iface_idle_work before wma_wmi_stop and add NULL check
before accessing wmi_handle.
Change-Id: I1bfa8ab7329040c0b5ba989c0d7de7bf7228dd35
CRs-Fixed: 2328575
Make the following updates to the extscan get capabilities logic:
1) Exclusively use the Unified WMI data structures.
2) Update the HDD<=>SME interface to enforce the contract that SME
must not make any assumptions about the buffers provided by HDD.
Change-Id: I9e57c86a3da0924af01d82d626b61c28f7d520bf
CRs-Fixed: 2330211
In __wlan_hdd_cfg80211_suspend_wlan(), suspend process is bailed out
if hdd_suspend_wlan() < 0 due to which RX thread waits for completion
of ol_resume_rx_event.
Do completion of ol_resume_rx_event in __wlan_hdd_cfg80211_suspend_wlan
for error path to resume RX thread.
Change-Id: I8bf056f82d80e063b2e32a1a6573d7a36ced67dc
CRs-Fixed: 2327238
In con_mode handler, adapters are getting deinitialized
while cleaning up present mode which is happening after
stop modules. In stop modules driver checks for memory
leak which results in mem leak detection for the adapters
which are not freed yet.
To address this issue, move the deinitialization of the
adapters from clean up present mode to stop present mode, which
happens before stop modules.
Change-Id: I9cda456feb2b0c199f5c8d4debee21f0e07c47fb
CRs-Fixed: 2326340
Make the following updates to the extscan get cached results logic:
1) Exclusively use the Unified WMI data structures.
2) Update the HDD<=>SME interface to enforce the contract that SME
must not make any assumptions about the buffers provided by HDD.
Change-Id: I4144aa4cdb9c6d3ddaae30eedaec3096abf95857
CRs-Fixed: 2329405
Add pause and unpause statistics for below new netif actions:
WLAN_NETIF_VO_QUEUE_ON
WLAN_NETIF_VO_QUEUE_OFF
WLAN_NETIF_VI_QUEUE_ON
WLAN_NETIF_VI_QUEUE_OFF
WLAN_NETIF_BE_BK_QUEUE_OFF
This change is part of FR49094
Change-Id: I56452711b0e4c2176ed8ee398ea68fa5e60012ba
CRs-Fixed: 2307945
VHT Part3: Add the basic infra for MLME CFG items and the APIs
to be used from other components for VHT.
Change-Id: I8cd30439d7ac3de7b550aa5042353cf30e04cbda
CRs-Fixed: 2322304
Currently the driver calculates the nss score
based upon the max capability of the AP, and not the
hw_mde config which would be there after connection
for example, the driver calculates the score for a
2x2 11n AP, and 1x1 VHT (11ac) AP, it connects to the
11n AP in 1x1 mode, if a concurrent connection is
present, which affects throughput
Fix is to check whether the current AP channel results
in DBS or not, if yes then change the NSS to 1 instead of
2
Change-Id: I902393be5ea9cf88def9da6b3458bb6048655ce7
CRs-Fixed: 2288362
With commit I4ec1268eb491fec04a78b90e51c6e616d95e019e,
the function wlan_reg_get_channel_list_with_power sets
num20MHzChannelsFound to 0 because the current channel
list has not initialized yet for regulatory non-offload
case.
Change-Id: I6a055534f2b9a763a8cbba8fef3062ed6ea424cd
CRs-Fixed: 2319332
hdd_close_all_adapters() does not call hdd_close_adapter(), which has
lead to a divergence between the logic contained within. Update
hdd_close_all_adapters() and hdd_close_adapter() to leverage shared
logic to bring them back in sync, and prevent them from diverging again
in the future.
Change-Id: Ic2fe0908a48927a6fc403ca0f4c21275659908b3
CRs-Fixed: 2326433
Upon driver reinitialize after a FW rejuvenate,
data packets are not going through IPA path.
Check for FW rejuvenate scenario during driver
recovery and send appropriate message to IPA
driver.
Change-Id: I8c1d7ba78227684cd5653a5927aa4d4c2ce5d354
Crs-Fixed: 2287293
Replace usage of the below INI Items using MLME CFG instead of HDD config.
gPreventLinkDown
gSelect5GHzMargin
gEnableMemDeepSleep
gEnableCckTxFirOverride
gEnableForceTargetAssert
gEnableLpassSupport
Change-Id: Ib89272c7898db8d0c70a60640e00ca9364a9db74
CRs-Fixed: 2327025
Add the following WMM AC VO ini configs to MLME cfg:
1. CFG_QOS_WMM_INFRA_DIR_AC_VO_NAME
2. CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_NAME
3. CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_NAME
4. CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_NAME
5. CFG_QOS_WMM_INFRA_SBA_AC_VO_NAME
6. CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_NAME
7. CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_NAME
Introduce the basic infra APIs related to these configs
from mlme.
Change-Id: I402ff46aad528d7c4bbaa794b6fba498439f8e97
CRs-Fixed: 2327048
Add the basic infra for MLME CFG items and the APIs to be used from
other components for VHT - Part-1.
Change-Id: Ie74bfd42ed3d34cc218f20ee3f9d81dc6af02172
CRs-Fixed: 2322300
Driver unload called as part of "rmmod" which reports bug_on
in hdd_bus_bandwidth_deinit as bus_bw timer still running.
Bus_bw timer is not stopped when rmmod is issued if SAP is
enabled and any STA is connected to SAP.
Stop the bus_bw timer during unload for eSAP_STOP_BSS_EVENT
Change-Id: I0ed8309f25b85ebf8ca1e115cbd7aa1c931571ff
CRs-Fixed: 2323641
Rate limit error log in nan and ndp request handler to avoid
excessive console logging.
Change-Id: I9e9bb7185a77533b03e8a17d64c17371770b9b52
CRs-Fixed: 2326275
Presently the ini gReportMaxLinkSpeed has the default value as 2 that
gives the scaled rate to the userspace instead of actual rate. As the
userspace needs the actual rates, this causes a mismatch.
Configure the value of gReportMaxLinkSpeed to 0 so as to send the actual
rates to the userspace.
Change-Id: Ieaa828d1aabaf099c74a9d5093f5d6fab5da01b5
CRs-Fixed: 2317661
When BMPS is already enabled and we have entered the WOW mode,
we start detecting the AP behavior , where the AP
continuously sets the TIM bit and because of which we don’t go
to PM1 mode after waking UP.
With the current ini value, we don't go to sleep for 30 secs,
which should be updated to 90secs.
Change-Id: I3b551011e90761f1dc13197a4795972f495853a6
CRs-Fixed: 2306266
Since refined PMO configures based on converged cfg component, apply
PMO configurations, remove related legacy codes.
Change-Id: I2cdf18c1000d8cc923c80c00bf530b2b0c60563e
CRs-Fixed: 2322185
Resume wlan threads during wlan shutdown process before adapter reset
because adapter reset triggers vdev destroy and vdev destroy sends
del sta self message to lower layers and in absence of wlan threads
this message will not be processed leading to timeout and vdev peer
object leak. Hence add fix to make sure wlan threads are resumed
before resetting adapters during wlan shutdown process.
Change-Id: Idc31b7e41e5d9734b5f6b96fba24948dbfb45c3d
CRs-Fixed: 2321503
QOS action frame is not handled and thus HDD's dscp mapping
are not updated.
Update the HDD's dscp mapping properly once hdd receive
QOS action frame.
Change-Id: I04ba9882767918cfb0c551791783f2b7eac998d5
CRs-Fixed: 2325729
When peer creation fails in wma_create_peer, vdev delete is sent
to the fw and then eWNI_SME_ADD_STA_SELF_RSP is sent to sme.
Here three error cases needs to be handled:
1. The vdev deletion has happened, but the cdp_detach_peer is
not done. So the data path peer remains. Also the vdev_active
flag that was set after vdev creation was not unset.
2. The eWNI_SME_ADD_STA_SELF_RSP msg handler
csr_process_add_sta_session_rsp invokes csr_roam_session_opened
which signals HDD that vdev is created successfully and hdd
calls hdd_vdev_ready and vdev related parameter set commands are
sent to FW for the deleted vdev.
3. Vdev delete is not sent for objmgr peer creation failure in
case of VDEV_TYPE_STA and release vdev object ref count.
Add cdp_vdev_detach() calls during error case and set the
vdev_active flag to false. Handle releasing vdev object ref
count in all needed error case flows.
Propagate the error in wma_vdev_attach() through
csr_roam_session_opened() to HDD and abort the vdev create.
Change-Id: Iec97122d011098fae7ae2a59864fbe8ca8a0980e
CRs-Fixed: 2322212