Bug 11782

Summary: p54 misbehaves when firmware can't be found
Product: Drivers Reporter: Sean Young (sean)
Component: network-wirelessAssignee: drivers_network-wireless (drivers_network-wireless)
Status: CLOSED CODE_FIX    
Severity: low CC: chunkeey
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.27-git8 Subsystem:
Regression: Yes Bisected commit-id:

Description Sean Young 2008-10-18 09:12:59 UTC
Latest working kernel version: 2.6.26
Earliest failing kernel version: ?
Distribution: Ubuntu 8.04
Hardware Environment: AMD Elan (TS-5500)
Software Environment: 
Problem Description:

When firmware can't be found free_irq complains.

Steps to reproduce:
Ensure the firmware is not available in /lib/firmware/$(uname -r)/

p54pci 0000:01:00.0: enabling device (0000 -> 0002)
p54pci 0000:01:00.0: setting latency timer to 64
p54pci 0000:01:00.0: firmware: requesting isl3886
0000:01:00.0 (p54pci): cannot find firmware (isl3886)
phy0: device does not respond!
Trying to free already-free IRQ 10
Pid: 108, comm: pccardd Not tainted 2.6.27-05577-g0cfd810-dirty #1
Call Trace:
 [<c01265dc>] free_irq+0xad/0xb9
 [<c01050dd>] dma_generic_alloc_coherent+0x0/0xd7
 [<c01ba8e6>] p54p_stop+0x4a/0x1fa
 [<c01050dd>] dma_generic_alloc_coherent+0x0/0xd7
 [<c02348c5>] p54p_probe+0x23e/0x302
 [<c0192dd3>] kobject_get+0xf/0x13
 [<c019cd9f>] pci_device_probe+0x36/0x55
 [<c01adf86>] driver_probe_device+0x9c/0x112
 [<c01ad5f2>] bus_for_each_drv+0x34/0x5b
 [<c01ae0d1>] device_attach+0x4e/0x61
 [<c01ae063>] __device_attach+0x0/0x5
 [<c01ad4bc>] bus_attach_device+0x1e/0x46
 [<c01ac8c8>] device_add+0x2c8/0x3ef
 [<c0199cd9>] pci_bus_write_config_byte+0x16/0x1e
 [<c0199e24>] pci_bus_add_device+0xc/0x2c
 [<c0199e62>] pci_bus_add_devices+0x1e/0x134
 [<c0232e4a>] cb_alloc+0x92/0xa4
 [<c01ccee7>] socket_insert+0x80/0xa5
 [<c01cd347>] pccardd+0x13c/0x1b5
 [<c01cd20b>] pccardd+0x0/0x1b5
 [<c011bc3b>] kthread+0x36/0x5b
 [<c011bc05>] kthread+0x0/0x5b
 [<c0102dc7>] kernel_thread_helper+0x7/0x10
p54pci: probe of 0000:01:00.0 failed with error -16
Comment 1 Anonymous Emailer 2008-10-21 11:24:03 UTC
Reply-To: akpm@linux-foundation.org


(switched to email.  Please respond via emailed reply-to-all, not via the
bugzilla web interface).

On Sat, 18 Oct 2008 09:13:00 -0700 (PDT)
bugme-daemon@bugzilla.kernel.org wrote:

> http://bugzilla.kernel.org/show_bug.cgi?id=11782
> 
>            Summary: p54 misbehaves when firmware can't be found
>            Product: Drivers
>            Version: 2.5
>      KernelVersion: 2.6.27-git8
>           Platform: All
>         OS/Version: Linux
>               Tree: Mainline
>             Status: NEW
>           Severity: low
>           Priority: P1
>          Component: network-wireless
>         AssignedTo: drivers_network-wireless@kernel-bugs.osdl.org
>         ReportedBy: sean@mess.org
> 
> 
> Latest working kernel version: 2.6.26

A regression.

> Earliest failing kernel version: ?
> Distribution: Ubuntu 8.04
> Hardware Environment: AMD Elan (TS-5500)
> Software Environment: 
> Problem Description:
> 
> When firmware can't be found free_irq complains.
> 
> Steps to reproduce:
> Ensure the firmware is not available in /lib/firmware/$(uname -r)/
> 
> p54pci 0000:01:00.0: enabling device (0000 -> 0002)
> p54pci 0000:01:00.0: setting latency timer to 64
> p54pci 0000:01:00.0: firmware: requesting isl3886
> 0000:01:00.0 (p54pci): cannot find firmware (isl3886)
> phy0: device does not respond!
> Trying to free already-free IRQ 10
> Pid: 108, comm: pccardd Not tainted 2.6.27-05577-g0cfd810-dirty #1
> Call Trace:
>  [<c01265dc>] free_irq+0xad/0xb9
>  [<c01050dd>] dma_generic_alloc_coherent+0x0/0xd7
>  [<c01ba8e6>] p54p_stop+0x4a/0x1fa
>  [<c01050dd>] dma_generic_alloc_coherent+0x0/0xd7
>  [<c02348c5>] p54p_probe+0x23e/0x302
>  [<c0192dd3>] kobject_get+0xf/0x13
>  [<c019cd9f>] pci_device_probe+0x36/0x55
>  [<c01adf86>] driver_probe_device+0x9c/0x112
>  [<c01ad5f2>] bus_for_each_drv+0x34/0x5b
>  [<c01ae0d1>] device_attach+0x4e/0x61
>  [<c01ae063>] __device_attach+0x0/0x5
>  [<c01ad4bc>] bus_attach_device+0x1e/0x46
>  [<c01ac8c8>] device_add+0x2c8/0x3ef
>  [<c0199cd9>] pci_bus_write_config_byte+0x16/0x1e
>  [<c0199e24>] pci_bus_add_device+0xc/0x2c
>  [<c0199e62>] pci_bus_add_devices+0x1e/0x134
>  [<c0232e4a>] cb_alloc+0x92/0xa4
>  [<c01ccee7>] socket_insert+0x80/0xa5
>  [<c01cd347>] pccardd+0x13c/0x1b5
>  [<c01cd20b>] pccardd+0x0/0x1b5
>  [<c011bc3b>] kthread+0x36/0x5b
>  [<c011bc05>] kthread+0x0/0x5b
>  [<c0102dc7>] kernel_thread_helper+0x7/0x10
> p54pci: probe of 0000:01:00.0 failed with error -16
> 
Comment 2 John W. Linville 2008-11-12 08:26:42 UTC
commit 35961627d3e7a4093eb307d782541700e9addec6
Author: Christian Lamparter <chunkeey@web.de>
Date:   Wed Oct 22 14:19:56 2008 +0200

    p54: fix misbehavings when firmware can't be found

    This patch fixes a double-free error in p54pci
    ( http://bugzilla.kernel.org/show_bug.cgi?id=11782 )

    Trying to free already-free IRQ 10
    Pid: 108, comm: pccardd Not tainted 2.6.27-05577-g0cfd810-dirty #1
    Call Trace:
     [<c01265dc>] free_irq+0xad/0xb9
     [<c01050dd>] dma_generic_alloc_coherent+0x0/0xd7
     [<c01ba8e6>] p54p_stop+0x4a/0x1fa
     [<c01050dd>] dma_generic_alloc_coherent+0x0/0xd7
     [<c02348c5>] p54p_probe+0x23e/0x302

    Tested-by: Sean Young
    Signed-off-by: Christian Lamparter <chunkeey@web.de>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>