bus = dev->subordinate;
 
        pci_dbg(dev, "broadcast error_detected message\n");
-       if (state == pci_channel_io_frozen)
+       if (state == pci_channel_io_frozen) {
                pci_walk_bus(bus, report_frozen_detected, &status);
-       else
+               if (reset_link(dev, service) != PCI_ERS_RESULT_RECOVERED)
+                       goto failed;
+       } else {
                pci_walk_bus(bus, report_normal_detected, &status);
-
-       if (state == pci_channel_io_frozen &&
-           reset_link(dev, service) != PCI_ERS_RESULT_RECOVERED)
-               goto failed;
+       }
 
        if (status == PCI_ERS_RESULT_CAN_RECOVER) {
                status = PCI_ERS_RESULT_RECOVERED;