initramfs includes qle driver, but not firmware

Bug #1623187 reported by dann frazier on 2016-09-13
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
High
Unassigned
Xenial
High
dann frazier
Yakkety
High
Unassigned

Bug Description

[Impact]
The qle driver for the Qlogic FastLinQ QL45000 Series 40GbE Adapter doesn't find devices. This is because the driver, by default, is loaded by the initramfs, and the initramfs does not contain the required firmware blob. The root cause is that the driver does not use implement the MODULE_FIRMWARE macro(), which is required for initramfs-tools to find and pre-load the required firmware.

[Test Case]
Install a system with a Qlogic FastLinQ QL45000 Series 40GbE Adapter. On failure, dmesg will show:

[ 5.934190] qede 0009:90:00.0: Direct firmware load for qed/qed_init_values_zipped-8.4.2.0.bin failed with error -2
[ 5.934208] [qed_slowpath_start:741()]Failed to find fw file - /lib/firmware/qed/qed_init_values_zipped-8.4.2.0.bin
[ 5.934280] qede: probe of 0009:90:00.0 failed with error -2
[ 5.934353] qede 0009:90:00.1: enabling device (0000 -> 0002)
[ 5.935115] qede 0009:90:00.1: Direct firmware load for qed/qed_init_values_zipped-8.4.2.0.bin failed with error -2
[ 5.935139] [qed_slowpath_start:741()]Failed to find fw file - /lib/firmware/qed/qed_init_values_zipped-8.4.2.0.bin
[ 5.935236] qede: probe of 0009:90:00.1 failed with error -2

[Regression Risk]
Fix is upstream and the macro usage is well defined.

CVE References

dann frazier (dannf) on 2016-09-13
Changed in linux (Ubuntu Xenial):
status: New → In Progress
dann frazier (dannf) on 2016-09-13
Changed in linux (Ubuntu):
status: In Progress → Fix Committed
Changed in linux (Ubuntu Xenial):
assignee: nobody → dann frazier (dannf)
Changed in linux (Ubuntu):
assignee: dann frazier (dannf) → nobody
Changed in linux (Ubuntu Xenial):
importance: Undecided → High
Tim Gardner (timg-tpi) on 2016-09-16
Changed in linux (Ubuntu Xenial):
status: In Progress → Fix Committed
Changed in linux (Ubuntu Yakkety):
status: Fix Committed → Fix Released
Brad Figg (brad-figg) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-xenial' to 'verification-done-xenial'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-xenial
dann frazier (dannf) wrote :

ubuntu@ubuntu:/tmp/x$ gunzip < /boot/initrd.img-4.4.0-41-generic | cpio -i -d
197785 blocks
ubuntu@ubuntu:/tmp/x$ find | grep qed
./lib/firmware/qed
./lib/firmware/qed/qed_init_values_zipped-8.4.2.0.bin
./lib/modules/4.4.0-41-generic/kernel/drivers/net/ethernet/qlogic/qede
./lib/modules/4.4.0-41-generic/kernel/drivers/net/ethernet/qlogic/qede/qede.ko
./lib/modules/4.4.0-41-generic/kernel/drivers/net/ethernet/qlogic/qed
./lib/modules/4.4.0-41-generic/kernel/drivers/net/ethernet/qlogic/qed/qed.ko
ubuntu@ubuntu:/tmp/x$

tags: added: verification-done-xenial
removed: verification-needed-xenial
Launchpad Janitor (janitor) wrote :
Download full text (17.5 KiB)

This bug was fixed in the package linux - 4.4.0-42.62

---------------
linux (4.4.0-42.62) xenial; urgency=low

  * Fix GRO recursion overflow for tunneling protocols (LP: #1631287)
    - tunnels: Don't apply GRO to multiple layers of encapsulation.
    - gro: Allow tunnel stacking in the case of FOU/GUE

  * CVE-2016-7039
    - SAUCE: net: add recursion limit to GRO

linux (4.4.0-41.61) xenial; urgency=low

  [ Kamal Mostafa ]

  * Release Tracking Bug
    - LP: #1628204

  * nvme drive probe failure (LP: #1626894)
    - (fix) NVMe: Don't unmap controller registers on reset

linux (4.4.0-40.60) xenial; urgency=low

  [ Kamal Mostafa ]

  * Release Tracking Bug
    - LP: #1627074

  * Permission denied in CIFS with kernel 4.4.0-38 (LP: #1626112)
    - Fix memory leaks in cifs_do_mount()
    - Compare prepaths when comparing superblocks
    - SAUCE: Fix regression which breaks DFS mounting

  * Backlight does not change when adjust it higher than 50% after S3
    (LP: #1625932)
    - SAUCE: i915_bpo: drm/i915/backlight: setup and cache pwm alternate
      increment value
    - SAUCE: i915_bpo: drm/i915/backlight: setup backlight pwm alternate
      increment on backlight enable

linux (4.4.0-39.59) xenial; urgency=low

  [ Joseph Salisbury ]

  * Release Tracking Bug
    - LP: #1625303

  * thunder: chip errata w/ multiple CQEs for a TSO packet (LP: #1624569)
    - net: thunderx: Fix for issues with multiple CQEs posted for a TSO packet

  * thunder: faulty TSO padding (LP: #1623627)
    - net: thunderx: Fix for HW issue while padding TSO packet

  * CVE-2016-6828
    - tcp: fix use after free in tcp_xmit_retransmit_queue()

  * Sennheiser Officerunner - cannot get freq at ep 0x83 (LP: #1622763)
    - SAUCE: (no-up) ALSA: usb-audio: Add quirk for sennheiser officerunner

  * Backport E3 Skylake Support in ie31200_edac to Xenial (LP: #1619766)
    - EDAC, ie31200_edac: Add Skylake support

  * Ubuntu 16.04 - Full EEH Recovery Support for NVMe devices (LP: #1602724)
    - SAUCE: nvme: Don't suspend admin queue that wasn't created

  * ISST-LTE:pNV: system ben is hung during ST (nvme) (LP: #1620317)
    - blk-mq: Allow timeouts to run while queue is freezing
    - blk-mq: improve warning for running a queue on the wrong CPU
    - blk-mq: don't overwrite rq->mq_ctx

  * lsattr 32bit does not work on 64bit kernel (Inappropriate ioctl error)
    (LP: #1619918)
    - btrfs: bugfix: handle FS_IOC32_{GETFLAGS, SETFLAGS, GETVERSION} in
      btrfs_ioctl

  * radeon: monitor connected to onboard VGA doesn't work with Xenial
    (LP: #1600092)
    - drm/radeon/dp: add back special handling for NUTMEG

  * initramfs includes qle driver, but not firmware (LP: #1623187)
    - qed: add MODULE_FIRMWARE()

  * [Hyper-V] Rebase Hyper-V to 4.7.2 (stable) (LP: #1616677)
    - hv_netvsc: Implement support for VF drivers on Hyper-V
    - hv_netvsc: Fix the list processing for network change event
    - Drivers: hv: vmbus: Introduce functions for estimating room in the ring
      buffer
    - Drivers: hv: vmbus: Use READ_ONCE() to read variables that are volatile
    - Drivers: hv: vmbus: Export the vmbus_set_event() API
    - lcoking/barriers, arch: Use smp barriers...

Changed in linux (Ubuntu Xenial):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers