Commit Graph

1901 Commits

Author SHA1 Message Date
Manjeet Singh
01327cc3ec qcacld-3.0: Validate adapter magic during bus bandwidth check
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)
2016-09-10 19:05:50 -07:00
Manjeet Singh
fde0c04dc2 qcacld-3.0: Pass valid data to kernel upon processing GET_STAWPAIE IOCTL
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)
2016-09-10 19:05:47 -07:00
Manjeet Singh
fdd2ac755d qcacld-3.0: Fix type mismatch in bitwise operator
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)
2016-09-10 19:05:45 -07:00
Manjeet Singh
75c2f97be4 qcacld-3.0: fix buffer overflow in linkspeed ioctl
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)
2016-09-10 19:05:43 -07:00
qcabuildsw
7c04b1ab17 Release 5.1.0.26C
Release 5.1.0.26C

Change-Id: I0c04b972eaef33eaad3001ea3f3682acd36fb667
CRs-Fixed: 688141
(cherry picked from commit b3949fa06a87310ed41daba3e0dd357eeb7cdc72)
2016-09-10 19:05:41 -07:00
Krishna Kumaar Natarajan
e1a59839df qcacld-3.0: Update tlv_check_required() to handle all WoW reason
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)
2016-09-10 19:05:40 -07:00
Krishna Kumaar Natarajan
6553ea16be qcacld-3.0: Handle protected dual of public action frame
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)
2016-09-10 19:05:38 -07:00
qcabuildsw
b33a1b8392 Release 5.1.0.26B
Release 5.1.0.26B

Change-Id: I17835a32e5ef3da009dd42b841a73da832b93863
CRs-Fixed: 688141
(cherry picked from commit 050f0dd635c69769575ef00dbc1214de497ac282)
2016-09-10 19:05:35 -07:00
Yun Park
046101c785 qcacld-3.0: Fix to allow intra-bss forwarding when it is not disabled
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)
2016-09-10 19:05:33 -07:00
Sandeep Puligilla
2ff3ebe4a7 qcacld-3.0: Dont send response to LIM during roam sync
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)
2016-09-10 19:05:31 -07:00
Govind Singh
d9b6ca8632 qcacld-3.0: Do not enable LRO for non STA adapter
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)
2016-09-10 19:05:30 -07:00
Manishekar Chandrasekaran
1004ad9cae qcacld-3.0: Check for active STA/SAP connections before SAP channel switch
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)
2016-09-10 19:05:28 -07:00
Sreelakshmi Konamki
2252853d10 qcacld-3.0: Reduce wakelock resume wlan timeout to 1 sec
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)
2016-09-10 19:05:26 -07:00
Sreelakshmi Konamki
8dfe91af5f qcacld-3.0: Fix to move newly added enums to the bottom of the list
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)
2016-09-10 19:05:24 -07:00
Sreelakshmi Konamki
beacc2eae2 qcacld-3.0: Resolve unknown code issues in MTRACE logs
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)
2016-09-10 19:05:23 -07:00
Poddar, Siddarth
1dbc316690 qcacld-3.0: Add type_specific_data for PKTLOG_TYPE_SW_EVENT in the pktlog header
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)
2016-09-10 19:05:21 -07:00
Naveen Rawat
cb186cf882 qcacld-3.0: Fix nan data interface create
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)
2016-09-10 19:05:19 -07:00
Rakesh Sunki
cf1c9abd5c qcacld-3.0: Fix NDP ping failure issue
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
2016-09-10 18:49:07 -07:00
Anurag Chouhan
01cfa4e859 qcacld-3.0: Remove ani_global.h from qca-cmn
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
2016-09-10 14:19:48 -07:00
Arun Khandavalli
f5c0e0cf0c qcacld-3.0: Update the net device setup for monitor mode
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
2016-09-10 14:13:22 -07:00
Manjunathappa Prakash
2458ef0c66 qcacld-3.0: Make host htt.h in sync with FW
Make host htt.h in sync with latest FW htt.h

Change-Id: I7818c1156b38191aa6219c0e73ca3238c3474c1e
CRs-Fixed: 1055179
2016-09-10 14:12:08 -07:00
qcabuildsw
2072f396ed Release 5.1.0.26A
Release 5.1.0.26A

Change-Id: I931a9ecf31d438f50fe8b8454914d734f4254271
CRs-Fixed: 688141
2016-09-10 14:11:42 -07:00
Abhishek Singh
e36aa82922 qcacld-3.0: If association timeout send deauth to cleanup the peer session
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
2016-09-10 14:11:15 -07:00
Abhishek Singh
779a55cfaa qcacld-3.0: Print qpower enable/disable depending on the config value
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
2016-09-10 14:10:42 -07:00
qcabuildsw
e546c9b241 Release 5.1.0.26
Release 5.1.0.26

Change-Id: Ic579e7747b2600bfd2d3b2a409ed62b32f4d497c
CRs-Fixed: 688141
2016-09-10 14:10:12 -07:00
Arun Khandavalli
812d069a5e qcacld-3.0: Add support to start_adapter for the p2p_go from add_iface
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
2016-09-10 14:09:24 -07:00
Arun Khandavalli
9ad88f04ac qcacld-3.0: Move invalidation of sessionId when the adapter is allocated
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
2016-09-10 14:08:48 -07:00
Kapil Gupta
637c81577b qcacld-3.0: Remove unnecessary NULL check
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
2016-09-10 14:06:38 -07:00
qcabuildsw
d1353d2dd0 Release 5.1.0.25Z
Release 5.1.0.25Z

Change-Id: I0769ee052ee49cc19f8b13d0d2b8b95f3c3032f1
CRs-Fixed: 688141
2016-09-10 14:05:24 -07:00
Dustin Brown
5237aeac13 qcacld-3.0: Cleanup HDD suspend/resume logging messages
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
2016-09-10 13:57:29 -07:00
Service qcabuildsw
186f3a1d94 Merge changes I57535b47,I77c57b3e into wlan-cld3.driver.lnx.1.1-dev
* changes:
  Release 5.1.0.25Y
  qcacld-3.0: Apps cannot power collapse while wifi is on
2016-09-10 13:54:57 -07:00
Service qcabuildsw
712eb37efc Merge "qcacld-3.0: Fix race condition between PM suspend and fw irq" into wlan-cld3.driver.lnx.1.1-dev 2016-09-10 12:35:51 -07:00
Service qcabuildsw
60f4f45df3 Merge "qcacld-3.0: Fix u32 paddrs" into wlan-cld3.driver.lnx.1.1-dev 2016-09-10 12:14:09 -07:00
Service qcabuildsw
57e68b7227 Merge "qcacld-3.0: Enable FW flow steering on NAPI" into wlan-cld3.driver.lnx.1.1-dev 2016-09-10 12:14:07 -07:00
Service qcabuildsw
aa95906d2e Merge "qcacld-3.0: Add multi-queue NAPI function" into wlan-cld3.driver.lnx.1.1-dev 2016-09-10 12:14:04 -07:00
Service qcabuildsw
3a01837e03 Merge "qcacld-3.0: Call ICNSS APIs for get/set channels and dfs" into wlan-cld3.driver.lnx.1.1-dev 2016-09-10 12:13:54 -07:00
Service qcabuildsw
fda4e0cc92 Merge "qcacld-3.0: Register suspend_noirq/resume_noirq to kernel" into wlan-cld3.driver.lnx.1.1-dev 2016-09-10 12:13:51 -07:00
Service qcabuildsw
b0bdca2104 Merge "Revert "qcacld-3.0: Fix race condition between PM suspend and fw irq"" into wlan-cld3.driver.lnx.1.1-dev 2016-09-09 12:59:18 -07:00
Service qcabuildsw
913c9043e2 Merge "Revert "qcacld-3.0: Register suspend_noirq/resume_noirq to kernel"" into wlan-cld3.driver.lnx.1.1-dev 2016-09-09 12:58:59 -07:00
Service qcabuildsw
92c93bd799 Merge "Revert "qcacld-3.0: Call ICNSS APIs for get/set channels and dfs"" into wlan-cld3.driver.lnx.1.1-dev 2016-09-09 12:58:39 -07:00
Rajeev Kumar
5f174f7886 qcacld-3.0: Fix race condition between PM suspend and fw irq
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
2016-09-09 10:33:26 -07:00
Yuanyuan Liu
a129d2da9c Revert "qcacld-3.0: Fix race condition between PM suspend and fw irq"
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
2016-09-09 10:31:20 -07:00
Orhan K AKYILDIZ
5a36de324c qcacld-3.0: Fix u32 paddrs
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
2016-09-08 21:32:40 -07:00
Orhan K AKYILDIZ
b71d061de4 qcacld-3.0: Enable FW flow steering on NAPI
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
2016-09-08 21:32:15 -07:00
Orhan K AKYILDIZ
1481aff562 qcacld-3.0: Add multi-queue NAPI function
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
2016-09-08 21:31:49 -07:00
Yuanyuan Liu
dcc3d4a270 qcacld-3.0: Call ICNSS APIs for get/set channels and dfs
Call ICNSS API for get/set unsafe channels and dfs nol when bus
type is SNOC.

Change-Id: I12e1db54468c7215318333b55d991c53886d21ff
CRs-Fixed: 1061220
2016-09-08 17:43:46 -07:00
Yuanyuan Liu
42567dfb22 qcacld-3.0: Register suspend_noirq/resume_noirq to kernel
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
2016-09-08 17:43:46 -07:00
Yuanyuan Liu
b657e93ec5 Revert "qcacld-3.0: Register suspend_noirq/resume_noirq to kernel"
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
2016-09-08 17:43:27 -07:00
Yuanyuan Liu
7a82fcc900 Revert "qcacld-3.0: Call ICNSS APIs for get/set channels and dfs"
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
2016-09-08 17:42:46 -07:00
qcabuildsw
5dae0fea7d Release 5.1.0.25Y
Release 5.1.0.25Y

Change-Id: I57535b476c010ea470707aeade5136a18c01a94e
CRs-Fixed: 688141
2016-09-07 11:48:53 -07:00