Interrupt handlers do not have valid process context and hence
current pointer is not valid for software/hardware interrupt
handlers. In WLAN log to user space API current process name is
logged using current->comm but hardware/software interrupts do not
have corresponding current pointer because they use current pointer
of interrupted process. Make changes to not to log process name when
log message is generated from hardware/software interrupt handlers.
Change-Id: I42420c501f9e7161112c5210909f83755ba4813e
CRs-Fixed: 1065898
qcacld-2.0 to qcacld-3.0 propagation
Add radio index at the end of wlan svc msg in TLV format inorder
to maintain the backward compatibility with user space application
like wlan_services and cnss_daemon.
Change-Id: If578d66eada17784eef7daafa7351df95fc74f5a
CRs-Fixed: 1019664
(cherry picked from commit 6a1d4b9d33b10ed50990efc825e530e020661153)
(cherry picked from commit 53627e3d41d55a9d71889443daa2ab769227c170)
When pktlog is enabled in INI (i.e. no iwpriv commands are issued),
store the events forwarded from firmware into the pktlog buffer.
Host will not honor any pktlog disable command if pktlog enable command
was not sent previously with WMI_PKTLOG_ENABLE_FORCE.
Change-Id: Id0b7dd6b4573147eef9b80b57bc78284e52807ec
CRs-Fixed: 1062295
(cherry picked from commit 07e5fbfcf0ec1ca7e92721a523e401e70887f487)
Fix below issues:
1) check cds_get_context results before use
2) remove function calls from ASSERTs
3) make sure variables are initialized before use
4) check pointers for NULL before dereferencing
Change-Id: Iac92e6f2d1030a7dd12469e34341135bea7c781f
CRs-Fixed: 1047286
(cherry picked from commit a2547fd35fc517abfbc96363768b5d036d59d057)
qcacld-2.0 to qcacld-3.0 propagation
Observed kernel panic due to the race between initialization of
logging wait_queue in supplicant thread context and the same
uninitialized wait_queue is referenced in MCThread context.
To mitigate this issue, don't send logs to upper layers if logging
service is not initialized.
Change-Id: I96e3efb3947279be64b83a27a7e2458d04021c4e
CRs-Fixed: 963275
(cherry picked from commit fe200c52491b12087752a46bc602288adaf26557)
qcacld-2.0 to qcacld-3.0 propagation
Currently there are no diag events to debug auth, assoc timeouts
and memory failure. Add such diag events which can be useful during
failures.
Change-Id: Iec4c2a9946fbef388959fdc796273944d3be8003
CRs-Fixed: 954888
(cherry picked from commit 96f330d11abe16a35c13a87346e8e60cbd0c7141)
qcacld-2.0 to qcacld-3.0 propagation.
As there are a lot of prints dropped on the console in
short duration, it leads to interrupt disablement on
the cpu.
So reducing the logging level of log statement from
ERROR to INFO
Change-Id: I3eefac49378a7bfbcc235b1dd3362e1213fa1f42
CRs-Fixed: 886644
(cherry picked from commit 06c7d1b4aa89fb5c25241cec0558d559ee93b683)
qcacld-2.0 to qcacld-3.0 propagation
Reduce unwanted netlink log messages and modify the error value
print format from hex to decimal.
Change-Id: Ia94efe17b80d5f3c4a7006b914f4f0586360fded
CRs-Fixed: 804176
(cherry picked from commit f986a945d7124c5bcc962dc0b7f0642828b7687f)
Add type_specific_data for PKTLOG_TYPE_SW_EVENT in the pktlog header
to parse it so that pktlog script can do further processing based on the
value passed in that field.
Change-Id: Ia68d9e3ea02942c050c133f4547a353634d65e1c
CRs-Fixed: 1062295
(cherry picked from commit 1ab48b89e671ee62b384c2cbd7fede68cf963da6)
Currently, the apps processor can power collapse in the middle of
DHCP negatiation. A wake lock was added to prevent sleeping until
negotiation is complete.
Change-Id: I9f133667ddb8fe27f43e6d7491006b881ad56d44
CRs-Fixed: 1061879
qcacld-2.0 to qcacld-3.0 propagation
wlan_queue_logmsg_for_app is called while holding spin lock with
interrupts disabled. It may call pr_info to log if node is dropped
while sending to user space.
This may cause interrupts disabled for some time.
As part of fix remove all pr_info from wlan_queue_logmsg_for_app.
Change-Id: Iffa5d463ae4e807bb30ff6eec5f3949735663fd5
CRs-Fixed: 1005714
Changes to configure different rx data path rx_thread,
RPS or NAPI through ini parameters. Also added support
for RPS mask setting using cnss-daemon.
CRs-fixed: 1026370
Change-Id: I23ab8fe0f05245b38cf4b37e93da8fd99d4c1f68
In current code base, some of files are not meeting linux coding
standard.
Fix them to satisfy coding standard.
Change-Id: Iedb1ec9ad7c75cb9f7ef97b19f14dca3b5eb9b6c
CRs-Fixed: 1051212
Propagation from qcacld-2.0 to qcacld-3.0.
Avoid NULL pointer dereference when ASSERT is disabled by adding
extra handling in epping_tx_complete_multiple.
Change-Id: I06696bb2588620244fafde431c4cd56bcb8a4301
CRs-fixed: 1038668
FW common files needs to be in sync with host and fw.
Add changes to compile successfully with latest version
of FW interface file.
Change-Id: I487a18185c406da5c2fb07e2a95cafe4793578aa
CRs-Fixed: 1012542
epping_disable needed to check that contexts were
not null before trying to perform the disable opperations.
Change-Id: Ia8182b1deed1a6a1d2643f91660880fb52450e3d
CRs-Fixed: 1027691
qcacld-2.0 to qcacld-3.0 propagation
Currently for diag event EVENT_WLAN_STATUS, diag
structure only allocates 6 bytes for ssid, though
ssid can be upto 32 bytes.
Also for diag event EVENT_WLAN_SECURITY, event id is
filled as PTK and GTK req/rsp for unicast and broadcast
req/rsp. PTK,GTK request doesn't make sense for wep case.
As a part of change, increase ssid size to 32 and replace PTK,
GTK req/rsp event id with Unicast, Broadcast req/rsp respectively.
Change-Id: I5aad1875262dd73878cc8393d09de1b23953d3a2
CRs-Fixed: 921847
Add NULL check for pointer qdf_ctx as it returned from call to
function 'cds_get_context' may be NULL and could be dereferenced.
Change-Id: Iea44cd1a2d20ee04d1720c4e8af1065320a589fd
CRs-Fixed: 1024778
nlmsg_put might return NULL if the tailroom is insufficient
to store the nl message. Add the check to avoid the NULL
pointer access.
Change-Id: I01f88262e7cf84cd611c8f72a11577e61e7af1a3
CRs-fixed: 1024810
qcacld-2.0 to qcacld-3.0 propagation
CONFIG_CNSS_LOGGER is introduced to move the logging feature from
CLD driver to kernel module.
This change will mainly benefit for two things for CLD driver.
- To support for dual wifi driver instances and also
future plan of moving out the logging thread and buffer
management to the kernel module.
- While debugging the critical feature that triggers the
autoshutdown and SSR, the log buffer in the CLD driver will
be lost after the driver restart or unload.
The CLD driver will register itself to the cnss logging module and
get the radio index as the indentification for rest of the operation.
Also the message sent from CLD driver to usespace need to be packed with
struct tAniNlHdr; and the hddctx.radio_index need to be filled along with
the message, so that usespace can differentiate the message.
Change-Id: I7ea6cdefac0916b9d4dd76da175607bf7169a8fa
CRs-fixed: 995073
qcacld-2.0 to qcacld-3.0 propagation
Current cnss_diag implementation, do not send NL message in order to
register with host driver, as host driver broadcasts both firmware and
host messages to all the userspace apps whoever is listening on NL
socket.
Hence broadcast logs irrespective of cnss_diag is running or not. Also
do not indicate host driver load/unload status to cnss_diag app.
Change-Id: Ib36324f5bb8dc50521e4646b6184cfe586c10104
CRs-Fixed: 993754
qcacld-2.0 to qcacld-3.0 propagation
Auto Shutdown cancel indication is needed to identify if a
driver is active in multi wlan radio platforms. Userspace
application processing auto shutdown event combines these events
from multiple drivers to arrive at system idle condition for
auto shutdown.
Change-Id: Icc51386bde58d3882e36ab09cd31a527b140a937
CRs-fixed: 1001128
FW DIAG log events are serialized to MC thread(WMA message queue)
which is causing PE/SME message queues starvation when FW is
generating flood of debug log events. Since WMA message queue has
higher priority than PE/SME message queue serialized FW debug log
events eventually lead to SME command queue time out because PE
message queue is starved. Fix this PE/SME message queue starvation
by moving FW diag log event processing to kworker thread.
Change-Id: Ifd8688c61bfdd132a4727d377cfc2e975e5c5b13
CRs-Fixed: 1011762
qcacld-2.0 to qcacld-3.0 propagation
Some logs while Processing netlink messages are excessive.
Remove these redundant logs.
Change-Id: Ic5104e6fb2d306b488adf2a3919e004e5b57e186
CRs-Fixed: 879049
TargetSendSuspendComplete should take the HTCInitInfo
context as an argument. The wow_nack should be its
own argument.
Change-Id: Ib13385cf0a04730d066ffcd53c1f669c7a5ced60
CRs-Fixed: 1003793
Use QDF macro to check if we are in epping mode.
Remove bit masks of epping configuration.
Change-Id: I454ef259dfcc4b7c7860a5adfda605837f4a89cc
CRs-Fixed: 1003792
qcacld-2.0 to qcacld-3.0 propagation
Change to initiate BUG report in case of fatal event
Add INI support to Enable/Disable it.
The fatal event handled are as below:
- Roaming failed after successful preauth.
- SME command timeout.
- PE defer queue is full.
- CDS run out of message wrapper.
- HDD level wait for event timeout.
CRs-Fixed: 912560
Change-Id: I64dff8b7d0836340ce3bec5f5985d1919b600c23
qcacld-2.0 to qcacld-3.0 propagation
Add diag event for EVENT_WLAN_TDLS_TX_RX_MGMT. This event contains
TDLS action frame type, subtype and if its rx or tx.
Change-Id: I6ec744518b7a391e4511c503cb858d532ef11322
CRs-Fixed: 934447
qcacld-2.0 to qcacld-3.0 propagation
Add diag event for EVENT_TDLS_SCAN_BLOCK. This event indicates if
scan is blocked because of TDLS.
Change-Id: I00dd9d2a54cbe054b400b2d1cb74c0e14b9a13d7
CRs-Fixed: 934456
qcacld-2.0 to qcacld-3.0 propagation
Add diag event for EVENT_OFFLOAD_REQ. This events contains info
if host has enabled or disabled the offload.
Change-Id: I19fe216ac0900dedbcb7b247cf0d171979308dc5
CRs-Fixed: 934455
qcacld-2.0 to qcacld-3.0 propagation
Add diag event for EVENT_WLAN_SUSPEND_RESUME.
This contains info if driver has entered early suspend, suspend,
early resume or resume state.
Change-Id: Ic9bb815667ea9203d44a3c3cfcecbdbae573e717
CRs-Fixed: 934452
qcacld-2.0 to qcacld-3.0 propagation.
Add diag event for EVENT_WLAN_TDLS_ENABLE_LINK.
This event contains below info:
- peer mac address
- Does peer supports off channel
- Is off channel configured
- Is off channel established
Change-Id: Ib491d8ac1d8a7850a050bf14a60b6eb08ab94078
CRs-Fixed: 934449
qcacld-2.0 to qcacld-3.0 propagation
Add diag event for TDLS teardown. Event contains reason for
teardown and peer mac address.
Change-Id: Ib04deac6cf7d61fae1a7bb0d0fb8f4dc652b3217
CRs-Fixed: 934448
Epping nbuf packets were being tracked by cdf nbug tracking. This change
stops tracking of packets prior to being released into the network stack.
and uses the correct nbuf free routine for tx packets.
Change-Id: Ib986fb595139ace706db00839cf1dabb983013fd
CRs-Fixed: 989695
Modify wmi layer API calls with respect to new common wmi layer.
Register all wmi service events using standard wmi event register API.
Remove TLV formation of common API from wma layer.
Pass rx scheduling context of wmi events during event registration.
CRs-Fixed: 976998
Change-Id: Id490db96c28778ec371dd633d43dfa002c08c16a