All of lore.kernel.org
 help / color / mirror / Atom feed
From: Keith Busch <kbusch@kernel.org>
To: Caleb Sander Mateos <csander@purestorage.com>
Cc: Jens Axboe <axboe@kernel.dk>, Christoph Hellwig <hch@lst.de>,
	Sagi Grimberg <sagi@grimberg.me>,
	Chaitanya Kulkarni <kch@nvidia.com>,
	linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 6/8] nvme: set discard_granularity from NPDG/NPDA
Date: Thu, 26 Feb 2026 14:20:02 -0700	[thread overview]
Message-ID: <aaC5AkJyqKZJSidf@kbusch-mbp> (raw)
In-Reply-To: <20260226190416.297725-7-csander@purestorage.com>

On Thu, Feb 26, 2026 at 12:04:13PM -0700, Caleb Sander Mateos wrote:
> +	if (optperf & 0x2 && nvm && nvm->npdgl)
> +		npdg = le32_to_cpu(nvm->npdgl);
> +	else if (optperf & 0x1)
> +		npdg = from0based(id->npdg);
> +	if (optperf & 0x2 && nvm && nvm->npdal)
> +		npda = le32_to_cpu(nvm->npdal);
> +	else if (optperf)
> +		npda = from0based(id->npda);
> +	lim->discard_granularity = max(npdg, npda) * lim->logical_block_size;

I suspect some controller could report a very large npdal/npdgl such
that the multiplication result overflows the discard_granularity type,
so let's check with a fallback:

	if (check_mul_overflow(max(npdg, npda), lim->logical_block_size, &result))
		lim->discard_granularity = U32_MAX & (lim->logical_block_size - 1);


  reply	other threads:[~2026-02-26 21:20 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-26 19:04 [PATCH v4 0/8] nvme: set discard_granularity from NPDG/NPDA Caleb Sander Mateos
2026-02-26 19:04 ` [PATCH v4 1/8] nvme: add preferred I/O size fields to struct nvme_id_ns_nvm Caleb Sander Mateos
2026-02-26 19:04 ` [PATCH v4 2/8] nvme: fold nvme_config_discard() into nvme_update_disk_info() Caleb Sander Mateos
2026-02-26 19:04 ` [PATCH v4 3/8] nvme: update nvme_id_ns OPTPERF constants Caleb Sander Mateos
2026-02-26 19:04 ` [PATCH v4 4/8] nvme: always issue I/O Command Set specific Identify Namespace Caleb Sander Mateos
2026-02-26 21:02   ` Keith Busch
2026-02-26 21:06     ` Caleb Sander Mateos
2026-02-26 19:04 ` [PATCH v4 5/8] nvme: add from0based() helper Caleb Sander Mateos
2026-02-26 19:04 ` [PATCH v4 6/8] nvme: set discard_granularity from NPDG/NPDA Caleb Sander Mateos
2026-02-26 21:20   ` Keith Busch [this message]
2026-02-26 19:04 ` [PATCH v4 7/8] nvmet: use NVME_NS_FEAT_OPTPERF_SHIFT Caleb Sander Mateos
2026-02-26 19:04 ` [PATCH v4 8/8] nvmet: report NPDGL and NPDAL Caleb Sander Mateos

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aaC5AkJyqKZJSidf@kbusch-mbp \
    --to=kbusch@kernel.org \
    --cc=axboe@kernel.dk \
    --cc=csander@purestorage.com \
    --cc=hch@lst.de \
    --cc=kch@nvidia.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nvme@lists.infradead.org \
    --cc=sagi@grimberg.me \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.