Stop modules is done and datapath context is cleared as part of
CDS dp close. But, as part of add virtual interface, the following
sequence is followed:
1) hdd_open_adapter
2) start_ modules from hdd_psoc_idle_restart
3) hdd_start adapter.
hdd_open_adapter accesses the dp_soc to read TCP UDP checksum ini
value which is invalid access as dp_soc is not initialized.
Move the ini access logic to hdd_start adapter from hdd_open_adapter
as dp context is initialized in start_modules called as part of
hdd_psoc_idle_restart.
Change-Id: I1fbbcc7f8faf3d461c5625ee8cfb60a01c4f94d2
CRs-Fixed: 2393342
As part of the effort to use a single definition for the maximum number
of vdevs, replace WMA_MAX_SUPPORTED_BSS with WLAN_MAX_VDEVS.
Change-Id: I7f0bd615b65e21dc0052933d5e194ca650336b42
CRs-Fixed: 2393167
As part of the effort to use a single definition for the maximum number
of vdevs, replace CSR_ROAM_SESSION_MAX with WLAN_MAX_VDEVS.
Change-Id: I71f9c02acec23314f65ac9d5ee3401ed7b4af580
CRs-Fixed: 2393166
As part of the effort to use a single definition for the maximum number
of vdevs, replace SIR_MAX_SUPPORTED_BSS with WLAN_MAX_VDEVS.
Change-Id: I1b1823c74c0fc741ba3ed72f13854ac5bbb20e35
CRs-Fixed: 2393159
Currently there are no diag events to inform user space about
algo num, Tx Seq num and status code of auth req.
Add such diag events which can be useful in automation.
Change-Id: Ic015d7b97142eeaad59b94b94272a8f2c987079a
CRs-Fixed: 2372193
As part of connection tracker handler, If the link is connected
then current tx and rx stats are compared with configured threshold
values. If the current stats fall below the threshold then idle timer
is initialized and idle peer data is stored in tdls soc and given as
userdata to the timer handler. The userdata is overwritten if the another
tdls peer becomes idle and this can lead to wrong tdls peer teardown.
Change-Id: I34638bdebe02e17e1c9e117e58352bdaab867921
CRs-Fixed: 2393320
Currently connected peer capability information is not getting
cached for SAP.
Add support to cache the capability info from assoc request
Change-Id: I0088bd20a98e2491f6ffb452417bc73f21e69e63
CRs-Fixed: 2392939
Check if vdev is active for the following vdev commands before
sending it to firmware:
1. WMI_SCAN_PROB_REQ_OUI_CMDID
2. WMI_VDEV_WMM_ADDTS_CMDID
3. WMI_VDEV_SET_WMM_PARAMS_CMDID
4. WMI_BCN_TMPL_CMDID
This will avoid the race condition where the vdev is deleted
and the vdev related commands for the deleted vdev are sent
to firmware before wmi_stop_inprogress is set at wmi.
Change-Id: Ib3eacc191002395de9640516b9088b01b3a64966
CRs-Fixed: 2392770
Currently the driver uses structure for peer mac address
to store the mac address.
Use the already existing peer mac address array for the same.
Change-Id: Id3715f6abbbf23f4f8d1836eb548b5193a62500a
Check peer address for group or zero before peer create
as there is no way a MGMT frame can be sent to such
a peer, and it also may lead to peer leak in FW, if
this peer is created, as peer delete doesn't go for
such a peer.
Fix is to have a sanity check and then only allow
peer create in host and FW.
Change-Id: Ia7f9e870f10ff8fea5b03f01697370d05ca06668
CRs-Fixed: 2392771
Currently struct hdd_adapter uses the legacy term session_id. To align
with converged naming it is desirable to change this to vdev_id, but
due to the large number of places where session_id is used it will be
difficult to modify all occurences at once. In order to allow changes
to "trickle in" replace the session_id field with a union that
contains both a session_id and a vdev_id field. This will allow
vdev_id and session_id to both be used to access the same data item.
Subsequent changes can then replace references to session_id with
vdev_id, and then once all references have been converted, replace the
union with a single vdev_id field.
Change-Id: Id92b1a7bb9721564ba01184809fec98be2143545
CRs-Fixed: 2392986
To reduce hard coding in the driver, add the following build config
options with defaults to the Kbuild:
* CONFIG_WLAN_MAX_PSOCS
* CONFIG_WLAN_MAX_PDEVS
* CONFIG_WLAN_MAX_VDEVS (supercedes CONFIG_SIR_MAX_SUPPORTED_BSS)
* CONFIG_WLAN_PSOC_MAX_VDEVS
* CONFIG_WLAN_PDEV_MAX_VDEVS
Change-Id: I14fce4bf34eb511214ad0b31be72336a2620b960
CRs-Fixed: 2393150
Currently, in tdls soc max tdls peers are initialized
in tdls_global_init that is done as part of tdls psoc open.
But, sometimes the Ini values used to initialize the tdls
max peers are not initialized before global init
because tdls_update_config has done for the Ini vallues.
This can lead to wrong value of max tdls peers in tdls
soc and later can result in TDLS connection deny.
Change-Id: I6bb51db571129490c225737c1913b8ddafadde8d
CRs-Fixed: 2392494
chan, a pointer to wmi_channel is derived from
param_buf->chan. param_buf->chan is derived from
WMI_ROAM_SYNCH_EVENTID_param_tlvs structure and
can be null. This may lead to null pointer dereference
when chan try to access the mhz field, chan->mhz.
Change-Id: I84ade344d2df3dfb5e35e7afaca3ddb768e22769
CRs-Fixed: 2385447
In ol_tx_flow_pool_map_handler, we will unpause all netif
queues. Unpausing will fail if any queue bitmap is not
cleared and pause_map remains non zero.
To avoid this, unpause priority queue before unpausing all
non priority queues.
Change-Id: If9a4e5d923b300aa03f01847da1ad64e8d6c61ef
CRs-Fixed: 2391158
Flag WLAN_FEATURE_NAN_DATAPATH was added to protect NAN Datapath
related code, while WLAN_FEATURE_NAN_CONVERGENCE was added to
protect the converged code inside NAN Component. Since the
original NAN Discovery related code has now been moved inside
NAN component and NAN Datapath cannot exist without NAN Discovery,
keeping these flags separate doesn't make sense. Combine these
two flags with WLAN_FEATURE_NAN flag which is the original NAN
feature flag.
As a cleanup of NAN code, combine all NAN related flags with
WLAN_FEATURE_NAN flag.
Change-Id: If98ecaace17f8724e9c28325ef61e721f42e1d8f
CRs-Fixed: 2377375
Structs sSirSmeAssocCnf and sSirSmeAssocIndToUpperLayerCnf both define
an alternateChannelId field. For both of these the field is written
but not read, and hence that usage is pointless. Since these fields
serve no purpose, remove them.
Change-Id: Icae506f3d9baea0c44896cc7dc69897bbdc236d2
CRs-Fixed: 2392273
Structs sSirSmeAssocCnf and sSirSmeAssocIndToUpperLayerCnf both define
an "alternate bssid" field, but only one of them is actually used. And
even there the field is written but not read, and hence that usage is
pointless. Since these fields serve no purpose, remove them.
Change-Id: I0591ac51d724c8195cf3dda75609a46429676bfd
CRs-Fixed: 2392272
The hdd_vdev_sync APIs currently use wiphy as a proxy for a PSOC.
However, hdd_psoc_sync has recently moved to keying off of device.
Update the hdd_vdev_sync APIs to match by using device instead of wiphy.
Change-Id: I50d2597fd96a7a09dfa32152b00106b8ee7ab51a
CRs-Fixed: 2392093
As a follow up to migrating PSOC transitions to the new hdd_psoc_sync
APIs, migrate PSOC operation protection as well.
Change-Id: Ia22072f5dbd43d629102975fe370d79b6689575c
CRs-Fixed: 2392092
With the recent addition of hdd_psoc_sync APIs, DSC use is abstracted
behind a common interface for PSOCs. Begin migrating HDD to the new
interface by updating PSOC transitions to use the new APIs.
Change-Id: Ia9102d906dc0c699719a05726b47def7a00e925c
CRs-Fixed: 2392091
To bring HDD PSOC synchronization in line with recent VDEV enhancements,
add hdd_psoc_sync APIs. These allow for atomically looking up a psoc
synchronization context via device pointer, and protecting various call
flows via DSC primitives.
Change-Id: Iacc62454f0ca2c8f2098384f16d98713a4373361
CRs-Fixed: 2392089
As part of CFG ini convergence, remove the macros of WNI
and replace them with the new enums of mlme dot11 mode
Change-Id: Ib7fbf480aa067d02690eb1448c74fcc083d94c59
CRs-Fixed: 2389401
While processing deuath notification in lim, PE session is deleted
without checking the session role. For AP case, if the deauth
notification is given to BSSID then also pe session will be deleted
and later clean up of the SAP will not be done properly.
Hence, for SAP case delete the pe session as part of del bss
response only.
Here the scenario is SAP's BSSID is blacklisted and acl command
is given via IOCTL. This triggered the deauth notification to lim,
and pe_session is deleted. Later, the del sta command is failed
because del bss has not happened and vdev delete also not done.
Hence delete pe session only for sta mode in lim_send_sme_deauth_ntf.
And return failure status for iwpriv softap.0 modify_acl command
if it is given for SAP's own mac address.
Change-Id: I2b394ae8676fe569537b416388a9566f2d35892a
CRs-Fixed: 2388404
Check peer and self HE capabilities for LDPC coding and set
the configuration to FW only if both self and peer HE LDPC
capability is set.
Change-Id: Ib462b5ab373062182fce970ffc8b5c0fc6906ded
CRs-Fixed: 2379298
CFG_ENABLE_LFR_SUBNET_DETECTION refactored based on new cfg framework,
related legacy codes unused, so clean it up.
Change-Id: Ica0cae4fa12fd560ebe30182bd1d4831ac1a99f5
CRs-Fixed: 2391310
In the 4.19 Linux kernel, the ndo_select_queue function signature has
changed. Add support for it under kernel version compilation flag.
Change-Id: Ie396d79ae9642a24d99aeda6f82def310f2115d8
CRs-Fixed: 2389052
Do not invoke cfg80211_is_gratuitous_arp_unsolicited_na API
for kernel version greater than 4.6 because the functionality
is implemented at higher layer in TCP/IP stack.
Change-Id: I0b04b44b9fa9961bd917edbe09396546392c08bc
CRs-Fixed: 2390950
If force scc is enabled for STA+SAP concurrency and SAP not allowed on
indoor channels then STA should be disconnected first if it is on indoor
channel before starting the SAP.
Change-Id: If0985b559030b44834df851e170f320c7f942036
CRs-Fixed: 2189793
The caller of wma_tx_packet does not need to check if nbuf becomes
to NULL to decide if the nbuf free is needed. It is the designing
job of wma_tx_packet to free it if there is something wrong. Fix
one of the double free issue in ADDBA response transmission.
CRs-Fixed: 2379912
Change-Id: I944dea72a72cf9d937a72a3e0a31bbad88c8694d