wifi: brcmfmac: map msgbuf RX packet IDs bidirectional
Subsystems (2)
PATCH 1/1 wifi: brcmfmac: map msgbuf RX packet IDs bidirectional
From: Jason Perlow <[email protected]>
Commit f0ba5fd51ff2 ("wifi: brcmfmac: Set DMA direction for msgbuf packet IDs") maps the RX packet ID buffers DMA_FROM_DEVICE. The BCM4364 firmware also reads posted RX buffers, so with VT-d translation enabled every such read faults ("PTE Read access is not set") and the firmware crashes and resets in a loop.
Map the RX pool DMA_BIDIRECTIONAL again, as before that commit. TX keeps DMA_TO_DEVICE.
--- drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c +1 -1
@@ -1639,7 +1639,7 @@ int brcmf_proto_msgbuf_attach(struct brcmf_pub *drvr)if (!msgbuf->tx_pktids) goto fail; msgbuf->rx_pktids =brcmf_msgbuf_init_pktids (NR_RX_PKTIDS , -DMA_FROM_DEVICE ); +DMA_BIDIRECTIONAL );if (!msgbuf->rx_pktids) goto fail;
Signature · 1 line
2.53.0
[email protected]
AI reviewSashiko has reviewed this patch and found no issues.
Quoted 8 lines
From: Jason Perlow <[email protected]>
Commit
f0ba5fd51ff2("wifi: brcmfmac: Set DMA direction for msgbuf packet IDs") maps the RX packet ID buffersDMA_FROM_DEVICE. The BCM4364 firmware also reads posted RX buffers, so with VT-d translation enabled every such read faults ("PTE Read access is not set") and the firmware crashes and resets in a loop.
Quoted 7 lines
Map the RX pool
DMA_BIDIRECTIONALagain, as before that commit. TX keepsDMA_TO_DEVICE.Fixes f0ba5fd51ff2 ("wifi: brcmfmac: Set DMA direction for msgbuf packet IDs")Signed-off-by Jason Perlow <[email protected]>Signed-off-by Aditya Garg <[email protected]>
Sashiko has reviewed this patch and found no issues.
Signature · 1 line
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=1
Op 21 oktober 2026 19:23:05 schreef Aditya Garg <[email protected]>:
Quoted 8 lines
From: Jason Perlow <[email protected]>
Commit
f0ba5fd51ff2("wifi: brcmfmac: Set DMA direction for msgbuf packet IDs") maps the RX packet ID buffersDMA_FROM_DEVICE. The BCM4364 firmware also reads posted RX buffers, so with VT-d translation enabled every such read faults ("PTE Read access is not set") and the firmware crashes and resets in a loop.
Quoted 5 lines
Map the RX pool
DMA_BIDIRECTIONALagain, as before that commit. TX keepsDMA_TO_DEVICE.Fixes f0ba5fd51ff2 ("wifi: brcmfmac: Set DMA direction for msgbuf packet IDs")
Quoted 5 lines
Signed-off-by Jason Perlow <[email protected]>Signed-off-by Aditya Garg <[email protected]>---
drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c| 2 +-1 file changed, 1 insertion(+), 1 deletion(-)