Bug#764263: linux-image-3.16-2-amd64: WARNING at drivers/base/firmware_class.c:1109 _request_firmware+0x521/0xaf0() [btusb?]
Hi, I know, this is a very old bug report but as I am still running Debian/jessie (and others might too), I thought my findings would still be helpful and/or lead to closing this bug. On 10/07/2014 09:18 AM, Bjørn Mork wrote: > Ben Hutchingswrites: >> On Mon, 2014-10-06 at 20:15 +0200, Julien Cristau wrote: >>> Package: src:linux >>> Version: 3.16.3-2 >>> Severity: normal >>> >>> Hi, >>> >>> I get the following trace in my kernel log, which I don't think I've >>> seen in pre-3.16 versions: >>> >>> Sep 29 19:12:49 betterave kernel: [ 7696.920600] PM: resume of devices >>> complete after 508.149 msecs >>> Sep 29 19:12:49 betterave kernel: [ 7696.921181] [ cut here >>> ] >>> Sep 29 19:12:49 betterave kernel: [ 7696.921188] WARNING: CPU: 2 PID: 3533 >>> at /build/linux-P15SNz/linux-3.16.3/drivers/base/firmware_class.c:1109 >>> _request_firmware+0x521/0xaf0() >> [...] >>> Sep 29 19:12:49 betterave kernel: [ 7696.921405] [] ? >>> request_firmware+0x2c/0x40 >>> Sep 29 19:12:49 betterave kernel: [ 7696.921412] [] ? >>> btusb_setup_bcm_patchram+0x85/0x430 [btusb] >>> Sep 29 19:12:49 betterave kernel: [ 7696.921419] [] ? >>> rpm_check_suspend_allowed+0x6a/0xc0 >> [...] >>> Sep 29 19:12:49 betterave kernel: [ 7696.921528] bluetooth hci0: firmware: >>> brcm/BCM20702A0-0a5c-21e6.hcd will not be loaded >> [...] >> >> This means: btusb tries to load firmware during its resume operation, >> when userland is not yet available. This doesn't work if firmware >> loading depends on the userland firmware agent. >> >> The warning won't appear if the firmware is installed in the usual >> place, as direct loading will work. And the firmware agent is npw >> deprecated and not even enabled in Debian kernels. We could remove this >> warning, but it would be papering over a driver bug. > > Are you sure about this? FWIW I've occasionally seen similar warnings > from another btusb device with firmware (using kernels I've built > myself, so not reported here of course). And I haven't really bothered to > look at the root cause before, so I haven't reported it upstream either. > [...] I also got this kernel backtrace log, especially after resume from suspend. So I tested the following configurations: * Kernel: 3.16.43-2+deb8u2 / without firmware * Kernel: 3.16.43-2+deb8u2 / with firmware * Kernel: 4.9.30-2+deb9u2~bpo8+1 / without firmware * Kernel: 4.9.30-2+deb9u2~bpo8+1 / with firmware Finding the correct firmware is a complete different story (see my comments in #801084 for details) but I only got the kernel backtrace log with the first configuration (Kernel: 3.16.43-2+deb8u2 / without firmware). So I think this issue is fixed in the jessie-backports kernel. If you need more information on this, please let me know. If Julien can confirm that the kernel log is not shown with the new kernel version, this bug can be closed. Regards, - Darsha signature.asc Description: OpenPGP digital signature
Bug#764263: linux-image-3.16-2-amd64: WARNING at drivers/base/firmware_class.c:1109 _request_firmware+0x521/0xaf0() [btusb?]
Ben Hutchings b...@decadent.org.uk writes: On Mon, 2014-10-06 at 20:15 +0200, Julien Cristau wrote: Package: src:linux Version: 3.16.3-2 Severity: normal Hi, I get the following trace in my kernel log, which I don't think I've seen in pre-3.16 versions: Sep 29 19:12:49 betterave kernel: [ 7696.920600] PM: resume of devices complete after 508.149 msecs Sep 29 19:12:49 betterave kernel: [ 7696.921181] [ cut here ] Sep 29 19:12:49 betterave kernel: [ 7696.921188] WARNING: CPU: 2 PID: 3533 at /build/linux-P15SNz/linux-3.16.3/drivers/base/firmware_class.c:1109 _request_firmware+0x521/0xaf0() [...] Sep 29 19:12:49 betterave kernel: [ 7696.921405] [813af8ac] ? request_firmware+0x2c/0x40 Sep 29 19:12:49 betterave kernel: [ 7696.921412] [a065f895] ? btusb_setup_bcm_patchram+0x85/0x430 [btusb] Sep 29 19:12:49 betterave kernel: [ 7696.921419] [813a663a] ? rpm_check_suspend_allowed+0x6a/0xc0 [...] Sep 29 19:12:49 betterave kernel: [ 7696.921528] bluetooth hci0: firmware: brcm/BCM20702A0-0a5c-21e6.hcd will not be loaded [...] This means: btusb tries to load firmware during its resume operation, when userland is not yet available. This doesn't work if firmware loading depends on the userland firmware agent. The warning won't appear if the firmware is installed in the usual place, as direct loading will work. And the firmware agent is npw deprecated and not even enabled in Debian kernels. We could remove this warning, but it would be papering over a driver bug. Are you sure about this? FWIW I've occasionally seen similar warnings from another btusb device with firmware (using kernels I've built myself, so not reported here of course). And I haven't really bothered to look at the root cause before, so I haven't reported it upstream either. But looking at _request_firmware() now it seems to me that this warning is triggered _before_ we attempt any direct loading: _request_firmware(const struct firmware **firmware_p, const char *name, struct device *device, unsigned int opt_flags) { .. if (opt_flags FW_OPT_NOWAIT) { timeout = usermodehelper_read_lock_wait(timeout); if (!timeout) { dev_dbg(device, firmware: %s loading timed out\n, name); ret = -EBUSY; goto out; } } else { ret = usermodehelper_read_trylock(); if (WARN_ON(ret)) { dev_err(device, firmware: %s will not be loaded\n, name); goto out; } } ret = fw_get_filesystem_firmware(device, fw-priv); That's the WARN_ON() we are hitting, as can be seen by the error message following the warning. So we fail to get the usermodehelper read lock (why do we need that?) and bail out before even attempting the direct loading. I will not claim I understand any of this. But the warning is definitely triggered on some resumes, with firmware in the usual place and without the firmware agent being enabled. Bjørn -- To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/8738b02vr1@nemi.mork.no
Bug#764263: linux-image-3.16-2-amd64: WARNING at drivers/base/firmware_class.c:1109 _request_firmware+0x521/0xaf0() [btusb?]
Package: src:linux Version: 3.16.3-2 Severity: normal Hi, I get the following trace in my kernel log, which I don't think I've seen in pre-3.16 versions: Sep 29 19:12:49 betterave kernel: [ 7696.920600] PM: resume of devices complete after 508.149 msecs Sep 29 19:12:49 betterave kernel: [ 7696.921181] [ cut here ] Sep 29 19:12:49 betterave kernel: [ 7696.921188] WARNING: CPU: 2 PID: 3533 at /build/linux-P15SNz/linux-3.16.3/drivers/base/firmware_class.c:1109 _request_firmware+0x521/0xaf0() Sep 29 19:12:49 betterave kernel: [ 7696.921282] Modules linked in: ctr ccm bnep binfmt_misc nfsd auth_rpcgss oid_registry nfs_acl nfs lockd fscache sunrpc nls_utf8 nls_cp437 vfat fat snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic joydev arc4 iwldvm ecb mac80211 x86_pkg_temp_thermal intel_powerclamp intel_rapl btusb coretemp bluetooth kvm_intel kvm 6lowpan_iphc crc32_pclmul ghash_clmulni_intel iTCO_wdt aesni_intel iTCO_vendor_support aes_x86_64 lrw gf128mul glue_helper iwlwifi evdev snd_hda_intel efi_pstore ablk_helper psmouse snd_hda_controller cryptd i915 snd_hda_codec cfg80211 serio_raw snd_hwdep snd_pcm efivars pcspkr thinkpad_acpi snd_timer nvram wmi snd drm_kms_helper ac soundcore i2c_i801 tpm_tis mei_me drm rfkill shpchp i2c_algo_bit lpc_ich tpm battery mei video i2c_core mfd_core button processor loop fuse parport_pc ppdev lp parport autofs4 ext4 crc16 mbcache jbd2 dm_mod sg sd_mod crc_t10dif crct10dif_generic ahci crct10dif_pclmul crct10dif_common libahci crc32c_intel ehci_pci ehci_hcd xhci_hcd libata sdhci_pci sdhci scsi_mod mmc_core e1000e usbcore usb_common ptp pps_core thermal thermal_sys Sep 29 19:12:49 betterave kernel: [ 7696.921326] ACPI: \_SB_.PCI0.LPC_.EC__.BAT1: docking Sep 29 19:12:49 betterave kernel: [ 7696.921327] Sep 29 19:12:49 betterave kernel: [ 7696.921329] PM: Finishing wakeup. Sep 29 19:12:49 betterave kernel: [ 7696.921333] CPU: 2 PID: 3533 Comm: kworker/u17:0 Not tainted 3.16-2-amd64 #1 Debian 3.16.3-2 Sep 29 19:12:49 betterave kernel: [ 7696.921338] Restarting tasks ... Sep 29 19:12:49 betterave kernel: [ 7696.921338] Hardware name: LENOVO 2324CTO/2324CTO, BIOS G2ET92WW (2.52 ) 02/22/2013 Sep 29 19:12:49 betterave kernel: [ 7696.921353] Workqueue: hci0 hci_power_on [bluetooth] Sep 29 19:12:49 betterave kernel: [ 7696.921362] 0009 81506188 81065707 Sep 29 19:12:49 betterave kernel: [ 7696.921365] 880214b3fd48 880201fe6d80 880201c25e80 8800d4797600 Sep 29 19:12:49 betterave kernel: [ 7696.921371] 880214b3fd40 813af2b1 0004ff102100 8800d57bdab8 Sep 29 19:12:49 betterave kernel: [ 7696.921377] Call Trace: Sep 29 19:12:49 betterave kernel: [ 7696.921386] [81506188] ? dump_stack+0x41/0x51 Sep 29 19:12:49 betterave kernel: [ 7696.921394] [81065707] ? warn_slowpath_common+0x77/0x90 Sep 29 19:12:49 betterave kernel: [ 7696.921400] [813af2b1] ? _request_firmware+0x521/0xaf0 Sep 29 19:12:49 betterave kernel: [ 7696.921405] [813af8ac] ? request_firmware+0x2c/0x40 Sep 29 19:12:49 betterave kernel: [ 7696.921412] [a065f895] ? btusb_setup_bcm_patchram+0x85/0x430 [btusb] Sep 29 19:12:49 betterave kernel: [ 7696.921419] [813a663a] ? rpm_check_suspend_allowed+0x6a/0xc0 Sep 29 19:12:49 betterave kernel: [ 7696.921428] [813a7359] ? __pm_runtime_idle+0x69/0x80 Sep 29 19:12:49 betterave kernel: [ 7696.921439] [a060991d] ? hci_dev_do_open+0x25d/0x920 [bluetooth] Sep 29 19:12:49 betterave kernel: [ 7696.921446] [8109bd4f] ? enqueue_task_fair+0x2cf/0xe20 Sep 29 19:12:49 betterave kernel: [ 7696.921454] [8101b89d] ? native_sched_clock+0x2d/0x80 Sep 29 19:12:49 betterave kernel: [ 7696.921465] [a060a5dc] ? hci_power_on+0x2c/0x170 [bluetooth] Sep 29 19:12:49 betterave kernel: [ 7696.921473] [81092064] ? ttwu_do_wakeup+0x14/0xd0 Sep 29 19:12:49 betterave kernel: [ 7696.921482] [8107f4a2] ? process_one_work+0x172/0x420 Sep 29 19:12:49 betterave kernel: [ 7696.921488] [8107fb35] ? worker_thread+0x115/0x520 Sep 29 19:12:49 betterave kernel: [ 7696.921494] [8107fa20] ? rescuer_thread+0x2d0/0x2d0 Sep 29 19:12:49 betterave kernel: [ 7696.921500] [81085dcd] ? kthread+0xbd/0xe0 Sep 29 19:12:49 betterave kernel: [ 7696.921507] [81085d10] ? kthread_create_on_node+0x180/0x180 Sep 29 19:12:49 betterave kernel: [ 7696.921513] [8150c1bc] ? ret_from_fork+0x7c/0xb0 Sep 29 19:12:49 betterave kernel: [ 7696.921519] [81085d10] ? kthread_create_on_node+0x180/0x180 Sep 29 19:12:49 betterave kernel: [ 7696.921522] ---[ end trace 6e5c53426f331854 ]--- Sep 29 19:12:49 betterave kernel: [ 7696.921528] bluetooth hci0: firmware: brcm/BCM20702A0-0a5c-21e6.hcd will not be loaded Sep 29 19:12:49 betterave kernel: [ 7696.921534] Bluetooth: hci0: BCM: patch brcm/BCM20702A0-0a5c-21e6.hcd not found Sep 29
Bug#764263: linux-image-3.16-2-amd64: WARNING at drivers/base/firmware_class.c:1109 _request_firmware+0x521/0xaf0() [btusb?]
On Mon, 2014-10-06 at 20:15 +0200, Julien Cristau wrote: Package: src:linux Version: 3.16.3-2 Severity: normal Hi, I get the following trace in my kernel log, which I don't think I've seen in pre-3.16 versions: Sep 29 19:12:49 betterave kernel: [ 7696.920600] PM: resume of devices complete after 508.149 msecs Sep 29 19:12:49 betterave kernel: [ 7696.921181] [ cut here ] Sep 29 19:12:49 betterave kernel: [ 7696.921188] WARNING: CPU: 2 PID: 3533 at /build/linux-P15SNz/linux-3.16.3/drivers/base/firmware_class.c:1109 _request_firmware+0x521/0xaf0() [...] Sep 29 19:12:49 betterave kernel: [ 7696.921405] [813af8ac] ? request_firmware+0x2c/0x40 Sep 29 19:12:49 betterave kernel: [ 7696.921412] [a065f895] ? btusb_setup_bcm_patchram+0x85/0x430 [btusb] Sep 29 19:12:49 betterave kernel: [ 7696.921419] [813a663a] ? rpm_check_suspend_allowed+0x6a/0xc0 [...] Sep 29 19:12:49 betterave kernel: [ 7696.921528] bluetooth hci0: firmware: brcm/BCM20702A0-0a5c-21e6.hcd will not be loaded [...] This means: btusb tries to load firmware during its resume operation, when userland is not yet available. This doesn't work if firmware loading depends on the userland firmware agent. The warning won't appear if the firmware is installed in the usual place, as direct loading will work. And the firmware agent is npw deprecated and not even enabled in Debian kernels. We could remove this warning, but it would be papering over a driver bug. Ben. -- Ben Hutchings The program is absolutely right; therefore, the computer must be wrong. signature.asc Description: This is a digitally signed message part