PCI: Fix use of uninitialized MPS value
authorBjorn Helgaas <bhelgaas@google.com>
Tue, 29 Apr 2014 18:51:55 +0000 (12:51 -0600)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 29 Apr 2014 23:36:44 +0000 (17:36 -0600)
If "pcie_bus_config == PCIE_BUS_PERFORMANCE", we don't initialize "smpss",
so we pass a pointer to garbage into pcie_bus_configure_set(), where we
compute "mps" based on the garbage.  We then pass the garbage "mps" to
pcie_write_mps(), which ignores it in the PCIE_BUS_PERFORMANCE case.

Coverity isn't smart enough to deduce that we ignore the garbage (it's a
lot to expect from a human, too), so initialize "smpss" to a safe value in
all cases.

Found by Coverity (CID 146454).

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
drivers/pci/probe.c

index fe89a982a3da85a61324d26d3e86aa337c20e61a..490031fd21084c98a2f194098f961080de261e1a 100644 (file)
@@ -1617,7 +1617,7 @@ static int pcie_bus_configure_set(struct pci_dev *dev, void *data)
  */
 void pcie_bus_configure_settings(struct pci_bus *bus)
 {
-       u8 smpss;
+       u8 smpss = 0;
 
        if (!bus->self)
                return;