Re: [PATCH v2 2/8] powerpc/eeh: More relexed hotplug criterion
From: Gavin Shan <hidden>
Date: 2015-10-14 01:33:40
On Wed, Oct 14, 2015 at 10:48:15AM +1100, Daniel Axtens wrote:
Gavin Shan [off-list ref] writes:quoted
I think you're talking about the situation reported from the bug. It's CAN_RECOVER instead of NONE returned from error_detected(). With the CAN_RECOVER, the driver hopes the EEH core to enable the IO path so that it can collect diag-data from IO space at late point.Oh. That's an interesting decision from the driver's point of view. I obviously need to re-read the patch and the surrounding code and try again to make sense of it later. Thanks for your attempts to explain it!
Yeah, that was the tricky solution we had after discussion. Obviously, that's breaking EEH core's assumption that driver implements all error handlers or none of them as you said. Unfortunately, I think there might have more drivers to continue breaking but EEH core has to support. On the other hand, the error handlers could be used for purposes other than recovery, which is good. Thanks, Gavin
quoted
quoted
Partial hotplug is pretty hacky to begin with, and a driver being able to opt out of EEH selectively is a useful feature, so we probably want to redesign the state machine to handle them both better. That would be a long term project.
quoted
quoted
quoted
quoted
quoted
Signed-off-by: Gavin Shan <redacted> --- arch/powerpc/kernel/eeh_driver.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)diff --git a/arch/powerpc/kernel/eeh_driver.c b/arch/powerpc/kernel/eeh_driver.c index 3a626ed..32178a4 100644 --- a/arch/powerpc/kernel/eeh_driver.c +++ b/arch/powerpc/kernel/eeh_driver.c@@ -416,7 +416,10 @@ static void *eeh_rmv_device(void *data, void *userdata) driver = eeh_pcid_get(dev); if (driver) { eeh_pcid_put(dev); - if (driver->err_handler) + if (driver->err_handler && + driver->err_handler->error_detected && + driver->err_handler->slot_reset && + driver->err_handler->resume) return NULL; }-- 2.1.0 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev