On stability test bed a double free of TSO segment is reported via the
TX completion path. Made following changes -
- Check for duplicate TX completions before freeing TSO segments.
- Add debug logs to check if TX descriptors are being freed from the
control path.
Change-Id: I30178de90cd0161001ded70adc26066adc9cbcb3
CRs-Fixed: 2006868
Currently the rx throughput level is getting set to TP_NONE immediately
after it goes high. This will send incorrect values for
tcp_adv_win_scaling to cnss-daemon.
Fix the RX throuhgput level by making next_rx_level a static variable.
Now if next_rx_level is calculated to be HIGH, it will stay HIGH until
RX throughput falls below the threshold
Change-Id: Iaa36e4ff6d846e29b3beadd998a3d6fd334c1a5b
CRs-Fixed: 2004944
Currently the number of TX packets sent is simply calculated by the
number of times hard_xmit_function is called. We use the number of TX
(and Rx) packets in a 100ms interval, to tweak the system for high
bandwidth scenarios.
For, TSO jumbo packets, in high throughput scenarios, the number of TX
packets received in 100ms interval remains low because of aggregation.
This causes the driver to incorrectly detect the throughput mode(low).
Calculate total TX packet (in 100 ms interval) based on the size of the TSO
jumbo packet. This will allow the driver to trigger high throughput mode
and tweak system parameters correctly.
Change-Id: I3c7a3c3992b41d3a00ff903e6317a62394c1c0fe
CRs-Fixed: 2002971
The existing HIF NAPI blacklist feature uses irq_blacklist_on(off) APIs
which make a call to the userspace irq_balancer.
Replace these APIs with kernel API irq_modify_status to mark (or
unmark) the individual interrupts with IRQ_NO_BALANCING flag.
Once marked, the msm-irq-balancer will not be able to move the
CE interrupts around
Change-Id: I55b3302b11e6b3a380228d637f20def920760af1
CRs-Fixed: 1114161
Interrupt blacklisting in kernel 4.4 happens through a user-space
entity. The kernel APIs irq_blacklist_on(off) essentially send
a message to the user space service(irq balancer) and
therefore are not synchronous and do not guarantee that blacklisting
has actually taken effect. It will be granted with some latency
(userspace entity's processing delay).
Make blacklisting more robust by:
a) move irq (if it has been moved around after blacklist_on call
has been made and not yet honored) to the designated CPU
on IRQ reception
b) stop cpu_isolation in blacklisting mode boost API
c) modify NAPI stats to indicate blacklisting mode
CRs-Fixed: 1093770
Change-Id: I410768d3e0215e510924859d678c66ad7d87b1ec
Currently NAPI stats are retrieved as a part of iwpriv getStats command.
The buffer available for this command is limited and NAPI stats get
truncated.
Add a new dumpStats parameter (9) to dump NAPI stats.
The following command will dump NAPI Stats into kmsg.
>iwpriv wlan0 dumpStats 9
Cleanup existing getStats
Change-Id: I0d804295d96a495b4afa576c8258f08c9c2b9bbb
CRs-Fixed: 1076563
Move the logs to appropriate log levels to reduce
the log spam in wlan_hdd_cfg80211.c
Change-Id: I2388a913fa301368754d9c1bf365a3a8478d9997
CRs-Fixed: 2014745
Move the logs to appropriate log levels to reduce
the log spam in wlan_hdd_cfg.c
Change-Id: I38c0f7920f1f7b478fae497c65df5daa8192c6d3
CRs-Fixed: 2014745
Move the logs to appropriate log levels to reduce
the log spam in wlan_hdd_assoc.c
Change-Id: I07d05203058448c1f7a6680da36b244667f6104e
CRs-Fixed: 2014745
Currently the config ini "wlanLoggingFEToConsole" specifically talks
about enabling the logs to kmsg for FATAL and ERROR logs.
This cfg.ini item should not be specific to any log level, instead
it should just depict whether logging to console should be enabled
or not. Hence change wlanLoggingFEToConsole to wlanLoggingToConsole.
Change-Id: I54e340ed58891175b53ac2d0137d15a2baea1c9f
CRs-Fixed: 2014745
Per OEM request an INI item is needed to enable/disable the Adaptive
Noise Immunity feature, so add support for gEnableANI.
Change-Id: Ie6867c0024a716bf65dca1eeab8dd2b58141eff7
CRs-Fixed: 2028697
Add an ioctl that allows a user to dump a specified number of records to
dmesg for WMI and Credit History.
Change-Id: I644dcf5edcb2f875af1e99e7b4677cde37081674
CRs-Fixed: 2028760
Currently, during del_virtual_iface if adapter is of type SAP
and cac is active, then host schedules a work which stop and
close adapter and in same context it again stop /close_Adapter.
As a part of this fix, avoid stop / close adapter if cac is
in progress.
Change-Id: I68a53b3b67f4a0222a35c15a3d4a9574dd3a9e90
CRs-Fixed: 2027509
Rx buffer hash table memory is not freed in htt_rx_attach
when target index allocation fails.
Fix is to free memory in failure case.
CRs-Fixed: 2025050
Change-Id: Ibbe238dc7d2f6dc2c31fe94569c9aa744714e930
IEEE80211_NUM_BAND is not defined in newer kernels, Add changes
to replace IEEE80211_NUM_BAND by NUM_NL80211_BANDS.
CRs-Fixed: 2028465
Change-Id: Id811a434aa791f096ef4921db0f2ab8b42bc9f23
In FTM mode pdev is getting created twice due to
two service ready events from the firmware beacause
of module stop and start.
Add logic to reuse the psoc/pdev for module stop and start.
Change-Id: Ib5a92020c3c01ccfa699167eef8d7a633a27db13
CRs-Fixed: 2029041
QXDM log shows HDD IPA packet dump from all the packets through
Rx exception path. Change the packet dump only for DATAPATH module
in debug level.
Fix compilation error when IPA_OFFLOAD not defined.
Change-Id: I2761c78bbe3e59e7d956d0e3df628d22e9bbe610
CRs-Fixed: 1102003
If the TDLS links exists and SAP comes up, there is a chance
that the peer is created for SAP before deleting TDLS peers,
thus leading to crash.
The fix is to teardown the TDLS links before starting hostapd
or starting the association process to avoid TDLS in concurrency
case.
Change-Id: I06c0d4f8965d3a1e614e8bd89f2d6af0a504fa9e
CRs-Fixed: 2027831
There is a comparison between constant and boolean inside
update cds config api which will always fail.
To address this issue change the type of variable from boolean to
uint8_t.
Change-Id: I7ba4d9fedd148d713af334b394757da2a496f5a5
CRs-Fixed: 2027402
The dump_tx_desc function is called to report the number of freed and used
tx descriptors when a suspend is rejected by data path. The debug code
was directly referencing a data field whereas the code to check the freed
and used descriptors used a function that reports a different number under
certain compilation flags. Use the function in the debug statement such that
the value checked is the value printed.
Change-Id: Iad3f519dc88319c7a421f77376dd43e15e6eaf09
CRs-Fixed: 1113880
Several constants in rrm_global.h use logical || where a bitwise | was
probably intended. clang warns about this.
Hence, use bitwise operator instead of logical operator.
Change-Id: I5a0543096e7f213f3d60f3eda03eb7765595a364
CRs-Fixed: 2028989
In Napier emulation, due to the FPGA slowness and the need from
firmware side to live debug issues during driver load, increase
driver probe timeout accordingly.
Change-Id: I7e435082cebabe9ec6d15dc5c11a73b7db84f19b
CRs-fixed: 2028294
In FTM mode con mode change handler does module stop
after holding SSR protect and module stop bails
out assuming its idle mode module stop. Make sure to
do module stop properly for FTM mode even if SSR
protect lock is taken by con mode change handler.
Change-Id: I5d2d7006bb9f4897a5dd22893cdf6a7a864de97b
CRs-Fixed: 2027020
During driver recovery, following a crash in firmware, there is a
chance to get stuck waiting for the MC thread to exit after it has
already done so. This is due to an external thread being active in the
driver when it should not be possible. Improve logging in such cases
to find out which thread is running, and skip waiting for MC thread
shutdown if it is already stopped to prevent getting hung.
Change-Id: I53ddc3afb8561ecd2d6b708b6488c503068c49a6
CRs-Fixed: 2027020
When flow pool is created, pool status is set to FLOW_POOL_ACTIVE_UNPAUSED
irrespective of whether netif queues are paused or not.
Also, when descriptors are transferred from invalid pool to deficient pool,
pool status is not checked. So, if deficient pool is paused, then even
after receiving required descriptors from invalid pool, its status and
netif queues will still remain paused due to which traffic will not be able
to resume ever.
Sync pool status with netif queue status by:
1) Unpausing netif queues as well when pool is created.
2) If deficient pool is paused and on receiving descriptors from invalid
pool, no. of descriptors goes beyond start threshold, unpause the
queues and set the pool status to FLOW_POOL_ACTIVE_UNPAUSED.
Change-Id: I69390e40130892d218372e4a8a0ab4b0c7b94b7e
CRs-Fixed: 2025759