Re: [PATCH] 2.6.0-test9 Fix oops in quirk_via_bridge

Michael Clark
2003-10-31T09:57:51Z

On 10/31/03 17:49, Russell King wrote:
> 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.

Sure, okay. So just consider my post a bug report then as i'm not
sure what the correct fix is (i'll stick with my patch so I can
continue to use firewire on my laptop in the meantime).

>>--- 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;
>>