]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
nvme-pci: fix freeing of the HMB descriptor table
authorChristoph Hellwig <hch@lst.de>
Fri, 1 Nov 2024 04:40:04 +0000 (05:40 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 14 Dec 2024 18:50:43 +0000 (19:50 +0100)
commit869cf50b9c9d1059f5223f79ef68fc0bc6210095
tree47ce944020c9848a540af3c84e96bb4641674d53
parent6983b8ac787b3add5571cda563574932a59a99bb
nvme-pci: fix freeing of the HMB descriptor table

[ Upstream commit 3c2fb1ca8086eb139b2a551358137525ae8e0d7a ]

The HMB descriptor table is sized to the maximum number of descriptors
that could be used for a given device, but __nvme_alloc_host_mem could
break out of the loop earlier on memory allocation failure and end up
using less descriptors than planned for, which leads to an incorrect
size passed to dma_free_coherent.

In practice this was not showing up because the number of descriptors
tends to be low and the dma coherent allocator always allocates and
frees at least a page.

Fixes: 87ad72a59a38 ("nvme-pci: implement host memory buffer support")
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Keith Busch <kbusch@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/nvme/host/pci.c