The Linux Coding Style enumerates a few special cases where typedefs
are useful, but stresses "NEVER EVER use a typedef unless you can
clearly match one of those rules." The tSirWifiRateStat typedef does
not meet any of those criteria, so replace it (and the "tp" variant)
with a properly named struct.
In addition the Linux Coding Style frowns upon mixed-case names so
rename the members which are currently not compliant.
Change-Id: Iff54772fda084fee932f6669ab937e136ab2cf66
CRs-Fixed: 2427166
Currently, there is no information for roam reason
in csr
Fix,check 4 LSB of roam_synch_data for roam reason
and send roam_reason to hdd
Change-Id: I4306339eb69db3bfc05fac79b13e3693582ff05d
CRs-Fixed: 2425911
napi_gro_receive packet frees skb on success or drop(GRO_DROP).
Current code is trying to handle failure case by delivering skb
via non napi_gro_receive API. In case the packet is dropped by GRO,
this leads to access of freed skb.
Donot requeue GRO dropped skb to network stack.
Change-Id: Ibfbb8d4ac7f77cf3547da8c2ebc4f3fea8d226d0
CRs-Fixed: 2409252
Currently the key information i.e the key, and the number of keys
are not getting cleared on wifi link disconnection from wifi
driver memory, which can lead to information disclosure.
Clear the key information i.e the number of keys and
keys from wifi driver memory to avoid any potential information
disclore after wifi is turned off.
Change-Id: I45306e0d648c500f63f723b4e3ccb6098c055158
CRs-Fixed: 2415413
The condition check of for loop in hdd_get_max_rate_legacy() was not
propagated properly, it was a dead loop. Add missed i checking.
Change-Id: I7daf623e3bb70f6a691fd62cfd4e737f7e54a791
CRs-Fixed: 2425605
In case of STA+SAP, if STA connect to new channel, driver check
if SAP channel switch is required. Before this it wait if channel
switch is already in progress, if not it continue and check if
channel change is required. While waiting in case where event was
set and channel switch was not in progress, the even gets reset
after waiting.
So if event is not set again, i.e in case SAP channel change is not
required. Any subsequent wait on the event will result in timeout.
Also while changing channel this event is reset and then the
concurrency checks are made and if checks fails the channel change
may not happen leaving event in reset state.
So wait for event only if channel switch is already in progress.
Also reset the event once all concurrency checks have passed and
channel change is started.
Change-Id: Iffcd8b2bf9dc7cbbd7d939983601cc395ef4c515
CRs-Fixed: 2425145
In HL when psoc idle timeout is triggered, timer leak is detected
and host triggers panic.
When driver is loaded, upon device probe tx flow control timer is
initialized. When there is no activity on interface psoc idle timeout
is triggered and later during hdd_wlan_stop_modules host triggers
panic since tx flow control timer still exists. tx flow control timer
is deregistered in hdd_stop_adapter function which is not executed
during hdd_wlan_stop_modules.
Move tx flow control timer registration from hdd_open_adapter to
hdd_start_adapter function to avoid timer leak and panic
Change-Id: Id3677d09441e23f1e9e36cdf77e956d6871c46ec
CRs-Fixed: 2415146
Currently driver disables channels received in
SET_DISABLE_CHANNEL_LIST command, only when sap is turned
on (on start bss). According to new requirement, channels
should be disabled as soon as the command is received.
To meet above expectation, update the set disable channel list
command functionality to disable the channels as soon as the
command is received.
CRs-fixed: 2424991
Change-Id: I596c21847e90efef9676f20df528aed77e927519
If the netdevice registration fails, the netdevice is freed
by referencing the context in the adapter structure.
However, in some scenarios the registration failure can result
in the netdev ops uninit being called where the reference is
reset and hence invalid.
Fix this by saving the netdevice in a local variable
Change-Id: Id01bf5d3fe633432695520bda77697842ced9ff1
CRs-Fixed: 2423508
FR29306 has requirement to receive ECSA action frame from P2P-GO
Change id Ie9ddbf10c13f62205fdd60c512a560b35c6610ba broke this
Allow P2P-GO channel switch in response to ECSA Frame
CRs-Fixed: 2424413
Change-Id: Id388b0b6a5610b41d4da0dcda98974d9d0495eb5
For WPA3 SAE test case 4.2.7, SAP should reject the association
request with PMF disabled from SAE STA.
Change-Id: Ie2298313ce5a7a363afdb4478f541cf2da612603
CRs-Fixed: 2387822
The driver can be configured to support only 2.4 GHz operation
via INI setting "BandCapability=1". Currently, when the driver
is configured in this manner, the RF bands attribute in the
WPS IE in Probe Request frames incorrectly indicates the driver
can support both 2.4 GHz and 5 GHz operation. This is because
the logic used to configure the wiphy->bands occurs before the
INI file has been processed, and hence the BandCapability is
not properly applied. To address this issue relocate the logic
that updates the wiphy->bands until after the INI file has been
processed.
Wiphy supported band info is also dependent on FW capabilities,
so update wiphy band info after FW ready event is received.
Change-Id: Ic210cafd730f56feb9df06d8ad5fcd8cca8355fc
CRs-Fixed: 2377343
Currently, DPTRACE is not supported for IPA exception
path. So, in softAP Mode with IPA enabled, DPTRACE
RX logs are not seen.
Add support for DPTRACE in IPA exception path.
Change-Id: I551e7380a46004fcc8dcf5f8d30e4c0a700fa3bf
CRs-Fixed: 2425310
If LIM initiate disconnect for a peer (eSmeCommandWmStatusChange) and
at same time bss is stopped, disconnect may get processed after stop
bss and thus will return from LIM as AP has already stopped.
LIM will post eWNI_SME_DISCONNECT_DONE_IND to sme to remove
the eSmeCommandWmStatusChange command from serialization active queue.
But eWNI_SME_DISCONNECT_DONE_IND is not processed in CSR sub state
eCSR_ROAM_SUBSTATE_STOP_BSS_REQ the command is not removed.
Fix is to handle the eWNI_SME_DISCONNECT_DONE_IND in
eCSR_ROAM_SUBSTATE_STOP_BSS_REQ state.Also allow
hdd_cfg80211_del_station call during unload.
Change-Id: I79cd1f413f2f9f12e6da6702098b782b6c156d24
CRs-Fixed: 2425724
In order to simplify put_wifi_peer_info() refactor the logic for
attribute QCA_WLAN_VENDOR_ATTR_LL_STATS_PEER_INFO_RATE_INFO into a
separate function.
Change-Id: I72f4aef0a4df340a52eea59579216e5978a0d98c
CRs-Fixed: 2424696
The Linux Coding Style frowns upon mixed-case names and so-called
Hungarian notation, so rename HDD identifier pWifiPeerStat to be
compliant.
Change-Id: I3ca4d8a2e03ad1cab8512f9f665db1e6aebdc285
CRs-Fixed: 2424503
The Linux Coding Style frowns upon mixed-case names and so-called
Hungarian notation, so rename HDD identifier pWifiPeerInfo to be
compliant.
Change-Id: Ib0652a6b2f20fdd3c4ced29689b5428be4d4ac0d
CRs-Fixed: 2424502
The Linux Coding Style frowns upon mixed-case names and so-called
Hungarian notation, so rename HDD identifier pWifiIfaceStat to be
compliant.
Change-Id: I91fbbeef154f27600699a3cf761779fd4b1282cb
CRs-Fixed: 2424501
The Linux Coding Style frowns upon mixed-case names so rename HDD
identifiers wmmInfo & wmmStats to be compliant.
Change-Id: Ie285a7d71aaa7df1d4de02067f84bc2f3df2e874
CRs-Fixed: 2424500
Currently, the vdev connection status is checked by getting
the bss peer of that vdev, and if the bss peer is in associated
state then vdev connected status is sent as true. It can happen
vdev is present and bss peer is deleted after getting the bss peer
from vdev pointer. Then bss peer can not be dereferenced to get the
its status.
Instead remove all the duplicate api's tdls_is_vdev_connected,
pmo_core_is_vdev_connected, and wlan_vdev_is_connected with
wlan_vdev_is_up. wlan_vdev_is_up gives success status
if associated.
Change-Id: I863c3c0689f329870bd08c813813c16956135209
CRs-Fixed: 2424996
With the introduction of code change in
I16a5429c00034fe58fb4c70a8dacda666ac54227,
function __wlan_hdd_cfg80211_suspend_wlan doesn't
need the local variable 'scan_info' any more, so
remove it.
Change-Id: I09070d90004f740b25b45b424902521e7bfb6f6b
CRs-Fixed: 2425697
Add INI option to control consecutive WMI writes. Setting this 1
will essentially serializes the HTC WMI command writes.
Change-Id: I8e28990127f3e4dac2fa91ac9b9df87eed321a2a
CRs-Fixed: 2424795
Add support to get the various Coex data from the debugfs.
This commit adds the support to get the various coex data:
* COEX STATE
* COEX DPWB STATE
* COEX TDM STATE
* COEX IDRX STATE
* COEX ANTENNA SHARING STATE
The specific state information can be read via the debugfs.
Example to read the COEX STATE logging:
sm6150:/ # cat /sys/kernel/debug/wlan/mws_coex_state
vdev_id = 0
coex_scheme_bitmap = 0
active_conflict_count = 0
potential_conflict_count = 0
chavd_group0_bitmap = 0
chavd_group1_bitmap = 0
chavd_group2_bitmap = 0
chavd_group3_bitmap = 0
Change-Id: I92272ad7edf44df22730ac0fa992d876840ba632
CRs-Fixed: 2413943
kstrtou32() expects 3rd argument to be of data type unsigned int,
but currently argument of type int is passed.
Fix this by changing int to unsigned int.
Change-Id: I9ee73a67ab609fe646877db3c967f9972dacc988
CRs-Fixed: 2425520
Do not change bus/target delta for QCN7605. All the credits
received from FW will be released to the schheduler.
Change-Id: I17dbd1a4545d8b577ea521773c17506a0fc818cf
CRs-Fixed: 2423138
On association completion, RX handles are registered with the DP layer
as a part of cdp_vdev_register. It is possible that immediately after
association, host receives RX packets, but RX handles have not been
registered for the vdev with DP layer.
Drop packets in DP RX Thread if OS RX handles are not found for the
vdev.
Change-Id: I3bbd489ec9c5e6f6267521818663b123a85bb3f9
CRs-Fixed: 2419376
In csr_roam_issue_set_context_req_helper, reference of vdev is not
released after get.
Change-Id: I686cd6a8dfd7e7889ef8e9ac3a4c6eb6be217f6e
CRs-Fixed: 2424885
vdev->osif_rx_stack is overwritten to NULL when register tdls
peer, meantime, if there is RX data wait ro be indicated in
dp_rx_thread queue, host panic since vdev->osif_rx_stack
is NULL.
configure rx_stack when register tdls peer if dp_rx_thread is true.
Change-Id: I4afebce7f5f89485c9661f6394a8fd484409c05c
CRs-Fixed: 2423270