Sam Bobroff <sbobr...@linux.ibm.com> writes: > diff --git a/arch/powerpc/kernel/eeh_driver.c > b/arch/powerpc/kernel/eeh_driver.c > index 188d15c4fe3a..f33dd68a9ca2 100644 > --- a/arch/powerpc/kernel/eeh_driver.c > +++ b/arch/powerpc/kernel/eeh_driver.c > @@ -39,6 +39,29 @@ struct eeh_rmv_data { > int removed; > }; > > +static int eeh_result_priority(enum pci_ers_result result) > +{ > + switch (result) { > + case PCI_ERS_RESULT_NONE: return 0; > + case PCI_ERS_RESULT_NO_AER_DRIVER: return 1; > + case PCI_ERS_RESULT_RECOVERED: return 2; > + case PCI_ERS_RESULT_CAN_RECOVER: return 3; > + case PCI_ERS_RESULT_DISCONNECT: return 4; > + case PCI_ERS_RESULT_NEED_RESET: return 5; > + default: > + WARN_ONCE(1, "Unknown pci_ers_result value"); > + return 0; > + } > +}; > + > +static enum pci_ers_result merge_result(enum pci_ers_result old, > + enum pci_ers_result new) > +{ > + if (eeh_result_priority(new) > eeh_result_priority(old)) > + return new; > + return old;
max() ? cheers