RE: [PATCH v4 2/7] wifi: rtw88: rx: mark zero length packets on RTL8723BS
From: Ping-Ke Shih
Date: Fri Aug 14 2026 - 01:44:56 EST
luka.gejak@xxxxxxxxx <luka.gejak@xxxxxxxxx> wrote:
> From: Luka Gejak <luka.gejak@xxxxxxxxx>
>
> Like the RTL8703B, the RTL8723BS reports receive descriptors with a zero
> packet length, which the vendor driver drops outright. rtw88 already
> flags these as having no PSDU for the RTL8703B, so extend the same
> handling rather than passing an empty frame up.
>
> This is gated on the SDIO interface rather than the chip id, because it
> has only been observed there; the USB variant is not known to do it.
>
> Co-developed-by: Michael Straube <straube.linux@xxxxxxxxx>
> Signed-off-by: Michael Straube <straube.linux@xxxxxxxxx>
> Signed-off-by: Luka Gejak <luka.gejak@xxxxxxxxx>
> ---
> drivers/net/wireless/realtek/rtw88/rx.c | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/wireless/realtek/rtw88/rx.c b/drivers/net/wireless/realtek/rtw88/rx.c
> index 01fd299abb7f..a9361ef4b93c 100644
> --- a/drivers/net/wireless/realtek/rtw88/rx.c
> +++ b/drivers/net/wireless/realtek/rtw88/rx.c
> @@ -253,10 +253,12 @@ static void rtw_rx_fill_rx_status(struct rtw_dev *rtwdev,
>
> rtw_rx_addr_match(rtwdev, pkt_stat, hdr);
>
> - /* Rtl8723cs driver checks for size < 14 or size > 8192 and
> - * simply drops the packet.
> + /*
> + * Rtl8723cs and rtl8723bs drivers check for size < 14 or size > 8192
> + * and simply drop the packet.
> */
> - if (rtwdev->chip->id == RTW_CHIP_TYPE_8703B && pkt_stat->pkt_len == 0) {
> + if ((rtwdev->chip->id == RTW_CHIP_TYPE_8703B || rtw_is_8723bs(rtwdev)) &&
> + pkt_stat->pkt_len == 0) {
I think we can evaluate ` pkt_stat->pkt_len == 0` first, because it is an
unlikely case and we can save a little time.
> rx_status->flag |= RX_FLAG_NO_PSDU;
> rtw_dbg(rtwdev, RTW_DBG_RX, "zero length packet");
> }
> --
> 2.53.0