diff mbox series

wifi: brcmfmac: fix scatter-gather handling by detecting end of sg list

Message ID 20241108125609.107016-1-nvbolhuis@gmail.com
State New
Headers show
Series wifi: brcmfmac: fix scatter-gather handling by detecting end of sg list | expand

Commit Message

N van Bolhuis Nov. 8, 2024, 12:52 p.m. UTC
From: Norbert van Bolhuis <nvbolhuis@gmail.com>

The scatter-gather handling uses a pre-allocated list (with nents entries).
If the driver runs out of sg entries it will result in an oops. Let's detect
this instead and make the SDIO block transfer fail.

Signed-off-by: Norbert van Bolhuis <nvbolhuis@gmail.com>
---
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Kalle Valo Dec. 9, 2024, 3:58 p.m. UTC | #1
nvbolhuis@gmail.com wrote:

> From: Norbert van Bolhuis <nvbolhuis@gmail.com>
> 
> The scatter-gather handling uses a pre-allocated list (with nents entries).
> If the driver runs out of sg entries it will result in an oops. Let's detect
> this instead and make the SDIO block transfer fail.
> 
> Signed-off-by: Norbert van Bolhuis <nvbolhuis@gmail.com>

Patch applied to wireless-next.git, thanks.

52e8726d6782 wifi: brcmfmac: fix scatter-gather handling by detecting end of sg list
diff mbox series

Patch

diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
index 42d991d9f8cb..60eb95fc19a5 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
@@ -455,6 +455,11 @@  static int brcmf_sdiod_sglist_rw(struct brcmf_sdio_dev *sdiodev,
 			if (sg_data_sz > max_req_sz - req_sz)
 				sg_data_sz = max_req_sz - req_sz;
 
+			if (!sgl) {
+				/* out of (pre-allocated) scatterlist entries */
+				ret = -ENOMEM;
+				goto exit;
+			}
 			sg_set_buf(sgl, pkt_data, sg_data_sz);
 			sg_cnt++;