diff --git a/arch/ppc/platforms/4xx/luan.c b/arch/ppc/platforms/4xx/luan.c index 4b169610f154..b79ebb8a3e6c 100644 --- a/arch/ppc/platforms/4xx/luan.c +++ b/arch/ppc/platforms/4xx/luan.c @@ -230,10 +230,15 @@ luan_setup_hoses(void) /* Allocate hoses for PCIX1 and PCIX2 */ hose1 = pcibios_alloc_controller(); - hose2 = pcibios_alloc_controller(); - if (!hose1 || !hose2) + if (!hose1) return; + hose2 = pcibios_alloc_controller(); + if (!hose2) { + pcibios_free_controller(hose1); + return; + } + /* Setup PCIX1 */ hose1->first_busno = 0; hose1->last_busno = 0xff;