Commit Graph

14576 Commits

Author SHA1 Message Date
Saket Jha
7741e86998 qcacld-3.0: Implement QDF API for cpumask
In cds_sched_find_attach_cpu function, change calls to functions
cpumask_clear, cpumask_set_cpu, and cpumask_setall to instead use the
QDF abstraction of these functions qdf_cpumask_clear,
qdf_cpumask_set_cpu, and qdf_cpumask_setall.

Change-Id: Ibd62e4d0f38ad3b8f2483e6cf40d56fcb70cba10
CRs-Fixed: 2486827
2019-07-16 17:14:55 -07:00
Kiran Kumar Lokere
d34e41fd41 qcacld-3.0: Remove current band check during new band setting
Current band value is updated with new setting and the new band
setting is allowed only if the new band setting value is lower
configuration than the current one else it fails the new band
setting. If user configures band setting to lower value and
if later setting value has higher configuration then the current
band check fails the new setting.

Remove the current band check during new band setting by runtime
user configuration.

Change-Id: I3facf99e567e34de3eb675f29962bf809040244e
CRs-Fixed: 2486679
2019-07-16 17:14:49 -07:00
Liangwei Dong
03e080c45a qcacld-3.0: Change beacon tx WMI API under feature flag
Add feature flag WLAN_WMI_BCN to compile Beacon tx APIs
selectively.

Change-Id: Ie2b4ad0ae7a7c6de7286ed0b215084060a4f34c6
CRs-Fixed: 2483531
2019-07-16 17:14:44 -07:00
nshrivas
a1ab99134e Release 5.2.0.139N
Release 5.2.0.139N

Change-Id: Ia689a3bdd9ef3f6900893963b87044b84a64c972
CRs-Fixed: 774533
2019-07-16 15:53:37 -07:00
Rajeev Kumar Sirasanagandla
902680eec5 qcacld-3.0: Fix invalid check in softap API
Some of softap APIs like hdd_softap_register_sta() contain sta_id
validation check against maximum value of HDD_MAX_ADAPTERS before
accessing adapter->sta_info[sta_id].

Since the maximum size of adapter->sta_info[] is WLAN_MAX_STA_COUNT
and less than HDD_MAX_ADAPTERS (used in sta_id index validation)
array out of bounds access is possible.

To fix this, validate sta_id index against maximum value of
WLAN_MAX_STA_COUNT instead of HDD_MAX_ADAPTERS.

Change-Id: I18390a76a3bee852a9d6ca3dde4382fa94387594
CRs-Fixed: 2486518
2019-07-16 15:53:37 -07:00
nshrivas
21974e374d Release 5.2.0.139M
Release 5.2.0.139M

Change-Id: Idfa57dc3408fdb7d60bde1d9427476cab9cbb5dd
CRs-Fixed: 774533
2019-07-16 12:14:52 -07:00
Tushnim Bhattacharyya
2a1e7f23bc qcacld-3.0: Replace channel with frequency in switch_channel_ind
Replace channel ID with frequency in struct switch_channel_ind.

Change-Id: I33a4da4271b083c166beebcec33ebed493072f38
2019-07-16 12:14:51 -07:00
nshrivas
b8bcccc63e Release 5.2.0.139L
Release 5.2.0.139L

Change-Id: I0eaa83c295d8ad94f871b85d47a9ed01a69ecdf5
CRs-Fixed: 774533
2019-07-13 13:40:48 -07:00
nshrivas
fc07fe2ac1 Release 5.2.0.139K
Release 5.2.0.139K

Change-Id: I680487c3537e853408e51e33c02fd0d017cf297d
CRs-Fixed: 774533
2019-07-12 02:05:19 -07:00
gaurank kathpalia
79d138972a qcacld-3.0: Update the sap ctx channel list according to acs cfg
Update the sap ctx channel list according to acs cfg, and
not to sap_ctx->channel_list as it would get free in ACS
scan callback, but acs cfg list would remain intact.

Change-Id: I845d5cc3d025b0f2605027f517575f0ad70b07dc
CRs-Fixed: 2478162
2019-07-12 02:05:18 -07:00
nshrivas
20331697db Release 5.2.0.139J
Release 5.2.0.139J

Change-Id: I9557d57827abc6432d68e09189322b3c8e5ccee1
CRs-Fixed: 774533
2019-07-11 23:26:33 -07:00
nshrivas
b66165d382 Release 5.2.0.139I
Release 5.2.0.139I

Change-Id: Ia2341730ad50b621760c49a7f82793753f74ba18
CRs-Fixed: 774533
2019-07-11 04:53:32 -07:00
Nirav Shah
21d055dd05 qcacld-3.0: Fix double free of skb in case of send failure for TSO
In case of TSO, same buffer results in multiple tx_desc after
segmentations. To avoid multiple free of skb ref_cnt is used.
Currently ref_cnt is incremented twice for 1st segment and
not incremented for last segment and in case of failure from
ce_send_fast, ref_cnt is decremented twice.

Above logic don't work in case when TSO packet with segment
count is 1 and ce_send_fast failure is observed.
So, Change logic to increment ref_cnt only once for 1st segment
and avoid reducing ref_cnt twice in case of ce_send_fast failure.

Change-Id: Ia85a6a8f905310b210d6f480a004feb2528a31d7
CRs-Fixed: 2469773
2019-07-11 04:53:32 -07:00
nshrivas
7de51ff1ea Release 5.2.0.139H
Release 5.2.0.139H

Change-Id: Idb48a1ef58555cbdcbc9a0e46d6f757e84c0e42b
CRs-Fixed: 774533
2019-07-11 02:10:28 -07:00
nshrivas
948384dd79 Release 5.2.0.139G
Release 5.2.0.139G

Change-Id: I23d501486fa078952bf99e1d52a19cd9bafb0f4d
CRs-Fixed: 774533
2019-07-11 00:52:04 -07:00
Paul Zhang
da2970b777 qcacld-3.0: Add OEM DATA vendor command support
This command is used to send OEM data binary blobs
from application/service to firmware.

Change-Id: I0b5d7dd5a030b70e59c8581fb51d99079b38385f
CRs-Fixed: 2477332
2019-07-11 00:52:04 -07:00
CNSS_WLAN Service
531e1b7402 Merge "qcacld-3.0: Validate wdev before accessing netdev" into wlan-cld3.driver.lnx.2.0 2019-07-10 20:48:40 -07:00
CNSS_WLAN Service
77db486763 Merge "qcacld-3.0: Acquire sme global lock if wait for set key times out" into wlan-cld3.driver.lnx.2.0 2019-07-10 20:48:39 -07:00
nshrivas
428fd714ab Release 5.2.0.139F
Release 5.2.0.139F

Change-Id: I038d778deaf33a03bdd4176c60f83e8116164eb5
CRs-Fixed: 774533
2019-07-10 10:26:38 -07:00
Bala Venkatesh
8b9bbde04b qcacld-3.0: Add SAP csa reason
Currently, there is no logging for channel switch reason.
Add csa_reason to know the reason for the channel switch.

Change-Id: Iec02d7fa2b1ec51acb97005da220db7de705d7e0
CRs-Fixed: 2483206
2019-07-10 10:26:38 -07:00
nshrivas
afbb3458c4 Release 5.2.0.139E
Release 5.2.0.139E

Change-Id: I3dd634fe0f917535af9f42e572cf1a1311ec663d
CRs-Fixed: 774533
2019-07-10 07:24:12 -07:00
nakul kachhwaha
f2e2dc1523 qcacld-3.0: Issue LFR2.0 connect only in proper CSR state
In DBS, LFR 2.0 takes more time to complete the roaming sequence
due to DBS config changes through policy manager. If roaming is
in progress and cfg80211 issues disconnect, disconnect handler is
supposed to wait for 4 sec before processing. In some DBS scenarios,
4 sec wait timer can expire and disconnect proceed for clean up
before the roaming sequence can complete, results in race condition.
Thus adding CSR state check before proceeding with LFR issue connect.

Change-Id: I794c6bf3f749bba9c339fd18b5202d50091b73a7
CRs-Fixed: 2481706
2019-07-10 07:24:11 -07:00
Pragaspathi Thilagaraj
6bfa475e45 qcacld-3.0: Acquire sme global lock if wait for set key times out
When the set key timeout occurs and there is a disconnect
triggered from userspace during the set key timeout, then the
disconnect proceeds to free the roam_profile for the csr
session. And when the set key timeout handler
csr_roam_wait_for_key_time_out_handler() is invoked, it tries
to access the roam profile from csr_roam_link_up()->
csr_neighbor_roam_info_ctx_init(). This results in a race between the
supplicant thread and scheduler thread.

Acquire sme global lock before call to csr_roam_link_up() to avoid
this deadlock.

Change-Id: I1dd0bec7afa191648d064a1935a33d9612bb89bc
CRs-Fixed: 2486186
2019-07-10 19:38:51 +05:30
hangtian
8215fde26b qcacld-3.0: Validate wdev before accessing netdev
Validate wdev before accessing netdev in __wlan_hdd_cfg80211_set_txpower.
Avoid invalid memory access.

Change-Id: I48af4e458ef7571cfdf9f157cdb8c3427fff4fc7
CRs-Fixed: 2487005
2019-07-10 12:30:23 +08:00
nshrivas
f40d6e75de Release 5.2.0.139D
Release 5.2.0.139D

Change-Id: Ie7708da174877552a30e498bd48dfe35dd6f07d8
CRs-Fixed: 774533
2019-07-09 18:50:57 -07:00
Abhinav Kumar
5bb0a54fdd qcacld-3.0: Correct logic to send an auto-resume indication to userspace
Driver sends the auto-resume flag to user space in the following two
scenarios in order to specify that the driver will automatically resume
reporting beacon or not:

Scenario 1: In the case of Disconnection
Driver should not set an auto-resume flag
QCA_WLAN_VENDOR_ATTR_BEACON_REPORTING_AUTO_RESUMES in subsequent
QCA_WLAN_VENDOR_BEACON_REPORTING_OP_PAUSE event irrespective of
do_not_resume flag is present in the recent
QCA_WLAN_VENDOR_BEACON_REPORTING_OP_START command.

Scenario 2: In the case of Scan
Driver should send QCA_WLAN_VENDOR_ATTR_BEACON_REPORTING_AUTO_RESUMES in
subsequent QCA_WLAN_VENDOR_BEACON_REPORTING_OP_PAUSE event only if
do_not_resume flag is set in the recent
QCA_WLAN_VENDOR_BEACON_REPORTING_OP_START command.

Currently, there is a possibility to send an auto-resume flag to userspace
in case of disconnection also, which is not as per the expectation of
userspace from the host.

Change-Id: I94cc7dc699b874422d0cf14cd4144c82adb4c2ac
CRs-Fixed: 2485792
2019-07-09 18:50:56 -07:00
Jingxiang Ge
92fd1ee387 qcacld-3.0: Remove CONFIG_MCL in wlan_flush_host_logs_for_fatal
This is to Remove CONFIG_MCL in qcacmn code.
Related qcacmn change is
Ie231e966229789bcd8fa69aef1bc20e9b07a88ae.

Change-Id: I7b9500bc5de74be20d404758b43fca590bbf7caa
CRs-Fixed: 2484900
2019-07-09 18:50:53 -07:00
Jingxiang Ge
ce8ebf794d qcacld-3.0: Remove CONFIG_MCL in wlan_logging_set_fw_flush_complete
This is to remove CONFIG_MCL from qcacmn code.
Related qcacmn change is
Ia417c90060b20b004b1e5408be654ff392a8113d.

Move cds_is_fatal_event_enabled from
wlan_logging_set_fw_flush_complete to
cds_logging_set_fw_flush_complete.

Change-Id: I709c1f9be40d0b09df512d995a72edd5e7a5c820
CRs-Fixed: 2484843
2019-07-09 18:50:50 -07:00
Liangwei Dong
3f4a87ef91 qcacld-3.0: Add P2P GO random chan selection
If p2p GO interface receives the dfs event,
as part of random chan selection logic
driver needs the interface type to query
policy mgr for PCL. To use the new API
utils_dfs_get_vdev_random_channel to support
GO random channel selection.

Change-Id: I098bb84455afc8dbee74f2df07a01499f7d07bd1
CRs-Fixed: 2467803
2019-07-09 18:50:47 -07:00
Abhishek Singh
2547512f9e qcacld-3.0: Avoid wait for hw mode change during SAP CSA
The SAP channel change can be called in scheduler thread and thus
waiting for hw mode change in scheduler thread will always lead to
timeout and thus channel switch failure.

Fix is to avoid wait and continue channel switch after hw mode
change is completed.

Change-Id: I951fab6c95ff2a84d6a619859295b830685fac4e
CRs-Fixed: 2484147
2019-07-09 18:50:41 -07:00
nshrivas
a28159bbe4 Release 5.2.0.139C
Release 5.2.0.139C

Change-Id: Id0f0b68640361133487b8952e9a43252f2141956
CRs-Fixed: 774533
2019-07-09 17:26:32 -07:00
Mahesh Kumar Kalikot Veetil
64a886965f qcacld-3.0: Add idle state to bus bw logic
Bus bandwidth logic uses PLD_BUS_WIDTH_NONE to vote if the packet
threshold is less than bus_bw_low_threshold. The same vote is used for
system suspend too. Add a new state for bus bandwidth logic to vote for
idle state.

Change-Id: I62ca6fff84a01083001db360f56344a05fb955db
CRs-Fixed: 2484003
2019-07-09 17:26:32 -07:00
nshrivas
e51c9b5cf4 Release 5.2.0.139B
Release 5.2.0.139B

Change-Id: Ic31893c6cfc3420d958309b2aa3d64ef3fe8da86
CRs-Fixed: 774533
2019-07-09 13:40:44 -07:00
nshrivas
d2d1d29850 Release 5.2.0.139A
Release 5.2.0.139A

Change-Id: I276de82e6cf71871a501c2ac26b2bfb030d56d00
CRs-Fixed: 774533
2019-07-08 16:45:26 -07:00
nshrivas
a41f26e93f Release 5.2.0.139
Release 5.2.0.139

Change-Id: I2e686ad0cb7b0be7a288a335e3f1db05e132523f
CRs-Fixed: 774533
2019-07-08 15:33:05 -07:00
Ashish Kumar Dhanotiya
5859acc0d6 qcacld-3.0: Change the priority of the deauth and disassoc commands
In SAP mode when driver receives deauth and disassoc commands
for any sta, this command is getting queued in to sme command
queue in pending list with low priority, it means these
commands will be inserted at the tail of the queue. These
commands have timeout of 30 seconds. If any command is in active
list with high priority and higher timeout that command will not
let the deauth and disassoc commands to process and these commands
will get timeout. This will result in failure of disassoc and
deauth commands.

For example if driver operates in STA+SAP mode and sta issues
a connect request to some AP, in connect path driver tries to
move to single mac mode(SMM) and issues the command for the same.
SMM command is pushed in sme queue and now if SAP issues a
disconnect command for some connected station this command is
pushed after the SMM command. Since connection for STA is still
going on so SMM command does not process as it is waiting for
key. And wait-for-key timeout is around 120 seconds, SMM command
can not execute until wait-for-key timeout occures which results
timeout of the SAP issued disconnect command which is behind the
SMM command in the sme_command queue.

To resolve above issue change the priority of the disassoc and
deauth commands to high priority which will allow to push these
commands to the front of the sme_command queue and since these
comands does not wait for wait-for-key timeout, theses commands
will get a chance to execute.

Change-Id: I613bbd11b9172902dd8828fa04c778b4cfe6be14
CRs-Fixed: 2484608
2019-07-08 15:33:05 -07:00
nshrivas
490afa13a7 Release 5.2.0.138Z
Release 5.2.0.138Z

Change-Id: Id056789552a22f5709da8922e8f460e737ce66f1
CRs-Fixed: 774533
2019-07-08 14:16:51 -07:00
Ashish Kumar Dhanotiya
1ac4188eb5 qcacld-3.0: Remove legacy implementation of stats event handler
Driver has a stats infrastructure and all the stats related
commands are using this infrastructure and for this
target_if_mc_cp_stats_stats_event_handler is getting used.

Remove legacy implementation of stats event handler
wma_stats_event_handler and related APIs.
With this change remove unused structures also.

Change-Id: I9a892b5f7486a406654256fc2cc8177f2fafe790
CRs-Fixed: 2481937
2019-07-08 14:16:50 -07:00
nshrivas
c856628d47 Release 5.2.0.138Y
Release 5.2.0.138Y

Change-Id: I2a5aaa5690b7dc24879410b7ddeeebe7ef3d2df4
CRs-Fixed: 774533
2019-07-08 12:09:53 -07:00
nshrivas
5b867291af Release 5.2.0.138X
Release 5.2.0.138X

Change-Id: Id84db2c3bb61379f66310643687d62336db88b95
CRs-Fixed: 774533
2019-07-08 10:06:13 -07:00
Paul Zhang
3d7c0e6d33 qcacld-3.0: refine interface wlan_hdd_cfg80211_get_txpower
Currently wlan_hdd_cfg80211_get_txpower is limited for STA
device. This causes issue when SAP device wants to get the
tx power.

Change-Id: Iadf34e6c74ba013247d925bcd4f05e1aa1a971c9
CRs-Fixed: 2481680
2019-07-08 10:06:12 -07:00
nshrivas
b1443aa86a Release 5.2.0.138W
Release 5.2.0.138W

Change-Id: I9af7e92312508ac35f2c4786741d30d9871df5cb
CRs-Fixed: 774533
2019-07-05 23:07:31 -07:00
Yu Ouyang
486fac8fed qcacld-3.0: Send user space about FW CRASHED indication
In function ol_target_failure(), if enable_self_recovery is true,
fw_indication_work_handler() will be called. Ramdump collection
will not be executed. But for no CNSS module platform, recovery flag
is neither cleaned, no any FW indication is sent to user space.
Even enable_self_recovery is false, no FW crashed indication sent
to user space.

So, call function ol_check_clean_recovery_flag() to clean recovery
flag, and send FW CRASHED indication to user space by function
ol_target_failure().

Change-Id: I44396caf4972dc267d60757c479e4681f8885de5
CRs-Fixed: 2482596
2019-07-05 23:07:30 -07:00
nshrivas
a57b032a76 Release 5.2.0.138V
Release 5.2.0.138V

Change-Id: I373ad009092c1b40077031c91caab3359d927413
CRs-Fixed: 774533
2019-07-05 20:28:55 -07:00
Srinivas Dasari
ea4722735d qcacld-3.0: Forward disconnect IEs from deauth roam event to kernel
Firmware sends roam event with reason WMI_ROAM_REASON_DEAUTH when
it receives deauth/disassoc from the peer and fails to roam.
The event also carries deauth/disassoc frame.
A new param "notif_params1" is defined to carry length of the
frame and a new TLV element "deauth_disassoc_frame" to carry
the frame.
Extract IEs from the frame when the event is received and
send them to kernel through cfg80211_disconnected().

Change-Id: I14610136e5e9758403e48264d04d1655e4466d3c
CRs-Fixed: 2481915
2019-07-05 20:28:55 -07:00
nshrivas
00729a3378 Release 5.2.0.138U
Release 5.2.0.138U

Change-Id: Id2a918685da5b6502cadf57d5b0855b586bd0d39
CRs-Fixed: 774533
2019-07-05 17:28:03 -07:00
Srinivas Dasari
d4e8725828 qcacld-3.0: Send disconnect IEs received in deauth/disassoc to kernel
AP may send IEs in deauth/disassoc frames as part of disconnection.
Extract the same and forward to kernel through
cfg80211_disconnected().

Change-Id: I4ef339dcd1ecff64d6bed1de35621ecce5d8030a
CRs-Fixed: 2481912
2019-07-05 17:28:02 -07:00
Srinivas Dasari
e2ee09491a qcacld-3.0: Add disconnect_ies in deauth/disassoc frame
disconnect_ies sent from userspace are cached in vdev mgr object.
Send the same in deauth/disassoc frames initiated from the driver.
Free the IEs once the frame is sent out successfully.

Change-Id: Ib223a9da7f5795bc10d717efe23c6106391070bb
CRs-Fixed: 2481909
2019-07-05 17:27:57 -07:00
Srinivas Dasari
37e3731d4a qcacld-3.0: Get disconnect IEs and cache in vdev mgr object
Application sends disconnect IEs to driver through vendor command
SET_WIFI_CONFIGURATION by embeding in the attribute
QCA_WLAN_VENDOR_ATTR_DISCONNECT_IES. Extract the same and validate
to make sure it's not more than maximum IE length that can be
accomodated in deauth/disassoc frame. Cache the extracted IEs
in mlme vdev object.

Change-Id: I6c95aa1d4d8ef7d8ed3ad5be8832ef1f45c26a2f
CRs-Fixed: 2481908
2019-07-05 17:27:52 -07:00
nshrivas
6c5cef1ebc Release 5.2.0.138T
Release 5.2.0.138T

Change-Id: Iee1859451b2ab023ed50f309b029ea02380e5b56
CRs-Fixed: 774533
2019-07-05 14:32:10 -07:00