Messages in this thread Patch in this message | | | Date | Thu, 29 Jan 2009 12:27:00 +0100 | From | Ingo Molnar <> | Subject | Re: x86: unify genapic code, unify subarchitectures, remove old subarchitecture code |
| |
* Suresh Siddha <suresh.b.siddha@intel.com> wrote:
> On Wed, 2009-01-28 at 15:41 -0800, Ingo Molnar wrote: > > This series of 114 patches implements a long desired restructuring, > > unification and cleanup of the x86 APIC/SMP/subarch code: > > > > - unifies the 32-bit and 64-bit genapic code > > > > - sorts out all the subarch details into standalone and boot-time > > probable quirk modules > > > > - removes the build-time subarch hacks that we had on 32-bit. > > > > This inevitably touches an awful lot of x86 code, and rather intrusively > > so: > > > > 112 files changed, 3277 insertions(+), 3209 deletions(-) > > > > So breakages are to be expected. > > Here's one :) > > diff --git a/arch/x86/include/asm/genapic.h > b/arch/x86/include/asm/genapic.h > index 4bbcf26..273b994 100644 > --- a/arch/x86/include/asm/genapic.h > +++ b/arch/x86/include/asm/genapic.h > @@ -145,7 +145,7 @@ static inline unsigned int read_apic_id(void) > { > unsigned int reg; > > - reg = *(u32 *)(APIC_BASE + APIC_ID); > + reg = apic_read(APIC_ID); >
ah, indeed - hardcoded mmio access to the lapic isnt quite xapic_ops-compatible ;-)
Applied to tip/x86/apic (see the commit below), thanks Suresh! The xapic bisection breakage is 40 commits so i'll likely rebase those bits.
Did it work fine on xapic otherwise?
Ingo
----------------> From 97918fc3a0e1a31407df298392a12451b289ed1f Mon Sep 17 00:00:00 2001 From: Suresh Siddha <suresh.b.siddha@intel.com> Date: Wed, 28 Jan 2009 17:52:57 -0800 Subject: [PATCH] x86: remove mach_apic.h, fix
Use apic_read() instead of open-coded mmio.
Signed-off-by: Ingo Molnar <mingo@elte.hu> --- arch/x86/include/asm/genapic.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/arch/x86/include/asm/genapic.h b/arch/x86/include/asm/genapic.h index 4bbcf26..273b994 100644 --- a/arch/x86/include/asm/genapic.h +++ b/arch/x86/include/asm/genapic.h @@ -145,7 +145,7 @@ static inline unsigned int read_apic_id(void) { unsigned int reg; - reg = *(u32 *)(APIC_BASE + APIC_ID); + reg = apic_read(APIC_ID); return apic->get_apic_id(reg); }
| |