2005-05-28 18:59:27

by Bernd Schubert

[permalink] [raw]
Subject: usb/acpi related: irq 11: nobody cared!

Hello,

with 2.6.X we need to give pci=noacpi for some mainboards (gigabyte 7DXE) to
get usb working. With 2.4.2X this was no issue with those boards. Any ideas?

Here's an oops without pci=noacpi (2.6.11-ck9 + Win4Lin + bluesmoke patches,
the problem is really also existing with a vanilla kernel)


irq 11: nobody cared!
[<c0138bb2>] __report_bad_irq+0x22/0x80
[<c0138c80>] note_interrupt+0x50/0x80
[<c013878b>] __do_IRQ+0x11b/0x120
[<c03a3780>] ip_rcv_finish+0x0/0x2a0
[<c01056da>] do_IRQ+0x1a/0x30
[<c0103f8a>] common_interrupt+0x1a/0x20
[<c03a3780>] ip_rcv_finish+0x0/0x2a0
[<c03993ea>] nf_hook_slow+0x2a/0x100
[<c03a34a5>] ip_rcv+0x435/0x500
[<c03a3780>] ip_rcv_finish+0x0/0x2a0
[<c038fccb>] netif_receive_skb+0x14b/0x210
[<c038fe12>] process_backlog+0x82/0x130
[<c038ff37>] net_rx_action+0x77/0x110
[<c0123dd6>] __do_softirq+0x126/0x160
[<c0123e65>] do_softirq+0x55/0x70
[<c0123fa8>] irq_exit+0x68/0x80
[<c01056df>] do_IRQ+0x1f/0x30
[<c0103f8a>] common_interrupt+0x1a/0x20
[<c0101030>] default_idle+0x0/0x30
[<c0101054>] default_idle+0x24/0x30
[<c01010ed>] cpu_idle+0x4d/0x60
[<c0556881>] start_kernel+0x181/0x1c0
handlers:
[<c035ff70>] (usb_hcd_irq+0x0/0x60)
[<c035ff70>] (usb_hcd_irq+0x0/0x60)
Disabling IRQ #11

CPU0
0: 486512 IO-APIC-edge timer
1: 13 IO-APIC-edge i8042
7: 2 IO-APIC-edge parport0
8: 4 IO-APIC-edge rtc
9: 1 IO-APIC-level acpi
10: 0 IO-APIC-level VIA686A
11: 100000 IO-APIC-level uhci_hcd, uhci_hcd
12: 102 IO-APIC-edge i8042
14: 610 IO-APIC-edge ide0
15: 26 IO-APIC-edge ide1
16: 33105 IO-APIC-level r128@PCI:1:5:0
19: 193715 IO-APIC-level eth0
NMI: 0
LOC: 486129
ERR: 0
MIS: 0

Please tell me, if I can do more about it or if you need more information.

Thanks,
Bernd


--
Bernd Schubert
PCI / Theoretische Chemie
Universit?t Heidelberg
INF 229
69120 Heidelberg


2005-05-31 22:27:17

by Bjorn Helgaas

[permalink] [raw]
Subject: Re: usb/acpi related: irq 11: nobody cared!

On Saturday 28 May 2005 1:02 pm, Bernd Schubert wrote:
> with 2.6.X we need to give pci=noacpi for some mainboards (gigabyte 7DXE) to
> get usb working. With 2.4.2X this was no issue with those boards. Any ideas?

Can you try 2.6.12-rc5-mm1 + the following patch, please?

--- 2.6.12-rc5-mm1/drivers/pci/quirks.c.orig 2005-05-31 09:42:17.000000000 -0600
+++ 2.6.12-rc5-mm1/drivers/pci/quirks.c 2005-05-31 09:44:07.000000000 -0600
@@ -499,28 +499,20 @@
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_3, quirk_via_acpi );
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_4, quirk_via_acpi );

-static void __devinit quirk_via_irqpic(struct pci_dev *dev)
+static void quirk_via_irq(struct pci_dev *dev)
{
u8 irq, new_irq;

-#ifdef CONFIG_X86_IO_APIC
- if (nr_ioapics && !skip_ioapic_setup)
- return;
-#endif
-#ifdef CONFIG_ACPI
- if (acpi_irq_model != ACPI_IRQ_MODEL_PIC)
- return;
-#endif
new_irq = dev->irq & 0xf;
pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq);
if (new_irq != irq) {
- printk(KERN_INFO "PCI: Via PIC IRQ fixup for %s, from %d to %d\n",
+ printk(KERN_INFO "PCI: Via IRQ fixup for %s, from %d to %d\n",
pci_name(dev), irq, new_irq);
udelay(15); /* unknown if delay really needed */
pci_write_config_byte(dev, PCI_INTERRUPT_LINE, new_irq);
}
}
-DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_ANY_ID, quirk_via_irqpic);
+DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_ANY_ID, quirk_via_irq);

/*
* PIIX3 USB: We have to disable USB interrupts that are