nvme-pci: fix freeing single sgl
authorKeith Busch <kbusch@kernel.org>
Fri, 10 Feb 2023 18:03:46 +0000 (10:03 -0800)
committerChristoph Hellwig <hch@lst.de>
Tue, 14 Feb 2023 05:40:52 +0000 (06:40 +0100)
commit8f0edf45bb676ec3558d6b668ad3f6a7d54cf601
tree2467b7c480d82cf861ea209864bc081fd16dbd42
parent2f1e07dda1e1310873647abc40bbc49eaf3b10e3
nvme-pci: fix freeing single sgl

There may only be a single DMA mapped entry from multiple physical
segments, which means we don't allocate a separte SGL list. Check the
number of allocations prior to know if we need to free something.

Freeing a single list allocation is the same for both PRP and SGL
usages, so we don't need to check the use_sgl flag anymore.

Fixes: 01df742d8c5c0 ("nvme-pci: remove SGL segment descriptors")
Reported-by: Niklas Schnelle <schnelle@linux.ibm.com>
Signed-off-by: Keith Busch <kbusch@kernel.org>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Tested-by: Niklas Schnelle <schnelle@linux.ibm.com>
drivers/nvme/host/pci.c