Re: Buggy PCI drivers - do not mark pci_device_id as discardable data

Russell King
2003-09-09T21:05:07Z

On Tue, Sep 09, 2003 at 04:02:58PM -0400, Zwane Mwaikambo wrote:
> On Tue, 9 Sep 2003, Russell King wrote:
>
> > --- orig/drivers/char/watchdog/amd7xx_tco.c Sat Jun 14 22:33:48 2003
> > +++ linux/drivers/char/watchdog/amd7xx_tco.c Tue Sep 9 20:45:16 2003
> > @@ -294,7 +294,7 @@
> > .fops = &amdtco_fops
> > };
> >
> > -static struct pci_device_id amdtco_pci_tbl[] __initdata = {
> > +static struct pci_device_id amdtco_pci_tbl[] = {
> > /* AMD 766 PCI_IDs here */
> > { PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_OPUS_7443, PCI_ANY_ID, PCI_ANY_ID, },
> > { 0, }
>
> That's not a bug.
>
> > --- orig/drivers/char/watchdog/i810-tco.c Sun Aug 3 11:21:11 2003
> > +++ linux/drivers/char/watchdog/i810-tco.c Tue Sep 9 20:45:16 2003
> > @@ -301,7 +301,7 @@
> > * register a pci_driver, because someone else might one day
> > * want to register another driver on the same PCI id.
> > */
> > -static struct pci_device_id i810tco_pci_tbl[] __initdata = {
> > +static struct pci_device_id i810tco_pci_tbl[] = {
> > { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801AA_0, PCI_ANY_ID, PCI_ANY_ID, },
> > { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801AB_0, PCI_ANY_ID, PCI_ANY_ID, },
> > { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801BA_0, PCI_ANY_ID, PCI_ANY_ID, },
>
> Neither is that.
>
> > --- orig/drivers/char/hw_random.c Sat Jun 14 22:33:46 2003
> > +++ linux/drivers/char/hw_random.c Tue Sep 9 20:45:16 2003
> > @@ -149,7 +149,7 @@
> > * register a pci_driver, because someone else might one day
> > * want to register another driver on the same PCI id.
> > */
> > -static struct pci_device_id rng_pci_tbl[] __initdata = {
> > +static struct pci_device_id rng_pci_tbl[] = {
> > { 0x1022, 0x7443, PCI_ANY_ID, PCI_ANY_ID, 0, 0, rng_hw_amd },
> > { 0x1022, 0x746b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, rng_hw_amd },
>
> This too

Ok, I'm happy that this aren't (after reading someone elses explaination).

Having these different makes it hard to ensure that no further bad cases
exist in the tree though.

I want this to be foolproof, because its me people bug when their cardbus
cards oops when they insert the damned things. If people are happy to
ignore this issue, I'm happy to ignore the bug reports.

It basically isn't something I want to deal with, and we need to find a
way to stop these stupidities appearing in the first place.

Any ideas?

--
Russell King (rmk@arm.linux.org.uk) http://www.arm.linux.org.uk/personal/
Linux kernel maintainer of:
2.6 ARM Linux - http://www.arm.linux.org.uk/
2.6 PCMCIA - http://pcmcia.arm.linux.org.uk/
2.6 Serial core