mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Ping-Ke Shih <pkshih@realtek.com>
To: "luka.gejak@linux.dev" <luka.gejak@linux.dev>
Cc: "linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"Michael Straube" <straube.linux@gmail.com>,
	Peter Robinson <pbrobinson@gmail.com>,
	Bitterblue Smith <rtl8821cerfe2@gmail.com>
Subject: RE: [PATCH v11 4/7] wifi: rtw88: sdio: zero the padding added to a TX transfer
Date: Thu, 10 Sep 2026 02:24:10 +0000	[thread overview]
Message-ID: <d6507fd0447c4c09a9c80bb57dfef35c@realtek.com> (raw)
In-Reply-To: <20260909074556.55709-5-luka.gejak@linux.dev>

luka.gejak@linux.dev <luka.gejak@linux.dev> wrote:
> From: Luka Gejak <luka.gejak@linux.dev>
> 
> rtw_sdio_write_port() rounds the transfer up with sdio_align_size() and
> then hands that length to sdio_memcpy_toio() while the skb still only
> holds skb->len bytes. The difference, between one and 511 bytes, is read
> from beyond the end of the frame and transmitted. Whether it stays
> inside the skb's allocation depends on how much tailroom the skb happens
> to have, so this is at best sending uninitialised memory over the air.
> 
> Pad the skb up to the transfer size first. __skb_pad() zeroes the added
> bytes, reallocates a cloned skb rather than writing into a buffer a
> clone still shares, and leaves skb->len alone, so nothing else in the
> transmit path has to change.

With __skb_pad(), it might increase CPU usage.
Could you roughly measure that?

> 
> It must not free the skb on failure: rtw_sdio_write_data() frees the skb
> itself and rtw_sdio_process_tx_queue() requeues it, so both callers
> still own it and would double free.
> 
> Found while reworking this path for the RTL8723BS. Measured on RTL8723BS
> hardware, padding the transfer costs nothing observable: uplink is
> 19.5 to 19.8 Mbit/s padded against 20.9 to 21.1 Mbit/s unpadded in an
> interleaved A/B, with scans, reconnection and a UDP flood clean in both.
> The other SDIO parts sharing this path are untested; I have only the
> RTL8723BS.
> 
> Fixes: 65371a3f14e7 ("wifi: rtw88: sdio: Add HCI implementation for SDIO based chipsets")
> Signed-off-by: Luka Gejak <luka.gejak@linux.dev>

Acked-by: Ping-Ke Shih <pkshih@realtek.com>




  reply	other threads:[~2026-09-10  2:24 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-09  7:45 [PATCH v11 0/7] wifi: rtw88: preparations for RTL8723B/RTL8723BS luka.gejak
2026-09-09  7:45 ` [PATCH v11 1/7] wifi: rtw88: add the RTL8723B chip type and SDIO helper luka.gejak
2026-09-09  7:45 ` [PATCH v11 2/7] wifi: rtw88: rx: mark zero length packets on RTL8723BS luka.gejak
2026-09-09  7:45 ` [PATCH v11 3/7] wifi: rtw88: tx: extend the TX report purge timeout to RTL8723BS luka.gejak
2026-09-09  7:45 ` [PATCH v11 4/7] wifi: rtw88: sdio: zero the padding added to a TX transfer luka.gejak
2026-09-10  2:24   ` Ping-Ke Shih [this message]
2026-09-10 14:56     ` Luka Gejak
2026-09-10 15:51       ` Luka Gejak
2026-09-11  0:45         ` Ping-Ke Shih
2026-09-11  0:53           ` Ping-Ke Shih
2026-09-11  7:40             ` Luka Gejak
2026-09-11  7:45               ` Ping-Ke Shih
2026-09-11  8:42                 ` Luka Gejak
2026-09-11  0:30       ` Ping-Ke Shih
2026-09-11  6:41         ` Luka Gejak
2026-09-09  7:45 ` [PATCH v11 5/7] wifi: rtw88: sdio: track free TX pages and OQT credits for RTL8723BS luka.gejak
2026-09-10  2:40   ` Ping-Ke Shih
2026-09-09  7:45 ` [PATCH v11 6/7] wifi: rtw88: sdio: set up RX aggregation and interrupts " luka.gejak
2026-09-09  7:45 ` [PATCH v11 7/7] wifi: rtw88: sdio: add TX back-pressure and retry on page starvation luka.gejak

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d6507fd0447c4c09a9c80bb57dfef35c@realtek.com \
    --to=pkshih@realtek.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=luka.gejak@linux.dev \
    --cc=pbrobinson@gmail.com \
    --cc=rtl8821cerfe2@gmail.com \
    --cc=straube.linux@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®