On Wed, Apr 23, 2025 at 11:13:14AM +0300, Leon Romanovsky wrote: > +static bool nvme_try_setup_sgl_simple(struct nvme_dev *dev, struct request *req, > + struct nvme_rw_command *cmnd, > + struct blk_dma_iter *iter) > +{ > + struct nvme_iod *iod = blk_mq_rq_to_pdu(req); > + struct bio_vec bv = req_bvec(req); > + > + if (IS_ENABLED(CONFIG_PCI_P2PDMA) && (req->cmd_flags & REQ_P2PDMA)) > + return false; > + > + if ((bv.bv_offset & (NVME_CTRL_PAGE_SIZE - 1)) + bv.bv_len > > + NVME_CTRL_PAGE_SIZE * 2) > + return false; We don't need this check for SGLs. If we have a single segment, we can put it in a single SG element no matter how large it is.