On 2015/9/10 3:11, Bjorn Helgaas wrote: > On Tue, Sep 8, 2015 at 11:49 AM, Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx> wrote: >> Hi Bjorn, >> We have used another draft version to fix this issue by changing >> eata driver as below. But that needs to export pcibios_alloc_irq. And >> I'm not sure whether there are other drivers having the same behavior. >> If we think it's a legacy behavior and only a few drivers may have >> such a behavior, I prefer changing drivers to fix the issue too. > > Did you look at changing the driver to use pci_register_driver()? I > bet it's pretty straightforward. Hi Bjorn, I have done some investigation. It's doable, but the change may be a little bigger. Will send the patch out for comments once it's done. Thanks! Gerry > >> drivers/pci/pci-driver.c | 1 + >> drivers/scsi/eata.c | 2 ++ >> 2 files changed, 3 insertions(+) >> >> diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c >> index 52a880ca1768..17d2a0b1de18 100644 >> --- a/drivers/pci/pci-driver.c >> +++ b/drivers/pci/pci-driver.c >> @@ -392,6 +392,7 @@ int __weak pcibios_alloc_irq(struct pci_dev *dev) >> { >> return 0; >> } >> +EXPORT_SYMBOL_GPL(pcibios_alloc_irq); >> >> void __weak pcibios_free_irq(struct pci_dev *dev) >> { >> diff --git a/drivers/scsi/eata.c b/drivers/scsi/eata.c >> index 227dd2c2ec2f..7e6eaf867987 100644 >> --- a/drivers/scsi/eata.c >> +++ b/drivers/scsi/eata.c >> @@ -1061,6 +1061,7 @@ static void enable_pci_ports(void) >> driver_name, dev->bus->number, dev->devfn); >> #endif >> >> + pcibios_alloc_irq(dev); >> if (pci_enable_device(dev)) >> printk >> ("%s: warning, pci_enable_device failed, bus %d devfn 0x%x.\n", >> @@ -1520,6 +1521,7 @@ static void add_pci_ports(void) >> if (!(dev = pci_get_class(PCI_CLASS_STORAGE_SCSI << 8, dev))) >> break; >> >> + pcibios_alloc_irq(dev); >> if (pci_enable_device(dev)) { >> #if defined(DEBUG_PCI_DETECT) >> printk >> >> >>> >>>> return pci_enable_resources(dev, mask); >>>> } >>>> >>>> -- >>>> 1.7.10.4 >>>> > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ > -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html