more eeh

Greg KH greg at
Sat Mar 20 05:37:11 EST 2004

On Fri, Mar 19, 2004 at 12:01:36PM -0600, linas at wrote:
> On Thu, Mar 18, 2004 at 04:50:26PM -0800, Greg KH wrote:
> >
> > No, you need to call pci_remove_bus_device() for that device so that the
> > pci core properly cleans up after your device is gone.  That's what the
> > pci hotplug controller drivers eventually call, after handling a bunch
> > of other housekeeping that their hardware requires (putting resources
> > back into a pool, etc.)
> If the error is transient and can be cleared, does one still need to call
> pci_remove_bus_device()?

Depends, if you want the pci device to be removed from the kernel
entirely, you need that call.  If not, then you do not.  But you better
not be calling release() on the device on your own either...

> Or is it possible to reset the device state without making this call?

Depends on the device and the driver.

> Remember, the goal is to reset the device into a working state asap,
> with minimal disturbance of higher layers.

See Paul's discussion of the different ways of doing this.  You are
talking about a device controlled by type (a) of a driver.  For the rest
of the world, you will have a hard time doing this.

> > Remember, you are asking to put policy about EEH events into the kernel.
> If the EEH event takes down the disk on which the user-land scripts reside,
> then the event can't be recovered withut putting some kind of policy
> in the kernel.

True, but it all depends on the level of "robustness" you want to be
able to handle.  Odds are you do not need this kind all of the time.

> > remain a PPC64 specific "feature".  If, on the otherhand, you want to do
> > something that will work for all platforms, I suggest the userspace
> > hotplug method.  That will work for everyone.
> As far as I know, there are no other pci controllers that support this
> function.  If you know of any plans by Dell or Sun or HP to ship something
> like this in the future, I would welcome the contact, the introduction
> to said parties.

PCI Express handles this kind of functionality.  And as I already have a
PCI Express box sitting next to me right now, this kind of functionality
is not limited to the PPC64 platform anymore.


greg k-h

** Sent via the linuxppc64-dev mail list. See

More information about the Linuxppc64-dev mailing list