lkml.org 
[lkml]   [2009]   [Jan]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: 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);
}

\
 
 \ /
  Last update: 2009-01-29 12:31    [W:0.711 / U:0.480 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site