Add a history to track the adapter ops events. The
events currently recorded are the work post and the
work schedule.
Change-Id: I149cd81ac9f0a3d6dab79b133fd7324a18b5e541
CRs-Fixed: 2735636
In certain special scenarios, we need to update the
netdev features of a particular adapter eg: enabling or
disabling tso or hardware checksum incase of legacy clients.
Such an update of the netdev features is to be done only
after the connection, since the connection mode plays an
important role in identifying the features which are to be
updated.
The netdev features can be updated only while holding the
rtnl lock. Also taking into account that the protocol layer,
where we get the idea of the mode of connection, is under its
own locks, updating the netdev features while holding rtnl lock
can often lead to deadlock.
Hence to mitigate the above mentioned deadlock issue, we always
queue a high-priority work to update the netdev features for
every adapter. The need for high-priority work arises from the need
to maintain the roaming KPIs.
Change-Id: Ie9218b08931dea099c6194efa7434d888b849e8d
CRs-Fixed: 2735636
Due to latency concerns on GEN1 PCIe attach checksum offload and TSO
features cannot be enabled for 802.11A/B/G legacy mode connections.
So add INI option to dynamically disable/enable checksum offload and TSO
based on the connection type.
Use netdev_update_features kernel API to adjust the netdev features
dynamically for existing registered netdev.
change-id: I0e44cb1789516e1bcee619be3581d826f45f265b
CRs-Fixed: 2732090
ILP is a new hardware block which is used for PCIe powersave but
this can effect the throughput.
So to isolate the throughput issues, add ini param to
enable/disable this ILP hardware block using the ini configuration.
Change-Id: I19825af8598bbc2623542256e873367c2f3d29bd
CRs-Fixed: 2756587
To get the VDEV use API dp_vdev_get_ref_by_id instead of
dp_get_vdev_from_soc_vdev_id_wifi3.
Change-Id: I7d764df517baab0ab92f20e9b8ecaaedd3b44ecd
CRs-Fixed: 2753830
The sap context is NULL when sap adapter is not started, skip
context destroy for such case, to avoid error level output.
CRs-Fixed: 2749376
Change-Id: I190a3e75187be6b6d70f5a70c71c87e563cd3f15
Change feature flag name due to address alignment is
required from HW design perspective
Change-Id: Ia80b6371f50db144336aeaaf2db2ecdc77ac0380
CRs-Fixed: 2748507
Some APs advertise wrong seg0, seg1, and BW values
and the driver copies that info directly and sets it
to the FW, which can lead to a crash in HAL layers
due to the wrong configuration.
Fix is to ensure that only correct combination
allowed by regulatory can be passed onto the FW
in the vdev start command.
Change-Id: I452438f385d6f067812551071b2ea87b99b9eb01
CRs-Fixed: 2698732
The beacon report logic has the maximum 7 reports to include in
one measurement report frame. Update the no.of reports value
in the frame packing structure to pack 7 reports in one frame.
Change-Id: I92b33f024274765e0f8cf1386197a9dba05b4bab
CRs-Fixed: 2755806
Replace with dfs utils call utils_dfs_get_vdev_random_channel with
utils_dfs_get_vdev_random_channel_for_freq. We are replacing
channel numbers with frequency.
Change-Id: I0244512f83f45ef7974e39016832784b804286b7
CRs-Fixed: 2753219
Add function typedefs for csr_roam_synch_cb, pe_roam_synch_cb,
stop_roaming_cb, and csr_roam_pmkid_req_cb. Update all usage
of the callbacks to use the new typedef. This will prevent
possible CFI errors.
Change-Id: I9f5c6753098d83657ae66be4ed56a9a67b072bad
CRs-fixed: 2747058
Currently, when the country code changes, there is no logic
to restart the SAP on a new channel. Add a case to check if
the channel is not allowed, then calculate a new safe channel
and update the SAP restart reason.
Change-Id: I679ce6f72228b431530953a631c8c8afa4597187
CRs-fixed: 2718324
DUT doesn't teardown TDLS link if set gEnableTDLSScan = 0 just as
previous branch. This change will teaddown TDLS link if set
gEnableTDLSScan = 0 and disallow scan.
Change-Id: I287f3ec200c05ed6e7bc1d2887f659ab8ccc90fa
CRs-Fixed: 2749536
Currently in P2P GO mode, hdd is not waiting for existing scan
requests to complete before sending vdev delete. This is causing
issue in firmware.
To avoid this, abort ongoing scan requests before sending vdev
delete to the firmware.
Change-Id: I275d903c53ef01bc4c4c5be692b78b36288f4a06
CRs-Fixed: 2755340
Many platforms doesn't enabled CONFIG_CNSS_UTILS,
while pld_set_wlan_unsafe_channel depends on it,
pld_set_wlan_unsafe_channel and pld_get_wlan_unsafe_channel need return 0
instead of -EINVAL, or have side effect on channel avoid feature.
Change-Id: I0967d754314d6fb7f8a289ada3bbcbae2c8b3b5e
CRs-Fixed: 2752409
Soc context fetched in hdd_rx_check_qdisc_for_adapter
is not NULL validated before passing it to other APIs.
Fix is to add NULL check for soc context in
hdd_rx_check_qdisc_for_adapter.
Change-Id: Ib6a660307009e55c54eb4b3747a8efab8e370241
CRs-Fixed: 3264121
When supplicant disables firmware roam, RSO stop command with
roam scan mode value 4 is sent to firmware and this value 4
indicates the firmare to enable only Forced roam trigger(roam
invoke command from host). But before
ROAM_DEINIT(WMI_VDEV_PARAM_ROAM_FW_OFFLOAD with value zero) is
posted to firmware, the roam scan mode should be 0 or else there
could be potential peer unmap failures if firmware has already
started roam and disconnect is triggered from north bound or from
peer.
To avoid this, in the roam offload state machine handle the state
switch from RSO stopped to deinit if supplicant disabled roaming
flag is set and send RSO stop with roam scan mode value 0 to
firmware.
Change-Id: If50a306b6019320ddab2ac1695a57718d27f477a
CRs-Fixed: 2755948
In MBO 5.2.6 Test, the sigma dut will disable roaming by supplicant
and invoke roaming by "WMI_ROAM_INVOKE_CMDID" to FT roam to new AP.
Revert the previous change Ia471998cf631948d8ffa701e67fcee22eebb0fa0
to not set roaming mode to WMI_ROAM_SCAN_MODE_NONE for supplicant
disabled roaming because Firmware will not support force roaming by
"WMI_ROAM_INVOKE_CMDID" command in roam mode WMI_ROAM_SCAN_MODE_NONE.
The original issue of above change will be fixed in
If50a306b6019320ddab2ac1695a57718d27f477a.
Change-Id: I30e6405895bfa236a71f8f8d8fe3b7b933f40412
CRs-Fixed: 2755801
As driver already have frequency API use
wlan_reg_is_passive_or_disable_for_freq instead of converting
freq to channel and calling the channel API
wlan_reg_is_passive_or_disable_ch.
Change-Id: Ib6a9c4c1016911ff7a9598cbfd14797e305c75f3
CRs-Fixed: 2753825
The in_ifaddr in in_dev->ifa_list which stores IP info is freed
maybe due to lifetime hit/wlan interface re-connect, etc. In
the meantime, lot ARP request frame is pending in DP RX thread and
still try to do local ARP check in function hdd_is_arp_local(),
this function will go through in_dev->ifa_list but no lock
protection, use after free happened due to race condition.
Add lock protection in hdd_is_arp_local().
Change-Id: Iaa97d445d3c4c0b79b5b9f63362df2601f62af5b
CRs-Fixed: 2751469
Convert the TWT request type command to WMI TWT request type
value to configure it to FW.
Change-Id: I6bd550ec9a6cf971e3d8fc5df596f2ea521d9636
CRs-Fixed: 2750153
In lim_handle_csa_offload_msg(), mac->scan.countryCodeCurrent is
passed in regulatory API wlan_reg_dmn_get_chanwidth_from_opclass
to get the opclass. mac_ctx->scan.countryCodeCurrent is no more
updated after the regulatory componentization so get country
using wlan_reg_read_current_country() instead of it.
Change-Id: Ic56e4bf33784fa5f64aedd431ebe41275a7666b2
CRs-Fixed: 2742068
In case of pre-cac as part of pre-cac vdev delete the whole
mac_ctx->sap is zero in sap_clear_global_dfs_param() and thus the
loop for mac_ctx->sap.sapCtxList always return null sap ctx. Due
to this if radar is dedected on the original SAP, the vdev switch
to new channel is ignored.
Also in case of radar detection if SAP moves to 2.4ghz, the HW mode
change is not attempted and thus vdev restart fails on 2.4ghz if HW
mode is not DBS.
Thus dont reset the mac_ctx->sap in sap_clear_global_dfs_param() and
add check if HW mode change is required when channel change due to
Radar detection.
Change-Id: Id44a0ddbbb20035412b0c039c12f7f59f2c37f1a
CRs-Fixed: 2753029
Take care to update the EAPOL Tx frame DA with AP mac addr if
DA is broadcast address as EAPOL BC doesnot make sense.
Change-Id: Id58b7b7971f5a7c11de0b46c6189a6e6ad1917ab
CRs-Fixed: 2745826