lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ