| From affeb0f2d3a9af419ad7ef4ac782e1540b2f7b28 Mon Sep 17 00:00:00 2001 |
| From: Gavin Shan <gwshan@linux.vnet.ibm.com> |
| Date: Wed, 27 Apr 2016 11:14:50 +1000 |
| Subject: powerpc/eeh: Don't report error in eeh_pe_reset_and_recover() |
| |
| From: Gavin Shan <gwshan@linux.vnet.ibm.com> |
| |
| commit affeb0f2d3a9af419ad7ef4ac782e1540b2f7b28 upstream. |
| |
| The function eeh_pe_reset_and_recover() is used to recover EEH |
| error when the passthrough device are transferred to guest and |
| backwards, meaning the device's driver is vfio-pci or none. |
| When the driver is vfio-pci that provides error_detected() error |
| handler only, the handler simply stops the guest and it's not |
| expected behaviour. On the other hand, no error handlers will |
| be called if we don't have a bound driver. |
| |
| This ignores the error handler in eeh_pe_reset_and_recover() |
| that reports the error to device driver to avoid the exceptional |
| behaviour. |
| |
| Fixes: 5cfb20b9 ("powerpc/eeh: Emulate EEH recovery for VFIO devices") |
| Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com> |
| Reviewed-by: Russell Currey <ruscur@russell.cc> |
| Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| arch/powerpc/kernel/eeh_driver.c | 3 --- |
| 1 file changed, 3 deletions(-) |
| |
| --- a/arch/powerpc/kernel/eeh_driver.c |
| +++ b/arch/powerpc/kernel/eeh_driver.c |
| @@ -564,9 +564,6 @@ int eeh_pe_reset_and_recover(struct eeh_ |
| /* Save states */ |
| eeh_pe_dev_traverse(pe, eeh_dev_save_state, NULL); |
| |
| - /* Report error */ |
| - eeh_pe_dev_traverse(pe, eeh_report_error, &result); |
| - |
| /* Issue reset */ |
| ret = eeh_reset_pe(pe); |
| if (ret) { |