Bug 111211

Summary: TA1-PCI card worked in v4.2, fails in v4.3
Product: Drivers Reporter: Bjorn Helgaas (bjorn)
Component: PCIAssignee: drivers_pci (drivers_pci)
Status: RESOLVED CODE_FIX    
Severity: normal CC: fan4326, oleg.moroz, szg00000
Priority: P1    
Hardware: All   
OS: Linux   
URL: http://lkml.kernel.org/r/56A27E7E.4080609@mcc.vniiem.ru
Kernel Version: v4.3 Subsystem:
Regression: Yes Bisected commit-id:
Attachments: dmesg_log_4.3.0-1
dmesg_log_4.2.6-3
lspci_4.3.0-1
lspci_4.2.6-3

Description Bjorn Helgaas 2016-01-23 14:49:46 UTC
Олег reported that a MIL-1553b card called TA1-PCI worked in v4.2 but not in v4.3.  Apparently the driver does not receive interrupts in v4.3.

The driver seems to be this out-of-tree code:
https://github.com/qmor/elcus-1553-driver-linux
Comment 1 oleg.moroz 2016-01-24 07:38:19 UTC
Created attachment 201211 [details]
dmesg_log_4.3.0-1
Comment 2 oleg.moroz 2016-01-24 07:38:44 UTC
Created attachment 201221 [details]
dmesg_log_4.2.6-3
Comment 3 oleg.moroz 2016-01-24 07:39:12 UTC
Created attachment 201231 [details]
lspci_4.3.0-1
Comment 4 oleg.moroz 2016-01-24 07:39:25 UTC
Created attachment 201241 [details]
lspci_4.2.6-3
Comment 5 oleg.moroz 2016-01-26 14:45:28 UTC
After bisect procedure i've got this:


991de2e59090e55c65a7f59a049142e3c480f7bd is the first bad commit

commit 991de2e59090e55c65a7f59a049142e3c480f7bd

Author: Jiang Liu <jiang.liu@linux.intel.com>

Date:   Wed Jun 10 16:54:59 2015 +0800



    PCI, x86: Implement pcibios_alloc_irq() and pcibios_free_irq()

     
    To support IOAPIC hotplug, we need to allocate PCI IRQ resources on demand

    and free them when not used anymore.

     
    Implement pcibios_alloc_irq() and pcibios_free_irq() to dynamically

    allocate and free PCI IRQs.

     
    Remove mp_should_keep_irq(), which is no longer used.

     
    [bhelgaas: changelog]

    Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com>

    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>

    Acked-by: Thomas Gleixner <tglx@linutronix.de>



:040000 040000 765e2d5232d53247ec260b34b51589c3bccb36ae f680234a27685e94b1a35ae2a7218f8eafa9071a M      arch

:040000 040000 d55a682bcde72682e883365e88ad1df6186fd54d f82c470a04a6845fcf5e0aa934512c75628f798d M      drivers
Comment 6 oleg.moroz 2016-01-26 19:04:46 UTC
I confirmed it works in

890e4847587f 

and do not works in 

991de2e59090
Comment 7 Sunjin Yang 2016-02-05 03:27:24 UTC
RocketRAID 272x driver doesn't work too since 4.3 due to the same problem.

http://www.highpoint-tech.com/USA_new/series_rr272x_configuration.htm

It works with 'pci=routeirq' parameter.
Comment 8 Bjorn Helgaas 2016-10-26 21:55:53 UTC
Is this fixed?  I reverted 991de2e59090 ("PCI, x86: Implement pcibios_alloc_irq() and pcibios_free_irq()"), and the revert appeared in v4.5.

Here's the revert: http://git.kernel.org/cgit/linux/kernel/git/helgaas/pci.git/commit/?id=6c777e8799a9
Comment 9 Bjorn Helgaas 2016-10-28 20:41:20 UTC
I'm closing this on the assumption that the revert fixed it.  Please reopen if that's not the case.