* as well as those by FC-NVME spec.
         */
        WARN_ON_ONCE(sqe->common.metadata);
-       WARN_ON_ONCE(sqe->common.dptr.prp1);
-       WARN_ON_ONCE(sqe->common.dptr.prp2);
        sqe->common.flags |= NVME_CMD_SGL_METABUF;
 
        /*
-        * format SQE DPTR field per FC-NVME rules
-        *    type=data block descr; subtype=offset;
-        *    offset is currently 0.
+        * format SQE DPTR field per FC-NVME rules:
+        *    type=0x5     Transport SGL Data Block Descriptor
+        *    subtype=0xA  Transport-specific value
+        *    address=0
+        *    length=length of the data series
         */
-       sqe->rw.dptr.sgl.type = NVME_SGL_FMT_OFFSET;
+       sqe->rw.dptr.sgl.type = (NVME_TRANSPORT_SGL_DATA_DESC << 4) |
+                                       NVME_SGL_FMT_TRANSPORT_A;
        sqe->rw.dptr.sgl.length = cpu_to_le32(data_len);
        sqe->rw.dptr.sgl.addr = 0;