Fix typo in pci_bios_init_device() causing use before set error.
authorKevin O'Connor <kevin@koconnor.net>
Tue, 10 Nov 2009 00:15:08 +0000 (19:15 -0500)
committerKevin O'Connor <kevin@koconnor.net>
Tue, 10 Nov 2009 00:15:08 +0000 (19:15 -0500)
The 'val' variable is used before being set - 'old' was intended.

src/pciinit.c

index 39c8f0faa0e10e5cbbe6170434237d5377420ee2..fe7575c62deac5ab5cc31dc553b6a75fc1ddeb7a 100644 (file)
@@ -126,28 +126,28 @@ static void pci_bios_init_device(u16 bdf)
         /* default memory mappings */
         for (i = 0; i < PCI_NUM_REGIONS; i++) {
             int ofs;
-            u32 old, val, mask, size;
             if (i == PCI_ROM_SLOT)
                 ofs = PCI_ROM_ADDRESS;
             else
                 ofs = PCI_BASE_ADDRESS_0 + i * 4;
 
-            old = pci_config_readl(bdf, ofs);
+            u32 old = pci_config_readl(bdf, ofs);
+            u32 mask;
             if (i == PCI_ROM_SLOT) {
                 mask = PCI_ROM_ADDRESS_MASK;
                 pci_config_writel(bdf, ofs, mask);
             } else {
-                if (val & PCI_BASE_ADDRESS_SPACE_IO)
+                if (old & PCI_BASE_ADDRESS_SPACE_IO)
                     mask = PCI_BASE_ADDRESS_IO_MASK;
                 else
                     mask = PCI_BASE_ADDRESS_MEM_MASK;
                 pci_config_writel(bdf, ofs, ~0);
             }
-            val = pci_config_readl(bdf, ofs);
+            u32 val = pci_config_readl(bdf, ofs);
             pci_config_writel(bdf, ofs, old);
 
             if (val != 0) {
-                size = (~(val & mask)) + 1;
+                u32 size = (~(val & mask)) + 1;
                 if (val & PCI_BASE_ADDRESS_SPACE_IO)
                     paddr = &pci_bios_io_addr;
                 else if (size >= 0x04000000)