Bug 104191

Summary: Brocade/Qlogic 1020: task bfad_worker blocked, bfad_read_firmware error
Product: Networking Reporter: Daniel Mayer (listenmitglied)
Component: OtherAssignee: Stephen Hemminger (stephen)
Status: NEW ---    
Severity: high    
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 4.2 and 4.3 Subsystem:
Regression: No Bisected commit-id:
Attachments: lspci -vvv
dmesg

Description Daniel Mayer 2015-09-08 07:36:31 UTC
Created attachment 187051 [details]
lspci -vvv

Hi,

new with kernel 4.2 (perhaps 4.1 also), the error repeats every 120seconds:


[  720.031766] INFO: task bfad_worker:297 blocked for more than 120 seconds.
[  720.033326]       Not tainted 4.2.0 #2
[  720.034846] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[  720.036421] bfad_worker     D ffff88046d655400     0   297      2 0x00000000
[  720.036428]  ffff88045443be98 0000000000000046 ffff880467779cc0 ffff880455a58000
[  720.036433]  ffff880455177a18 0000000000000296 0000000000000000 ffff88045443c000
[  720.036436]  ffff88044dc00000 ffffffffc01f9300 0000000000000000 0000000000000000
[  720.036440] Call Trace:
[  720.036464]  [<ffffffffc01f9300>] ? bfad_read_firmware+0xc0/0xc0 [bfa]
[  720.036481]  [<ffffffff817195f7>] schedule+0x37/0x80
[  720.036489]  [<ffffffff81099354>] kthread+0xa4/0xe0
[  720.036494]  [<ffffffff810992b0>] ? kthread_create_on_node+0x180/0x180
[  720.036498]  [<ffffffff8171d58f>] ret_from_fork+0x3f/0x70
[  720.036502]  [<ffffffff810992b0>] ? kthread_create_on_node+0x180/0x180
[  720.036506] INFO: task bfad_worker:305 blocked for more than 120 seconds.
[  720.038094]       Not tainted 4.2.0 #2
[  720.039677] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[  720.041306] bfad_worker     D ffff88046d795400     0   305      2 0x00000000
[  720.041310]  ffff88044d1d3e98 0000000000000046 ffff880467135640 ffff88044e75d640
[  720.041314]  ffff880455177a18 0000000000000296 0000000000000000 ffff88044d1d4000
[  720.041317]  ffff880078660000 ffffffffc01f9300 0000000000000000 0000000000000000
[  720.041321] Call Trace:
[  720.041330]  [<ffffffffc01f9300>] ? bfad_read_firmware+0xc0/0xc0 [bfa]
[  720.041334]  [<ffffffff817195f7>] schedule+0x37/0x80
[  720.041339]  [<ffffffff81099354>] kthread+0xa4/0xe0
[  720.041343]  [<ffffffff810992b0>] ? kthread_create_on_node+0x180/0x180
[  720.041346]  [<ffffffff8171d58f>] ret_from_fork+0x3f/0x70
[  720.041350]  [<ffffffff810992b0>] ? kthread_create_on_node+0x180/0x180

I used kernel 4.0.6 up to now, no problems there.
Comment 1 Daniel Mayer 2015-09-08 07:39:28 UTC
Created attachment 187061 [details]
dmesg
Comment 2 Daniel Mayer 2015-09-08 07:43:53 UTC
dmesg shows:

[   12.394101] bfa 0000:0b:00.0: Running firmware version is incompatible with the driver version
[   12.593368] bfa 0000:0b:00.0: bfa init failed

So most likely the kernel firmware need an update.
Comment 3 Daniel Mayer 2015-09-08 07:46:12 UTC
Because not in dmesg visible:
The Brocade runs the firmware 3.2.5.0

Sorry for the many messages. I can't find an "edit" button...
Comment 4 Daniel Mayer 2015-09-19 15:38:07 UTC
I updated the firmware to 3.2.5.1, as they find themselves in the lib/firmware.
Same error. Same error with 4.3-rc1, too:

"[   12.862681] bfa 0000:0b:00.0: Running firmware version is incompatible with the driver version
[   13.065387] bfa 0000:0b:00.0: bfa init failed
[   13.069794] bfa 0000:0b:00.1: Running firmware version is incompatible with the driver version
[   13.268674] bfa 0000:0b:00.1: bfa init failed
"
Comment 5 Daniel Mayer 2015-09-21 13:41:16 UTC
Update by myself:
I found in drivers/scsi/bfa in the file bfad.c at lines 66-69 the entries:

#define BFAD_FW_FILE_CB         "cbfw-3.2.3.0.bin"
#define BFAD_FW_FILE_CT         "ctfw-3.2.3.0.bin"
#define BFAD_FW_FILE_CT2        "ct2fw-3.2.3.0.bin"

and changed them to *3.2.5.1.bin. The files are present under Ubuntu 15.04x64 Server in /lib/firmware.

The error messages have disappeard. Surely nothing like a patch but more an individual solution, but it works and clarifies:
Please update the bfa-driver to fetch the correct firmware-files according to the firmware on the card.

Qlogic mostly shows 3.2.5.0-firmware on their site, but only under "RedHat x64" shows the 3.2.5.1-liveCD. So there may be the need of a man-entry or FAQ or st like that.