Messages in this thread | | | Date | Fri, 31 Oct 2003 09:49:46 +0000 | From | Russell King <> | Subject | Re: [PATCH] 2.6.0-test9 Fix oops in quirk_via_bridge |
| |
On Fri, Oct 31, 2003 at 05:42:07PM +0800, Michael Clark wrote: > Strangely making the quirk and its data __devinit solves the problem > (as is most of the other stuff in pci/quirks.c). Not sure if it is > the correct fix but it works for me. ie. why did I get the oops > in the first place? as the quirks data was global and not marked > for an __init section.
The function was marked as __init. I'd strongly recommend against marking the data with __devinitdata since its used elsewhere in the kernel by non-init code.
> --- linux-2.6.0-test9/drivers/pci/quirks.c 2003-10-31 16:49:25.000000000 +0800 > +++ linux-2.6.0-test9-mc/drivers/pci/quirks.c 2003-10-31 16:49:57.000000000 +0800 > @@ -644,9 +644,9 @@ > * VIA northbridges care about PCI_INTERRUPT_LINE > */ > > -int interrupt_line_quirk; > +__devinitdata int interrupt_line_quirk; > > -static void __init quirk_via_bridge(struct pci_dev *pdev) > +static void __devinit quirk_via_bridge(struct pci_dev *pdev) > { > if(pdev->devfn == 0) > interrupt_line_quirk = 1; >
-- Russell King Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/ maintainer of: 2.6 PCMCIA - http://pcmcia.arm.linux.org.uk/ 2.6 Serial core - 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/
| |