diff --git a/arch/x86/pci/mrst.c b/arch/x86/pci/mrst.c
index 6e9e1a35a5d73ba5c5ab8cfe7391d39142a653d5..8bf2fcb88d0427ff5c63e37fab736355ecbc8332 100644
--- a/arch/x86/pci/mrst.c
+++ b/arch/x86/pci/mrst.c
@@ -57,6 +57,10 @@ static int fixed_bar_cap(struct pci_bus *bus, unsigned int devfn)
 	u32 pcie_cap = 0, cap_data;
 
 	pos = PCIE_CAP_OFFSET;
+
+	if (!raw_pci_ext_ops)
+		return 0;
+
 	while (pos) {
 		if (raw_pci_ext_ops->read(pci_domain_nr(bus), bus->number,
 					  devfn, pos, 4, &pcie_cap))