--- a/arch/arm/mach-cns3xxx/pcie.c
+++ b/arch/arm/mach-cns3xxx/pcie.c
@@ -366,6 +366,8 @@ void __init cns3xxx_pcie_init_late(void)
 
 	for (i = 0; i < ARRAY_SIZE(cns3xxx_pcie); i++) {
 		cns3xxx_pcie_check_link(&cns3xxx_pcie[i]);
+		if (!cns3xxx_pcie[i].linked)
+			continue;
 		cns3xxx_pcie_hw_init(&cns3xxx_pcie[i]);
 		private_data = &cns3xxx_pcie[i];
 		pci_common_init(&hw_pci);