From: Keith Busch Date: Fri, 25 Oct 2024 22:27:55 +0000 (-0700) Subject: PCI: Warn if a running device is unaware of reset X-Git-Tag: microblaze-v6.16~472^2~20^2 X-Git-Url: http://git.monstr.eu/?a=commitdiff_plain;h=a3151e6daaec171b7d46ac79170ec420ad874cae;p=linux-2.6-microblaze.git PCI: Warn if a running device is unaware of reset If a reset is issued to a running device with a driver that didn't register the notification callbacks, the driver may be unaware of this event and have an inconsistent view of the device's state. Log a warning of this event because there's nothing else indicating the event occured, which could be confusing when debugging such situations. Link: https://lore.kernel.org/r/20241025222755.3756162-2-kbusch@meta.com Signed-off-by: Keith Busch Signed-off-by: Bjorn Helgaas Reviewed-by: Amey Narkhede Reviewed-by: Alex Williamson --- diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 338dfcd983f1..bbf12d499826 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -5158,6 +5158,8 @@ static void pci_dev_save_and_disable(struct pci_dev *dev) */ if (err_handler && err_handler->reset_prepare) err_handler->reset_prepare(dev); + else if (dev->driver) + pci_warn(dev, "resetting"); /* * Wake-up device prior to save. PM registers default to D0 after @@ -5191,6 +5193,8 @@ static void pci_dev_restore(struct pci_dev *dev) */ if (err_handler && err_handler->reset_done) err_handler->reset_done(dev); + else if (dev->driver) + pci_warn(dev, "reset done"); } /* dev->reset_methods[] is a 0-terminated list of indices into this array */