Graphe des révisions

5819 Révisions

Auteur SHA1 Message Date
Bala Venkatesh
de41e8ac29 qcacmn: Delete all peers in TDLS component
In case of heartbeat failure or deauth from AP,
From lim Del sta requests are sent to FW and with response
required false, Since del sta response is not received
TDLS component is not notified to reset the local
tdls component structures and also upper layers are
notified of this peer deletion.

Change-Id: Ica0b150df7646af60868b2806432795896c75bcd
CRs-Fixed: 2324559
2018-10-22 07:00:14 -07:00
Vivek
595e6ee390 qcacmn: Additional flag to mark cmds both for activation and cancel
Adding additional flag for commands which has been marked
for activation and for which cancel has been received.

After the commands marked for activation and also marked for cancel
really gets active, we remove the command from the active queue.

Change-Id: I5eb42459e216ad8cbcee15ce9a7572dec7f776a2
CRs-Fixed: 2326639
2018-10-22 07:00:11 -07:00
Chaithanya Garrepalli
291dfa0043 qcacmn: flushing reo command list before freeing pdev
In dp_soc_dettach flush the reo command list before freeing
pdev to avoid use after free of pdev memory in reo command
callbacks

Change-Id: I2644b259ed9b10dee9b11007ed9064dd7d2399a9
2018-10-22 03:52:24 -07:00
Aditya Sathish
dff202269a qcacmn: Provide WMI support for AP channel switching enhancements
Provide WMI support for AP channel switching enhancements.

As part of FR50393, AP is provided with the ability to notify
capable connected peers to follow it to the new channel bandwidth.

This change provides WMI support for sending required parameters to
the firmware to update the peer list internally with the MAC address
of the capable peer along with it's new channel width.

Change-Id: I0696efd2b1c883d15de23364677050618f114743
CRs-Fixed: 2316625
2018-10-22 03:52:21 -07:00
Abhijit Pradhan
1221f59a66 qcacmn: Fix dfs null pointer dereference issue
When a DFS pulse is being processed, a channel change change can happen.
And the channel change initializes the radar filters which means
it frees and allocates the DFS filtering data structures.
This may result in memory violation (NULL Pointer dereference).

To avoid the memory violation lock the filter initialization and
DFS pulse processing.

Change-Id: I37c80d409433a9f97bd1f5e78b2b1e780b130290
CRs-Fixed: 2317455
2018-10-21 23:14:26 -07:00
Shashikala Prabhu
80d0451982 qcacmn: Add API to clear CAC started channel
Add API to clear CAC started channel in the DFS component.
Also, when AP detects the RADAR in DFS channel and restarts the AP vap in
NON-DFS channel, call MLME state machine to clear the DFS_WAIT flag and
move the state to RUN. Since MLME state machine is per vap, move the
NON-DFS check in dfs_clear_cac_started_chan() to MLME and call
dfs_mlme_proc_cac() per  vap.

Change-Id: I67033aa6ea819b6ed5d39a3911191d2051f731fc
Acked-by: Shashikala Prabhu <pshashik@codeaurora.org>
CRs-Fixed: 2324561
2018-10-21 23:14:24 -07:00
Abhishek Singh
63f7067831 qcacmn: Select non SRD channel for SAP in STA+SAP
Currently the driver selects the first channel available
in the PCL channel-list which could be STA channel itself,
and it may happen that this STA channel is not valid for SAP
bringup(SRD).

Fix is to select a non SRD channel from PCL channel-list
for SAP.

Change-Id: Ia9d3bfc0534e28972a6ddb0d588b62a55e3f6e23
CRs-Fixed: 2308072
2018-10-19 13:09:58 -07:00
Ajit Pal Singh
63e08b3c01 qcacmn: Pass product_id to hif_get_device_type()
Pass product_id instead of vendor_id to hif_get_device_type().

CRs-Fixed: 2325562
Change-Id: I7341a97ddb58c067a3b7aa78803f57922f87c6e9
2018-10-19 04:38:36 -07:00
phadiman
6f1af61798 qcacmn: Add AST entry type check
There will not be any AST entry
for HMWDS Seconday

Hence add check for the same in
del_peer_del_ast to avoid deletion
for such entries

Change-Id: Ia96856d93531200e27e0d0a97b80ed6ec1baa42b
2018-10-19 02:23:26 -07:00
Linux Build Service Account
be743383cb Merge "qcacmn: Set WMI endpoint as async" 2018-10-18 22:33:07 -07:00
Linux Build Service Account
e4d5f6c29e Merge "qcacmn: Check Non-zero Rx RSSI during vdev / pdev aggregate" 2018-10-18 22:33:07 -07:00
phadiman
1a2f48a775 qcacmn: Set WMI endpoint as async
WMI endpoint will receive commands
from both user context and kernel
context

Hence making the it as asynchronous

Change-Id: Ia969bb9db6a8978a7f50bc19f9f602dfbc1c83ea
CRs-Fixed: 2313262
2018-10-18 16:58:46 -07:00
Anish Nataraj
83d08110b1 qcacmn: Check Non-zero Rx RSSI during vdev / pdev aggregate
MultiVap if no sta associated or monitor mode,
data packets do not carry any rx rssi
or rate values while aggregating pdev or vdev stats.
Do not update for vap in if rx rssi or
rx rate value is zero.
Do not attach monitor vdev to vdev list

Change-Id: Ie64a05d795660d557d928cb9b874fa5e702f4f55
2018-10-18 16:58:43 -07:00
Chaithanya Garrepalli
e10f87bd41 qcacmn: add a flag in AST entry to indicate AST map
Add a flag for AST entry to indicate if AST entry is
mapped to AST table and use this flag while dereferncing
ast table with ast_index in ast_entry

Change-Id: I8c90f3c40116e24303aac8a7bd53e8f5b67e22bf
2018-10-18 16:58:40 -07:00
Arif Hussain
03673ae28f qcacmn: Fix integer overflow in roam scan stats extract
In extract_roam_scan_stats_res_evt_tlv(), validate
num_roam_scans to avoid any possible integer overflow
when receive larger num_roam_scans value.

Change-Id: I0f3bbf64fac8c151789de2f93a77c9af29b855d1
CRs-Fixed: 2331868
2018-10-18 14:22:29 -07:00
Gerrit - the friendly Code Review server
609fa901f0 Merge changes into wlan-cmn.driver.lnx.2.0 2018-10-18 13:05:00 -07:00
Jianmin Zhu
2c09245385 qcacmn: Avoid OOB in create_reg_rules_from_wmi
the fixed_param TLV structure is pulled from the WMI message and
assigned to chan_list_event_hdr. num_2g_reg_rules and
num_5g_reg_rules are assigned from the TLV structure, then passed
to create_reg_rules_from_wmi without length check, out of buffer
may happen.

Change-Id: I70c9d74ef94161896e1c7700c73943040f3a77e1
CRs-Fixed: 2327667
2018-10-18 12:44:38 -07:00
Dustin Brown
2f750878bc qcacmn: Statically allocate CE desc history for MCL
As part of convergence, the CE descriptor history was moved to dynamic
allocation, per HIF handle. For MCL, this caused the allocation to
consume limited pre-allocated memory, causing regressions. For the MCL
implementation of alloc_mem_ce_debug_history(), use a static buffer
instead to avoid complications.

Change-Id: I8b0c0a2502d4abfd465749328a35004ffed585ca
CRs-Fixed: 2335146
2018-10-18 08:13:36 -07:00
Pratik Gandhi
8af026a2ca qcacmn: Abstract BMI and add export symbols for ko separation
Abstract BMI callback from common module and move it to specific component.
Add Export symbols to support modularization in WIN. (BMI)

CRs-Fixed: 2324081
Change-Id: I1ec463d41d238ce81254ecc1f0bb1dc545e1248e
2018-10-18 06:32:45 -07:00
Ashish Kumar Dhanotiya
8efaac88d4 qcacmn: Null pointer access in green ap egap status event
While extracting green ap egap status info there is no
sanity check for egap info event and chainmask event which may
lead to NULL pointer access.

To prevent this NULL pointer access add a sanity check for
egap info event and chainmask event.

Change-Id: Ib9cc273f12bb159bce309065279230e96925be7f
CRs-Fixed: 2331873
2018-10-18 03:58:02 -07:00
Priyadarshnee S
b3860808e4 qcacmn: Clear the radar flag when NOL count is zero
Consider STA vap to be up in chan 100 VHT80 mode and stadfs enabled.
Say Radar is injected on chan 100 and 100 is added to NOL list and
IEEE80211_CHAN_SET_RADAR is set on it. On NOL timer expiry, during the
process of nol delete, dfs nol count is decremented. So it reads 0 now.
After this decrement, dfs_nol_update() is called and it returns without
calling dfs_mlme_clist_update as nol count is zero.
As dfs_mlme_clist_update is not invoked, IEEE80211_CHAN_CLR_RADAR flag is
not set. After NOL timeout, STA vap fails to associate with Root on VHT80
mode as 100 VHT80 is not available (chan 100’s RADAR flag not cleared).

CRs-Fixed: 2327546
Change-Id: Ic83ec2ac49e0fb7e887c3c7be2f8eefc419cb7c5
2018-10-18 03:57:59 -07:00
Alok Singh
1ae17d8c6f qcacmn: Add ctl failsafe event
CTL failsafe event handler adds the capability to inform host
when failsafe algorithm invoked.

CRs-Fixed: 2333137
Change-Id: I91298c9be1f0f8291c927dbd3ac4a2a9f1b9f31b
2018-10-18 02:17:40 -07:00
Priyadarshnee S
2512ede55e qcacmn: Fill legacy channel list from regdb
reg_enable_dfs_channels() fills the regualtory channel list with the
 updated channels (enabling/disabling dfs channels). Added changes to
 update the legacy channel list from the master channel list.

Change-Id: I2ddbeede5bd7ee248654c29de8781ed570f9dfee
CRs-Fixed: 2328894
2018-10-18 02:17:37 -07:00
Priyadarshnee S
8bf0fa04eb qcacmn: Target if Changes to send usenol pdev param
Add changes in target interface layer to send usenol pdev param to FW.

Change-Id: I5526066f34ae27234f9542fdd54901e6eb915fdb
CRs-Fixed: 2328894
2018-10-18 02:17:34 -07:00
Abhijit Pradhan
9ef7846b6a qcacmn: DFS TX and RX OPS initialisation for handling NOL Violation
Declaration and initialisation of function pointers to get user configured
dis_radar_mark flag and send usenol pdev param.

CRs-Fixed: 2328894
Change-Id: I6aaa6f8e52924c0cd4f754300178d6a6ff1b6801
2018-10-18 02:17:31 -07:00
Abhijit Pradhan
0f0e27b597 qcacmn: Scan Failure Event for NOL Violation
On NOL violation during scan start, FW aborts the scan request and sends
the scan failure event.

CRs-Fixed: 2328894
Change-Id: I5b33a8f02122226b8980daaeedb13d727266e7e7
2018-10-18 02:17:13 -07:00
Abhijit Pradhan
bbdd2dcc99 qcacmn: WMI changes for NOL violation
This commit contains the following changes related to FR49350:
usenol pdev param declaration and implementation of wmi cmd to send
the param to FW.
Failure status code declaration for scan and vdev start.

CRs-Fixed: 2328894
Change-Id: I5d3bfe758aeb9907193b6f626582b70413f5381c
2018-10-18 02:17:10 -07:00
Priyadarshnee S
d3173ca81c qcacmn: Handle scan failure and vdev start caused by NOL violation
This commit includes the following changes:
Send usenol pdev param to FW.
Set and get dfs_disable_radar_marking flag.
Handle scan failure due to NOL violation.

Change-Id: I814f6381145f98eccf465af730734238c60d8896
CRs-Fixed: 2328894
2018-10-18 02:17:07 -07:00
Karunakar Dasineni
26ebbe4492 qcacmn: Flush REO descriptors entirely
To avoid race conditions where BA window size can change, always
flush entire REO descriptor from HW cache irrespective of current
BA window size.

Change-Id: I608996722e7dc2dc6acfd145b8c190b58ce09822
CRs-Fixed: 2251811
2018-10-18 02:17:04 -07:00
phadiman
6ba855ca40 qcacmn: Delete existing AST on different radio
In STA roaming scenarios it is possible that an
AST entry for a given MAC address already exist
on the other radio

Delete the existing WDS AST entry on other radio
if present before adding the new wds entry on the
current radio as part of WDS source port learning

Change-Id: I15ef79be0441f3b27fd55e728f5bb27b073c6469
CRs-Fixed: 2334625
2018-10-18 00:21:21 -07:00
Chaithanya Garrepalli
139f6f495b qcacmn: add AST entry when SA is valid and AST not found in host table
SA might be valid for the mac address after AST entry is deleted from
host AST table as GSE caches the AST entry on other radio even after
it is deleted.

In this case send add AST with updated peer and vdev

Change-Id: I6178785f158a0323bb5dc86179db29785c3a392e
2018-10-18 00:21:18 -07:00
Bala Venkatesh
4f70bd3f3e qcacmn: Set active 2g channel dwell time to 0 for p2p scan
Set the active dwell time of 2g channels to 0 in case of
p2p search or listen.

Change-Id: I5d601d03ec30337022f582a5c0134e6b6c9e1550
CRs-Fixed: 2305409
2018-10-17 22:26:07 -07:00
Abhishek Singh
383ec70e7c qcacmn: Fix the return type of wlan_cfg80211_scan
In success scenarios wlan_cfg80211_scan return the qdf status without
converting it to os return status.

Convert the qdf status to os return status before returning in
wlan_cfg80211_scan.

Change-Id: Iee0503191aca371634c9dae9daf15f5aadfe7e2e
CRs-Fixed: 2334591
2018-10-17 19:37:34 -07:00
Mohit Khanna
81179cb75e qcacmn: Fixes for IPA enablement for lithium/Hastings
- Support to pass IPA enabled(disabled) flag from ini to DP layer
- Use ioremap call to translate tx_comp_doorbell_paddr obtained from
  calling ipa_setup api to tx_comp_doorbell_vaddr. This is needed to
  write the initial value of HP at the doorbell address.
- Change REO_DST_RING_SIZE and WLAN_CFG_TX_RING_SIZE to 1023
  for napier/hastings if IPA is enabled. This is needed because,
  ipa_setup API can handle only 16-bit values for the size param(bytes)
  of the ring.
- Disable hash based flow steering for SAP peers in case IPA is enabled
  and set default reo_dest_ring_4 as default RX ring. Since IPA will be
  reaping RX packets from reo_dest_ring_4 only, flow steering is not
  needed for SAP peers.
- Unmap pre-allocated TX buffers for IPA in the TX completion ring.
- Donot execute IPA functionality if IPA is disabled from ini.

Change-Id: I6855bfe293a457ccc0abd1ad5567f5c95232a9d2
CRs-Fixed: 2183519
2018-10-17 17:42:35 -07:00
Mohit Khanna
f83015ce04 qcacmn: Support for WDI3.0 in the Unified WDI APIs
Add support for WDI3.0 in the Unified WDI APIs.

Change-Id: Ic2bd68791e68b8bac5c948839f0258adb7d3f4b9
CRs-Fixed: 2183519
2018-10-17 17:42:32 -07:00
Dustin Brown
90556671c5 qcacmn: Add qdf_opmode_str()
It is often useful to print the human readable version of an operating
mode in a log message or some other user-facing string. Add a function
for mapping QDF_OPMODE to human readable strings, qdf_opmode_str(), in
QDF such that various consumers do not have to implement it themselves.

Change-Id: I8756fb2ea97b3b8c7af2633b07694ad1e74d6d3e
CRs-Fixed: 2331888
2018-10-17 17:42:29 -07:00
Rajesh Chauhan
b13d3af59f qcacmn: Print input bw in tdls_get_wmi_offchannel_bw for error case
In tdls_get_wmi_offchannel_bw in default case uninitialized output
bw is printed instead input bw. This will result in printing
uninitialized variable.

Change-Id: I7819dad3426fbe1b4c4626bc69744e3ee59ba18f
CRs-Fixed: 2329333
2018-10-17 14:28:30 -07:00
Krunal Soni
72548e3680 qcacmn: Refactor operation related to gEnableStaConnectionIn5Ghz INI
Ownership of gEnableStaConnectionIn5Ghz is changed from HDD to
Policy manager. So policy manager doesn't have to rely on HDD to
obtain the INI setting.

CRs-Fixed: 2324395
Change-Id: I894467bab4b0bddf309463802b98904ef1150536
2018-10-17 14:28:27 -07:00
Krunal Soni
b3e8cd86f3 qcacmn: Refactor operation related to gEnableMCCAdaptiveScheduler INI
Ownership of gEnableMCCAdaptiveScheduler is changed from HDD to
Policy manager. So policy manager doesn't have to rely on HDD to
obtain the INI setting.

CRs-Fixed: 2324395
Change-Id: Ib86004c4ee753b37b392de69551c777e3e9011de
2018-10-17 14:28:25 -07:00
Krunal Soni
499efbab56 qcacmn: Refactor operation related to DBS/vdev/channel selection INIs
Ownership of dbs_selection_policy, vdev_priority_list,
channel_select_logic_conc INIs' are changed from HDD to
Policy manager. So policy manager doesn't have to rely on HDD to
obtain the INI setting.

CRs-Fixed: 2324395
Change-Id: I8b38916d92931ef9cd1727481740bc61cad8f808
2018-10-17 14:28:22 -07:00
Krunal Soni
887bcc1c17 qcacmn: Refactor operation related to INI gMaxConcurrentActiveSessions
Ownership of gMaxConcurrentActiveSessions is changed from HDD to
Policy manager. So policy manager doesn't have to rely on HDD to
obtain the INI setting.

CRs-Fixed: 2324395
Change-Id: Iac1451fc457d9bceee73596affdae54895917040
2018-10-17 14:28:19 -07:00
Krunal Soni
f936eaa6de qcacmn: Refactor operation related to INI gSystemPref
Ownership of gSystemPref is changed from HDD to
Policy manager. So policy manager doesn't have to rely on HDD to
obtain the INI setting.

CRs-Fixed: 2324395
Change-Id: Ia586896ea55c6e71d8dcff705bf0e74879931dbb
2018-10-17 14:28:16 -07:00
Krunal Soni
f7afa9351e qcacmn: Refactor operation related to INI gWlanMccToSccSwitchMode
Ownership of gWlanMccToSccSwitchMode is changed from HDD to
Policy manager. So policy manager doesn't have to rely on HDD to
obtain the INI setting.

CRs-Fixed: 2324395
Change-Id: Id8bdee52ebf83b1c8b3c8f9132a2fc74b28f42a0
2018-10-17 14:28:13 -07:00
Krunal Soni
f7ba0ea589 qcacmn: Add new INI/CFG infrastructure for Policy Manager
Policy Manager component needs to adopt a new INI/CFG
infrastructure

Provide a new infrastructure and remove old INI/CFGs related
to policy manager component.

CRs-Fixed: 2324395
Change-Id: Ia16845c2aef3c5877b0b164fcef13fe7cd41c736
2018-10-17 14:28:11 -07:00
Pratik Gandhi
5526a55fa2 qcacmn: wmi logging - buffer offset for multi-radio
Move buffer offset to wmi soc as buffer offsets are same for all
pdevs in soc.

Change-Id: I7822ae18212d66420ce6c68341c38c9737de2f58
CRs-Fixed: 2330630
2018-10-17 05:50:44 -07:00
Chaithanya Garrepalli
85c447c46c qcacmn: donot use mcast enhancement for broadcast packets
Avoid mcast to ucast conversion for broadcast packets

Change-Id: I72b1013c9e62dfacc00285994165f81392e33af0
CRs-fixed: 2334192
2018-10-17 05:50:42 -07:00
Krunal Soni
be43d55622 qcacmn: Replace Linux Fix-Width data-type with C-99 stdints
Datapath supposed to be HLOS-agnostic, but there is some use of
Linux fixed-width types u8, u16, and u32. These should be replaced with
C99 fixed-width types uint8_t, uint16_t, and uint32_t so that they will
correctly be HLOS-agnostic and work on non-Linux targets.

CRs-Fixed: 2326406
Change-Id: I8f9099a0170e4f94a54cdd6cc6c2e321a29af717
2018-10-17 05:50:39 -07:00
Lin Bai
83fb60c843 qcacmn: Avoid OOB access to ast_table when del_ast
Change Ia75f88c03c4d0eba0edbebf8e8f40d41396543d5 initialized the
ast_idx to 0xFFFF, and when deleting ast for self BSS of STA mode,
this index will be used to access ast_table whose size is less than
0xFFFF, and OOB may occur.

For AST of STA's self BSS, do not clear the related ast_table.

Change-Id: I3ceffd216061950024a524b25f1d38c43e1ee0e4
CRs-Fixed: 2334039
2018-10-17 05:50:36 -07:00
Rakshith Suresh Patkar
5c881ec3ec qcacmn: Update debug info in wbuff_buff_get()
The debug node for all the nbufs allocated by wbuff
for a module contains the file and line info
pertaining to wbuff_module_register().

To enhance debugging, Use qdf_net_buf_debug_update_node()
to update debug info when nbuf is requested through
wbuff_buff_get().

Change-Id: Ie8b148ef6313bd3b265cfa3f141e8d0de8b75597
CRs-Fixed: 2328257
2018-10-16 21:21:15 -07:00
Dustin Brown
27d564647e qcacmn: Record queue depth in scheduler history
The scheduler history feature contains logic to capture the queue depth
at the time of message insertion, but an oversight means this
information is not actually recorded in the scheduler history. Record
the captured queue depth in the scheduler history when a message is
dequeued for processing.

Change-Id: Ia2dd6f641055237b8f9c546077f7b5992c697330
CRs-Fixed: 2332752
2018-10-16 18:35:57 -07:00