[PATCH v2] nvme/pci: Log PCI_STATUS when the controller dies
Christoph Hellwig
hch at infradead.org
Fri Dec 2 05:26:00 PST 2016
On Thu, Dec 01, 2016 at 04:42:41PM -0800, Andy Lutomirski wrote:
> When debugging nvme controller crashes, it's nice to know whether
> the controller died cleanly so that the failure is just reflected in
> CSTS, it died and put an error in PCI_STATUS, or whether it died so
> badly that it stopped responding to PCI configuration space reads.
Just curious: what controller did this happen with?
> + /* Read a config register to help see what died. */
> + u16 pci_status;
> + int result;
> +
> + result = pci_read_config_word(to_pci_dev(dev->dev),
> + PCI_STATUS, &pci_status);
> + if (result == PCIBIOS_SUCCESSFUL)
> + dev_warn(dev->dev,
> + "controller is down; will reset: CSTS=0x%x, PCI_STATUS=0x%hx\n",
> + csts, pci_status);
> + else
> + dev_warn(dev->dev,
> + "controller is down; will reset: CSTS=0x%x, PCI_STATUS read failed (%d)\n",
> + csts, result);
> + }
Can you factor all this debug code into a separate function to keep
the main flow easier to read?
Except for that this patch looks fine to me:
Reviewed-by: Christoph Hellwig <hch at lst.de>
More information about the Linux-nvme
mailing list