Sam Bobroff [off-list ref] writes:
quoted hunk ↗ jump to hunk
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