PCI: ibmphp: Use common error handling code in unconfigure_boot_device()
authorMarkus Elfring <elfring@users.sourceforge.net>
Mon, 30 Oct 2017 12:26:32 +0000 (13:26 +0100)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 7 Nov 2017 00:47:15 +0000 (18:47 -0600)
Combine two error paths that emit the same message and return the same
error code.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
[bhelgaas: changelog]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
drivers/pci/hotplug/ibmphp_pci.c

index dc1876feb06f9e4b12ebfb81c10ab4964394ef7a..25edd0b18b75186add7edf80fe274b4a93b36c8c 100644 (file)
@@ -1267,20 +1267,19 @@ static int unconfigure_boot_device(u8 busno, u8 device, u8 function)
                        size = size & 0xFFFFFFFC;
                        size = ~size + 1;
                        end_address = start_address + size - 1;
-                       if (ibmphp_find_resource(bus, start_address, &io, IO) < 0) {
-                               err("cannot find corresponding IO resource to remove\n");
-                               return -EIO;
-                       }
+                       if (ibmphp_find_resource(bus, start_address, &io, IO))
+                               goto report_search_failure;
+
                        debug("io->start = %x\n", io->start);
                        temp_end = io->end;
                        start_address = io->end + 1;
                        ibmphp_remove_resource(io);
                        /* This is needed b/c of the old I/O restrictions in the BIOS */
                        while (temp_end < end_address) {
-                               if (ibmphp_find_resource(bus, start_address, &io, IO) < 0) {
-                                       err("cannot find corresponding IO resource to remove\n");
-                                       return -EIO;
-                               }
+                               if (ibmphp_find_resource(bus, start_address,
+                                                        &io, IO))
+                                       goto report_search_failure;
+
                                debug("io->start = %x\n", io->start);
                                temp_end = io->end;
                                start_address = io->end + 1;
@@ -1327,6 +1326,10 @@ static int unconfigure_boot_device(u8 busno, u8 device, u8 function)
        }       /* end of for */
 
        return 0;
+
+report_search_failure:
+       err("cannot find corresponding IO resource to remove\n");
+       return -EIO;
 }
 
 static int unconfigure_boot_bridge(u8 busno, u8 device, u8 function)