Initialize pointers bonded_chan_ptr and bonded_chan_ptr2 in function
with NULL and add check to avoid NULL/wild pointer dereference.
Change-Id: I48e4417998d75a7a42d6e55106896709016ac61c
CRs-Fixed: 1075098
qcacld-2.0 to qcacld-3.0 propagation
Currently, If SSR re-init get failed then host raise VOS_BUG.
In this type of cases, OEM might prefer not to crash the device
instead want wlan recovery using driver unload followed by load.
Change-Id: If433aae949326af6a20df2190dd7356f211c4103
CRs-Fixed: 1017278
The enhancement is to add SBS (Single Band Simultaneous)
support in hw_mode_list.
The WMI HW Mode definitions are redefined to use only
for host purpose.
Change-Id: I8b8c966b0130964c8e7de7967766629c955209d3
CRs-Fixed: 1072234
Remove the processing of following msg types PKTLOG_TYPE_TX_MSDU_ID,
PKTLOG_TYPE_TX_FRM_HDR and PKTLOG_TYPE_TX_VIR_ADDR for ihelium as
support for these events is removed from FW.
Change-Id: Ic526507d8adf87e580bd5c23ad2e68e2154c38a8
CRs-Fixed: 1074043
Roam_synch indication processing in host performs peer detach/attach
operations after firmware has already moved to the new peer. Out of
sequence peer unmap and map events can mess up the reference count
for reused peer_id values, which can lead to crash.
Solution:
While detaching a peer during roam sync indication processing,
copy its peer_id_ref_cnt in peer_id_to_obj array to new variable
in the same peer map for that peer id. Peer is deleted at that point.
When the unmap events come in, decrement the old ref_cnt and
map events increment the real ref_cnt.
Once the old ref_cnt goes to 0, subsequent unmap operations apply to
the real peer.
CRs-Fixed: 1063177
Change-Id: I9b20f28f17dea1647a213b9f36060109264addf0
Improper use of qdf_event_create caused QDF_ASSERT. Use qdf_event_reset
in ol_txrx_peer_attach(). Use correct comparison for return value
of qdf_wait_single_event().
CRs-Fixed: 1065451
Change-Id: I735fe12230b6558123f73d68f09fd126bf0406d6
Add range check for P2P NOA parameters such as duration and
interval to prevent integer overflow from binary operation.
Change-Id: Iffa57d592af7ac6af7f67d80b85a276aa8faee4e
CRs-Fixed: 1072839
Currently the build fails, if we disable TDLS
feature flag in the kbuild.
Fix all the tdls conditional compilation issues
to make a successfull build with tdls feature
flag enabled/disabled.
Change-Id: I78114474d9ebe65e76840cb581389535f3486e4f
CRs-Fixed: 1066077
lim_process_message() function references to unused
message types that starts with eWNI_PMC*.
Cleanup the code and remove the unused message type
references from the code.
Change-Id: I5c88cb2544f74cb8c5e05b9178071ddbfaf2de23
Depends-on: 1727734
CRs-Fixed: 1071366
lim_process_messages() and lim_process_deferred_message_queue
are currently a global functions, but they are only referenced
from within lim_process_message_queue.c.
Making lim_process_messages() and lim_process_deferred_message_queue
to be a static function and rearrange it to avoid any forward
reference of it.
Change-Id: I30c5b388814de5fc02fd0352ef41c324216af705
CRs-Fixed: 1071312
Cleanup as part of lim_p2p_action_cnf triggers only when
mgmtFrameSessionId is not 0xff. If cleanup does not happen
in error scenario, it can result in not clearing cfgState->buf
which can lead to dropping of further action frames in
__wlan_hdd_mgmt_tx.
Fix this by filling mgmtFrameSessionId with proper session id.
Change-Id: Icc0f5b576ff71776dc448a673b6e12defe0c514e
CRs-Fixed: 1074565
WMA qpower API wma_set_qpower_force_sleep is obsolete and is no longer
used. Clean up unused API wma_set_qpower_force_sleep.
Change-Id: Iad32be5e11c345a542b8f8f6660987a4aff837c7
CRs-Fixed: 1075289
qcacld-2.0 to qcacld-3.0 propagation
Currently, After p2p disconnection system role changes to
unknown and due to which tx flag uses self station index
which would send TDLS frames on self station index thus
leading to TDLS connection failure after p2p session teardown.
Fix is to use peer station index in tx flag while sending
TDLS frames except TDLS discovery response which should go on
self station index.
Change-Id: I87ea8806a47730b553055e47bb3e7bdf0266b48f
CRs-Fixed: 970761
qcacld-2.0 to qcacld-3.0 propagation.
Currently, Failure of TDLS add sta is leading to failure of
next consecutive tdls connection.
Fix is to update the failure info to HDD and return error
to supplicant.
Change-Id: I0d46a198f2abb87b4a4350b454deb98c5e3b8211
CRs-Fixed: 958534
Detect duplicate session request with same mac address
and return failure to requestor.
Change-Id: I0155f29e879e1c2a46a8b9efbcaf160353bf9c05
CRs-Fixed: 1072885
qcacld-2.0 to qcacld-3.0 propagation
In 2.4GHz some stations advertise VHT capability IE in Assoc Req frame.
Add support to detect the VHT capability in vendor specific IE in
Assoc Req frame and establish the connection with VHT mode to
improve performance.
Change-Id: I08dbcb3ce1895aa2108924d7a672e5d9be514e3d
CRs-Fixed: 924814
qcacld-2.0 to qcacld-3.0 propagation
Currently status code is mapped same as reason code which results
in wrong status code mapping. Fix this by adding appropriate status
code.
Change-Id: I75a66601c33b4e93fcac674415f38d5a8184c8f3
CRs-Fixed: 1062308
qcacld-2.0 to qcacld-3.0 propagation
Dump state information of HDD, SME, PE and WMA layers
into a buffer. Contents of this buffer will be copied
into user space using proc entry /proc/debugdriver/
driverdump.
Change-Id: Ifbb102e440d7df20defa1a397964cb9b55082bf9
CRs-Fixed: 955357
qcacld-2.0 to qcacld-3.0 propagation
Consider the parameters 'acs_channel' and 'acs_dfs_mode' only
when ACS is enabled for that SAP. Otherwise driver is going to
override the channel even if user configures a fixed channel in
hostapd.conf file.
Change-Id: Ibe24828690ace91338ade10fd00c49fc4acdbd81
CRs-Fixed: 1026420
qcacld-2.0 to qcacld-3.0 propagation
Add changes to set Tx/Rx aggregation size. Also, add ini parameters
for Tx/Rx aggregation sizes.
Change-Id: Ia5811bf7cf7081989fde5c8cdcca84b42120b90c
CRs-Fixed: 990161
qcacld-2.0 to qcacld-3.0 propagation
If SME posts message to WMI after vdev_detach happens,
there can be a race condition.
In this case VDEV_SET_PARAM will be called after VDEV_DELETE.
Fix this with introduction of new Boolean flag "is_vdev_valid" which
will be true after VDEV_CREATE is done. This flag will be false
when deletion of vdev happens.
WMI will do VDEV_SET_PARAM only if "is_vdev_valid" true.
Change-Id: Idffd0979bd9bdefa1225d2ea6a24180d81000f48
CRs-Fixed: 964146
If the device is operating in MAC0 and MAC1. If the interface
present is MAC0 is removed, the interface in MAC1 moves to MAC0.
But the bandwidth for the interface is not updated properly.
The fix is to update the bandwidth of the MAC1's interface when
the MAC0's interface is removed, and is replaced by MAC1's
interface.
Change-Id: If114167f66d13a3660f9b92b72706bfc2e782b50
CRs-Fixed: 1073581
Driver updates its hw_mode_list entries as per hw_mode_list
given by firmware during WMI_SERVICE_READY_EVENT.
The enhancement is to update hw_mode_list entries in the driver
using the values received in WMI_SERVICE_READY_EXT_EVENT from
the firmware.
Change-Id: I5e4d97523cb7fd018767d5d2fda841f03b2406f6
CRs-Fixed: 1070005
A cds log for cds_get_channel_list() is printing quite often
and spamming the kernel logs. This log is not for error.
Hence moving this to appropriate log level.
Change-Id: I5d037f47729b612d6754e64f46b627998ec026f8
CRs-Fixed: 1072651
Recently host power offload suspend/resume has switched to 3
stage process. Enhance power offload unit test framework accordingly,
and improve error handling.
Change-Id: I8cc1e955fbaca631ee7fd76b0c907d1e68c836bf
CRs-Fixed: 1072423
Presently, driver configuration from FTM mode to any other mode
is failing due to start module is failing, because configuration
parameter(max peer limit) is set to zero during FTM mode
initialization.
In FTM mode, during start modules, don't update configuration
parameter, max peer limit.
Change-Id: Ie5adea45b2dac099e797a1e25536cc959f3d5525
CRs-Fixed: 1073593
All in-code references to wlan_hdd_mib data structures have been
removed from the driver, so delete the mib structure from the adapter
context and the remove the header file itself.
Change-Id: I774d16df363d069eae1616807ce6f80da4800bb4
CRs-Fixed: 1073739
All users of connDot11DesiredBssType have been converted to better
supported interfaces, so remove all traces of this field.
Change-Id: Iabfc4642a500587abd1f10d4fbc3f9e88f627a83
CRs-Fixed: 1073739
Function hdd_conn_get_connected_bss_type() is no longer being used, so
remove it.
Change-Id: I0aafea43631d0ab8d3a99d8e913392f6090cd124
CRs-Fixed: 1073739
Currently in wlan_hdd_cfg80211.c wlan_hdd_try_disconnect() calls
hdd_conn_get_connected_bss_type() which returns a value of
eMib_dot11DesiredBssType. This type is being deprecated so directly
use the adapter's device_mode.
Change-Id: Ib8981750475bd27818a0c7e4e386396869d90e69
CRs-Fixed: 1073739
__iw_set_mode() currently uses hdd_conn_get_connected_bss_type() to
see if the adapter is connected, discarding the connectedBssType
returned by the function. That is not the correct API for this use
case. Clean up this strange behavior by using hdd_conn_is_connected()
to see if the adapter is connected.
Change-Id: I66f85fb8275ae2885012ebf8710187b2b886dfb0
CRs-Fixed: 1073739
__iw_set_essid() currently has a few strange behaviors:
* It currently rejects any request when in IBSS mode.
* It currently uses hdd_conn_get_connected_bss_type() to see if the
adapter is connected, discarding the connectedBssType returned by
the function.
* It currently uses the conn_info.connDot11DesiredBssType field to
determine the BSS type, but this field is being deprecated.
Clean up these behaviors by allowing IBSS mode, by using
hdd_conn_is_connected() to see if the adapter is connected, and by
using the adapter device_mode to determine the BSS type.
Change-Id: I0180eb70487dd664c1cb85eee9a4d53eb7cb14a9
CRs-Fixed: 1073739
qcacld-2.0 to qcacld-3.0 propagation
Currently driver populates default supported and extended supported
rates in beacons even if hostapd.conf file wants to change
supported and extended supported rates.
Fix this by parsing beacon head and tail to get supported
and extended rates and populate them in sap config.
If Driver force acs is enabled, driver acs will get priority.
In case of driver based acs, driver should
ignore basic and extended rates from hostapd.conf and should
populate default rates.
Change-Id: I3226438b908a96f1b1bd3c2968a0c20eef81a799
CRs-Fixed: 1035768
qcacld-2.0 to qcacld-3.0 propagation
In this feature,
1) When a legacy client connects to P2P GO, Host will indicate FW
to stop NOA and start CTS2SELF.
2) Ini Support for this feature.
Change-Id: If76d8ef454633d9a02dd6057b5d6ca3e9e639ea4
CRs-Fixed: 932264
Currently, some regulatory information is being populated after it may
be needed by wiphy for initialization. Reorder the order of execution to
populate this data before it is needed by wiphy.
Change-Id: I218c19c84b6c7f0f62a94b211201281939838438
CRs-Fixed: 1074146
Fix the issue due NULL pointer access on adapter->dev.
One of the instance this happened is inside __hdd_hostapd_uninit().
Change-Id: Ie2a3e41d446261cd32729b8eb8f12e23134a8828
CRs-Fixed: 1073808
qcacld-2.0 to qcacld-3.0 propagation
Presently, in BPF set_offload structure and the filter program are
allocated separately. In certain error paths the program is not
freed correctly because of which there can be memory leaks.
Have a single allocation for the set_offload and program to avoid any
memory leaks.
Change-Id: I097d3408cc89c26e015fd6aee8668f53e8f64cf7
CRs-Fixed: 1006522
Enable Runtime PM after first interface is up and disable it when
the last interface goes down. The current logic is enabling runtime
pm too early, causing crashes.
Change-Id: I486409bd8375de327b724fc16ab32b4907c1c093
CRs-Fixed: 1072520
qcacld-2.0 to qcacld-3.0 propagation
Currently when an addTs is buffered for processing in SME
and a delTs for the corresponding addTs is issued, the delTs
is getting dropped since the addTs has not yet been processed.
Fix this by buffering the delTs command if a corresponding flow
is not found.
Change-Id: Ib759ee7f2a5d4c089d5362f93568fb4dd6eda8cf
CRs-Fixed: 1008956
Wrong use of runtime get results in mismatch in runtime pm usage count.
Hence fix it by calling runtime put API instead of get API.
Change-Id: I89dfcd2d1ad980df47f2244c9fcac5a68ac27d71
CRs-Fixed: 1072520
qcacld-2.0 to qcacld-3.0 propagation
wlan_hdd_mgmt_tx can be called in not-connected state in case of
station mode. Here the operating channel is fetched from the connected
info without actually checking whether the sta interface is connected
or not and hence can lead to making a wrong decision whether or not
to request ROC. Fix the above issue by fetching the operating channel
only in connected state. In not-connected state driver always goes
for requesting a ROC. Add similar check in case of soft ap and
P2P-GO to get operating channel only when the bss is started.
Change-Id: I91571f3b6a4f68487afcddd3152f469ff502eb6b
CRs-Fixed: 957469
qcacld-2.0 to qcacld-3.0 propagation
Supplicant is sending Extended capabilities (EC) IE and
Interworking IE as part of beacon IEs to the driver but
the driver is not looking for these IEs when populating
the beacon. To fix this append the EC IE and Interworking
IE to the beacon template.
Change-Id: I6e19bfacb6f83526ce80d59cf43c23c6e2a77233
CRs-Fixed: 964594
qcacld-2.0 to qcacld-3.0 propagation
wma_ibss_peer_info_event_handler returns error when peer_info is NULL.
However, peer_info can be NULL in case num_peers connected is 0.
Handle this case in hdd_get_ibss_peer_info_cb so that callers of
GETIBSSPEERINFOALL do not see stale results after all connected peers
have left the IBSS. Also, log the errors for enabling debug and reset
the ibss_peer_info statistics.
Change-Id: I913748bf11f9362e5faaaf29c26fc39fda85f4a9
CRs-Fixed: 1007555
qcacld-2.0 to qcacld-3.0 propagation
In __wlan_hdd_cfg80211_tdls_oper, since IS_ADVANCE_TDLS_ENABLE
is disabled, the tdlsLinkEstablishParams does not get populated
with correct QoS capability of the peer. The transport layer is
then configured with this wrong capability. This results in all
packets, independent of TID, enqueued into BE queue. Fix this
by getting the QoS capability from hddTdlsPeer_t.
Change-Id: Iafbd416026c9a0e4b05654ec810b0e0f3546beba
CRs-Fixed: 1010915
qcacld-2.0 to qcacld-3.0 propagation
If P2P-GO stop comes during ROC, it may cause WLANSAP_StopBss
API to fail. ROC is stuck as firmware is running Gscan which
is higher priority than p2p ROC scan prioirty.
This causes ROC command to be stuck in the active list for 10
seconds and will eventually cause a crash in FW when host will
try to add self peer since older peer is still present in the
FW with same mac address
Add change to increase the priority of P2P scan and cancel ROC
before calling stop AP API.
CRs-Fixed: 1065161
Change-Id: I3a62234596c8c2acc0155b483847b9adc159d757
qcacld-2.0 to qcacld-3.0 propagation
IE's numbers are not set correctly in beacon filter API.
Add changes to correct this.
Change-Id: Ib489b0fc7bc1f0a2b7414f59ed325deecb65bb8e
CRs-Fixed: 1030084
qcacld-2.0 to qcacld-3.0 propagation
In lim_process_messages(), few SME messages updates 'session_entry'
using SME session id. Host driver should not use SME session id in PE.
Fix to update 'session_entry' using pe_find_session_by_bssid().
Change-Id: Icebf4604d5a3a825afc6b1d3540bd228488ce267
CRs-Fixed: 1020643
qcacld-2.0 to qcacld-3.0 propagation
TDLS connection will teardown in host on receiving teardown
event from Firmware. But if host is in WOW mode then host will
not receive teardown event from FW.
To fix this issue add TDLS connection tracker event changes in WMA.
Change-Id: I3a305e95410d2884b41e9e4183ed4eeabd733f9d
CRs-Fixed: 991993
qcacld-2.0 to qcacld-3.0 propagation
Even though MCC is disabled by gEnableMCCMode ini, driver try to
roam to APs which may cause MCC but as MCC is disable the roaming
fails eventually in CSR while trying to connect to the new profile.
Driver creates a preauth session which is not deleted upon failure.
The session sme state is eLIM_SME_WT_REASSOC_STATE and thus fresh
scan required is set to false and cached scan result are returned.
Do not add the APs which cause MCC scenario, in preauth candidate
list if MCC is disabled.
Change-Id: Iae2a887e1fa34f89f340bd7392d757e1add97a16
CRs-Fixed: 992672
qcacld-2.0 to qcacld-3.0 propagation
In case if CSA is in progress and beacon missed is received
the session is disconnected. Now if STA tries to connect to new
AP and at the same time CSA timer expires then tries to switch
channel. As old session is deleted this switch channel fails
as channel info is invalid. This also leads to LIM state change
and thus the roam command is not removed from active command
list.
To fix this:
- Ignore beacon miss if CSA is in progress
- In CSA timer add check to ensure that channel change is for
current session.
Change-Id: Icbb80394e4870ccae19782ee17e37465020e93f9
CRs-Fixed: 1060378
Enable driver changes dependent on kernel flags CFG80211_SCAN_BSSID
and CFG80211_CONNECT_PREV_BSSID default for linux kernels starting
from version 4.7.0 as the dependent kernel changes are present from
this version.
Change-Id: I0ee25eb11c75c688becbf61b4424bd0bae28bd3a
CRs-Fixed: 1064018
Add OUI type(0x10) to HS2.0 IE frame parser. In current implementation
without OUI type being set, the first IE with WFA OUI is parsed as
HS2.0 IE, even though the OUI type is not 0x10.
Change-Id: I63d97fc100f419c09bc22d1747f434fb9a5c3b06
CRs-Fixed: 1067816
If user triggers con_mode change, while data transmissions are
happening, there is possibility of device crash, as data queues
are not stopped during con_mode change.
In con_mode handler, stop data queues before stopping modules.
Change-Id: I348d0da707ea4b706edfcd396adee32502180e3e
CRs-Fixed: 1070008
cds_send_mb_message_to_mac function frees the input memory buffer
irrespective of the success/failure of the message posting to the
MAC message queue.
This changes fixes the cases where the input buffer is attempted to
be freed for fail case of cds_send_mb_message_to_mac
Change-Id: I920822bf0ee268adb1312eed20de53450802fdc8
CRs-Fixed: 1070461
skb->cb has different meaning for rx & tx packets. Reset the
cb to avoid mis-interpretation of the data that leads to
eratic misbehavior the least of which is failure to forward
packets.
Change-Id: I5d1396c70cd93d165aa825c4408ad46d082693f3
CRs-Fixed: 1065769
list_empty api does not work correctly on copied list head.
Need to point to the original free_pool memory so that the
spinlocking and list management apis work as expected on
the original memory.
Change-Id: I631466d156c83f70cb6ea06eec0e361081f294cc
CRs-Fixed: 1070258
Null pointer dereference due to duplicate vdev
detach call.
Vdev detach is triggered as part of the delete
self sta but in failure scenario del bss request
timeout handler also called the vdev detach
which triggered NULL pointer dereference in OL layer.
-Fix the del bss request timeout handler by adding
more condition checks specific to P2P as the changes
are related to P2P.
-Remove vdev stop from the vdev start timeout
handler.
Change-Id: Ibe848c89823efbb10f7dcc193157189106ba238b
CRs-Fixed: 1070817
Add changes to parse DISA parameters received from
user space and pass them to firmware for firmware
to encrypt data and send back to driver. Also, add
changes to print encrypted data received from firmware.
Change-Id: Ic6928a93f799c47518fbbad96564062f595287dd
CRs-Fixed: 1064970
Linux kernel 4.0 introduced a new way for drivers to report bandwidth
information to userspace. Prior to this rate information was
indicated by setting an appropriate BW flag in the struct rate_info
flags field, and 20MHz bandwidth was assumed if no flag was set.
Linux 4.0 introduced a new bw field to struct rate_info, and the
driver was updated to set this field in all cases where previously a
bandwidth-specific flag had been set. Unfortunately in the 20 MHz
bandwidth case the driver was not previously setting a
bandwidth-specific flag, and hence in the current case it is not
setting the bw field. This manifests itself in the following warning
emitted by the kernel when the device is associated to an Access Point
with a 20MHz bandwidth:
WARNING: at kernel/msm-4.4/net/wireless/util.c:1137
Modules linked in: wlan(O)
PC is at cfg80211_calculate_bitrate+0xdc/0x1f0
LR is at nl80211_put_sta_rate+0x64/0x1dc
Fix this issue by initializing the rate_info bw field to 20 MHz prior
to calculating the bandwidth. If the bandwidth is anything other than
20 MHz then this default value will later be overwritten.
Change-Id: I734b05e0e41c7a859939372fe4d8a3668a08c668
CRs-Fixed: 1072803
There is a desire to remove unnecessary items from the default version
of WCNSS_qcom_cfg.ini that is shipped to customers. Currently the
default value within wlan_hdd_cfg.h is:
define CFG_ROAMING_TIME_DEFAULT (10)
gRoamingTime is set to zero in WCNSS_qcom_cfg.ini to always
complete/cancel roaming operation.
As part of this WCNSS_qcom_cfg.ini cleanup remove gRoamingTime and
related code.
Change-Id: I1f7833b2ae4794ceac8d4e3826fa26417b54eae4
CRs-Fixed: 1071268
When FEATURE_NAPI is disabled there is a compilation error. Fix the
compilation error by adding appropriate function defintion.
Change-Id: If77ad5d8a5a6edc189159d0e9d6d92edd2856052
CRs-Fixed: 1072777
Fix check for identifying P2P action frame by calling the helper
routine wlan_hdd_is_type_p2p_action().
Currently incoming frame buffer is checked against only for Public
action category and not for P2P OUI. Without this any Public action
frame could be incorrectly tagged as Provisionaly Discovery Request
or Go Negotiation Request.
Change-Id: Id55feec06072e2ca6ad780e51c49cd19662b4d8e
CRs-Fixed: 1071200
qcacld-2.0 to qcacld-3.0 propagation
Add changes to honor power constraint based on ini. Also, enhance
logging for power sent to fw.
Change-Id: Iefd497d76076527ca4c388cade46644a88a51932
CRs-Fixed: 1016876
Host should not honor any vendor pktlog disable command
if NO vendor pktlog enable command is sent previously.
Currently, vendor sends pktlog disable command without sending enable
command during init and because pktlog is enabled in ini by default,
Host sends the pktlog disable command to firmware which is not as expected.
To fix this, host uses reserved flag in wifi_start_log to distinguish
vendor command from iwpriv or pktlog conf tool command and vendor disable
pktlog command will be sent to firmware only when vendor pktlog enable
commands is sent previously.
Moreover, pktlog INI enable by default and Pktlog buffer size are now
controlled using a macro FEATURE_PKTLOG depending on build variant.
For production/user build, pktlog is default disable and buffer size is
1 MB, whereas for dev build, pktlog is default enable and buffer size is
10 MB.
Change-Id: If64cd522e91cbe9a6d94d8626eb758282fcfd1bd
CRs-Fixed: 1072584
Currently, in host driver, ssid hide which is a session specific
parameter is set on reception of corresponding iwpriv command. Driver
would need to handle similar cases of setting session specific parameter
from HDD[ need this for setting ignore assoc disallowed parameter
for MBO].
Modify the ssid hide API's to generic so that the same API can be
used for setting any session specific paramater in future.
Change-Id: I29c62ff4a6f6d9ed1ff4a0f31a82727eb623bfd4
CRs-Fixed: 1072081
qcacld-2.0 to qcacld-3.0 propagation.
Presently the Roam Scan Offload commands(Start/Restart/Stop etc) are all
sent directly from CSR to WMA. This fix reroutes these commands to LIM
and then to WMA. In LIM, ext cap IE present in assoc IE buffer of RSO
command is updated with FTM[Fine Time Measurement] capabilities if set
in host driver
Change-Id: I86c3b93570a38329cbc6a8a31017ece172164732
CRs-fixed: 1009486
As part of MBO(Multiband Operations), supplicant provides default
scan IEs per adapter to driver at init time which is passed to
FW for future use of the IEs in FW initiated scans. However
Host driver also need to save default scan IE's to use the same in
driver initiated scans.
For example LOWI scans request may not have MBO IE and then in that
case we need to copy the MBO IE from default IE and send it in the
scan request to firmware.
The fix implements the following:
1) Save default scan IEs per adapter in host driver when received.
2) Compare/Update IEs in cfg80211 scan request with default scan IEs.
Change-Id: I94278637ee03807104fcf85db544c6be22ec6adf
CRs-Fixed: 1039969
As part of MBO(Multiband Operations), host driver need to supply
the default scan IEs to firmware at wifi init time using existing
VDEV SET IE command. FW uses these Scan IE's in subsequent scans,
.i.e. FW initiated Probe Requests.
As part of this fix, receive default scan IE's from supplicant,
update extended capability IE with FTM values(if ext cap IE is
present), send down the scan IE's buffer to FW which would be used
for subsequent FW initiated scans.
Change-Id: Ia23459078d93a30c9a1715e391023ee0a1de93ee
CRs-Fixed: 1039969
qcacld-2.0 to qcacld-3.0 propagation
GETIBSSPEERINFO(ALL) fetches IBSS peer information which
includes tx rate. However, only lower 3 bytes of txRate
field is relevant. Mask out irrelevant fields when passing
tx rate info to the user.
Change-Id: Ice0199b84899e7452bf64353c744118f109d9c14
CRs-Fixed: 1050973
qcacld-2.0 to qcacld-3.0 propagation
Add changes to support qpower dynamically using vendor command.
CRs-Fixed: 1054217
Change-Id: Ibc9456c2edc4f385f637cb9e45e3f51a6a911121
qcacld-2.0 to qcacld-3.0 propagation
Memory should be allocated to radar_event only when radar phy
event needs to be sent to WMA layer.
Add changes to fix memory leak.
CRs-Fixed: 1065466
Change-Id: Ia3e93ddd47913956c27487472b6a70eb68d63fd9
In failure scenario sme session id is getting
reset but sme open session flag is not cleared.
Due to this scan rejected from host.
Clear the sme open session event in sme close
failure/timeout scenario.
Change-Id: I2cb91120947c38a25df508c376f0e1377717458f
CRs-Fixed: 1072820
A new adapter overwrite previous adapter information for LRO flush
callback, causing LRO packets for that adapter not being flushed and
sit in the LRO manager queues.
LRO flush now walks through the adapter list and flushes for every
LRO-enabled adapter.
Change-Id: I4c882a6521759c1c8fa05b9d9be4134feabd08aa
CRs-Fixed: 1072471
Host registers wext handlers, during STA interface UP. But not
unregistering during interface down, lending user to issue iwpriv
commands though interface is down.
Unregister wext interface, by initializing wireless_handlers to NULL
during interface down.
Change-Id: I839d733595672c8c43e5a085ea5f1e97d98c4c31
CRs-Fixed: 1064023
qcacld-2.0 to qcacld-3.0 propagation
This commit allows the upper layers to query driver for max
message size between the host & firmware using vendor command.
Change-Id: I21db90c854e6105f00c27dec9389f2cafd4f6508
CRs-Fixed: 965244
qcacld-2.0 to qcacld-3.0 propagation.
Packets are not freed from cache buffer and causes memory
leak in SSR case. Flush cache RX frame queue to avoid this memory leak.
Change-Id: Idd9edde6fdb3b9ff3ecbe7d8139f9a66468b70af
CRs-Fixed: 1051019
qcacld-2.0 to qcacld-3.0 propagation
When the OPEN/SHARED WEP is configured, the current
implementation will start Auth request with SHARED and if it
fails, triggers Auth request with OPEN. This change will
trigger the OPEN Auth requests when the timeout happens
(no Auth response received for previous attempt i.e.AUTH req
SHARED case). Some APs don't respond to Shared Auth if
they support only Open. To interoperate with this kind
of APs try Open Auth if Auth timeout happens with Shared
Auth.
Git-commit: 368b3a4eb4b4067bfff88d3dbd21371af3bb23a8
Change-Id: I28b9186b9dc238640fd7655c9ac73e8aa89aec54
CRs-Fixed: 984341
Currently RRM scan state is not being tracked, leading to possible
suspend attempts while RRM scan is pending. Set scan state information
to prevent suspend while RRM scan is pending.
Change-Id: I1d688f137961b4cb09d13764761c8d22709c3a43
CRs-Fixed: 1072598
qcacld-2.0 to qcacld-3.0 propagation
Provide mechanism to user to enable or disable channel avoidance
indication through vendor command and also control this mechanism
using "gOptimizeCAevent" ini parameter.
By default "gOPtimizeCAevent" ini parameter is disabled. Ini param
controls the CA events based on the mode. If ini is enabled(1) then
firmware will send CA events only in SAP/GO mode and it will not send
any CA events in STA mode. If ini is disabled CA events are sent to
host in all the modes.
a. gOptimizeCAevent = 1
- When host sends ioctl(enable), FW will send "ONE" CA indication
to host(though it is duplicate).
- When host sends ioctl(disable), FW doesnot perform any action.
- Whenever any change in CA and WLAN is SAP/P2P-GO mode, FW will
send CA ind to host regardless of the ioctl status.
b. gOptimizeCAevent = 0
- FW will ignore ioctl request if received.
- CxM behavior will be as per the current implementation.
Change-Id: I9bd81b03b97a60bb81e550068742b2fc0b776ebb
CRs-Fixed: 903249
In qcacld-3.0 an attempt is being made to converge on a common set of
methods for each feature. Update HDD Green AP feature to align with
"<layer>_<feature>_<method>" naming.
In addition relocate the embedded documentation of all public
functions from the .c file to the .h file since it is the interface
that should be documented and not the implementation.
Change-Id: Id6478f80a85b9e7d6abd1949a136c3c8357d49e9
CRs-Fixed: 1072396
The recent set of "Refactor HDD LPASS" changes introduced a new set of
public APIs. Currently these APIs have documentation entries in both
the header file and in the source file. This will result in redundant
entries when documentation is generated from the files. Since public
APIs should document their interface and not their implementation,
remove the documentaton entries in the source file, leaving just the
ones in the header file.
Change-Id: Idcd4c35d74dc79b0a8440b03084420f4b40ebae5
CRs-Fixed: 1070700
Previously "qcacld-3.0: Refactor WLAN_FEATURE_LPSS" refactored some of
the HDD LPASS logic. Continue that process by refactoring the "target
config" logic such that the actual implementation is in the lpass
feature file.
Change-Id: I2fb40fc2d0276bfad9f79f340895b7d23c8a9d5d
CRs-Fixed: 1070700
Previously "qcacld-3.0: Refactor WLAN_FEATURE_LPSS" refactored some of
the HDD LPASS logic. Continue that process by refactoring the "is
lpass supported?" logic such that the actual implementation is in the
lpass feature file.
Change-Id: If54961eebc97951985770cdad813d6fbbc3953f9
CRs-Fixed: 1070700
Previously "qcacld-3.0: Refactor WLAN_FEATURE_LPSS" refactored some of
the HDD LPASS logic. Continue that process by refactoring the
"populate CDS config" logic such that the actual implementation is in
the lpass feature file.
Change-Id: I3dada0d446a994862f70392f8ebf5911bda583da
CRs-Fixed: 1070700
Previously "qcacld-3.0: Refactor WLAN_FEATURE_LPSS" refactored some of
the HDD LPASS logic. Continue that process by refactoring the
"connect" logic such that the actual implementation is in the lpass
feature file.
Change-Id: Iac7bb28cbf6c1b361cf95f1eccba507cca0d5ad3
CRs-Fixed: 1070700
Previously "qcacld-3.0: Refactor WLAN_FEATURE_LPSS" refactored some of
the HDD LPASS logic. Continue that process by refactoring the
"disconnect" logic such that the actual implementation is in the lpass
feature file.
Change-Id: I7250582c8e0ba7423babfd6acfd23ff492d05037
CRs-Fixed: 1070700
Previously "qcacld-3.0: Refactor WLAN_FEATURE_LPSS" refactored some of
the HDD LPASS logic. Continue that process by refactoring the
"interface mode change" logic such that the actual implementation is
in the lpass feature file.
Change-Id: I7be1719f6b0f4ed69d60dbb1c50dab63ca3d768a
CRs-Fixed: 1070700
Previously "qcacld-3.0: Refactor WLAN_FEATURE_LPSS" refactored some of
the HDD LPASS logic. Continue that process by refactoring the "stop"
logic such that the actual implementation is in the lpass feature
file.
Change-Id: I53bd57e2687e0d6fa2cb11bd34e19ee7eedb7969
CRs-Fixed: 1070700
Previously "qcacld-3.0: Refactor WLAN_FEATURE_LPSS" refactored some of
the HDD LPASS logic. Continue that process by refactoring the "start"
logic such that the actual implementation is in the lpass feature
file.
Change-Id: Idc7ed03abd35616d2a7bfa4a74aaec9898f9dc8e
CRs-Fixed: 1070700
Since AC/UP table is 4 entries long and linux AC queue has 5 entries,
packets coming for new queue are going out of bound.
Add changes to add one more index in SME AC type to handle this.
Change-Id: Ifaeb6f2c68177887759c3582dd7bc6ff56673d7d
CRs-Fixed: 1064813
This reverts commit Id0b7dd6b4573147eef9b80b57bc78284e52807ec.
This change is not required anymore as now vendor related pktlog
enable/disable command will be handled via flag in wifi start log
structure.
Change-Id: I82f32d3d8021361e92d67a53624a1d5d027fd9b8
CRs-Fixed: 1072584
As part driver shutdown cds recovery inprogress is set and it is cleared
once the driver recovery is completed. In the case of the SAP ssr
network manager tries to unload/reload once the network queues/carrier
is turned off. In the module exit the driver is unregistering the
driver ops because of which platform driver is not able to invoke the
re-init of the driver and re-init completed flag is never set.
Once the driver unregisters with platform driver it invokes the
remove function in which driver is waiting infinitely for the
reinit to complete.
To mitigate the issue wait for driver recovery to complete before starting
the driver unload.
Change-Id: I1879f7dc4b09d3eef6475252f6209339351c5737
CRs-Fixed: 1072677
When supplicant issues connect with prev_bssid set, it expects the
driver to do reassociation instead of disconnect and connect.
This fix checks if prev_bssid is set and bssid/bssid_hint, channel/
channel_hint parameters are present in connect and if yes, invokes LFR3
roaming.
Change-Id: I8d4d29086a205563061bb155a1298de91839cbec
CRs-Fixed: 1071581
In cds_deint, cds global context is set to NULL and then cleanup handlers of
memory/timer/nbuf manager's are invoked. During the cleanup these handlers
use QDF_TRACE to print the cleanup information which internally tries to
get the global context resulting in not clean unload of driver.
To migitate the issue set global context to NULL once the clean up of
all handlers is completed cleanly.
Change-Id: Ic58962dfd543020d79cabd7b646e483c4f7961f2
CRs-Fixed: 1067340
Firmware DBS mode is updated during firmware based roaming. Same change
is reflected in the host policy manager. Process hw_mode TLV in roam sync
indication event. Update cds concurrency policy after roaming. Handle
exceptions for ROAM_ABORT and HO_FAIL conditions.
Change-Id: I826c6766f73441256e5946d3167966e645f23430
CRs-Fixed: 1044336
In function lim_send_ht_vht_ie per band HE/VHT IE being sent to firmware
are being populated as per hardware mode (DBS/Non-DBS). Change that to
absolute self HT/VHT capability.
Change-Id: I3e74ffb89fcdc2903ecaa3c1bb3e4aeffd4f8f35
CRs-Fixed: 1069032
In the present implementation driver directly switches to con_mode
requested by user eventhough it is in the same mode as requested by
the user. Also, con_mode_handler relies on the station adapter
to switch between modes, if current con mode is other than STA mode
then handler returns failure, without processing con mode change.
In con mode handler add check if user trigger con mode is same as
the current con mode, as driver is already in same mode and get
valid adapter context based on con mode.
Change-Id: If7ee95f7ce5c2e6f85c1245bdf4cdfa3d0f16d53
CRs-Fixed: 1069408
INI support to enable/disable extscan is added recently and
by default it is disabled. Make it enable by default.
Change-Id: I4cd10915aa0d99db233bf8813e15abfc49539594
CRs-Fixed: 1071385
qcacld-2.0 to qcacld-3.0 propagation
Add support for vendor command which ask the driver
to restart the SAP if SAP is on unsafe channel.
QCA_NL80211_VENDOR_SUBCMD_AVOID_FREQUENCY is used to send
driver to restart SAP device if SAP is on any unsafe channels.
Upon receiving this command, driver will restart the SAP device
if SAP is operating on any of one the unsafe channels.
Change-Id: I187a6e0c9f3eaa96c740e50c332a7aba5796dc74
CRs-Fixed: 998048
qcacld-2.0 to qcacld-3.0 propagation
Add support for vendor command which informs the driver about
sta roam policies about dfs mode and unsafe channels.
QCA_NL80211_VENDOR_SUBCMD_STA_CONNECT_ROAM_POLICY sends
QCA_WLAN_VENDOR_ATTR_STA_DFS_MODE &
QCA_WLAN_VENDOR_ATTR_STA_SKIP_UNSAFE_CHAN
attributes to driver to skip scan channels for station
connection or roaming.
If QCA_WLAN_VENDOR_ATTR_STA_DFS_MODE is disabled, station will skip
dfs channels in scanning.
If QCA_WLAN_VENDOR_ATTR_STA_SKIP_UNSAFE_CHAN is disabled, station
will skip unsafe channel in scanning.
Change-Id: I33dfa174d218a2f39fec3ffc240dad793b72b14b
CRs-Fixed: 999169
qcacld-2.0 to qcacld-3.0 propagation
Add support for vendor command which informs the driver about the
ACS policy.
QCA_NL80211_VENDOR_SUBCMD_ACS_POLICY is used to inform driver about
ACS policies.
QCA_WLAN_VENDOR_ATTR_ACS_DFS_MODE attribute tells if DFS channel
should be enabled or disabled in ACS.
QCA_WLAN_VENDOR_ATTR_ACS_CHANNEL attribute provides channel number to SAP
module to skip ACS and use this channel as operating channel.
Change-Id: I1ba69ed8fdf1c56a90e857054c725b830293d6bf
CRs-Fixed: 997433
Old generation of projects, which had only one MAC, are restricted to
use 28ms of fix active and passive dwell time when SAP session is active
but with new generation of projects, which can have two MACs, are
permitted to use longer active and passive dwell time when SAP session
is active on 2G band and DBS is supported.
Change-Id: I2638d9b7a3677c3f0b329ed8109d01baa2cffd68
CRs-Fixed: 1071353
Current driver is updating HT & VHT RX LDPC cap in CFG based on INI
only which is not correct.
Take the intersection of INI items and hw caps for HT & VHT RX LDPC and
update the CFG accordingly.
Change-Id: Ibef165b61c2242d8fec6da7f7a2ce3e8d5c5aa11
CRs-Fixed: 1069659
Refactor following HDD APIs to match coding standard:
hdd_update_vht_cap_in_cfg
hdd_update_ht_cap_in_cfg
hdd_update_config_dat
Change-Id: I0da05cad92a558aa4ca5dc585d80adb3a8ea9f1e
CRs-Fixed: 1069659
Socinfo API is not a standard system API. Hence, use PLD API to get
SOC serial number instead of calling socinfo API directly to enhance
driver portability.
Change-Id: I1d673d2f3b0066f4e05f2f465abc8a6cad7a1f8f
CRs-Fixed: 1069480
Send NSS value to firmware in update_nss as received from AP
in OTA frame, VHT Operation notifcation IE.
Change-Id: Iad92cc3ce634b69397666f574917b5254a73dcda
CRs-Fixed: 1070224
qcacld-2.0 to qcacld-3.0 propagation.
Currently, SAP start's on 2.4ghz channels on detecting unsafe
channels even though operating band ACS hw mode is configured
on 5ghz channels.
Fix is to start BSS on band based on ACS hw mode
Change-Id: I210937b4b464c408d5a22c348c028fa9a11b2142
CRs-Fixed: 1005327
propagation from qcacld-2.0 to qcacld-3.0.
FW sends NACK for WOW command to indicate Host to abort on going
suspend. Host prevents suspend by holding a wakelock for 1sec.
The wakelock prevents APPS supsend, but doesn't have impact on
Runtime PM. Hence Skip Holding Wakelock when NACK is recieved
in Runtime PM.
And Log the runtime stats when link resume fails.
Change-Id: I6d9385565c6d06a082e226d5211c733d124bd3a7
CRs-Fixed: 1053252
propagation from qcacld-2.0 to qcacld-3.0.
On Dual-WiFi Platforms, Radio Device 1 (R1 - SDIO interface) should
be functional only if Radio Device 0 (R0 - PCIe interface) is active.
If SSR is indentified on R0, indicate userspace application to unload
R1 on this event and Reload R1 once R0 SSR and reload is complete.
CRs-Fixed: 1046397
Change-Id: I8a06b569fe536bb93dbb37bdb289295bfce62f6e
Change the log level of p2p scan messages from error
to correct log level since they are not error messages.
CRs-Fixed: 1069559
Change-Id: I68d5f6addc53e76536a989cfa7bf131f20b8dcd2
qcacld-2.0 to qcacld-3.0 propagation
As Current WMI interface need both the ARP/NS configuration
in single command. To support active offload host need to
cache the ARP/NS at wma layer so host can fill the other
request and configure down to firmware complete request
(ARP+NS).
Change-Id: Ie0a57d216379817ff0ae48f4f582c9108e8ecca1
CRs-Fixed: 1059739
There is a desire to remove unnecessary items from the default version
of WCNSS_qcom_cfg.ini that is shipped to customers. Currently the
default WCNSS_qcom_cfg.ini contains the following entries:
gScanAgingTime=30
gScanResultAgeCount=1
The associated default values within the driver are:
define CFG_SCAN_AGING_PARAM_DEFAULT (60)
define CFG_SCAN_RESULT_AGE_COUNT_DEFAULT (3)
These are obviously divergent and should be converged. Since all
recent testing has used the default WCNSS_qcom_cfg.ini, converge on
the values defined there.
Change-Id: I4b75590c44a94b9b95fbd47cf147137d4f695e51
CRs-Fixed: 1070145
Ensure logging messages in the suspend/resume paths use hdd_err() for failure
and hdd_info() for success. Also, evaluate existing messages, and polish if
appropriate.
Change-Id: I8b9509cf631058602ad6e8cd06a013af63624f00
CRs-Fixed: 1070223
Currently the max number of MC filters is set to 10, and MC address
filtering is not being properly disabled when this maximum is exceeded.
Increase the MC filters to 32, and disable MC filtering when the
maximum is exceeded.
Change-Id: I124b616be726abfe0739ca539d97965161285da9
CRs-Fixed: 1068479
During re-init of SSR, host restarts adapters one by one, by
traversing adapterNode link-list, whose all interfaces are up.
But if any of adapter's interface is down, then driver will be
in infinite loop as its not traversing to next adapter node.
So, on adapter's interface down, go to next adapter node to
break infinite loop.
Change-Id: I334a6304578d833485b58b2f6f494b4556c781ed
CRs-Fixed: 1069498
wpa_supplicant queries for DFS capability as part of
initialization and the interface is not up by then. So, allow
userspace components to query for the same even if the interface
is not up.
Change-Id: I2b8dc04260e1cbe007fda4be7f1b8aa196ae7a79
CRs-Fixed: 945597
Clean up PLD source file by moving one-line function calls to
header file and make it static inline. Also, remove unused function.
Change-Id: Ibaa7357db4ac305f0bab9d8ad2f7dfe9351fda7d
CRs-Fixed: 1070075
In low memory conditions TX/RX histogram memory allocation failure
is not handled properly and because of it 2 kernel panics are observed.
1st kernel panic is caused when freed HDD context is de-referenced in
hdd_wlan_startup and 2nd kernel panic is caused by kernel wake lock
list corruption because WLAN driver during load failure corrupted kernel's
wake lock list.
As part of this fix make sure TX/RX histogram memory allocation failure
is handled gracefully by properly sending failure reason code to
hdd_wlan_startup.
Also in order to make fix complete and avoid any other kernel panic, deinit
HDD context properly by freeing all HDD created wake locks such that when
HDD context is freed its wake locks are not poisoned to 0x6b6b6b6b6b6b6b6b
(SLUB magic pattern) pattern by kernel and hence corrupting kernel wake lock
list.
This fix ensures driver load failure caused by TX/RX histogram allocation
failure is handled gracefully in low memory conditions without leading to
any kernel panic.
Change-Id: I17a46c346402642f39e6548cd40bedd1f7ff96a4
CRs-Fixed: 1069014
Current driver doesn't send WMI command to notify firmware to disable
all dual mac features when DBS is disabled from INI.
Disable dual mac features including all scan policies when DBS is
disabled from INI.
Change-Id: Id452c1de795dbeb7dc897a71e1578731d9dad2f9
CRs-Fixed: 1069650
Add support to include VHT opmode IE in association request
frames when the STA is connecting to VHT AP and the connection
has SMPS enabled.
Change-Id: Id18a6356ac6f08d1846abe42f84713fddef984dc
CRs-Fixed: 1062430
DTIM period is configured during add_bss and is taken from scan
cache bss descriptor.Scan cache can have both probe response and
beacon frames, but the TIM IE is present only in beacon frames.
If scan cache has the probe response frame then DTIM values is
configured as 0.
Get the DTIM period value from beacon and configure it to FW.
Change-Id: I2b92e5e133a70d33987a50b6113681142bc4896a
CRs-Fixed: 1067558
Move HT/VHT parameter from PEsession to Station dph entry which are
introduced as part of wlan data logging.
Change-Id: Icd9258c32a82d3842708ac92b498106d870d7f4f
CRs-Fixed: 1053747
Remove the per band chain mask support flag as the chain mask
configuration by user is not supported. And set the HT and VHT
IEs to FW unconditionally.
Change-Id: Ic29ec1019a7d83c7080409096ec41e827c4009fb
CRs-Fixed: 1068108
The WLAN_FEATURE_MBSSID conditional compilation flag is no longer
needed since MBSSID is a required feature. Remove this flag and
any alternate code referenced in the conditional compilation blocks.
In phase 4, completely remove the MBSSID compilation flag.
Change-Id: I9c74ae624f1db39f13c62b148396a3c8ac49ad88
CRs-Fixed: 1067450
FW crashes when disconnect STA interface in STA only mode, since
sending WDI disable command while it is not enabled yet.
WDI disable should be sent only when STA disconnected while SAP
client is connected.
Fix by adding check if SAP client is connected in prior to send
WDI disable command to FW.
Change-Id: Ia7f46e0567d4d5d6f7efe78be5ab5b007419210d
CRs-fixed: 1068439
qcacld-2.0 to qcacld-3.0 propagation
Currently, tdls lock has not been acquired and if tdls peer or
tdls context freed in other context then it will lead to crash.
Fix is to ensure that the tdls lock is acquired for tdls peer
list and tdls context.
Change-Id: I52c3e7b67c7f61160c54a1a6688db09f0137b7e1
CRs-Fixed: 945302
There is a desire to remove unnecessary items from the default version
of WCNSS_qcom_cfg.ini that is shipped to customers. Currently the
default WCNSS_qcom_cfg.ini contains the following entry:
gEnable5gEBT=1
The default value within wlan_hdd_cfg.h is:
define CFG_PPS_ENABLE_5G_EBT_FEATURE_DEFAULT (0)
Since this feature improves power consumption it should be enabled by
default, so update the default value in wlan_hdd_cfg.h.
Change-Id: I585cb06f227ee4575b06165c751a93fb93c2fad6
CRs-Fixed: 1068914
lim_cmp_ssid api returns zero when comparison ssid matches
else returns non zero. Checking return value with true/false
can cause confusion and errors.
Replace the return value check from true/false to
zero/non-zero values.
Change-Id: Id22560cb4c2289431995dab3087b4eb24546a8bf
CRs-Fixed: 1067454
qdf_mem_cmp api returns zero when comparison string matches
else returns non zero. Checking return value with true/false
can cause confusion and errors.
Replace the return value check from true/false to
zero/non-zero values.
Change-Id: I485d69a4bf85d1e6273ea780af6d0423c3910686
CRs-Fixed: 1066946
If the peer is not present in the deleted list,
this function frees the resources for that peer and
add it to the deleted list. If the peer is already
in the deleted list, do nothing and continue to scan
for other peers. Incorrectly checking the return value
qdf_mem_cmp make the above functionality broken.
Fix the check for return value of qdf_mem_cmp to
allow the proper processing of the peers in deleted list.
Change-Id: Ica97b3bcaa651e2ca5935beb1381e9fc5b196e8a
CRs-Fixed: 1067411
Integration from cld-2.0 to cld-3.0.
Currently the throughput is measured every 100 ms. Delack is set to 20
if throughput for this interval is greater then threshold (~57 Mbps).
In the case of congestion control, tcp may take longer duration for
rampup. In this change, throughput is checked for consistency for
about three seconds and then tcp delack is set to 20.
CRs-Fixed: 1028085
Change-Id: I1a4e9be3407ac426a314e1192d0e1d315e1899e0
If SAP is operating in DFS channel, and STA comes up in 2.4
GHz band, then irrespective of DBS capability, SAP switches to
STA's channel for SCC.
The enhancement is to allow SAP to operate in DFS channel,
and restrict the preferred channel list for STA with 2.4 GHz
channel, if the device is DBS capable.
Change-Id: I548889265443c391d07d00951f6112983edafbcd
CRs-Fixed: 1067720
Proivde PLD wrapper APIs for getting SMMU mapping
context and mapping SMMU to a specific physical address.
Change-Id: I3feb61b26c839547e4d050f62963e64f5ca062a7
CRs-Fixed: 1057714
Add PLD wrapper for platform athdiag read/write.
HIF will call these two functions when a athdiag read/write
triggered from user space.
CRs-Fixed: 1061837
Change-Id: Ie34c634beaf1cd91e24eca1b7ce5b6444a60393e
qcacld-2.0 to qcacld-3.0 propagation
Host should not allow roaming if bssid is set in connect request
and hence RSO_START should not be sent.
Add changes to not send RSO_START if bssid set in connect request.
Change-Id: I1037c60837a90472fee312e8654197ea7f68702e
CRs-Fixed: 1016886
qcacld-2.0 to qcacld-3.0 propagation
When supplicant issues enable/disable firmware based roaming on the
basis of the Bssid modification in network block (e.g. AutoJoin modify
Network Block), that time middle-ware will issue this pvt cmd to Driver.
Driver need to disable/enable firmware roaming.
(in our current design we can enable firmware roaming by offload scan
to firmware so firmware can scan and find candidate ap when rssi threshold
meet the criteria, same way driver can stop firmware roaming by stop
offload scan to firmware).
Change-Id: I378917d9d56c4d3ef13bfe8c3bf62adc6d5e7aa6
CRs-Fixed: 1012420
Currently, host driver adds Supported channels IE, ESE Version IE in
reassociation request initiated from driver. In LFR3, these IE's are
missing in reassociation request frames as it is initiated by FW.
As part of MBO changes, assoc IE's are sent to FW via Roam Scan Offload
command as soon as connection successful. Add the above supported channels
IE and ESE Version IE also while sending assoc IE's to FW via RSO command.
Change-Id: Ic73491d60b532e3b9bb79144599fbe111591f64a
CRs-Fixed: 1061698
Currently, host driver adds RRM IE, Power cap IE in reassociation request
initiated from driver. In LFR3, these IE's are missing in reassociation
request frames initiated by FW.
As part of MBO changes, assoc IE's are sent to FW via Roam Scan Offload
command as soon as connection successful. Add the above RRM IE and Power
Cap IE also while sending assoc IE's to FW via RSO command. For FTM[Fine
Time Measurement] cases, RRM IE's are changed dynamically. Hence, send
the updated RRM IE with other IE's via RSO/Update_cfg command to FW.
Change-Id: Iff5ff961df89d4564a31763257b13811c4f57df4
CRs-Fixed: 1061698
Update MAC address to FW if it is provided by host. Otherwise,
MAC address will be out-of-sync between host and FW.
Change-Id: Idcf00d80d6d9e3e39b5a5ccb6d96390c2d883fe6
CRs-Fixed: 1066986
Some cleanup is needed around a previous code change that reset the
power save timeout when power save is requested from user space.
Perform minor code cleanup, moving a logging statement and removing
a blank line.
Change-Id: Idc656fbaba16e58ef57625b5f9d5de37a191793a
CRs-Fixed: 1066022
Current host driver is using default pattern id 0 for various
WoW pattern configuration which is overwriting WoW rules in FW.
WoW pattern id should be unique for each vdev. Same WoW pattern
ID can be used on 2 different vdevs but on same vdev pattern id
for various WoW patterns must be unique. Add fix to make sure
unique pattern id is used for each vdev.
Change-Id: I893044ae50bee44b5e986f3c30967fad601eb057
CRs-Fixed: 1067951
roam_synch_in_progress is set by default in csr_roam_synch_callback function,
and will be reset only on SIR_ROAM_SYNCH_PROPAGATION roam op_code.
On roam_synch_in_progress set, no roam call back will be called and roam
command will not be removed from active list.
If roam_synch_in_progress is set on roam op_code other than SIR_ROAM_SYNCH_PROPAGATION,
roam_synch_in_progress will remain till next roam, till that time no roam commands will be
processed.
To fix this set roam_synch_in_progress only on SIR_ROAM_SYNCH_PROPAGATION roam op_code.
And also add log in csr_roam_set_bss_config_cfg if roam_synch_in_progress is set.
Change-Id: Id50e6f871280bd3eac9f61513db308ea748eec2d
CRs-Fixed: 1064213
In rx path replayed mcast packets are dropped and freed,
but debug node reference for dropped skb is not removed.
This is resulting in invalid tracking of allocated netbuf.
Remove debug node reference for dropped skb.
Change-Id: I1e36436dadaefb666c14af57c72876a70b887e88
CRs-Fixed: 1066770
qcacld-2.0 to qcacld-3.0 propagation
Fix the race condition, between 2 kernel worker threads
while shutdown is in progress.
Change-Id: I6e71ae55c57dac8c2adb36167783615e218cb481
CRs-Fixed: 834362
qcacld-2.0 to qcacld-3.0 propagation
SSR should wait until ndo hard_start_xmit ops is completed.
Change-Id: Ic3148cfb655f87d22c40bca7825809648c7b4b4a
CRs-Fixed: 952660
qcacld-2.0 to qcacld-3.0 propagation
Capture WMI version in a global variable for crashscope
to extract WMI logs.
Change-Id: I2f06eaf182bb67dceade397652f801e6311b8f68
CRs-Fixed: 978901
qcacld-2.0 to qcacld-3.0 propagation
GTX use this parameter to drop TPC and in turn TPC drop is the cause
for mcs rate drop and may happen in higher percentage. This change,
provide a way to select the desired value and reduce mcs-8 usage to
2% from 8%.
Change-Id: I64f05c8b41cf3d360819122a08eca72f3a2c1aed
CRs-Fixed: 1010564
qcacld-2.0 to qcacld-3.0 propagation
As per current implementaion whenever ACS is enabled via
INI all the update beacon from cfg80211 module fails because
sapconfig channel points to AUTO_CHANNEL_SELECT(0).
When driver ACS is enabled skip channel validation to fix
this issue.
Change-Id: Ie3e7d19332629fc860752b2240690fd6a15bb0a2
CRs-Fixed: 977101
qcacld-2.0 to qcacld-3.0 propagation
"log buffers are dropped" are consistently printed which
is affecting the tput KPI's. Masking the same with debug level
which is not enabled by default.
Change-Id: I6e9abc7d65f276d71810aedad9062152035699c0
CRs-Fixed: 956599
qcacld-2.0 to qcacld-3.0 propagation
Presently we are not validating the length of the essid received
and directly copying the buffer without size checking.
Perform bound checking before processing the scan req.
Change-Id: I786e4feb67bf039df3d217138a412da54f51787d
CRs-fixed: 890228
Currently hif_ctx is passed as a parameter in hif_get_hw_info
and hif_bus_reset_resume without any validation check for the
parameter. This change Validates hif_ctx before
dereferencing the hif_ctx.
Change-Id: I17636692863bfdded691594cef40ebe55e262849
CRs-Fixed: 1066838
qcacld-2.0 to qcacld-3.0 propagation
Currently, if get_station is called during roaming, host does
not send the correct rssi.Because of this, supplicant reports
very low rssi to upper layer and handover happens to cellular.
To mitigate this issue, send the cached rssi when get_station
is queried during roaming.
Change-Id: Icceb5839503ccd99e7aef535ee438d072d3a8823
CRs-Fixed: 1055388
qcacld-2.0 to qcacld-3.0 propagation
After interface down, kernel frees the ongoing scan
request memory and call cfg80211_scan_done.
Now, during IBSS change iface, stop adapter is called
which does not abort the scan. Once the ongoing scan is
done, HDD calls the cfg80211_scan_done for which kernel
has already freed scan req memory and this leads to crash.
Abort the scan during stop adapter for IBSS case also.
Change-Id: Ie53576399926cc3a07e6f66c0f3997b6617f9f04
CRs-Fixed: 1047004
qcacld-2.0 to qcacld-3.0 propagation
Currently, if MC list count is more than mc count that
target can support then host configures only max count that
target can support.Rest of MC addresses are dropped.
Now if host wakes up for any MC packet, there is no way to
identify if MC address was configured to FW or not.
Change the code to print all the MC address list that userspace
has sent to Driver and the MC address list that is sent to FW.
Change-Id: Idd63385a657d1af550cf07bbfe052ce465d30608
CRs-Fixed: 1023043
This changes fixes the qcacld-2.0 tp qcacld-3.0 propagation error
of Change-Id:I4b37d072bc92e003fcfe62ffe8f93f7c185eb6c7. Host driver
doesn't honor the Assoc reject with eSIR_MAC_TRY_AGAIN_LATER status
for non-PMF connection, due to this error.
Change-Id: Ib2defa27ee5c97ada53808d2e24a29b976fe5107
CRs-Fixed: 1067670
qcacld-2.0 to qcacld-3.0 propagation
Currently the age out of scan results is ineffective as the aging
timer is started only once the scan results are obtained from
the FW, which would expire in 1 sec, so it could be possible that
the cached scan entries may still persist and may not be aged out
To address this issue, purge the scan results by age, before the
scan results are updated to upper layer.
CRs-Fixed: 997430
Change-Id: Ib70b04f4a720123d21ba820dd3c1e86076083dc9
qcacld-2.0 to qcacld-3.0 propagation
In the driver, while processing the scan results, if the max
BSS limit is reached, all the newest scan results are dropped
and stale scan results are updated to upper layers.
To address this, remove the oldest scan entry if the max BSS
limit is reached.
Change-Id: Ib85a8a3b66fbf903311002887a3c5c3d10bfbccf
CRs-Fixed: 991417
qcacld-2.0 to qcacld-3.0 propagation
In limLogQosMapSet, dscp_exceptions is max of 21 size but
there is no limit check for num_dscp_exceptions.
Check for max size for num_dscp_exceptions to avoid overflow.
Change-Id: Ia1f64860f924aa0d586b2d0d532183ef9b18f2e0
CRs-Fixed: 933465
qcacld-2.0 to qcacld-3.0 propagation
In convert_qos_mapset_frame, dscp_exceptions is max of 21 size but
there is no limit check for num_dscp_exceptions.
Check for max size for num_dscp_exceptions.
Change-Id: Id098da5231b4f3e40abe369e52960859091dc200
CRs-Fixed: 931435
qcacld-2.0 to qcacld-3.0 propagation
If reg domain changes during connection and the connecting channel
is not valid, driver may connect to an invalid channel.
In this case wlan_hdd_cfg80211_update_bss_db will return NULL and
thus sta will not be registered to TL. This will cause RX frames
buffered in TL layer and eventually low resource condition.
To avoid this schedule a disconnect for the session if
wlan_hdd_cfg80211_update_bss_db returns NULL.
Change-Id: I72b62ea7d47f53db55daea5725fa833fd1a45fb8
CRs-Fixed: 1034569