diff options
| author | Jens Axboe <axboe@kernel.dk> | 2026-01-28 11:59:09 -0700 |
|---|---|---|
| committer | Jens Axboe <axboe@kernel.dk> | 2026-01-28 11:59:09 -0700 |
| commit | 45614d8cd1e813c6ccfae80582c9a0073209ef3e (patch) | |
| tree | 0a54661f79e7ae9dd19345353814dbdeaf5cc0e2 /drivers | |
| parent | c87f15efeb2efc8049a4f021e7328f3a4737f749 (diff) | |
| parent | a54afbc8a2138f8c2490510cf26cde188d480c43 (diff) | |
| download | lwn-45614d8cd1e813c6ccfae80582c9a0073209ef3e.tar.gz lwn-45614d8cd1e813c6ccfae80582c9a0073209ef3e.zip | |
Merge tag 'nvme-6.19-2026-01-28' of git://git.infradead.org/nvme into block-6.19
Pull NVMe fixes from Keith:
"- TCP target completion race condition fix (Ming)
- DMA descriptor cleanup fix (Roger)"
* tag 'nvme-6.19-2026-01-28' of git://git.infradead.org/nvme:
nvme-pci: DMA unmap the correct regions in nvme_free_sgls
nvmet: fix race in nvmet_bio_done() leading to NULL pointer dereference
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/nvme/host/pci.c | 4 | ||||
| -rw-r--r-- | drivers/nvme/target/io-cmd-bdev.c | 3 |
2 files changed, 4 insertions, 3 deletions
diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c index 58f3097888a7..c2bee32332fe 100644 --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c @@ -806,8 +806,8 @@ static void nvme_unmap_data(struct request *req) if (!blk_rq_dma_unmap(req, dma_dev, &iod->dma_state, iod->total_len, map)) { if (nvme_pci_cmd_use_sgl(&iod->cmd)) - nvme_free_sgls(req, iod->descriptors[0], - &iod->cmd.common.dptr.sgl, attrs); + nvme_free_sgls(req, &iod->cmd.common.dptr.sgl, + iod->descriptors[0], attrs); else nvme_free_prps(req, attrs); } diff --git a/drivers/nvme/target/io-cmd-bdev.c b/drivers/nvme/target/io-cmd-bdev.c index 8d246b8ca604..0103815542d4 100644 --- a/drivers/nvme/target/io-cmd-bdev.c +++ b/drivers/nvme/target/io-cmd-bdev.c @@ -180,9 +180,10 @@ u16 blk_to_nvme_status(struct nvmet_req *req, blk_status_t blk_sts) static void nvmet_bio_done(struct bio *bio) { struct nvmet_req *req = bio->bi_private; + blk_status_t blk_status = bio->bi_status; - nvmet_req_complete(req, blk_to_nvme_status(req, bio->bi_status)); nvmet_req_bio_put(req, bio); + nvmet_req_complete(req, blk_to_nvme_status(req, blk_status)); } #ifdef CONFIG_BLK_DEV_INTEGRITY |
