From mboxrd@z Thu Jan 1 00:00:00 1970 From: Linas Vepstas Date: Wed, 02 Mar 2005 20:02:16 +0000 Subject: Re: [PATCH/RFC] I/O-check interface for driver's error handling Message-Id: <20050302200216.GM1220@austin.ibm.com> List-Id: References: <422428EC.3090905@jp.fujitsu.com> <20050301165904.GN28741@parcelfarce.linux.theplanet.co.uk> <200503010910.29460.jbarnes@engr.sgi.com> <20050301183333.GB1220@austin.ibm.com> <1109716047.5679.51.camel@gaston> In-Reply-To: <1109716047.5679.51.camel@gaston> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Benjamin Herrenschmidt Cc: Jesse Barnes , linux-pci@atrey.karlin.mff.cuni.cz, Matthew Wilcox , Linus Torvalds , Jeff Garzik , Hidetoshi Seto , Linux Kernel list , linux-ia64@vger.kernel.org, "Luck, Tony" On Wed, Mar 02, 2005 at 09:27:27AM +1100, Benjamin Herrenschmidt was heard to remark: > On Tue, 2005-03-01 at 12:33 -0600, Linas Vepstas wrote: > > > The current proposal (and prototype) has a "master recovery thread" > > to handle the coordinated reset of the pci controller. This master > > recovery thyread makes three calls in struct pci_driver: > > > > void (*frozen) (struct pci_dev *); /* called when dev is first frozen */ > > void (*thawed) (struct pci_dev *); /* called after card is reset */ > > void (*perm_failure) (struct pci_dev *); /* called if card is dead */ > > See my other emails. I think only one callback is enough, and I think we > need more parameters. That's a style issue. Propose an API, I'll code it. We can have the master recovery thread be a state machine, and so every device driver gets notified of state changes: typedef enum pci_bus_state { DEVICE_IO_FROZEN=1, DEVICE_IO_THAWED, DEVICE_PERM_FAILURE, }; struct pci_driver { .... void (*io_state_change) (struct pci_dev *dev, pci_bus_state); }; would that work? --linas