Bug 723083 - pci_enable_msix reuses irq assigned to devices in intx mode
Summary: pci_enable_msix reuses irq assigned to devices in intx mode
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: kernel
Version: 5.5
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Prarit Bhargava
QA Contact: Red Hat Kernel QE team
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-07-19 01:29 UTC by Jing Huang
Modified: 2013-11-04 16:52 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-11-04 16:52:46 UTC
Target Upstream Version:


Attachments (Terms of Use)
/var/log/message (157.40 KB, application/octet-stream)
2011-07-19 01:31 UTC, Jing Huang
no flags Details
/proc/interrupts before rmmod bfa (10.77 KB, text/plain)
2011-07-19 01:33 UTC, Jing Huang
no flags Details
/proc/interrupts after rmmod bfa and modprobe bfa (7.48 KB, text/plain)
2011-07-19 01:33 UTC, Jing Huang
no flags Details

Description Jing Huang 2011-07-19 01:29:27 UTC
Description of problem:
pci_enable_msix()returns an irq which has been assigned to other devices in INTx mode. This causes the subsequent request_irq() to fail with type mismatch since bfa driver doesn't pass IRQF_SHARED for msix vectors. In the message below. IRQ 98 has been used by other drivers (see attached /proc/interrupts outputs).

Oct 13 19:21:57 4D26_23_203 kernel: IRQ handler type mismatch for IRQ 98
Oct 13 19:21:57 4D26_23_203 kernel:  [<c044d50b>] setup_irq+0x176/0x18a
Oct 13 19:21:57 4D26_23_203 kernel:  [<f8b509c0>] bfad_msix+0x0/0xa0 [bfa]
Oct 13 19:21:57 4D26_23_203 kernel:  [<c044d59b>] request_irq+0x7c/0x98
Oct 13 19:21:57 4D26_23_203 kernel:  [<f8b5085a>] bfad_install_msix_handler+0xea/0x250 [bfa]
Oct 13 19:21:57 4D26_23_203 kernel:  [<f8b5269f>] bfad_sm_created+0x22f/0x260 [bfa]
Oct 13 19:21:57 4D26_23_203 kernel:  [<f8b537fc>] bfad_os_kthread_create+0x3c/0x70 [bfa]
Oct 13 19:21:57 4D26_23_203 kernel:  [<f8b50b10>] bfad_worker+0x0/0x50 [bfa]
Oct 13 19:21:57 4D26_23_203 kernel:  [<f8b5240e>] bfad_sm_uninit+0xde/0x140 [bfa]
Oct 13 19:21:57 4D26_23_203 kernel:  [<f8b5327b>] bfad_pci_probe+0x28b/0x2c0 [bfa]
Oct 13 19:21:57 4D26_23_203 kernel:  [<f8b53e50>] bfad_aen_cb_notify+0x0/0x50 [bfa]
Oct 13 19:21:57 4D26_23_203 kernel:  [<f8b53a00>] bfa_os_gettimeofday+0x0/0x20 [bfa]
Oct 13 19:21:57 4D26_23_203 kernel:  [<c055d7e2>] __driver_attach+0x0/0x6b
Oct 13 19:21:57 4D26_23_203 kernel:  [<c04f8ed5>] pci_device_probe+0x36/0x57
Oct 13 19:21:57 4D26_23_203 kernel:  [<c055d735>] driver_probe_device+0x42/0x92
Oct 13 19:21:58 4D26_23_203 kernel:  [<c055d826>] __driver_attach+0x44/0x6b
Oct 13 19:21:58 4D26_23_203 kernel:  [<c055d113>] bus_for_each_dev+0x37/0x59
Oct 13 19:21:58 4D26_23_203 kernel:  [<c055d680>] driver_attach+0x11/0x13
Oct 13 19:21:58 4D26_23_203 kernel:  [<c055d7e2>] __driver_attach+0x0/0x6b
Oct 13 19:21:58 4D26_23_203 kernel:  [<c055cdeb>] bus_add_driver+0x64/0xfd
Oct 13 19:21:58 4D26_23_203 kernel:  [<c04f9133>] __pci_register_driver+0x42/0x8c
Oct 13 19:21:58 4D26_23_203 kernel:  [<f88bf10b>] bfad_init+0x10b/0x1ae [bfa]
Oct 13 19:21:58 4D26_23_203 kernel:  [<c043efe9>] sys_init_module+0x1aed/0x1caa
Oct 13 19:21:58 4D26_23_203 kernel:  [<c047119b>] __kmalloc+0x0/0x72
Oct 13 19:21:58 4D26_23_203 kernel:  [<c0449c52>] audit_syscall_entry+0x15a/0x18c
Oct 13 19:21:58 4D26_23_203 kernel:  [<c0404f17>] syscall_call+0x7/0xb
Oct 13 19:21:58 4D26_23_203 kernel:  =======================


Version-Release number of selected component (if applicable):
2.6.18-194.el5PAE

How reproducible:
Install multiple dual port Brocade-825 HBA and Brocade-1020 CNA. Do rmmod bfa and modprobe bfa. In the system we are running the test, we have 3 Brocade-825 and 1 Brocade 1020.

Steps to Reproduce:
1. Boot the system with multiple Brocade 825 HBA and 1020 CNA
2. rmmod bfa
3. modprobe bfa
  
Actual results:
some ports are assigned with irq that is already used by other devices in intx mode.

Expected results:
have exclusive irq assigned for msix or fail pci_enable_msix()

Additional info:

Comment 1 Jing Huang 2011-07-19 01:31:48 UTC
Created attachment 513693 [details]
/var/log/message

Comment 2 Jing Huang 2011-07-19 01:33:07 UTC
Created attachment 513694 [details]
/proc/interrupts before rmmod bfa

Comment 3 Jing Huang 2011-07-19 01:33:58 UTC
Created attachment 513695 [details]
/proc/interrupts after rmmod bfa and modprobe bfa

Comment 7 Prarit Bhargava 2011-08-08 13:16:26 UTC
Does RHEL6 run okay on this system?

P.

Comment 8 Jing Huang 2011-08-08 19:50:02 UTC
This issue was only reproducible with RHEL 5.5 x86. We could not reproduce the problem with RHEL 5.5 x86_64 or RHEL6.

Comment 9 Prarit Bhargava 2013-11-04 16:52:46 UTC
This Bugzilla has been reviewed by Red Hat and is not planned on being
addressed in Red Hat Enterprise Linux 5, and therefore is being closed.
If this bug is critical to production systems, please contact your Red
Hat support representative and provide a sufficient business justification
in order to re-open it.


Note You need to log in before you can comment on or make changes to this bug.