Re: [PATCH] nvme-pci: disable controller on admin queue IRQ setup failure
Keith Busch <[email protected]> Tue, 28 Jul 2026 15:05:00 -0600
| Newsgroups | org.infradead.lists.linux-nvme,org.kernel.vger.linux-kernel,org.kernel.vger.stable |
|---|---|
| Message-ID | <amkZfAmClmnzSCYV@kbusch-mbp> |
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.