[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20090401164001.GE15781@localhost>
Date: Wed, 1 Apr 2009 20:40:01 +0400
From: Cyrill Gorcunov <gorcunov@...il.com>
To: Ingo Molnar <mingo@...e.hu>
Cc: hpa@...or.com, tglx@...utronix.de, linux-kernel@...r.kernel.org,
xemul@...nvz.org, yhlu.kernel@...il.com
Subject: Re: [patch 4/6] x86: irqinit - merge native_init_IRQ
[Ingo Molnar - Wed, Apr 01, 2009 at 06:22:50PM +0200]
...
| > I just remember -- I thought about that and since
| > x86_quirk_pre_intr_init described as external BUT implemented for
| > x86-32 only I needed to indroduce new x86-64 versions for this
| > (and since I know that there no need to do anything else except
| > calling init_ISA_irqs I desided to have separate wrapper for
| > that).
| >
| > And btw x86-32 already has init_ISA_irqs call and quirks are used
| > in x86-32 mode only so for 64bit it will be just a not needed
| > check. Which means - I could just use original
| > x86_quirk_pre_intr_init function which will call all I need.
| >
| > Or you meant something else?
|
| The typical solution there is to make the entry NULL in the 64-bit
| case. All the quirk handlers are conditional like this:
|
| arch/x86/kernel/mpparse.c: if (x86_quirks->mpc_apic_id)
| arch/x86/kernel/mpparse.c: apicid = x86_quirks->mpc_apic_id(m);
|
| or am i missing something?
|
| Ingo
|
The problem is that
x86_quirk_pre_intr_init
x86_quirk_intr_init
...
are guarded by CONFIG_X86_32. So I thought
to call x86_quirk_pre_intr_init which is implemented
as following
void __init x86_quirk_pre_intr_init(void)
{
if (x86_quirks->arch_pre_intr_init) {
if (x86_quirks->arch_pre_intr_init())
return;
}
init_ISA_irqs();
}
-- it will call init_ISA_irqs for us. But as I said
it's bound by CONFIG_X86_32. So we could remove this
limitation and use these function on x86-64 as well
and don't call for x86_quirks->arch_pre_intr_init.
The only reason I didn't do that -- we test
if x86_quirks->arch_pre_intr_init is defined for
nothing -- it's always NULL on x86-64.
Another reason for that -- irqinit_32.c calls for
x86_quirk_pre_intr_init and using the same name
for x86-64 will make code a bit cleaner I believe.
Maybe I better post a patch for review -- it'll
say more then me with my english :) ?
Cyrill
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists