linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] PCI: add function reset callback to pci_driver
@ 2013-11-20 17:26 Keith Busch
  2013-11-20 19:00 ` Bjorn Helgaas
  0 siblings, 1 reply; 5+ messages in thread
From: Keith Busch @ 2013-11-20 17:26 UTC (permalink / raw)
  To: linux-pci; +Cc: Keith Busch

A user can issue a pci function level reset to a device using sysfs
entry /sys/bus/pci/devices/.../reset. A kernel driver handling the
pci device probably would like to know that such a reset has occured,
so this patch adds a callback in to pci_driver's pci_error_handler.

Signed-off-by: Keith Busch <keith.busch@intel.com>
---
Assuming this is a good idea, is this the right place to invoke the
reset callback, or should it be up the call stack closer to the sysfs
reset entry point? Or somewhere else entirely?

 drivers/pci/pci.c   |    6 ++++++
 include/linux/pci.h |    3 +++
 2 files changed, 9 insertions(+)

diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index b127fbda..5ee6fc0 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -3435,6 +3435,12 @@ static int __pci_dev_reset(struct pci_dev *dev, int probe)
 
 	rc = pci_parent_bus_reset(dev, probe);
 done:
+	if (rc != -ENOTTY && !probe) {
+		struct pci_error_handlers *err_handler =
+				dev->driver ? dev->driver->err_handler : NULL;
+		if (err_handler && err_handler->function_reset)
+			err_handler->function_reset(dev);
+	}
 	return rc;
 }
 
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 835ec7b..d1f100e 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -605,6 +605,9 @@ struct pci_error_handlers {
 	/* PCI slot has been reset */
 	pci_ers_result_t (*slot_reset)(struct pci_dev *dev);
 
+	/* PCI function has been reset */
+	pci_ers_result_t (*function_reset)(struct pci_dev *dev);
+
 	/* Device driver may resume normal operations */
 	void (*resume)(struct pci_dev *dev);
 };
-- 
1.7.10.4


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-12-09 17:38 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-20 17:26 [PATCH] PCI: add function reset callback to pci_driver Keith Busch
2013-11-20 19:00 ` Bjorn Helgaas
2013-11-20 19:22   ` Alex Williamson
2013-11-20 19:39     ` Keith Busch
2013-12-09 17:38       ` Bjorn Helgaas

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).