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

Niklas Cassel
2024-12-18T18:01:40Z

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