| Commit message (Collapse) | Author |
|
Fix proper format specifier for qdf_debugfs_printf in
qdf_dpt_dump_stats_debugfs.
Change-Id: I3d357cb677c6419e13c3c2333b43d4cae2f2df41
CRs-Fixed: 2717408
|
|
In SLUB disabled builds, the qdf_mem_malloc calls the
qdf_mem_malloc_fl function which doesn't
validate if the size provided is 0 and returns the value
ZERO_SIZE_PTR(((void *)16)) for the pointer. When this pointer
is dereferenced, it causes invalid address dereference.
Validate if the size parameter provided to qdf_mem_malloc is
0 or greater than QDF_MEM_MAX_MALLOC. Return failure if the
validation fails.
Change-Id: I8fc6bc796847e9dd3dfd5186b0386d323560d0cf
CRs-Fixed: 2571505
|
|
Extend radiotap header to append tx retry count for packets sent to
virtual mon interface.
Change-Id: I27664e624babe1ef61dc437088fdd96b370b49f9
CRs-Fixed: 2546290
|
|
Extend radiotap header to append ACK status for packets sent to
virtual mon interface.
Change-Id: I2f57f7dbf1efdb44185fc9a1383c2d0c3a795f99
CRs-Fixed: 2538423
|
|
In case of 11w PMF tx frame, some target would dma write to this tx
buffer, it may cause smmu check fault.
Add a bi-direction map flag to mcl skb.cb[] for this special case.
Change-Id: I72a2c11abb9f3e7e8fb9c6f5290cd4f8d209b19a
CRs-Fixed: 2337204
|
|
Currently, there are two consumers of the Linux kernel CPU hotplug APIs.
Besides being problematic for not being operating system agnostic,
different versions of the Linux kernel export different CPU hotplug
APIs. In order to consolidate the various abstractions for different
operating systems and API versions, create a CPU hotplug abstraction in
QDF.
Change-Id: Ib17c6e3ed3a87a90a82d909a6c493360cab27855
CRs-Fixed: 2132632
|
|
Fix compilarion error for WHUNT
Change-Id: I984a2cd7bebb6594372f001d39b3f0e57038d293
CRs-Fixed: 2332205
|
|
Check for potential buffer overflow and NULL ptr access
issues.
Change-Id: Iecb36530716dafa27a95a82392e97f662a7c25f0
CRs-Fixed: 2251345
|
|
Move network buffer null check to beginning of function to
cover possible case of null pointer dereference during free.
Change-Id: I8c998d4d1711ab28c94a946d04314c26a4c74278
CRs-fixed: 2309452
|
|
API arch_counter_get_cntvct()/arch_counter_get_cntpct() are
specific to MSM/ARM platform. Use proper compilation flags for
QDF to compile against other platforms.
Change-Id: I7fcc5d84cd205151d839d19dfdc3432cb289807d
CRs-Fixed: 2216035
|
|
Add WLAN module name as logging prefix in multiple wlan driver
compilation environment for differentiating the logs pertaining
to each driver module.
Change-Id: Ib3aeaa280e3beb0de8ceb105e0989cb6004964d6
CRs-fixed: 2197751
|
|
It causes kernel warning if remove an invalid id. So, verify id before
removing idr.
Change-Id: I22cd5753a6e4fae0087faaee1c722017523b311e
CRs-Fixed: 2271235
|
|
kcompactd consumes many CPU cycles without being successful
to make high-order page. One of the reason is WIFI driver is
allocating order-3 page a lot.
It shows 46% high-order allocation comes from WIFI driver.
Of course, it should be fixed in MM layer but it is never
easy stuff to fix in near future.
Regardless of MM changes, drivers should do best effort to reduce
high-order allocation, too.
This patch fixes the problem via not waking kcompactd.
Change-Id: I2bc3bf3ec96d32dd1a93c24edf2f590f331c0ed5
CRs-Fixed: 2265578
|
|
There is an invalid circular dependancy of header files in the
driver. qdf_nbuf.h file includes itself as qdf_nbuf.h file
includes i_qdf_nbuf.h and i_qdf_nbuf.h again includes qdf_nbuf.h.
To resolve this issue, do not include qdf_nbuf.h in i_qdf_nbuf.h
Change-Id: I940321b23e95a81601657d149ff31826db2522ba
CRs-Fixed: 2267066
|
|
Currently, the APIs qdf_nbuf_set_rx_info and qdf_nbuf_get_rx_info
are no longer used in our driver code.
Cleanup the unused code for qdf_nbuf_set_rx_info and
qdf_nbuf_get_rx_info.
Change-Id: I57acbd4e5901d8922e3b650f0f3b57f056a0ae3e
CRs-Fixed: 2259212
|
|
In P2P ROC and MGMT tx cases, it use kernel address as cookie and
provides to userspace. Which has security risk. Add QDF API for ID
allocation and map ID to pointer, provides ID to userspace instead
of kernel address.
Change-Id: I4e10109988391474722df5b251fab11a87c7992b
CRs-Fixed: 2237756
|
|
This change adds timestamp information for every memory
allocated and mapped for debugging purposes.
Change-Id: Iba8e720790b863ae11c528a02f5c32ea606560dd
CRs-Fixed: 2236213
|
|
In qdf_trace_hex_dump() API, linebuf array is not initialized where
it is used to print in the form of string in qdf_trace_msg() API,
this may cause information leak.
To address this issue, initialize the linebuf array to zero.
Change-Id: If2fe200eb16b28f7fff4413873c1d149716fb1a7
CRs-Fixed: 2232012
|
|
TX packet records in DPTRACE logs for debugfs do
not contain msdu id, while QXDM logs do contain them.
Add msdu id of packets in the DPTRACE records for
debugfs.
Change-Id: Id3f6c21d95221cd5444327189b803ac857d56525
CRs-Fixed: 2242178
|
|
There is no NULL check in qdf_seq_write api after mem alloc.
Buffer is dereferenced without this NULL check.
Add a NULL check after mem alloc and then only dereferece
the buffer.
Change-Id: I6c478c60f481f299cb50cae6a519a1458e82859b
CRs-Fixed: 2240367
|
|
Control Flow Integrity (CFI) implementation in the kernel.
CFI is an LLVM feature that protects function pointers against
control flow hijacking. Basically, when calling a function through
a pointer, the type of the pointer must match the signature
of the target function.
Hence, fix all the occurences of the function pointer type
which doesn't match the signature of the target function.
Change-Id: I910a7e1995dddf8fdcd7551f7a5e442e1d0120ab
CRs-Fixed: 2196475
|
|
Per current guidance remove legacy markings.
Change-id: Ia920daa3248677b9446f4203c7698cbc37648fbd
CRs-Fixed: 2230684
|
|
This reverts commit Idb59f83edc09f9be8bf0bd231b8eb6ff28f37fd4.
nbuf was set to NULL and then deferenced.
To address the issue validate nbuf before processing in dp trace function.
Change-Id: I464c0dea36c0288c4bb01d6fba5255169d7ec255
CRs-Fixed: 2220892
|
|
For TSO packets we get Tx completion for each segment,
whereas nbuf tracking code has only one entry. So remove
nbuf tracking record entry when nbuf->users is 1.
Change-Id: I7f66eb91d802c909ee0c9a0243be6415c82c211e
CRs-Fixed: 2179883
|
|
Validate nbuf before processing in dp trace function
Change-Id: Idb59f83edc09f9be8bf0bd231b8eb6ff28f37fd4
CRs-Fixed: 2213737
|
|
Add magic string in the driver to automate the
memory debug analysis.
Change-Id: I79b6ef49fa5c1c5fb74c72b228c3dae05b483a77
CRs-Fixed: 2212167
|
|
Add changes to calculate MIC using aead calls in linux
Change-Id: I710b1c748c36babc8e66aaf920a07f9657f6e273
CRs-Fixed: 2164910
|
|
The printk format '%pK' will not leak kernel pointers to unprivileged
users. So change the format specifier from %p to %pK.
Change-Id: Ia229433dbbadc69cc1442c9e683659b8194e30b5
CRs-Fixed: 2133315
|
|
One DP trace record can't be greater than 300 bytes.
Max Size is QDF_DP_TRACE_PREPEND_STR_SIZE(100) +
BUFFER_SIZE(121). Always make sure to change this
QDF_DP_TRACE_MAX_RECORD_SIZE based on the above two
macro values.
If in case dp record size is more than the remaining
size of debugfs file, debugfs file system behaves weird
and generate a file of random size. (sometimes 2-3GB)
This change make sure that remaining debugfs file size
is always greater than the actual DP record size.
CRs-Fixed: 2203532
Change-Id: I9119d95cb2e715632bcc96c17fe2938de8816e11
|
|
Debug fs create failure should not fail wifi turn on. Add logic
to allow wifi turn on even if kernel debug fs create API returns
failure.
Change-Id: I686362340d9ef0268ca7587ad30c726c33f1c427
CRs-Fixed: 2203330
|
|
In a scenario where timer has expired and the timer msg is posted
to the mc thread sys_msgq and from a different context the timer
has been stopped and freed, access of freed memory would occur
when mc thread resumes and processes the timer msg from sys_msgq.
Flush the timer msg pending in the sys_msgq when the timer is
stopped based on the unique timer_cookie in the timer msg.
Change-Id: I11d73bdfb907acb649ec6722ca5060d7225e47dd
CRs-Fixed: 2202183
|
|
Do not log the DP trace record in given file if
record size is greater the remaining file size.
CRs-Fixed: 2198359
Change-Id: Ib6b0ddcc796be54231cd3e64ee328e9726d51a27
|
|
Change data packets printing to one line
Add msdu-id to TX packets
Increase data packets size to include the complete IP packets
Indication/print when the throttling occurs
Change-Id: I07fc664ea08bc8746e31260599c5892701ae52e7
CRs-Fixed: 2157769
|
|
Add APIs to dump dp trace buffer and set
proto bitmap, number of record and verbosity
of dp trace.
Change-Id: I23cda36515e1f3299d6c1c28dee2489a89bb15d9
CRs-Fixed: 2180984
|
|
Implement debugfs APIs abstraction for Linux. If a particular operating
system is not supporting debugfs or similar feature, these API's will
be a no-op.
Change-Id: I51316012876fec258e546fce8fc2f877e4311343
CRs-Fixed: 2097140
|
|
Add file permissions and a function to map that to Linux OS. Also
define a type for __qdf_dentry_t and __qdf_debugfs_file_t.
Change-Id: I91b293b262d955324e65157909ca9d3b831e2cf6
CRs-Fixed: 2097140
|
|
Add APIs to get IPA SMMU status
Change-Id: I5889f35739b220bd4ad38f4278c133cd97141b22
CRs-Fixed: 2176318
|
|
While handling a multi-segment TSO packet, there is a race condition
where, if tx complete arrives fast enough, the un-sent TSO segments
may be lost forever and a previously sent segment would be attempted
to be sent over.
Fix the race condition. Dont use the entry after send to go to
next entry.
Change-Id: I023587a48bea6f3b58aac62e398cc15939bbb773
CRs-Fixed: 2174715
|
|
Currently, nbuf map tracking happens before the nbuf is actually mapped.
In cases where the actual map operation fails, remove the nbuf map
tracking information to avoid false positive mapped-never-unmapped
panics.
Change-Id: I8e649841a661d460bf89dd5edf09bb5e460ea98c
CRs-Fixed: 2171837
|
|
Hold a spinlock for the entire iteration of the nbuf map/unmap
hashtable. This prevents invalid list/memory access issues in case of a
race with an unmap operation. This also trades list/memory safety for
the chance to watchdog bite while printing. Since we are about to panic
anyway, the worst case is manually loading the memory dump to inspect
the contents of the map/unmap hashtable.
Change-Id: Iafc38764d55fc46910051349e4f4b26da33cae51
CRs-Fixed: 2171736
|
|
An nbuf free history circular buffer already exists for tracking recent
nbuf frees in the system. This is very useful for debugging tricky nbuf
related failures in the driver. In addition to tracking frees, track
alloc, map, and unmap nbuf events as well.
Change-Id: I253d454d689deb8328b3636e92063e9d33ea1a52
CRs-Fixed: 2170365
|
|
Add APIs to get TCP syn/syn-ack/ack packets,
TCP src/dst port, DNS domain name/query/response,
ICMPv4 req/res, and ICMPv4 src/tgt ip information.
Change-Id: I1e4e92997a33e64fe2e4ae28a05b54b6ba5e8cff
CRs-Fixed: 2168412
|
|
When nbuf map/unmap tracking is enabled, a small metadata structure is
allocated to keep the tracking information. In cases where this
allocation fails during the map operation, return an error status
instead of mapping the nbuf. This prevents a false positive
unmap-never-mapped panic when the nbuf is unmapped.
Change-Id: Id01c1f61165a0beff4edd6cc6a0a2fc5f64d9b04
CRs-Fixed: 2167082
|
|
qdf_get_current_task symbol is exported using EXPORT_SYMBOL
instead of using qdf_export_symbol.
Use qdf_export_symbol across all QDF API's for consistency.
Change-Id: Ib1fa6d9d105da9581c35fb75b315cad343a9e909
CRs-Fixed: 2159764
|
|
When MEMORY_DEBUG is enabled, track calls to nbuf map/unmap to detect
the following usage problems:
* double map
* double unmap
* unmap without map
* never unmap
Change-Id: I7326bb628d4cf0be9004398fd396907b1a06bf22
CRs-Fixed: 2155599
|
|
Add debug support to detect memory leaks and corruption
in DMA memory operations.
Change-Id: I1478973828ddc147367c4a579c97c3840c106f44
CRs-Fixed: 2155603
|
|
Implement driver debug print rate limiting in HIF SDIO RX
path and QDF nbuf allocation path to avoid driver
inactivity watch dog time out when the platform is facing
great memory pressure.
Change-Id: Ifa4fe3e7027150fd1469df58049776fca8aa6f2f
CRs-Fixed: 2148314
|
|
This reverts Change-id: I25c60a1c5d264e7ea08ed2286fd4b3c3134e9f81
When SMMU is enabled, crash is happening as soon as first client
is connected to softap interface with this change.
Change-Id: I4aa6ff39899117aeb050957eb888642822ae830d
CRs-Fixed: 2147823
|
|
In the event of an WMI work queue watchdog bite, dump the stack
trace to aid in debugging.
Change-Id: I7f3df5a56904748fb80afb1aef1aed90d20fbbc0
CRs-Fixed: 2145913
|
|
In an effort to catch and prevent more memory leak and corruption
issues, extend the existing memory debugging support to include DMA
coherent memory allocations.
Change-Id: I25c60a1c5d264e7ea08ed2286fd4b3c3134e9f81
CRs-Fixed: 2138125
|