sh: Handle PCI controller resource conflicts.
register_pci_controller() can fail, but presently is a void function.
Change this over to an int so that we can bail early before continuing on
with post-registration initialization (such as throwing the controller in
to 66MHz mode in the case of the SH7780 host controller).
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
diff --git a/arch/sh/drivers/pci/pci-sh7780.c b/arch/sh/drivers/pci/pci-sh7780.c
index b68f45b..0e0ddd6 100644
--- a/arch/sh/drivers/pci/pci-sh7780.c
+++ b/arch/sh/drivers/pci/pci-sh7780.c
@@ -71,6 +71,7 @@
size_t memsize;
unsigned int id;
const char *type;
+ int ret;
printk(KERN_NOTICE "PCI: Starting intialization.\n");
@@ -197,7 +198,9 @@
__raw_writel(SH4_PCICR_PREFIX | SH4_PCICR_CFIN | SH4_PCICR_FTO,
chan->reg_base + SH4_PCICR);
- register_pci_controller(chan);
+ ret = register_pci_controller(chan);
+ if (unlikely(ret))
+ return ret;
sh7780_pci66_init(chan);