Re: [PATCH] nvme-pci: disable controller on admin queue IRQ setup failure

From: Keith Busch

Date: Tue Jul 28 2026 - 17:05:42 EST


On Wed, Jul 15, 2026 at 04:44:59PM +0900, Myeonghun Pak wrote:
> nvme_pci_configure_admin_queue() enables the controller and then requests
> the admin queue interrupt. If queue_request_irq() fails it returns without
> disabling the controller, and no caller compensates: nvme_pci_enable() only
> frees the IRQ vectors and calls pci_disable_device(), after which
> nvme_dev_disable() treats the controller as dead and skips nvme_disable_ctrl().
> The controller is left enabled (CC.EN set) on this error path.
>
> Disable it in the failure path, while the PCI device is still enabled so the
> CC.EN clear handshake completes.

Thanks, applied to nvme-7.3.