[PATCH v2 08/14] nvme: Implement cross-controller reset recovery

James Smart jsmart833426 at gmail.com
Tue Feb 10 14:09:27 PST 2026


On 1/30/2026 2:34 PM, Mohamed Khalfella wrote:
...
> +unsigned long nvme_fence_ctrl(struct nvme_ctrl *ictrl)
> +{
> +	unsigned long deadline, now, timeout;
> +	struct nvme_ctrl *sctrl;
> +	u32 min_cntlid = 0;
> +	int ret;
> +
> +	timeout = nvme_fence_timeout_ms(ictrl);
> +	dev_info(ictrl->device, "attempting CCR, timeout %lums\n", timeout);
> +
> +	now = jiffies;
> +	deadline = now + msecs_to_jiffies(timeout);
> +	while (time_before(now, deadline)) {

Q: don't we have something to identify the controller's subsystem 
supports CCR before we starting selecting controllers and sending CCR ?

I would think on older devices that don't support it we should be 
skipping this loop.   The loop could delay the Time-Based delay without 
any CCR.

-- james




More information about the Linux-nvme mailing list