summaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/apic_32.c
diff options
context:
space:
mode:
authorCyrill Gorcunov <gorcunov@gmail.com>2008-07-01 21:43:52 +0400
committerIngo Molnar <mingo@elte.hu>2008-07-09 07:43:24 +0200
commit746f2eb790e75676ddc3b816ba18bac4179cc744 (patch)
tree744659e9b9d87f98f6461aa9f3f639a997bb56f5 /arch/x86/kernel/apic_32.c
parent5d061e397db1ee7a62783a881833f3f9b89f6dc8 (diff)
downloadlinux-746f2eb790e75676ddc3b816ba18bac4179cc744.tar.bz2
x86: apic_32.c - add lapic resource
Add lapic resource into kernel resource map and mark it as busy Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com> Cc: "Maciej W. Rozycki" <macro@linux-mips.org> Signed-off-by: Ingo Molnar <mingo@elte.hu> CC: Maciej W. Rozycki <macro@linux-mips.org>
Diffstat (limited to 'arch/x86/kernel/apic_32.c')
-rw-r--r--arch/x86/kernel/apic_32.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/arch/x86/kernel/apic_32.c b/arch/x86/kernel/apic_32.c
index 6dea8306d8c0..3e947208b9d9 100644
--- a/arch/x86/kernel/apic_32.c
+++ b/arch/x86/kernel/apic_32.c
@@ -82,6 +82,11 @@ int pic_mode;
/* Have we found an MP table */
int smp_found_config;
+static struct resource lapic_resource = {
+ .name = "Local APIC",
+ .flags = IORESOURCE_MEM | IORESOURCE_BUSY,
+};
+
static unsigned int calibration_result;
static int lapic_next_event(unsigned long delta,
@@ -1720,3 +1725,21 @@ static int __init apic_set_verbosity(char *str)
}
__setup("apic=", apic_set_verbosity);
+static int __init lapic_insert_resource(void)
+{
+ if (!apic_phys)
+ return -1;
+
+ /* Put local APIC into the resource map. */
+ lapic_resource.start = apic_phys;
+ lapic_resource.end = lapic_resource.start + PAGE_SIZE - 1;
+ insert_resource(&iomem_resource, &lapic_resource);
+
+ return 0;
+}
+
+/*
+ * need call insert after e820_reserve_resources()
+ * that is using request_resource
+ */
+late_initcall(lapic_insert_resource);