[PATCH] nvme: revert the cross-controller atomic write size validation

John Garry john.g.garry at oracle.com
Mon Jul 14 08:04:49 PDT 2025


On 14/07/2025 15:44, Christoph Hellwig wrote:
> This was originally added by commit 8695f060a029 ("nvme: all namespaces
> in a subsystem must adhere to a common atomic write size") to check
> the all controllers in a subsystem report the same atomic write size,
> but the check wasn't quite correct and caused problems for devices
> with multiple namespaces that report different LBA sizes.  Commit
> f46d273449ba ("nvme: fix atomic write size validation") tried to fix
> this, but then caused problems for namespace rediscovery after a
> format with an LBA size change that changes the AWUPF value.
> 
> This drop the validation and essentially revers those two commits while
> keeping the cleanup that went in between the two.  We'll need to figure
> out how to properly check for the mouse trap that nvme left us, but for
> now revert the check to keep devices working for users who couldn't care
> less about the atomic write feature.
> 
> Fixes: 8695f060a029 ("nvme: all namespaces in a subsystem must adhere to a common atomic write size")
> Fixes: f46d273449ba ("nvme: fix atomic write size validation")
> Signed-off-by: Christoph Hellwig <hch at lst.de>
> ---

Reviewed-by: John Garry <john.g.garry at oracle.com>

>   drivers/nvme/host/core.c | 9 ---------
>   1 file changed, 9 deletions(-)
> 
> diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
> index 1d2240494f3d..fdd2334dacca 100644
> --- a/drivers/nvme/host/core.c
> +++ b/drivers/nvme/host/core.c
> @@ -3537,15 +3537,6 @@ static int nvme_init_identify(struct nvme_ctrl *ctrl)
>   		if (ret)
>   			goto out_free;
>   	}
> -
> -	if (le16_to_cpu(id->awupf) != ctrl->subsys->awupf) {
> -		dev_err_ratelimited(ctrl->device,
> -			"inconsistent AWUPF, controller not added (%u/%u).\n",
> -			le16_to_cpu(id->awupf), ctrl->subsys->awupf);
> -		ret = -EINVAL;
> -		goto out_free;
> -	}
> -
>   	memcpy(ctrl->subsys->firmware_rev, id->fr,
>   	       sizeof(ctrl->subsys->firmware_rev));
>   




More information about the Linux-nvme mailing list