In some functions, the structure csr_roam_info is declared as
local variable. Given its size is large, adding fields in this
structure will easily break the 2K limit check of stack size.
Allocate this structure in heap instead of declaring it as
local variable.
Change-Id: I78980b0816d464f4d9951cf0b7b0f5a15d8985b4
CRs-Fixed: 2396867
Introduce function wlan_hdd_validate_vdev_id() as a replacement for
wlan_hdd_validate_session_id() to align with the converged naming.
Change-Id: I12913e48c28f48ab7139d012b1584d8a8a9737ab
CRs-Fixed: 2404173
Currently the host driver updates the fils erp sequence number
to upper layer once the roam synch indication with the next erp
sequence number is received from the firmware. During the next
connection triggered from upper layer, the supplicant sends the
updated erp seq number value to host and host saves it in
session->pCurRoamProfile->fils_con_info->sequence_number.
During roaming, the supplicant doesn't update erp next seq
number so host retains the older value of sequence number given
by the supplicant during initial connection and sends this value
as part of RSO update config sent to firmware after roam synch
complete is done. So the FILS connection is terminated due to
this wrong sequence number sent by the host.
Add changes to update the new erp sequence number received in
roam synch indication to
session->pCurRoamProfile->fils_con_info->sequence_number. Send
this updated value without any modification if the RSO update
config reason is roam completion.
Change-Id: Ie833f31c57173a5a4dc45722c7ee0b42cf916cb0
CRs-Fixed: 2397877
NSS is reduced to 1 even though AP beacons or probe
responses contain vendor_4_OUI. The return value of
function csr_check_vendor_ap_3_present, which checks
for the presence of vendor_4_OUI, is true instead of
false due to incorrect IE data sent to this function.
Fix is to send appropriate IEs to csr_check_vendor_ap_3_present
Change-Id: Iea9ad4aae017df6972fdbe26d49bbda460d58dba
CRs-Fixed: 2401932
The driver currently defines two different data structures to hold
Gateway Update parameters:
- legacy struct gateway_param_update_req
- unified WMI struct gateway_update_req_param
To align with the converged software architecture remove the legacy
definition and exclusively use the unified WMI definition.
Change-Id: Icc56c4d83808e3661593d2e4735533442d48eb7e
CRs-Fixed: 2404089
Some ini descriptions are different to common, and some of them
include wrong information, so correct them and use unified form.
Change-Id: I36348fb26a03cab254fd309d792125b8a21ad02f
CRs-Fixed: 2402446
Change I84b28aa734b570f0a7834fbac7d27e9c66b8b026 ("qcacmn: Replace
session_id in gateway_update_req_param") is renaming the legacy
identifier session_id to vdev_id, so concurrently change the usage in
the legacy project.
Change-Id: I2d24a54e80931a944580e968a841679d2da7b2a1
CRs-Fixed: 2404013
During TDLS componentization the legacy typedef tSirTdlsSendMgmtReq
was replicated, creating struct tdls_send_mgmt_request. Unfortunately
this left the driver with two different data structures which serve
the same purpose. Not only is this pointless, but due to the way in
which these structures are used there is an implicit requirement that
they be exactly identical. This approach is very fragile. To align
with the converged software architecture and to improve code
maintainability exclusively use the TDLS component struct.
Note that this struct must be promoted to be a public struct since it
is now accessed from outside the component.
Change-Id: I7d304d3d211101c7227ea621f307f91ff68a5753
CRs-Fixed: 2400767
As part of the original TDLS componentization the legacy typedef
tTdlsPeerStateParams was replicated as qca-wifi-host-cmn struct
tdls_peer_state_params. Subsequently when the TDLS component was
relocated back to qcacld-3.0 this struct was replicated again as
struct tdls_peer_update_state in the qcacld-3.0 TDLS public structs.
Unfortunately this left the driver with three different data
structures which serve the same purpose. Not only is this pointless,
but due to the way in which these structures are used there is an
implicit requirement that they be exactly identical. Further
complicating matters is the fact that these three structures each have
embedded structs which are also replicated. This approach is very
fragile since any change to any of these structs must be replicated
across the entire set. To align with the converged software
architecture and to improve code maintainability exclusively use the
TDLS public structs.
Change-Id: Id6d44a1bc0fe530957db3d9f9ab948e2af775433
CRs-Fixed: 2400766
Currently hdd_send_peer_status_ind_to_app() uses the legacy term
sessionId to reference a virtual device. To align with converged
naming rename this to vdev_id.
Change-Id: Iada1a4bd86bbe444bc899bbaa1e05daccc552904
CRs-Fixed: 2404161
Currently struct pe_session uses the legacy term smeSessionId. To
align with converged naming it is desirable to change this to vdev_id,
but due to the large number of places where smeSessionId is used it
will be difficult to modify all occurences at once. In order to allow
changes to "trickle in" replace the smeSessionId field with a union
that contains both a smeSessionId and a vdev_id field. This will allow
vdev_id and smeSessionId to both be used to access the same data item.
Subsequent changes can then replace references to smeSessionId with
vdev_id, and then once all references have been converted, replace the
union with a single vdev_id field.
Change-Id: Idfcf3edc801b5c6937b40bb24ab1c291cb7f415e
CRs-Fixed: 2404159
Currently struct csr_roam_session uses the legacy term sessionId. To
align with converged naming it is desirable to change this to vdev_id,
but due to the large number of places where sessionId is used it will
be difficult to modify all occurences at once. In order to allow
changes to "trickle in" replace the sessionId field with a union that
contains both a sessionId and a vdev_id field. This will allow vdev_id
and sessionId to both be used to access the same data item.
Subsequent changes can then replace references to sessionId with
vdev_id, and then once all references have been converted, replace the
union with a single vdev_id field.
Change-Id: I67877b9a407bb07ec9f6516a765ee511c9c933e9
CRs-Fixed: 2404157
To address kernel control flow integrity (CFI) issues related to type
mismatch, correct the input argument type for pe_handle_mgmt_frame().
Change-Id: I2617c55655ba0303b89580e58f1bc2ea2efcefb9
CRs-Fixed: 2402966
As part of DSC integration, use vdev op start/stop for appropriate
IOCTL handlers.
Change-Id: Ic2c96d9447f1a74733c3ad1dcc773f733fac10e6
CRs-Fixed: 2402144
There are several instances of incorrectly using EOK with QDF_STATUS.
Address all infractions in PMO.
Change-Id: I105498281ca90ff56465737041d204aeebaa86ec
CRs-Fixed: 2403940
A common pattern in WLAN to panic the driver is to log the reason and
then unconditionally panic. QDF_DEBUG_PANIC() takes a reason string to
help make the reason for the panic more obvious, but it is not always
used. Ensure all callers of QDF_DEBUG_PANIC() provide a reason string.
Change-Id: I3d23a8980adaeaa1a9798a4a6b0fba1f36eb52ad
CRs-Fixed: 2403829
Driver validates the authentication context and allows
connection with SAE AKM in either of the below cases,
1. Successful SAE authentication
2. Open authentication with a valid PMKID
Driver rejects association if none of these are met. Do not
create preauth node while sending assoc reject in these cases
as there is no need to maintain a preauth context. Stations
initiate a fresh SAE authentication in both of these cases and
a new node will be created.
Change-Id: Ic446add47358d01bf4b316aa9ac5bf86c33bf812
CRs-Fixed: 2396379
PMKID/PMKs present in PMK cache are no more valid after softap
stop/restart. Flush the cache when the stop_ap() is called.
Change-Id: I1772bc7e36e6c0ef4f65ed49544fcae0fc11ee70
CRs-Fixed: 2396375
SAE authentication is offloaded to hostapd and hostapd sends
authentication status to driver after the authentication
completion. But hostapd sends external authentication (e.g., SAE)
status after sending out the final auth frame(e.g., confirm
response in SAE). Driver may receive association request from
station before getting external auth status. Defer the
initialization of PE/SME entries corresponding to that station
till status is received from hostapd. Once status is received
from hostapd, PE entries can be initialized and send
assoc indication to SME.
Change-Id: Ice95519f2bf25d483cc164182b3f3be87f59884a
CRs-Fixed: 2396373
Split processing of assoc request frame and initialization of
PE/SME data structrures. This is needed to defer the initialization
of PE/SME entries on any external status. SAE authentication status
from hostapd is one such external status.
Change-Id: I9d7ced050441920505f0e12ab6b3ea9c672fe822
CRs-Fixed: 2396372