Re: [patch 1/3] pci: store PCI_INTERRUPT_PIN in pci_dev

Kristen Accardi
2005-11-03T00:14:55Z

On Thu, 2005-10-27 at 16:06 -0700, Rajesh Shah wrote:
> On Thu, Oct 27, 2005 at 12:30:09PM -0700, Kristen Accardi wrote:
> > --- linux-2.6.13.orig/drivers/pci/probe.c
> > +++ linux-2.6.13/drivers/pci/probe.c
> > @@ -571,6 +571,7 @@ static void pci_read_irq(struct pci_dev
> > unsigned char irq;
> >
> > pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &irq);
> > + dev->pin = irq;
>
> pci_read_irq() is not called for PCI bridges, but some of them
> may need an interrupt (e.g. for shpchp, pciehp). Did you check
> if this patchset broke such bridges? You should call this
> function for PCI bridges too.
>
> Rajesh
>

You are correct, this does break for bridges on certain architectures.
Some archs seem to re-read the interrupt pin value in
pcibios_enable_device, but others don't. Adding pci_read_irq to the
bridge patch in this function does seem to fix the problem, and arch
specific code can still override this. I'll send a new patch for that.
thanks,
Kristen