mirror of https://github.com/torvalds/linux.git
io_uring/zcrx: add support for custom DMA devices
Use the new API for getting a DMA device for a specific netdev queue. This patch will allow io_uring zero-copy rx to work with devices where the DMA device is not stored in the parent device. mlx5 SFs are an example of such a device. Signed-off-by: Dragos Tatulea <dtatulea@nvidia.com> Reviewed-by: Mina Almasry <almasrymina@google.com> Reviewed-by: Pavel Begunkov <asml.silence@gmail.com> Link: https://patch.msgid.link/20250827144017.1529208-4-dtatulea@nvidia.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
13d8e05adf
commit
59b8b32ac8
|
|
@ -12,6 +12,7 @@
|
||||||
#include <net/page_pool/helpers.h>
|
#include <net/page_pool/helpers.h>
|
||||||
#include <net/page_pool/memory_provider.h>
|
#include <net/page_pool/memory_provider.h>
|
||||||
#include <net/netlink.h>
|
#include <net/netlink.h>
|
||||||
|
#include <net/netdev_queues.h>
|
||||||
#include <net/netdev_rx_queue.h>
|
#include <net/netdev_rx_queue.h>
|
||||||
#include <net/tcp.h>
|
#include <net/tcp.h>
|
||||||
#include <net/rps.h>
|
#include <net/rps.h>
|
||||||
|
|
@ -599,7 +600,7 @@ int io_register_zcrx_ifq(struct io_ring_ctx *ctx,
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
ifq->dev = ifq->netdev->dev.parent;
|
ifq->dev = netdev_queue_get_dma_dev(ifq->netdev, ifq->if_rxq);
|
||||||
if (!ifq->dev) {
|
if (!ifq->dev) {
|
||||||
ret = -EOPNOTSUPP;
|
ret = -EOPNOTSUPP;
|
||||||
goto err;
|
goto err;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue