Messages in this thread | | | Subject | Re: oops in ioapic_write_entry | From | (Eric W. Biederman) | Date | Tue, 03 Aug 2010 01:27:23 -0700 |
| |
Yinghai Lu <yinghai@kernel.org> writes:
> On 08/03/2010 12:19 AM, Yinghai Lu wrote: >> On 08/02/2010 08:13 PM, Eric W. Biederman wrote: >>> Yinghai Lu <yinghai@kernel.org> writes:
>>>> Index: linux-2.6/arch/x86/kernel/apic/io_apic.c >>>> =================================================================== >>>> --- linux-2.6.orig/arch/x86/kernel/apic/io_apic.c >>>> +++ linux-2.6/arch/x86/kernel/apic/io_apic.c >>>> @@ -1029,10 +1029,7 @@ static int pin_2_irq(int idx, int apic, >>>> } else { >>>> u32 gsi = mp_gsi_routing[apic].gsi_base + pin; >>>> >>>> - if (gsi >= NR_IRQS_LEGACY) >>>> - irq = gsi; >>>> - else >>>> - irq = gsi_top + gsi; >>>> + irq = gsi_to_irq(gsi); >>>> } >>>> >>>> #ifdef CONFIG_X86_32 >> >> what is the point for making irq = gsi_top + gsi when mptable is used instead of acpi? >> > > just tried those blind shifting gsi cause kernel with acpi crash in virtual box.
What configuration did you try and had problems with?
> [ 5.536000] querying PCI -> IRQ mapping bus:0, slot:11, pin:0. > [ 5.540000] ehci_hcd 0000:00:0b.0: can't find IRQ for PCI INT A; probably buggy MP table > [
I don't have a clue what the mpptable looks like in virtual box. My guess is that it is buggy and untested like so many mptables these days.
> and on kvm it got: > [ 4.352280] e1000: Intel(R) PRO/1000 Network Driver - version 7.3.21-k6-NAPI > [ 4.356012] e1000: Copyright (c) 1999-2006 Intel Corporation. > [ 4.360120] querying PCI -> IRQ mapping bus:0, slot:3, pin:0. > [ 4.364006] PCI BIOS passed nonexistent PCI bus 0! > [ 4.368007] e1000 0000:00:03.0: can't find IRQ for PCI INT A; probably buggy MP table > [ 4.372049] e1000 0000:00:03.0: setting latency timer to 64
This example failed because mpparse said bus 0 was ISA. Which is a pretty bizarre thing to do, especially when bus 0 is pretty clearly PCI. That does sound like a buggy MP table.
Eric
| |