nvme: fix write_stream_granularity initialization

write_stream_granularity is set to max(info->runs, U32_MAX), which means
that any RUNS value less than 2 ** 32 becomes U32_MAX, and any larger
value is silently truncated to an unsigned int.

Use min() instead to provide the correct semantics, capping RUNS values
at U32_MAX.

Signed-off-by: Caleb Sander Mateos <csander@purestorage.com>
Fixes: 30b5f20bb2 ("nvme: register fdp parameters with the block layer")
Reviewed-by: Keith Busch <kbusch@kernel.org>
Link: https://lore.kernel.org/r/20250506175413.1936110-1-csander@purestorage.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
Caleb Sander Mateos 2025-05-06 11:54:12 -06:00 committed by Jens Axboe
parent 38e8397dde
commit 86b6e0bd1a

View File

@ -2392,7 +2392,7 @@ static int nvme_update_ns_info_block(struct nvme_ns *ns,
lim.max_write_streams = ns->head->nr_plids;
if (lim.max_write_streams)
lim.write_stream_granularity = max(info->runs, U32_MAX);
lim.write_stream_granularity = min(info->runs, U32_MAX);
else
lim.write_stream_granularity = 0;