mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 12:44:03 +02:00
net: hibmcge: fix page_pool DMA direction mismatch
The driver memsets the RX buffer page head to zero before
submitting it to hardware, then calls dma_sync_single_for_device()
with DMA_TO_DEVICE. This sync direction does not match the pool
dma_dir which is DMA_FROM_DEVICE, violating the DMA API contract
that the sync direction must match the mapping direction.
On swiotlb platforms the mismatch can cause incorrect bounce-buffer
behaviour, and CONFIG_DMA_API_DEBUG emits a warning.
Switch the page_pool dma_dir to DMA_BIDIRECTIONAL so that the
CPU-to-device memset sync becomes legal.
Fixes: c305959175 ("net: hibmcge: add support for pagepool on rx")
Signed-off-by: Jian Shen <shenjian15@huawei.com>
Signed-off-by: Jijie Shao <shaojijie@huawei.com>
Link: https://patch.msgid.link/20260820124346.4097115-1-shaojijie@huawei.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
137b8ae233
commit
11efd7963d
|
|
@ -554,7 +554,7 @@ static int hbg_ring_page_pool_init(struct hbg_priv *priv, struct hbg_ring *ring)
|
|||
.nid = dev_to_node(&priv->pdev->dev),
|
||||
.dev = &priv->pdev->dev,
|
||||
.napi = &ring->napi,
|
||||
.dma_dir = DMA_FROM_DEVICE,
|
||||
.dma_dir = DMA_BIDIRECTIONAL,
|
||||
.offset = 0,
|
||||
.max_len = hbg_get_page_size(ring),
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user