diff options
author | Jens Axboe <axboe@kernel.dk> | 2023-02-15 21:47:57 +0100 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2023-02-15 21:47:57 +0100 |
commit | d2ad8f0c89e2a002293aa53a628e9600453a0a53 (patch) | |
tree | 5a541ce5cde8b1eb3f4886e054ff0d885aa63a47 | |
parent | Revert "blk-cgroup: pin the gendisk in struct blkcg_gq" (diff) | |
parent | nvme-pci: remove iod use_sgls (diff) | |
download | linux-d2ad8f0c89e2a002293aa53a628e9600453a0a53.tar.xz linux-d2ad8f0c89e2a002293aa53a628e9600453a0a53.zip |
Merge tag 'nvme-6.3-2023-02-15' of git://git.infradead.org/nvme into for-6.3/block
Pull NVMe fixes from Christoph:
"nvme fixes for Linux 6.3
- fix and cleanup freeing single sgl (Keith Busch)"
* tag 'nvme-6.3-2023-02-15' of git://git.infradead.org/nvme:
nvme-pci: remove iod use_sgls
nvme-pci: fix freeing single sgl
-rw-r--r-- | drivers/nvme/host/pci.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c index a331fbfa9a66..d68e2db00d0d 100644 --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c @@ -230,7 +230,6 @@ union nvme_descriptor { struct nvme_iod { struct nvme_request req; struct nvme_command cmd; - bool use_sgl; bool aborted; s8 nr_allocations; /* PRP list pool allocations. 0 means small pool in use */ @@ -556,7 +555,7 @@ static void nvme_unmap_data(struct nvme_dev *dev, struct request *req) if (iod->nr_allocations == 0) dma_pool_free(dev->prp_small_pool, iod->list[0].sg_list, iod->first_dma); - else if (iod->use_sgl) + else if (iod->nr_allocations == 1) dma_pool_free(dev->prp_page_pool, iod->list[0].sg_list, iod->first_dma); else @@ -808,8 +807,7 @@ static blk_status_t nvme_map_data(struct nvme_dev *dev, struct request *req, goto out_free_sg; } - iod->use_sgl = nvme_pci_use_sgls(dev, req, iod->sgt.nents); - if (iod->use_sgl) + if (nvme_pci_use_sgls(dev, req, iod->sgt.nents)) ret = nvme_pci_setup_sgls(dev, req, &cmnd->rw); else ret = nvme_pci_setup_prps(dev, req, &cmnd->rw); |