Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 316505
b: refs/heads/master
c: 66e8850
h: refs/heads/master
i:
  316503: eeb8d7f
v: v3
  • Loading branch information
Jiang Liu authored and Bjorn Helgaas committed Jun 22, 2012
1 parent b775209 commit f420cce
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 27 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c0fa40784cce9cc66b54499a3762cfe07e35353f
refs/heads/master: 66e8850a2a34e6c52105d92a0f0054b304cb7140
34 changes: 8 additions & 26 deletions trunk/arch/x86/pci/mmconfig-shared.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
#define PREFIX "PCI: "

/* Indicate if the mmcfg resources have been placed into the resource table. */
static int __initdata pci_mmcfg_resources_inserted;
static bool pci_mmcfg_running_state;
static bool pci_mmcfg_arch_init_failed;
static DEFINE_MUTEX(pci_mmcfg_lock);
Expand Down Expand Up @@ -373,18 +372,6 @@ static int __init pci_mmcfg_check_hostbridge(void)
return !list_empty(&pci_mmcfg_list);
}

static void __init pci_mmcfg_insert_resources(void)
{
struct pci_mmcfg_region *cfg;

list_for_each_entry(cfg, &pci_mmcfg_list, list)
if (!cfg->res.parent)
insert_resource(&iomem_resource, &cfg->res);

/* Mark that the resources have been inserted. */
pci_mmcfg_resources_inserted = 1;
}

static acpi_status __devinit check_mcfg_resource(struct acpi_resource *res,
void *data)
{
Expand Down Expand Up @@ -668,11 +655,7 @@ static void __init __pci_mmcfg_init(int early)
if (pci_mmcfg_arch_init())
pci_probe = (pci_probe & ~PCI_PROBE_MASK) | PCI_PROBE_MMCONF;
else {
/*
* Signal not to attempt to insert mmcfg resources because
* the architecture mmcfg setup could not initialize.
*/
pci_mmcfg_resources_inserted = 1;
free_all_mmcfg();
pci_mmcfg_arch_init_failed = true;
}
}
Expand All @@ -689,23 +672,22 @@ void __init pci_mmcfg_late_init(void)

static int __init pci_mmcfg_late_insert_resources(void)
{
struct pci_mmcfg_region *cfg;

pci_mmcfg_running_state = true;

/*
* If resources are already inserted or we are not using MMCONFIG,
* don't insert the resources.
*/
if ((pci_mmcfg_resources_inserted == 1) ||
(pci_probe & PCI_PROBE_MMCONF) == 0 ||
list_empty(&pci_mmcfg_list))
/* If we are not using MMCONFIG, don't insert the resources. */
if ((pci_probe & PCI_PROBE_MMCONF) == 0)
return 1;

/*
* Attempt to insert the mmcfg resources but not with the busy flag
* marked so it won't cause request errors when __request_region is
* called.
*/
pci_mmcfg_insert_resources();
list_for_each_entry(cfg, &pci_mmcfg_list, list)
if (!cfg->res.parent)
insert_resource(&iomem_resource, &cfg->res);

return 0;
}
Expand Down

0 comments on commit f420cce

Please sign in to comment.