Browse Source

x86, pci: Add sanity check for PCI fixed bar probing

While probing for the PCI fixed BAR capability in the extended PCI
configuration space we need to make sure raw_pci_ext_ops is
actually initialized.

Signed-off-by: Jacob Pan <jacob.jun.pan@intel.com>
LKML-Reference: <43F901BD926A4E43B106BF17856F0755A321E8F7@orsmsx508.amr.corp.intel.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Jacob Pan 15 years ago
parent
commit
c54113823c
1 changed files with 4 additions and 0 deletions
  1. 4 0
      arch/x86/pci/mrst.c

+ 4 - 0
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;
 	u32 pcie_cap = 0, cap_data;
 
 
 	pos = PCIE_CAP_OFFSET;
 	pos = PCIE_CAP_OFFSET;
+
+	if (!raw_pci_ext_ops)
+		return 0;
+
 	while (pos) {
 	while (pos) {
 		if (raw_pci_ext_ops->read(pci_domain_nr(bus), bus->number,
 		if (raw_pci_ext_ops->read(pci_domain_nr(bus), bus->number,
 					  devfn, pos, 4, &pcie_cap))
 					  devfn, pos, 4, &pcie_cap))