x86/PCI: MMCONFIG: Check earlier for MMCONFIG region at address zero
authorethan.zhao <ethan.zhao@oracle.com>
Fri, 26 Jul 2013 17:21:24 +0000 (11:21 -0600)
committerBjorn Helgaas <bhelgaas@google.com>
Fri, 26 Jul 2013 17:21:24 +0000 (11:21 -0600)
We can check for addr being zero earlier and thus avoid the mutex_unlock()
cleanup path.

[bhelgaas: drop warning printk]
Signed-off-by: ethan.zhao <ethan.zhao@oracle.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Yinghai Lu <yinghai@kernel.org>
arch/x86/pci/mmconfig-shared.c

index 082e88129712b4eb9e2027852c890a02ff31a1c7..5596c7bdd327b1af38138a3d32be36be3e21cb17 100644 (file)
@@ -700,7 +700,7 @@ int pci_mmconfig_insert(struct device *dev, u16 seg, u8 start, u8 end,
        if (!(pci_probe & PCI_PROBE_MMCONF) || pci_mmcfg_arch_init_failed)
                return -ENODEV;
 
-       if (start > end)
+       if (start > end || !addr)
                return -EINVAL;
 
        mutex_lock(&pci_mmcfg_lock);
@@ -716,11 +716,6 @@ int pci_mmconfig_insert(struct device *dev, u16 seg, u8 start, u8 end,
                return -EEXIST;
        }
 
-       if (!addr) {
-               mutex_unlock(&pci_mmcfg_lock);
-               return -EINVAL;
-       }
-
        rc = -EBUSY;
        cfg = pci_mmconfig_alloc(seg, start, end, addr);
        if (cfg == NULL) {