struct sk_buff *skb)
{
struct hal_tlv_64_hdr *tlv;
+ struct ath12k_skb_rxcb *rxcb;
enum hal_rx_mon_status hal_status;
u16 tlv_tag, tlv_len;
u8 *ptr = skb->data;
(hal_status == HAL_RX_MON_STATUS_MPDU_END) ||
(hal_status == HAL_RX_MON_STATUS_MSDU_END));
+ rxcb = ATH12K_SKB_RXCB(skb);
+ if (rxcb->is_end_of_ppdu)
+ hal_status = HAL_RX_MON_STATUS_PPDU_DONE;
+
return hal_status;
}
* HAL_MON_END_OF_PPDU to ensure that one PPDU worth of data is always
* reaped. This helps to efficiently utilize the NAPI budget.
*/
- if (end_reason == HAL_MON_END_OF_PPDU)
+ if (end_reason == HAL_MON_END_OF_PPDU) {
*budget -= 1;
+ rxcb->is_end_of_ppdu = true;
+ }
end_offset = u32_get_bits(info0, HAL_MON_DEST_INFO0_END_OFFSET);
if (likely(end_offset <= DP_RX_BUFFER_SIZE)) {