From 1ebd15a63a4803bf0142cda81e0b1f4fde6ae1f6 Mon Sep 17 00:00:00 2001 From: Sepherosa Ziehau Date: Thu, 9 Jun 2011 15:06:24 +0800 Subject: [PATCH] i386/lapic: lapic_map() should take vm_paddr_t instead of vm_offset_t --- sys/platform/pc32/acpica5/acpi_madt.c | 13 ++++++------- sys/platform/pc32/apic/lapic.c | 4 +--- sys/platform/pc32/apic/lapic.h | 2 +- sys/platform/pc32/i386/mptable.c | 4 ++-- 4 files changed, 10 insertions(+), 13 deletions(-) diff --git a/sys/platform/pc32/acpica5/acpi_madt.c b/sys/platform/pc32/acpica5/acpi_madt.c index 1432c32b2b..979101bc8c 100644 --- a/sys/platform/pc32/acpica5/acpi_madt.c +++ b/sys/platform/pc32/acpica5/acpi_madt.c @@ -127,7 +127,7 @@ static int madt_check(vm_paddr_t); static int madt_iterate_entries(struct acpi_madt *, madt_iter_t, void *); -static vm_offset_t madt_lapic_pass1(void); +static vm_paddr_t madt_lapic_pass1(void); static int madt_lapic_pass2(int); static void madt_lapic_enumerate(struct lapic_enumerator *); @@ -283,11 +283,11 @@ madt_lapic_pass1_callback(void *xarg, const struct acpi_madt_ent *ent) return 0; } -static vm_offset_t +static vm_paddr_t madt_lapic_pass1(void) { struct acpi_madt *madt; - vm_offset_t lapic_addr; + vm_paddr_t lapic_addr; uint64_t lapic_addr64; int error; @@ -296,7 +296,7 @@ madt_lapic_pass1(void) madt = sdt_sdth_map(madt_phyaddr); KKASSERT(madt != NULL); - MADT_VPRINTF("LAPIC address 0x%08x, flags %#x\n", + MADT_VPRINTF("LAPIC address 0x%x, flags %#x\n", madt->madt_lapic_addr, madt->madt_flags); lapic_addr = madt->madt_lapic_addr; @@ -309,7 +309,6 @@ madt_lapic_pass1(void) if (lapic_addr64 != 0) { kprintf("ACPI MADT: warning 64bits lapic address 0x%llx\n", lapic_addr64); - /* XXX vm_offset_t is 32bits on i386 */ lapic_addr = lapic_addr64; } @@ -380,7 +379,7 @@ madt_lapic_pass2(int bsp_apic_id) struct madt_lapic_probe_cbarg { int cpu_count; - vm_offset_t lapic_addr; + vm_paddr_t lapic_addr; }; static int @@ -445,7 +444,7 @@ madt_lapic_probe(struct lapic_enumerator *e) static void madt_lapic_enumerate(struct lapic_enumerator *e) { - vm_offset_t lapic_addr; + vm_paddr_t lapic_addr; int bsp_apic_id; KKASSERT(madt_phyaddr != 0); diff --git a/sys/platform/pc32/apic/lapic.c b/sys/platform/pc32/apic/lapic.c index fe607439a0..7f7a5c0938 100644 --- a/sys/platform/pc32/apic/lapic.c +++ b/sys/platform/pc32/apic/lapic.c @@ -643,11 +643,9 @@ lapic_unused_apic_id(int start) } void -lapic_map(vm_offset_t lapic_addr) +lapic_map(vm_paddr_t lapic_addr) { lapic = pmap_mapdev_uncacheable(lapic_addr, sizeof(struct LAPIC)); - - kprintf("lapic: at %p\n", (void *)lapic_addr); } static TAILQ_HEAD(, lapic_enumerator) lapic_enumerators = diff --git a/sys/platform/pc32/apic/lapic.h b/sys/platform/pc32/apic/lapic.h index 6885ae9d2c..3d59556c22 100644 --- a/sys/platform/pc32/apic/lapic.h +++ b/sys/platform/pc32/apic/lapic.h @@ -66,7 +66,7 @@ int get_apic_timer_frequency(void); int read_apic_timer(void); void u_sleep(int); -void lapic_map(vm_offset_t /* XXX should be vm_paddr_t */); +void lapic_map(vm_paddr_t); int lapic_unused_apic_id(int); void lapic_fixup_noioapic(void); diff --git a/sys/platform/pc32/i386/mptable.c b/sys/platform/pc32/i386/mptable.c index d0ca204be1..ad3e8cc09c 100644 --- a/sys/platform/pc32/i386/mptable.c +++ b/sys/platform/pc32/i386/mptable.c @@ -744,7 +744,7 @@ mptable_lapic_enumerate(struct lapic_enumerator *e) struct mptable_lapic_cbarg2 arg2; mpcth_t cth; int error, logical_cpus = 0; - vm_offset_t lapic_addr; + vm_paddr_t lapic_addr; if (mptable_use_default) { mptable_lapic_default(); @@ -759,7 +759,7 @@ mptable_lapic_enumerate(struct lapic_enumerator *e) cth = mpt.mp_cth; /* Save local apic address */ - lapic_addr = (vm_offset_t)cth->apic_address; + lapic_addr = (vm_paddr_t)(uintptr_t)cth->apic_address; KKASSERT(lapic_addr != 0); /* -- 2.41.0