Commit 0ba4ba84 authored by Leon Romanovsky's avatar Leon Romanovsky Committed by ZhangPeng
Browse files

nvme-pci: add missing condition check for existence of mapped data

stable inclusion
from stable-v6.6.44
commit 77848b379e9f85a08048a2c8b3b4a7e8396f5f83
bugzilla: https://gitee.com/openeuler/kernel/issues/IAHMJO

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=77848b379e9f85a08048a2c8b3b4a7e8396f5f83



--------------------------------

[ Upstream commit c31fad1470389666ac7169fe43aa65bf5b7e2cfd ]

nvme_map_data() is called when request has physical segments, hence
the nvme_unmap_data() should have same condition to avoid dereference.

Fixes: 4aedb705 ("nvme-pci: split metadata handling from nvme_map_data / nvme_unmap_data")
Signed-off-by: default avatarLeon Romanovsky <leonro@nvidia.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarNitesh Shetty <nj.shetty@samsung.com>
Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
Signed-off-by: default avatarZhangPeng <zhangpeng362@huawei.com>
parent b50f472e
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -863,6 +863,7 @@ static blk_status_t nvme_prep_rq(struct nvme_dev *dev, struct request *req)
	nvme_start_request(req);
	return BLK_STS_OK;
out_unmap_data:
	if (blk_rq_nr_phys_segments(req))
		nvme_unmap_data(dev, req);
out_free_cmd:
	nvme_cleanup_cmd(req);