Re: [PATCH net-next v4 1/7] queue_api: add support for fetching per queue DMA dev
From: Dragos Tatulea <dtatulea@nvidia.com>
Date: 2025-08-21 11:06:09
Also in:
lkml
On Wed, Aug 20, 2025 at 06:01:00PM -0700, Jakub Kicinski wrote:
On Wed, 20 Aug 2025 20:11:52 +0300 Dragos Tatulea wrote:quoted
+ * @ndo_queue_get_dma_dev: Get dma device for zero-copy operations to be used + * for this queue. When such device is not available, + * the function will return NULL.nit: I think you're using a different tense/grammar than the doc for other callbacks (which is admittedly somewhat unusual :$) Also should we indicate that "not available" is an error? Maybe just: Get dma device for zero-copy operations to be used for this queue. Return NULL on error.
Sure. Will fix.
quoted
* Note that @ndo_queue_mem_alloc and @ndo_queue_mem_free may be called while * the interface is closed. @ndo_queue_start and @ndo_queue_stop will only * be called for an interface which is open.quoted
+/** + * netdev_queue_get_dma_dev() - get dma device for zero-copy operations + * @dev: net_device + * @idx: queue index + * + * Get dma device for zero-copy operations to be used for this queue. + * When such device is not available or valid, the function will return NULL.Unfortunately kdoc really wants us to add Return: statements to all functions...
Ack. Will fix.
quoted
+ */ +struct device *netdev_queue_get_dma_dev(struct net_device *dev, int idx) +{ + const struct netdev_queue_mgmt_ops *queue_ops = dev->queue_mgmt_ops; + struct device *dma_dev; + + if (queue_ops && queue_ops->ndo_queue_get_dma_dev) + dma_dev = queue_ops->ndo_queue_get_dma_dev(dev, idx); + else + dma_dev = dev->dev.parent; + + return dma_dev && dma_dev->dma_mask ? dma_dev : NULL; +} +EXPORT_SYMBOL(netdev_queue_get_dma_dev); \ No newline at end of fileThis is in desperate need of a terminating new line.
Ack. Will fix.
But also -- why the export? iouring and devmem can't be modules.
Oh, right! Will replace with a newline. Thanks, Dragos