Commit a3151e6d authored by Keith Busch's avatar Keith Busch Committed by Bjorn Helgaas
Browse files

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: default avatarKeith Busch <kbusch@kernel.org>
Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
Reviewed-by: default avatarAmey Narkhede <ameynarkhede03@gmail.com>
Reviewed-by: default avatarAlex Williamson <alex.williamson@redhat.com>
parent 2fa04644
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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 */