]> git.itanic.dy.fi Git - linux-stable/commit
nvme: fix max_discard_sectors calculation
authorChristoph Hellwig <hch@lst.de>
Tue, 26 Dec 2023 08:58:43 +0000 (08:58 +0000)
committerKeith Busch <kbusch@kernel.org>
Wed, 3 Jan 2024 16:09:40 +0000 (08:09 -0800)
commitf29886c249ec2ed566e423fd02f6071b8f0a3346
treed159951ccf3d86b57a778efd6c367dbdb7b17776
parenta4be9679aa3e862adcab465122c7678c2b5d40e6
nvme: fix max_discard_sectors calculation

ctrl->max_discard_sectors stores a value that is potentially based of
the DMRSL field in Identify Controller, which is in units of LBAs and
thus dependent on the Format of a namespace.

Fix this by moving the calculation of max_discard_sectors entirely
into nvme_config_discard and replacing the ctrl->max_discard_sectors
value with a local variable so that the calculation is always
namespace-specific.

Fixes: 1a86924e4f46 ("nvme: fix interpretation of DMRSL")
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Keith Busch <kbusch@kernel.org>
drivers/nvme/host/core.c
drivers/nvme/host/nvme.h