Define HDD API to get adapter by interface name. This will be used in
NDI + NDI and similar scenarios.
Change-Id: Icd7fb7c60c67e73aa030752b2e6840853a242fc9
CRs-Fixed: 2032704
Do not free request pointer in wma_hold_req_timer, if not found
in the list, because firmware response would have consumed and
freed it.
Change-Id: Ibf561243c606b40e45c8b1cd7c0d2559e0ea85aa
CRs-Fixed: 2027853
After supplicant issues a new PSK_PMK send a ROAM_OFFLOAD_START cmd
to firmware to update latest PMK to firmware so that it can send
correct PMK in 4-way EAPOL handshake.
Change-Id: Ied2ba70ca7538ddf7b63478585c53bf174b62c38
CRs-Fixed: 2032853
Add support to add memory tracking in tx path in WLAN driver using
already present infrastructure for memory tracking.
Change-Id: I6a2c9890e0af1fd51c4e2dfcded68f0075a3a4ef
CRs-Fixed: 2025668
Race condition is happening when tx traffic is running and simulataneously
suspend is going on. hdd_hard_start_xmit() is called under txq->__xmit_lock
and in case of low descriptor scenario, it goes to pause the netif queues
and trying to take adapter->pause_map_lock for doing so which is already
acquired by another thread. In another thread, suspend indication is being
preocessed and as a result is trying to pause netif queues with
netif_action WLAN_NETIF_TX_DISABLE which takes adapter->pause_map_lock and
then calls netif_tx_disable() which is trying to take txq->__xmit_lock
already taken by the thread executing hdd_hard_start_xmit(). This leads to
a deadlock situation.
Replace netif_tx_disable() with netif_tx_stop_all_queues() as
netif_tx_stop_all_queues() is doing the same thing as netif_tx_disable()
only without taking the txq->__xmit_lock which prevents this deadlock.
Change-Id: I5afafe6435707bd8f0e87972a740f908d06ce847
CRs-Fixed: 2030933
For IBSS, firmware does not add self peer for each mac and thus
if HW is capable of DBS the firmware crash when scan req is received
on IBSS vdev. Also IBSS vdev does not need to scan to establish
IBSS connection.
To fix the crash, block the scan on IBSS vdev when DBS is enabled.
Change-Id: I41eda671d263a72ccb2b0c27212dd1d983043bca
CRs-Fixed: 2029880
UMAC components uses its own logging level configuration,
but now all the log level checks are handled in QDF.
Hence remove the support for WNI_CFG_LOG_LEVEL.
Change-Id: Ib1f47efe6a8f0113543d855ed2a05b86170b7675
CRs-Fixed: 2020798
Log level check is currently handled in QDF and hence we don't
need another redundant check in UMAC modules.
Change-Id: I86e7341ab3a634b50a4c4c2d70f6651e6e1f8de5
CRs-Fixed: 2020798
With I446c7d7589534688e04579ed434de0803ed8b4ff, STA adds
FILS request parameters IE in Probe Requests. But FILS capability
is not set in extended capability IE.
Enable FILS capability bit in extended capability IE.
Change-Id: If409185f785a4c1905b60df5935baf313f638887
CRs-Fixed: 2018546
Add INI "g_qcn_ie_support" INI and selectively add the QCN IE
in probe/assoc/reassoc request based on the INI.
Change-Id: I6039bb5366feb77b4c601bcde00b4bd5d92a3b23
CRs-Fixed: 1117320
If number of BSSID tried by CSR reach max bss limit for the
connect request, no more AP are tried and failure is sent to hdd.
But as PE session ref count is 1, assoc completion is sent instead
of assoc failure and thus HDD does not send the connect failure to
upper layer. Also the HDD state remains in
"eConnectionState_Connecting" state and is not moved to
eConnectionState_NotConnected state and thus scan fails.
To fix this decrease the PE session ref count if number of BSSID
tried by csr reaches max BSS limit for the connect request.
Change-Id: I43ea4fa67d968ee648c47c2d52c0dd98d67f051d
CRs-fixed: 2027306
In wma_start_extscan scan req params is allocated but not freed
once command is sent to WMI.
Fix it by freeing the scan req params once sent to WMI.
Change-Id: I3eb37b33c3731e69991b9d67aa9274abeebb5339
CRs-Fixed: 2029379
WiFi currently has no mechanism for tracking software path statistics.
However, quota usage must be aggregate of all traffic occuring over
STA (SoftAp HW, SoftAp SW, Embedded, Other Tether Traffic).
This is a WLAN host side change to support this; send set Quota
message to FW even before first client connected.
Change-Id: Ica326ae4a11b465ed3131652ac311c7a76e01253
CRs-Fixed: 1097371
IPA uC quota bytes is 64 bits long, however wma_cli_set_command
passes only 32 bit value, so only LSB is passed to FW.
To set full 64 bits to FW, pass MSB of the quota value using second
value parameter of wma_cli_set2_command.
Change-Id: Iace8c4a856fcadaa1492b843e24901ab63657550
CRs-fixed: 2007400
Add structure changes for querying WDI-stats, register the callback
functions for IPA to query WDI stats and sets the quota limit
Change-Id: I05d9d50fad735fa0a57c4de23c81461f6e12b648
CRs-Fixed: 1095710
SSR is triggered on scan stuck even if self recovery
is not enabled.
Fix is to trigger SSR in case of scan stuck if self
recovery is enabled.
Change-Id: I2b5d116a71bf479b80e72d33469e5862f98384bf
CRs-Fixed: 2012655
Implement iwpriv pktlog command to clear pktlog buffer.
This command is effective only if pktlog disable is issued previously.
This command needs one argument.
Command to use this feature : iwpriv wlan0 pktlog 4
CRs-Fixed: 2031210
Change-Id: I19d695c30608ab8cde21ee251eee5c5d43d89751
Update dot11mode in add bss request based on the add bss params
passed to wma_add_bss_ap_mode.
Change-Id: I775e7f95f7bcb8866dfca8cd831bafffbc318b2d
CRs-Fixed: 1073481
Return failure if ce_send_fast fails and let caller, HDD free the Tx msdu.
If it happens to be TSO segment then free the to be trasmited TSO segments.
Change-Id: If3a16ca841e63e7941fe732013d3b3c351a4a286
CRs-Fixed: 2004780
cds_sched_open is invoked as part of hdd_wlan_start_modules and in case
of failure the cds_sched_close depending on the driver_State should
be closed as part of hdd_wlan_start_modules failure.
When the driver loads during the low memory condtion and if there
is any failure in the hif_open or cds_open start_modules returns
failure and as part of the failure cleanup cds_sched_close is getting
invoked which is waiting on completion for couple of events which
will not be set.
To mitigate the issue donnot invoke the cds_sched_close clean up during
the startup.
Change-Id: I51c67e7c723a06a8270c424f7e16ea45c6cd4012
CRs-Fixed: 2019986
Currently driver is not sending channel stats flag in scan even
if gEnableSNRMonitoring configuation is enabled.
Add changes to add WMI_SCAN_CHAN_STAT_EVENT in scan flag if
gEnableSNRMonitoring is enabled
CRs-Fixed: 2031304
Change-Id: Ibc887f1030c86441aa7b3ccbddfcc3bb30c8640a
Check for validity of country code coming from hostapd configuration.
If hostapd country code is not valid; SAP may stop since invalid country
code lead to setting of world reg-domain.Also program the default country
code after wiphy is initialized, rather than when an interface is turned on.
Change-Id: Iefc250df741a95cc4b21bdd4fe7e4c076fdf3b06
CRs-Fixed: 2029127
qcacld-2.0 to qcacld-3.0 propagation
Crash happens when driver continues to access target register in
ol_target_failure when driver is unloading.
If rmmod happens firstly, do nothing in ol_target_failure in ssr.
If ssr happens firstly, wait for ssr finish in rmmod.
Change-Id: I2a4980b6cd4b689da07c34f2acdfaafbbb0715bb
CRs-Fixed: 2025585
qcacld-2.0 to qcacld-3.0 propagation
Currently if acs configs channel width as 40/80MHZ, it may select
invalid channel as its second channel.
When doing sap_select_channel, if acs configs channel width as
40/80MHZ, every candidate channel and its adjacent channel should
be checked whether it can satisfy 40/80MHZ or not. Mark the weight
of the channel that can't satisfy 40/80MHZ as max value
in sap_sort_chl_weight_all, so it will not be selected.
Change-Id: I69abbb752be8d0fae2644a9000156735048d6d16
CRs-Fixed: 1085469
1) Fix for memory leaks lim management frame registration queue by
unconditionally removing all nodes from queue and releasing the
node pointer. This need to be done for FTM mode also.
2) Free u_mac_post_ctrl_msgu_mac_post_ctrl_msg in the error cases.
3) In wma_tx_packet(), free tx_frame memory in error cases.
Change-Id: Idbae6b2666d38d0f130d0115e5a05387c0b63c31
CRs-fixed: 2027588
Wiphy is not getting unregister at the time of unload because of
that kernel has stale pointer which is causing a crash.
Add a proper check for wiphy during unload and unregister the wiphy.
Change-Id: Ibbdc3966f37bc628552c0118297f82065fa04d46
CRs-Fixed: 2027470
Presently on the re-init failure when the driver tries
to unregister the wiphy during the re_init failure
SSR timeout happens because the wiphy_unregister
would be waiting on the interface opencount to be set
to 0, it would happen only if the netdevice's are de-registered
with the kernel before wiphy_unregister
De-register the interfaces during the reinit failure so that
upper layer is blocked from accessing the driver and also have
a clean rmmod of the driver.
Change-Id: I3d97df19f6c59fcfd1d423d5cc4eae85040d4a97
CRs-Fixed: 2019989
Fix kernel checkpatch warnings in qc_sap_ioctl.h. As a part of
checkpatch warnings remove the unused structures/enums.
Change-Id: I0144c3cf2d40c115d4965cd0e230c928c710f82a
CRs-Fixed: 2024274
Add ref_cnt implementation for flow pool to synchronize
usage and deletion of flow pool.
Change-Id: Idb52c74df6a771b776e3df6bf4aea5c150b5fc7a
CRs-Fixed: 2025757
Introduce different ol_trxrx print apis based on log levels.
Move the logs to appropriate log levels to reduce
the log spam in kmsg.
CRs-Fixed: 2019261
Change-Id: I14dfedb1a71b10043571112f05965935dd91a90e
This is a qcacld-2.0 to qcacld-3.0 propagation.
Remove obsolete set/reset ssid hotlist.
Change-Id: Ie6c4a9847f2daa9ba2aebd17f386d584201b86d6
CRs-Fixed: 1102593
In sdio interface chip, both sdio_data2 and uart_tx pin will use GPIO6.
It is set by fw rom code, which will cause sdio CRC error when there is
sdio transaction. Override uart tx pin to avoid side effect to sdio pin.
Change-Id: Icd268e607c51238dcea7e8e3a55dceb96d5b1c1a
CRs-Fixed: 2019742
2048 packets could be pending in the ce and the tx_queue
depth could be pending in the htc queue.
Change-Id: I2eedd9dd7300058a4b3024dd97c826c08f8c44bd
CRs-Fixed: 2019589
In one version of ol_tx_ll_fast a null tx_desc will be dereferenced.
ol_tx_desc_vdev_update is called when tx_desc is guaranteed to not
be null. Move the vdev_id assignment into ol_tx_desc_vdev_update
to simplify the code and fix the null pointer dereference.
Change-Id: I01b2e81ee3f19cdf3f2f74ccc575df767891f472
CRs-Fixed: 2020708
LOGD log level should be used for all INFO messages
in sme layer.
Change LOG1/LOG2 logs to appropriate log levels
Change-Id: I9a0dacc7bb2feea1370d33f536a5cf715f1a1f63
CRs-Fixed: 1093093
Lot of info logs are periodic and cause log spam.
Add changes to remove excessive logging.
Change-Id: I1ae4f366f359fd90856743b4c2689ad9aad3417b
CRs-Fixed: 1093093
Move the logs to appropriate log levels to reduce
the log spam in wlan_hdd_lro.c
Change-Id: I4d533a881cc27f124619bf28d597821abaeb13e2
CRs-Fixed: 2014745
Move the logs to appropriate log levels to reduce
the log spam in wlan_hdd_ioctl.c
Change-Id: I1dbe7da4bb778b51cdef88e2b9d5c640f6bf2f42
CRs-Fixed: 2014745
Move the logs to appropriate log levels to reduce
the log spam in wlan_hdd_main.c
Change-Id: Ic6560a87012d2049e27abf1f505448ae410d08be
CRs-Fixed: 2014745
Move the logs to appropriate log levels to reduce
the log spam in wlan_hdd_power.c
Change-Id: I6280f38da835c0b599745c99fbbb12dd699c3ef5
CRs-Fixed: 2014745
Move the logs to appropriate log levels to reduce
the log spam in wlan_hdd_p2p.c
Change-Id: I524f0602cb2142b0ed390c86a2dd4aaafd3f3595
CRs-Fixed: 2014745
Move the logs to appropriate log levels to reduce
the log spam in wlan_hdd_memdump.c
Change-Id: I96a36868dbb68eb5f7b78af2ef404af56443e7f2
CRs-Fixed: 2014745
Move the logs to appropriate log levels to reduce
the log spam in wlan_hdd_scan.c
Change-Id: I0210c57968d26819de5e15bbe00193cd3e65703a
CRs-Fixed: 2014745
Move the logs to appropriate log levels to reduce
the log spam in wlan_hdd_wext.c
Change-Id: Ice75a9a3acd5c9fff07082eb2963c24aec42e1c2
CRs-Fixed: 2014745
Move the logs to appropriate log levels to reduce
the log spam in wlan_hdd_stats.c
Change-Id: I0c953ce53c061e93b74b190c1bd31de7b9c045c3
CRs-Fixed: 2014745
Reduce the logging level to info so to reduce the spamming of kmsg and
avoid watchdog bite due to this.
Change-Id: I26ef04f7a82fc2e2a59da67a28dba2cf152ca251
CRs-Fixed: 2024738
So that wmi handle is still available, move dispatcher_psoc_close to
beginning of cds_close
CRs-Fixed: 2030449
Change-Id: I834c8994cbda4b413288921c3142984014621d65
Move the logs to appropriate log levels to reduce
the log spam in wlan_hdd_ipa.c
Change-Id: Ibb9c60d9a70065716fee026ed93ac09256f42e1f
CRs-Fixed: 2014745
Move the logs to appropriate log levels to reduce
the log spam in wlan_hdd_hostapd.c
Change-Id: I5d923e5ada1a9acf22c8fdecf3e1b2416a10745c
CRs-Fixed: 2014745
Move the logs to appropriate log levels to reduce
the log spam in wlan_hdd_green_ap.c
Change-Id: I008b44fb64f9b476e17160f401b6dc47844fb004
CRs-Fixed: 2014745
Move the logs to appropriate log levels to reduce
the log spam in wlan_hdd_ftm.c
Change-Id: I9e16494bb950779a5617e7bfac3821d1548b7192
CRs-Fixed: 2014745
Move the logs to appropriate log levels to reduce
the log spam in wlan_hdd_ext_scan.c
Change-Id: I13bb9afc7bb372edc2a30ff216b8fdff43b68247
CRs-Fixed: 2014745
Move the logs to appropriate log levels to reduce
the log spam in wlan_hdd_driver_ops.c
Change-Id: I5e57ac3a9af43cbe16b56a34fd33eaf570ced16e
CRs-Fixed: 2014745
Move the logs to appropriate log levels to reduce
the log spam in wlan_hdd_disa.c
Change-Id: I8c29331562a3eacc8891e52f5eaa5c7b73e7cf15
CRs-Fixed: 2014745
Move the logs to appropriate log levels to reduce
the log spam in wlan_hdd_debugfs.c
Change-Id: I03b0bbaaff808ac6597ae3d05b4da090feeb7220
CRs-Fixed: 2014745
Monitor mode channel set operation derives invalid channel width if
we try to set not allowed channel for country code, make sure to return
failure instead of going ahead with invalid channel width.
Change-Id: I498555a9c90497ef225f536c904b8e7ea8f8d4a2
CRs-Fixed: 2016185
Add ini param qdf_trace_enable_nan to control NAN logging
level from config.ini
Change-Id: I4c6fe18efd16344c303429904b12affc9c6c0528
CRs-Fixed: 2014795
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