855046f8 | 08-Jan-2024 |
Ripan Deuri <quic_rdeuri@quicinc.com> |
qcacmn: Fix peer id mismatch on Tx completion
Peer id mismatch is observed when prefetch of HW descriptor exceeds the last valid descriptor. To fix this issue, add check to limit prefetch to the las
qcacmn: Fix peer id mismatch on Tx completion
Peer id mismatch is observed when prefetch of HW descriptor exceeds the last valid descriptor. To fix this issue, add check to limit prefetch to the last valid descriptor.
Change-Id: I01582892d55ed1f300d6806e1d8def46f747516b CRs-Fixed: 3671814
show more ...
|
2a9c2537 | 22-Jun-2024 |
Asutosh Mohapatra <quic_asutmoha@quicinc.com> |
qcacmn: Fix compilation issues caused by log format specifiers
Use proper format specifiers in dp_print_tso_stats, also dp_tx_dump_tx_desc type cast variable as per format specified to fix compilati
qcacmn: Fix compilation issues caused by log format specifiers
Use proper format specifiers in dp_print_tso_stats, also dp_tx_dump_tx_desc type cast variable as per format specified to fix compilation issues.
Change-Id: Ic901144b15fb3a163eed6ad29400d0e3e668b4c6 CRs-Fixed: 3849167
show more ...
|
2b03e929 | 20-Dec-2023 |
Aditya Kodukula <quic_akodukul@quicinc.com> |
qcacmn: Add support for flexible length arrays
Convert size 0 and size 1 length variable arrays to flexible length arrays.
Change-Id: Iafe5fd8cd1c3cf6bbff49054d815ef74a10814c6 CRs-Fixed: 3690248 |
75b9be8f | 19-Jun-2024 |
Ananya Gupta <quic_anangupt@quicinc.com> |
qcacmn: Reset filters for buffer ring when deleting monitor mode
Currently, when monitor interface is going down, buffer ring filters are not being reset. To fix this, set mv_dev to NULL after filte
qcacmn: Reset filters for buffer ring when deleting monitor mode
Currently, when monitor interface is going down, buffer ring filters are not being reset. To fix this, set mv_dev to NULL after filter reset.
Change-Id: I7555acd6b4a54a362e36a43a970ab1c75e3c24c8 CRs-Fixed: 3841235
show more ...
|
e018c899 | 30-May-2024 |
Amit Mehta <quic_amitmeht@quicinc.com> |
qcacmn: Add logic to stitch MPDU for LPC
Add logic to stitch MPDU from MSDU and hold MPDU till PPDU_END tlv to update radiotap header fields before submitting to stack for local packet capture mode.
qcacmn: Add logic to stitch MPDU for LPC
Add logic to stitch MPDU from MSDU and hold MPDU till PPDU_END tlv to update radiotap header fields before submitting to stack for local packet capture mode.
CRs-Fixed: 3821723 Change-Id: I7ac8127c1c0abfc747f37139c741dc69fb79a2a4
show more ...
|
48374387 | 21-May-2024 |
Ananya Gupta <quic_anangupt@quicinc.com> |
qcacmn: Do not set mon filters for mac 1 rings
In STA+Mon concurrancy mode, do not set filters for mac 1 rings.
Change-Id: I6b4dcb21e9ca0201ec45e5a14ff633bde242ee3a CRs-Fixed: 3798857 |
be611514 | 08-Mar-2024 |
Amit Mehta <quic_amitmeht@quicinc.com> |
qcacmn: Add near full logic to rx error processing
Reap more entries from error ring if the number of available entries are less than half of the ring entries.
Change-Id: I742f97e41c0e392f1e50bbd95
qcacmn: Add near full logic to rx error processing
Reap more entries from error ring if the number of available entries are less than half of the ring entries.
Change-Id: I742f97e41c0e392f1e50bbd95ab625bd6168a8e5 CRs-Fixed: 3749873
show more ...
|
4d9cda5a | 21-May-2024 |
Amit Mehta <quic_amitmeht@quicinc.com> |
qcacmn: Fix invalid osif_vdev issue
Currently as part of TDLS connection if TLDS connection is formed on secondary vdev, osif_vdev of secondary vdev is updated with osif_vdev of primary vdev. Due to
qcacmn: Fix invalid osif_vdev issue
Currently as part of TDLS connection if TLDS connection is formed on secondary vdev, osif_vdev of secondary vdev is updated with osif_vdev of primary vdev. Due to osif_vdev update, during vdev delete 1st vdev will call API to free osif_vdev. When 2nd vdev try to access the osif_vdev it will result in invalid pointer access.
As current change was done to handle case where osif_vdev for MLO connection used to point to 2 different interfaces and where secondary interface used to point to NULL/dummy netdev. As per latest change osif_vdev will point to per vdev dp_link which for MLO connection will have single interface. So osif_vdev update is not required anymore.
So, to fix invalid/stale pointer issue remove osif_vdev update for TDLS connection.
CRs-Fixed: 3814466 Change-Id: Icac13d88411ca572c9d5823a6bd2d3d5b1ba632f
show more ...
|
00e159df | 08-May-2024 |
Ananya Gupta <quic_anangupt@quicinc.com> |
qcacmn: Retrieve monitor flags params from dp_soc
Include CDP_MONITOR_FLAG to get monitor mode flags from SOC structure.
Change-Id: I67992abcbb64e4f24cf42c57557d501330d3c3f2 CRs-Fixed: 3809485 |
1051fdbb | 07-May-2024 |
Yeshwanth Sriram Guntuka <quic_ysriramg@quicinc.com> |
qcacmn: Update first_msdu_payload once per status nbuf
first_msdu_payload is updated for every WIFIRX_HEADER_E TLV received in the status nbuf and this could result in incorrect offset into the nbuf
qcacmn: Update first_msdu_payload once per status nbuf
first_msdu_payload is updated for every WIFIRX_HEADER_E TLV received in the status nbuf and this could result in incorrect offset into the nbuf for the first MSDU if the PPDU has multiple MPDUs. Also, the size variable used is 8 bit for the calculation of offset into the nbuf for the frame which could result in possible overflow.
Fix is to update first_msdu_payload only for the first WIFIRX_HEADER_E TLV entry for a PPDU and increase the width of size variable to avoid possible integer overflow.
Change-Id: Ic12cb11328fc1414bd7a68fa941fa0ef764c8b1f CRs-Fixed: 3788496
show more ...
|
7e67cbbf | 16-Nov-2023 |
Chaithanya Garrepalli <quic_cgarrepa@quicinc.com> |
qcacmn: Fix null pointer de-ref in LT replenish
In dp_rx_buffers_lt_replenish_simple pass desc_list and tail pointers correctly to dp_rx_buffers_replenish. To avoid NULL pointer dereference of desc_
qcacmn: Fix null pointer de-ref in LT replenish
In dp_rx_buffers_lt_replenish_simple pass desc_list and tail pointers correctly to dp_rx_buffers_replenish. To avoid NULL pointer dereference of desc_list
Change-Id: Ic94c93ddf7ef6343afafc78a70d5634c70fa8bc4 CRs-Fixed: 3665302
show more ...
|
349b952c | 18-Apr-2024 |
Yu Tian <quic_yutian@quicinc.com> |
qcacmn: Add MSDU length for the first RX fragment buffer
When fragment buffer received in REO2SW, MSDU length only valid in the last fragment, need to copy that value to first fragment for following
qcacmn: Add MSDU length for the first RX fragment buffer
When fragment buffer received in REO2SW, MSDU length only valid in the last fragment, need to copy that value to first fragment for following process.
Change-Id: Ib3fbc07b11662fc161402befbb8396519fcebd33 CRs-Fixed: 3790059
show more ...
|
410a2ae5 | 25-Apr-2024 |
Yeshwanth Sriram Guntuka <quic_ysriramg@quicinc.com> |
qcacmn: Use addr1 for RA in TXMON generated ACK frame
ACK frame captured via TXMON as part of LPC has incorrect RA field populated using addr2 from TLVs. This is resulting in the TX ACK frame to be
qcacmn: Use addr1 for RA in TXMON generated ACK frame
ACK frame captured via TXMON as part of LPC has incorrect RA field populated using addr2 from TLVs. This is resulting in the TX ACK frame to be misinterpreted as RX ACK frame.
Fix is to use addr1 from TLVs to populate RA for TX ACK frames.
Change-Id: I23022c5cbabafc7025abef9ef2e9e2370750dad7 CRs-Fixed: 3787647
show more ...
|
789b303c | 07-Mar-2024 |
Ananya Gupta <quic_anangupt@quicinc.com> |
qcacmn: Clear number of users per ppdu in monitor mode
Currently, when a new ppdu is received, num_users per ppdu is not getting cleared after every ppdu is processed. Hence, in OFDMA cases the numb
qcacmn: Clear number of users per ppdu in monitor mode
Currently, when a new ppdu is received, num_users per ppdu is not getting cleared after every ppdu is processed. Hence, in OFDMA cases the number of users increments for each ppdu and asserts when number of users exceed the OFDMA_NUM_USERS. To fix this, clear num_users when the ppdu is processed from status ring in monitor mode.
Change-Id: If2598486338650342b83d65f2d5410a73c38c006 CRs-Fixed: 3664999
show more ...
|
03f346bc | 02-Feb-2024 |
Amit Mehta <quic_amitmeht@quicinc.com> |
qcacmn: Add changes to distinguish between LPC and STA+MON
Currently there is no way to distinguish between Local Packet Capture and STA+Mon mode as both mode uses same monitor interface. So to dist
qcacmn: Add changes to distinguish between LPC and STA+MON
Currently there is no way to distinguish between Local Packet Capture and STA+Mon mode as both mode uses same monitor interface. So to distinguish between two mode in local_packet_capture enable case use mon_flags which can be passed during monitor interface add time. If "flags otherbss" is passed during monitor interface add driver will consider current mode as STA+MON mode, LPC otherwise.
Change-Id: I56a724697bb187d0b809b6c43c7b5bf4b7d15ca7 CRs-Fixed: 3739438
show more ...
|
0d61faf9 | 22-Feb-2024 |
Amit Mehta <quic_amitmeht@quicinc.com> |
qcacmn: Add changes to store monitor interface flags
Currently STA+Mon mode is not supported in LPC case as both mode uses monitor interface to capture packets. So to distinguish between two differe
qcacmn: Add changes to store monitor interface flags
Currently STA+Mon mode is not supported in LPC case as both mode uses monitor interface to capture packets. So to distinguish between two different monitor modes add changes to store monitor interface flags
Change-Id: Ied43fa50adac200bed47a4044245baca4d6cc84f CRs-Fixed: 3739291
show more ...
|
117e50a8 | 22-Feb-2024 |
Amit Mehta <quic_amitmeht@quicinc.com> |
qcacmn: Reset monitor mon filters to init state
Currently during local packet capture filter reset mon_pdev monitor filters are not reset to default init state, which can result in issue in STA+Mon
qcacmn: Reset monitor mon filters to init state
Currently during local packet capture filter reset mon_pdev monitor filters are not reset to default init state, which can result in issue in STA+Mon case as packets will not be routed to monitor rings.
So to fix the issue reset mon_pdev monitor filters to init state on LPC filter reset.
Change-Id: I45c354381405427ef28eee6a31fae4f54c4ab5ab CRs-Fixed: 3739278
show more ...
|
f4dda761 | 12-Jan-2024 |
Amit Mehta <quic_amitmeht@quicinc.com> |
qcacmn: Add changes to log peer unmap event count
Currently host does not maintain peer map and unmap event count, due to which its difficult to check if host has received peer unmap events for all
qcacmn: Add changes to log peer unmap event count
Currently host does not maintain peer map and unmap event count, due to which its difficult to check if host has received peer unmap events for all peer map.
To fix the issue maintain peer map and unmap count and dump stats in case of duplicate peer map event.
CRs-Fixed: 3707115 Change-Id: I8881cc35646ba4abcc9897b71ed462a5e2c3dfb4
show more ...
|
60d9ef02 | 18-Jan-2024 |
Yu Tian <quic_yutian@quicinc.com> |
qcacmn: Add verbose log for RX frame dropping
Now only error counter is present in normal datapath RX frame dropping. This change add verbose log for easy debug.
CRs-Fixed: 3706290 Change-Id: Iae2f
qcacmn: Add verbose log for RX frame dropping
Now only error counter is present in normal datapath RX frame dropping. This change add verbose log for easy debug.
CRs-Fixed: 3706290 Change-Id: Iae2fb9f6100109173921c4f1d43258a0722dc0de
show more ...
|
e6b555af | 25-Jan-2024 |
Ananya Gupta <quic_anangupt@quicinc.com> |
qcacmn: Rate limit desc sanity failure log
A crash was observed as the desc sanity failure log exceeded 500 logs per second. Rate limited the ring descriptor log to fix this.
Change-Id: Ic0d13bc48d
qcacmn: Rate limit desc sanity failure log
A crash was observed as the desc sanity failure log exceeded 500 logs per second. Rate limited the ring descriptor log to fix this.
Change-Id: Ic0d13bc48d05bfb3e2b715e4881e0e8b0329f572 CRs-Fixed: 3715208
show more ...
|
e406fb3f | 09-Feb-2024 |
Rakesh Pillai <quic_pillair@quicinc.com> |
qcacmn: Fix TID arg passing to dp_peer_rx_reorder_queue_setup
dp_peer_rx_reorder_queue_setup accepts a tid_bitmap as argument, whereas the API dp_peer_rx_init_reorder_queue is passing only TID value
qcacmn: Fix TID arg passing to dp_peer_rx_reorder_queue_setup
dp_peer_rx_reorder_queue_setup accepts a tid_bitmap as argument, whereas the API dp_peer_rx_init_reorder_queue is passing only TID value. This leads to rx_tid setup failure and thereby the BA window size is set to 1 resulting in lower wlan throughput.
Fix this by passing the tid_bitmap to dp_peer_rx_reorder_queue_setup.
Change-Id: Ic8ab5615e0d2650e3077ed3a26ee68193ddc9787 CRs-Fixed: 3702382
show more ...
|
7e58813e | 05-Feb-2024 |
Manikanta Pubbisetty <quic_mpubbise@quicinc.com> |
qcacmn: Optimize force free logic in dp_find_missing_tx_comp()
Currently during runtime suspend, in dp_find_missing_tx_comp(), TX descriptors are freed forcefully if the TX completions for those des
qcacmn: Optimize force free logic in dp_find_missing_tx_comp()
Currently during runtime suspend, in dp_find_missing_tx_comp(), TX descriptors are freed forcefully if the TX completions for those descriptors do not arrive within 60 seconds.
In certain rare corner cases, there is a chance of TX buffer (that is in the enqueue path) getting freed in the TX completion path due to delayed completions. This results in NULL pointer dereference. Following is the sequence of events for such a case,
1. dp_find_missing_tx_comp() frees a TX descriptor 2. Different buffer gets attached to the same TX descriptor 3. Delayed completion for the previous TX arrives and frees the buffer in point 2.
Defer the free in dp_find_missing_tx_comp() when there is a delta in HP/TP for the TX/COMP rings. If HP & TP are not same, then there is high chance of processing the delayed completion beforehand, thus avoiding the aforementioned race.
Change-Id: Ia835928f85ea0f79d0187a55333cb8959d0a72e9 CRs-Fixed: 3721341
show more ...
|
24cd0c2b | 24-Jan-2024 |
Dolly Kumari <quic_dollkuma@quicinc.com> |
qcacmn: Update no. of DWORDs for htt_tx_msdu_desc_ext2_t
This change is to update no. of dwords for htt_tx_msdu_desc_ext2_t as new dwords have to be added by FW to pass rx buffer address info to sup
qcacmn: Update no. of DWORDs for htt_tx_msdu_desc_ext2_t
This change is to update no. of dwords for htt_tx_msdu_desc_ext2_t as new dwords have to be added by FW to pass rx buffer address info to support opt_dp_ctrl.
Change-Id: I3edb0a32a1e340d715c00776254ab50aca93c4e0 CRs-Fixed: 3717471
show more ...
|
7e541922 | 29-Jan-2024 |
Karthik Kantamneni <quic_vkantamn@quicinc.com> |
qcacmn: Wait for all the txrx tasks completion after rings drain
After draining txrx rings there is possibility of reg work getting triggered to update rings write pointer, this might cause the reg
qcacmn: Wait for all the txrx tasks completion after rings drain
After draining txrx rings there is possibility of reg work getting triggered to update rings write pointer, this might cause the reg work to execute later after suspend complete and cause allow suspend and prevent suspend count to go out of sync. So make sure all the txrx dependent tasks are complete after drain.
Change-Id: I30b0696cef4499cc1e92b4556488b58037520184 CRs-Fixed: 3717885
show more ...
|
e6fec28c | 16-Jan-2024 |
Manikanta Pubbisetty <quic_mpubbise@quicinc.com> |
qcacmn: Allocate memory from heap for NBUF references
Currently a fixed size array of 2K is used to hold the NBUF pointer references for RX refill thread NBUFs. Since the queue length of the NBUF qu
qcacmn: Allocate memory from heap for NBUF references
Currently a fixed size array of 2K is used to hold the NBUF pointer references for RX refill thread NBUFs. Since the queue length of the NBUF queue is a compile time config, any length change beyond 2K would result in overflow errors.
Allocate the memory for NBUF references dynamically instead to avoid such overflow conditions.
Change-Id: I20680768faf20d7688ce33f68ce2aa2be2079be0 CRs-Fixed: 3707803
show more ...
|