[PATCH 2/3] nvme: Pass pointers, not dma addresses, to nvme_get/set_features()

Christoph Hellwig hch at lst.de
Mon Aug 29 23:36:51 PDT 2016


On Mon, Aug 29, 2016 at 04:20:43PM -0700, Andy Lutomirski wrote:
> The "Set Features" command (section 5.15) Figure 103 says:
> 
> If using PRPs, this field shall not be a pointer to a PRP List as the
> data buffer may not cross more than one page boundary. If no data
> structure is used as part of the specified feature, then this field is
> not used.
> 
> Does the Linux driver use PRPs?

The Linux PCIe driver always uses PRPs - and for admin command only
Fabrics can use SGLs anyway.

> Do we need to worry about kmalloc
> returning a buffer that spans a 4k boundary but does not span a Linux
> page boundary?

Isn't kmalloc supposed to return naturally aligned buffers?



More information about the Linux-nvme mailing list