Suganath, > * Added support for translating the SGLs associated with incoming > commands either to IEE SGL or NVMe PRPs for NVMe devices. This all seems very convoluted. You should rely on the block layer infrastructure instead of doing all this slicing and dicing by hand. If the attached device is an NVMe drive, call blk_queue_virt_boundary() and you will only receive requests that are suitable for a device with PRP-style scatterlist constraints. -- Martin K. Petersen Oracle Linux Engineering