Messages in this thread Patch in this message | | | Date | Sun, 26 Sep 2004 18:43:27 -0700 | From | Andrew Morton <> | Subject | Re: 2.6.9-rc2-mm2 pcmcia oops |
| |
Lukas Hejtmanek <xhejtman@fi.muni.cz> wrote: > > Unable to handle kernel paging request at virtual address 0000ffff > printing eip: > c0402097 > *pde = 00000000 > Oops: 0002 [#1] > PREEMPT > Modules linked in: yenta_socket pcmcia_core i830 ehci_hcd uhci_hcd rtc > CPU: 0 > EIP: 0060:[<c0402097>] Tainted: P VLI > EFLAGS: 00010246 (2.6.9-rc2-mm2) > EIP is at quirk_usb_early_handoff+0x0/0x3e > eax: 0000ffff ebx: c035d954 ecx: c6866000 edx: 00020000 > esi: c6866000 edi: c035da4c ebp: ceede380 esp: c7f4bed8 > ds: 007b es: 007b ss: 0068 > Process pccardd (pid: 3386, threadinfo=c7f4a000 task=c5ea2d70) > Stack: c01d2076 c6866000 c6866000 ceede380 00000000 c01d20ba c6866000 c035d81c > c035da4c c01d01ce 00000000 c6866000 00000000 00000000 c01d0214 ceede380 > 00000000 c686642c ceede380 ceede394 c7f4a000 cfbdd0de ceede380 00000000 > Call Trace: > [<c01d2076>] pci_do_fixups+0x49/0x4b
Well quirk_usb_early_handoff() should be __devinit, not __init.
There are a few other things in there which look hotpluggy, and are marked __init. The whole thing needs a review.
diff -puN drivers/pci/quirks.c~pci-quirk-section-fixes drivers/pci/quirks.c --- 25/drivers/pci/quirks.c~pci-quirk-section-fixes 2004-09-26 18:41:35.933120712 -0700 +++ 25-akpm/drivers/pci/quirks.c 2004-09-26 18:42:05.859571200 -0700 @@ -869,7 +869,7 @@ static int __init usb_handoff_early(char } __setup("usb-handoff", usb_handoff_early); -static void __init quirk_usb_handoff_uhci(struct pci_dev *pdev) +static void __devinit quirk_usb_handoff_uhci(struct pci_dev *pdev) { unsigned long base = 0; int wait_time, delta; @@ -922,7 +922,7 @@ static void __init quirk_usb_handoff_uhc } -static void __init quirk_usb_handoff_ohci(struct pci_dev *pdev) +static void __devinit quirk_usb_handoff_ohci(struct pci_dev *pdev) { void __iomem *base; int wait_time; @@ -952,7 +952,7 @@ static void __init quirk_usb_handoff_ohc iounmap(base); } -static void __init quirk_usb_disable_ehci(struct pci_dev *pdev) +static void __devinit quirk_usb_disable_ehci(struct pci_dev *pdev) { int wait_time, delta; void __iomem *base, *op_reg_base; @@ -1042,7 +1042,7 @@ static void __init quirk_usb_disable_ehc -static void __init quirk_usb_early_handoff(struct pci_dev *pdev) +static void __devinit quirk_usb_early_handoff(struct pci_dev *pdev) { if (!usb_early_handoff) return; _ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |