qcacld-2.0 to qcacld-3.0 propagation.
hdd_bus_bw_compute_cbk function is responsible for computing
bus bandwidth by checking TX/RX stats per HDD adapter after
taking them from adapter list. However, it's scheduled on a global
timer so the following scenario can arise:
1)At time of scheduling, HDD adapter is valid and is passed.
2)During TX/RX stats check, HDD adapter is freed as a result
of interface down.
3)Null hddCtx from adapter is accessed as a result and kernel
panic occurs.
Thus,validate adapter magic before accessing the hddCtx stored
in adapter.
Change-Id: If076e122db0538d01140e16305f046e68a86212a
CRs-fixed: 1045004
(cherry picked from commit 27254744c270a98d15bb17e2ed48649450070385)
qcacld-2.0 to qcacld-3.0 propagation.
While processing GET_STAWPAIE, based on interface, driver calls
WLANSap_getstationIE_information()/csrRoamGetWpaRsnReqIE() to
get WPA-RSN IE data. For suppose WPA-RSN IE length is greter than
DOT11F_IE_RSN_MAX_LEN(114), then these functions returns failure
by updating only data length. But as calling functions are not
checking return value, driver updates kernel buffer with invalid
data.
Add check to validate WLANSap_getstationIE_information() and
csrRoamGetWpaRsnReqIE() return value.
Also update DOT11F_IE_RSN_MAX_LEN to 255 from 114 and update
IOCTL numbers.
Change-Id: If021318e526c1b1a5616f9447be11174aa4c6a34
CRs-Fixed: 1000857
(cherry picked from commit cc0e12838a8d5ca3fe509bb152b73caeb478744c)
qcacld-2.0 to qcacld-3.0 propagation.
Type mismatch is present in bitwise operation for TDLS specific
variables in hdd_update_tgt_services.
Change bitwise operation to logical as the variable in question
is used like a flag and not as a bitfield.
Change-Id: I63692816d0f4d867206a3d6b07363bbb054c6062
CRs-Fixed: 1017937
(cherry picked from commit d3e615b8fa6bcc58321ccc670b797fea7467ffc4)
qcacld-2.0 to qcacld-3.0 propagation.
In linkspeed ioctl handler, mac address array is allocated a
size of MAC_ADDRESS_STR_LEN, which is 18 bytes taking account of null
terminator '\0'. But in code, a null terminator is being manually added
at index MAC_ADDRESS_STR_LEN. This would overflow the buffer and hence
null terminator should be added at MAC_ADDRESS_STR_LEN -1.
Change-Id: I16c2d0f787dfa339780db7d888aff37355c32322
CRs-fixed: 1000861
(cherry picked from commit 1ebc752f4b5c0a32f3b063ffe89c16fa0e2d81a0)
Update tlv_check_required() to handle all WoW reason to prevent failure
of parsing the wow packet buffer.
WOW event AP_LOST_ASSOC reason is not handled in tlv_check_required function
which returns true to parse the wow packet buffer which is incorrect. Enhance
the tlv_check_required function by adding only the reasons that require
tlv parsing and return false for others.
Change-Id: I4079086c4a49279921f6af8dda72b32d923022c2
CRs-Fixed: 1064249
(cherry picked from commit 1cc8d077fb321e2b83a5f15bcd2a3bdb7d8ccb19)
Handle protected dual of public action frame in lim_process_action_frame.
GAS comeback request/response frames will be converted into protected dual of
public action frame on encryption. These frames should be passed to userspace
for further processing.
Change-Id: I25e7f06369cdd238a561ddb5a825a63fe35f7b17
CRs-Fixed: 1063665
(cherry picked from commit 7745335fbdebcd81b274c703e5a080d61dd86428)
Enable to forward Intra-BSS Rx packets when apDisableIntraBssFwd is
not set in the AP context.
Change-Id: Id845abec76826910bec021b79786f5d3d7a27b4d
CRs-Fixed: 1062536
(cherry picked from commit ef8d7e584def1aaa844d671bb11c6f7225dea192)
WMA is sending response to ADD_STA and
ADD_BSS request during failure scenario.
Add conditions not to send the response to LIM
during the roam sync indication operation.
Change-Id: Iad9a8b28e1029ebd12e2022fb38d2aa01a03e9aa
CRs-fixed: 1061963
(cherry picked from commit b23176083295303da6847274120af8ab48e62730)
Currently LRO is not enabled for non STA interface.
However during p2p adapter creation LRO is getting
enabled as p2p adapter is being created with change
interface handler with STA interface ID.
Check adapter device mode during LRO enable and bypass
if LRO enable is called for NON STA interface.
Change-Id: Ib0be2cfdf110bad9a76b47b57ad9e0319bad1947
CRs-Fixed: 1064044
(cherry picked from commit edbf9452cd01fdfef0f5b6014e534387530eeb78)
Check for active STA and SAP connections before switching the operating
channel of SAP to a DFS channel. SAP moves to a DFS channel only if
this movement ensures that the SAP does not go off the DFS channel which
is needed for continuous radar detection.
The existing check looks for the number of open sessions. But these
sessions may or may not be active. So, replace this check with suitable
APIs which will check for active sessions.
Change-Id: Ib37427a9c62a785abb5e22c14ec23f09e60bf4b7
CRs-Fixed: 1063212
(cherry picked from commit d470e33f6d390b84dd98892a1b4526fd45348c2b)
qcacld-2.0 to qcacld-3.0 propagation
Supplicant can get the scan results within 1 sec, 2 sec is aggressive.
Reduce time duration of WIFI_POWER_EVENT_WAKELOCK_RESUME_WLAN
from 2 sec to 1 sec.
Change-Id: I83a2c674f1e42fc78480b194ad08b903b8fecffa
CRs-Fixed: 1060384
(cherry picked from commit 75e507e42cb2d9fc353980085d1302fda43b5fae)
qcacld-2.0 to qcacld-3.0 propagation
Change-id Iac45ffc1736eecc40e203174888e296767b50a0d and
Iced4b80de60f9640cad0342afac57f9a17c2a3e2 added new entries in between
the existing enum list. Due to this stability scripts decodes
them incorrectly.
To fix this, move new entries to the bottom of the enum list.
Change-Id: If0b759f58dd6831fad45ac3d321989a550fef405
CRs-Fixed: 954222
(cherry picked from commit 1f7fcef8e5190d0a1f75185bf874a4c1b36db26f)
qcacld-2.0 to qcacld-3.0 propagation
Some MTRACE logs returns 'unknown code' instead of code and data passed
to MTRACE. To resolve this unknown code issues in MTRACE logs,
add any missing MTRACE code enums in corresponding trace functions.
Both mac_trace_msg_tx() and mac_trace_msg_rx() were not handling
eWniMsgTypes enums, we don't have module Id for SME to handle
in those functions itself. So, modified mac_trace_msg_tx() to mac_trace().
Change-Id: Ia994c971178e24843f652b67336afeaec5e949ab
CRs-Fixed: 871983
(cherry picked from commit 5e12a6f7a67de546c8567341f35707da61cf00b8)
Add type_specific_data for PKTLOG_TYPE_SW_EVENT in the pktlog header
to parse it so that pktlog script can do further processing based on the
value passed in that field.
Change-Id: Ia68d9e3ea02942c050c133f4547a353634d65e1c
CRs-Fixed: 1062295
(cherry picked from commit 1ab48b89e671ee62b384c2cbd7fede68cf963da6)
1) In function wma_update_hdd_cfg update tgt_cfg before calling hdd callback
function.
2) In function hdd_init_nan_data_mode correct check for status returned from
sme_open_session
Change-Id: Ibf86c348f95c6f5589c2089600dbe176b1fda5fe
CRs-Fixed: 962367
(cherry picked from commit c6e52d750fee0675efdbe08d7e6f0c274887cb65)
After completing NDP initiator and response between two NDP peers,
ping failure between the peers is observed due to mismatch in the
broadcast station id set in the driver and the broadcast MAC address
for the NDI. This sta id is eventually used as local id to fetch the
peer associated with the sta id and extract the vdev id from the peer
handler, which was pointing to the incorrect vdev leading to ping
packets drop in the firmware due to incorrect vdev id.
Assign the broadcast id for NDI same as the NDI self
peer's sta id, which will point to the correct vdev id.
Change-Id: I4a4eeae149a4347da236cb768cf41141d9efdaca
CRs-Fixed: 1059527
Currently ani_global.h is included in qca-cmn,
The change removes ani_global.h and there are
corresponding changes in Driver
Change-Id: I59684e475406386e250635bde88390797835c95f
CRs-Fixed: 1012452
Netdevice setup for the Monitor mode/Device mode are different
with Dynamic mode change the adapter is allocated for normal mode
and the device setup is done according to the normal modes.
Once the device mode change request for monitor mode comes via con_mode
the driver shall change to monitor mode, when the mode switch happens
presently driver is using the same setup as station in monitor mode.
Update the net device setup for the monitor mode once the device changes
to monitor mode.
Change-Id: I38ff0e31b80f8e800a37c10431902ab092b627ba
CRs-Fixed: 1064063
qcacld-2.0 to qcacld-3.0 propagation
In the scenario where association times out because device has missed
the assoc resp sent by peer, the peer assumes the device to be
connected and thus when device again sends the auth for fresh
connection the peer sends deauth. Thus fresh connection also fails.
To avoid this send deauth after association time out, to cleanup
the session in peer.
Change-Id: I1f7bfbe804da0dc92ce4ece87dc65954b086133c
CRs-Fixed: 987455
qcacld-2.0 to qcacld-3.0 propagation
Driver prints qpower disabled even if command for qpower enabled
is sent to firmware.
To avoid confusion print qpower enable/disable depending on the cmd
sent to firmware.
Change-Id: Ifb135d4ad1691d0e5024aa2ef31880be271cac9e
CRs-Fixed: 1044603
Presently, interface creation for the p2p_go is only supported from the
change interface. Add support for starting the adapter from the
add_virt_iface.
Change-Id: I09736226c8c4793e103d091caafee732e410a056
CRs-Fixed: 1064020
NDI interface creation is supported from the hdd_open_adapter, because of
invalidation of sessionId is done in the same function the session created
for NDI is getting overwritten.
To migitate the issue invalidate the sessionId once the adapter is created.
Change-Id: I0a4a116daae02b822b3e75c06e2b966be9f2e24b
CRs-Fixed: 1064031
NULL check is not required before freeing the memory allocated to
dfs_radartable.
Add the changes to remove unnecessary NULL checks.
Change-Id: I063c036024e6bfc235a418056d15843646bc5a3c
CRs-Fixed: 1063843
Some HDD suspend/resume logging messages are vague or include redundant
status codes. Update these messages to reflect what actually happened and
remove redundant status codes.
Change-Id: Ic3613ab37a4c118447ce14087c8e0b0b65a108d9
CRs-Fixed: 1062544
PM suspend and FW interrupt handler is running at same time
which is leading to multiple race conditions and host is missing
FW wake up interrupt which is causing APPS not waking up reliably.
Define .suspend_noirq and .resume_noirq callbacks and make
sure there is no pending FW interrupt before allowing PM
suspend to complete. Kernel PM suspend framework gives guarantee
that suspend_noirq and device interrupt handler can't run
simultaneously. This helps WLAN driver to reliably detect FW
wake up interrupt during PM suspend and fail PM suspend gracefully
if FW has requested for initial wake up.
Change-Id: Ib16a4e86f2378a8ca3f7eaada54fc7a3d67a886b
CRs-Fixed: 1060748
This reverts Change-Id I9e55f58aee29017fe09efeb5231b8be23053f7b7.
WLAN driver is blocked from promotion as the dependent kernel
change is not merged yet. Race condition between PM suspend and fw
irq will occur again after reverting.
Change-Id: Id6497b81c703b3751fba0a85890203e316608aab
CRs-Fixed: 1060748
Fix some remaining u32 paddr references in htt and make sure
that they are defined as qdf_dma_addr_t.
Fix print %x's for such variables, as per printk-formats
document (use %llx and explicitly typecast the vars to uul).
Change-Id: I4bc25e631986d8343a704ac48fb7bdfe1717b396
CRs-Fixed: 1064917
Make sure that the message to enable flow steering is
sent to the FW when NAPI or LRO is enabled (as opposed
to sending it when LRO is enabled only).
Change-Id: Iadb4a08b213c9c31921c520f663a8a5359b0444b
CRs-Fixed: 1064917
Add throughput policy handler which triggers irq/CPU mananagement
functions as required.
Adapt NAPI enablement code to recent changes to the init sequence.
Add to the new files to build.
Change-Id: I8c16667a08982e419c2f2152cf31afcd3a535eb4
CRs-Fixed: 1064917
Register suspend_noirq/resume_noirq callbacks to kernel. It will
make sure no wake up is pending from FW and if initial wake up is
received then failing it should trigger resume.
Change-Id: I3d3de3789a7d560ed171294fa9a1ebe6389746a7
CRs-Fixed: 1060669
This reverts Change-Id Ifce8edc5db8c0410c5cddd24aceb88675f8ced42.
WLAN driver is blocked from promotion as the dependent kernel
change is not merged yet. PM suspend_noirq/resume_noirq are
not available after reverting.
CRs-Fixed: 1060669
Change-Id: I0e015d664681c3e2ba57a26b04318d4aa13f0406
This reverts Change-Id Ic0627a14a65f07faeb5cfa0ec4fcdc85b79e3f63.
WLAN driver is blocked from promotion as the dependent kernel
change is not merged yet. Getting/setting unsafe channels and
dfs nol are no longer be present after reverting.
CRs-Fixed: 1061220
Change-Id: Id4e374310c5140cc7c5432183562998b2584853a