[PATCH v4 17/18] nvmet: New NVMe PCI endpoint target driver

Niklas Cassel cassel at kernel.org
Wed Dec 18 10:01:35 PST 2024


On Mon, Dec 16, 2024 at 10:05:44PM +0530, Vinod Koul wrote:

[...]

> > 
> > Am I missing something obvious here?
> 
> Yes, I feel nvme being treated as slave transfer, which it might not be.
> This API was designed for peripherals like i2c/spi etc where we have a
> hardware address to read/write to. So the dma_slave_config would pass on
> the transfer details for the peripheral like address, width of fifo,
> depth etc and these are setup config, so call once for a channel and then
> prepare the descriptor, submit... and repeat of prepare and submit ...
> 
> I suspect since you are passing an address which keep changing in the
> dma_slave_config, you need to guard that and prep_slave_single() call,
> as while preparing the descriptor driver would lookup what was setup for
> the configuration.
> 
> I suggest then use the prep_memcpy() API instead and pass on source and
> destination, no need to lock the calls...

Vinod, as always, thank you very much for your suggestion, it is appreciated!


Kind regards,
Niklas



More information about the Linux-nvme mailing list