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