mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
x86/APIC: Drop APIC_BASE and use fix_to_virt()
Right now the apic_mem_*() helpers only compile because sizeof(void *) == sizeof(long long). Switch to using fix_to_virt() which is a void *type. Also adjust the two places where the APIC/IO-APIC virtual address is rendered in a printk(). No functional change. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Reviewed-by: Jan Beulich <jbeulich@suse.com>
This commit is contained in:
1 parent
ef0c3e7483
commit
cb2cd59d45
4 files changed
+11
-9
No files matched your search
+2
-2
@@ -938,8 +938,8 @@ void __init init_apic_mappings(void)
|
||||
apic_phys = mp_lapic_addr;
|
||||
|
||||
set_fixmap_nocache(FIX_APIC_BASE, apic_phys);
|
||||
apic_printk(APIC_VERBOSE, "mapped APIC to %08Lx (%08lx)\n", APIC_BASE,
|
||||
apic_phys);
|
||||
apic_printk(APIC_VERBOSE, "mapped APIC to %p (%08lx)\n",
|
||||
fix_to_virt(FIX_APIC_BASE), apic_phys);
|
||||
|
||||
__next:
|
||||
/*
|
||||
|
||||
@@ -51,12 +51,16 @@ const struct genapic *apic_x2apic_probe(void);
|
||||
|
||||
static inline void apic_mem_write(unsigned int reg, uint32_t v)
|
||||
{
|
||||
*((volatile u32 *)(APIC_BASE+reg)) = v;
|
||||
volatile uint32_t *addr = fix_to_virt(FIX_APIC_BASE) + reg;
|
||||
|
||||
*addr = v;
|
||||
}
|
||||
|
||||
static inline u32 apic_mem_read(unsigned int reg)
|
||||
static inline uint32_t apic_mem_read(unsigned int reg)
|
||||
{
|
||||
return *((volatile u32 *)(APIC_BASE+reg));
|
||||
const volatile uint32_t *addr = fix_to_virt(FIX_APIC_BASE) + reg;
|
||||
|
||||
return *addr;
|
||||
}
|
||||
|
||||
/* NOTE: in x2APIC mode, we should use apic_icr_write()/apic_icr_read() to
|
||||
|
||||
@@ -117,8 +117,6 @@
|
||||
/* Applicable to vectors, TPR, and PPR. */
|
||||
#define APIC_PRIO_CLASS(v) ((v) & 0xF0)
|
||||
|
||||
#define APIC_BASE __fix_to_virt(FIX_APIC_BASE)
|
||||
|
||||
#define MAX_IO_APICS 128
|
||||
|
||||
extern bool x2apic_enabled;
|
||||
|
||||
@@ -2596,8 +2596,8 @@ static void __init ioapic_init_mappings(void)
|
||||
}
|
||||
|
||||
set_fixmap_nocache(idx, ioapic_phys);
|
||||
apic_printk(APIC_VERBOSE, "mapped IOAPIC to %08Lx (%08lx)\n",
|
||||
__fix_to_virt(idx), ioapic_phys);
|
||||
apic_printk(APIC_VERBOSE, "mapped IOAPIC to %p (%08lx)\n",
|
||||
fix_to_virt(idx), ioapic_phys);
|
||||
|
||||
if ( bad_ioapic_register(i) )
|
||||
{
|
||||
|
||||