From: Takashi Iwai <tiwai@suse.de>
To: Arend van Spriel <arend@broadcom.com>
Cc: "Mihai Donțu" <mihai.dontu@gmail.com>,
linux-kernel@vger.kernel.org, "Dave Jones" <davej@redhat.com>,
pgynther@google.com, marcel@holtmann.org,
linux-bluetooth@vger.kernel.org
Subject: Re: bluetooth related firmware loader spew on resume.
Date: Thu, 27 Nov 2014 11:09:54 +0100 [thread overview]
Message-ID: <s5hr3wpuf7x.wl-tiwai@suse.de> (raw)
In-Reply-To: <5476F2DD.7070803@broadcom.com>
At Thu, 27 Nov 2014 10:46:05 +0100,
Arend van Spriel wrote:
>
> On 11/27/14 10:29, Arend van Spriel wrote:
> > On 11/27/14 10:17, Takashi Iwai wrote:
> >> At Thu, 27 Nov 2014 09:59:12 +0100,
> >> Arend van Spriel wrote:
> >>>
> >>> On 11/26/14 19:13, Takashi Iwai wrote:
> >>>> At Wed, 26 Nov 2014 18:42:46 +0100,
> >>>> Arend van Spriel wrote:
> >>>>>
> >>>>> On 11/26/14 16:27, Takashi Iwai wrote:
> >>>>>> At Wed, 26 Nov 2014 17:26:15 +0200,
> >>>>>> Mihai Donțu wrote:
> >>>>>>>
> >>>>>>> On Wed, 26 Nov 2014 16:19:49 +0100
> >>>>>>> Takashi Iwai<tiwai@suse.de> wrote:
> >>>>>>>
> >>>>>>>> At Wed, 26 Nov 2014 16:56:09 +0200,
> >>>>>>>> Mihai Donțu wrote:
> >>>>>>>>>
> >>>>>>>>> On Tue, 11 Nov 2014 13:12:28 -0500 Dave Jones wrote:
> >>>>>>>>>> Since the addition of 10d4c6736ea "Bluetooth: btusb: Add
> >>>>>>>>>> Broadcom patch
> >>>>>>>>>> RAM support", I (and a number of other people[*]) have been
> >>>>>>>>>> seeing
> >>>>>>>>>> this trace on resume from suspend.
> >>>>>>>>>>
> >>>>>>>>>> WARNING: CPU: 1 PID: 8565 at
> >>>>>>>>>> drivers/base/firmware_class.c:1127
> >>>>>>>>>> _request_firmware+0x4c1/0x7c0()
> >>>>>>>>>> CPU: 1 PID: 8565 Comm: kworker/u17:0 Not tainted
> >>>>>>>>>> 3.17.2-200.fc20.x86_64 #1
> >>>>>>>>>> Hardware name: LENOVO 2356JK8/2356JK8, BIOS G7ET94WW (2.54 )
> >>>>>>>>>> 04/30/2013
> >>>>>>>>>> Workqueue: hci0 hci_power_on [bluetooth]
> >>>>>>>>>> 0000000000000000 00000000f52a564b ffff8800a8c63be8
> >>>>>>>>>> ffffffff817271cc
> >>>>>>>>>> 0000000000000000 ffff8800a8c63c20 ffffffff81094ced
> >>>>>>>>>> ffff8800a8c63d10
> >>>>>>>>>> ffff8801365ddf00 ffff8801387b4b00 ffff8800a8c63d08
> >>>>>>>>>> 00000000fffffff5
> >>>>>>>>>> Call Trace:
> >>>>>>>>>> [<ffffffff817271cc>] dump_stack+0x45/0x56
> >>>>>>>>>> [<ffffffff81094ced>] warn_slowpath_common+0x7d/0xa0
> >>>>>>>>>> [<ffffffff81094e1a>] warn_slowpath_null+0x1a/0x20
> >>>>>>>>>> [<ffffffff814965c1>] _request_firmware+0x4c1/0x7c0
> >>>>>>>>>> [<ffffffff8137b9b9>] ? snprintf+0x49/0x70
> >>>>>>>>>> [<ffffffff814968f1>] request_firmware+0x31/0x50
> >>>>>>>>>> [<ffffffffa0943bf3>] btusb_setup_bcm_patchram+0x83/0x550 [btusb]
> >>>>>>>>>> [<ffffffff8148ecf6>] ? rpm_idle+0xd6/0x2b0
> >>>>>>>>>> [<ffffffffa0649051>] hci_dev_do_open+0xe1/0xa60 [bluetooth]
> >>>>>>>>>> ACPI: \_SB_.PCI0.LPC_.EC__.BAT1: docking
> >>>>>>>>>> Restarting tasks ...
> >>>>>>>>>> [<ffffffff810bcb3d>] ? ttwu_do_activate.constprop.90+0x5d/0x70
> >>>>>>>>>> [<ffffffffa064a1c0>] hci_power_on+0x40/0x1e0 [bluetooth]
> >>>>>>>>>> [<ffffffff810f53fb>] ? lock_timer_base.isra.34+0x2b/0x50
> >>>>>>>>>> [<ffffffff810acc39>] process_one_work+0x149/0x3d0
> >>>>>>>>>> [<ffffffff810ad2bb>] worker_thread+0x11b/0x490
> >>>>>>>>>> [<ffffffff810ad1a0>] ? rescuer_thread+0x2e0/0x2e0
> >>>>>>>>>> [<ffffffff810b2318>] kthread+0xd8/0xf0
> >>>>>>>>>> [<ffffffff810b2240>] ? kthread_create_on_node+0x190/0x190
> >>>>>>>>>> [<ffffffff8172e7bc>] ret_from_fork+0x7c/0xb0
> >>>>>>>>>> [<ffffffff810b2240>] ? kthread_create_on_node+0x190/0x190
> >>>>>>>>>> ---[ end trace 75a0e9c7f33ebb4c ]---
> >>>>>>>>>> bluetooth hci0: firmware: brcm/BCM20702A0-0a5c-21e6.hcd will
> >>>>>>>>>> not be loaded
> >>>>>>>>>> Bluetooth: hci0: BCM: patch brcm/BCM20702A0-0a5c-21e6.hcd not
> >>>>>>>>>> found
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> At first I thought it was just over-reaction to the file being
> >>>>>>>>>> missing, but
> >>>>>>>>>> looking at the WARN_ON, it appears that we're trying to invoke
> >>>>>>>>>> the firmware
> >>>>>>>>>> loader before userspace is back up ?
> >>>>>>>>>>
> >>>>>>>>>> In this (and probably other related) kernel,
> >>>>>>>>>> CONFIG_FW_LOADER_USER_HELPER is unset,
> >>>>>>>>>> in case that matters at all.
> >>>>>>>>>>
> >>>>>>>>>> Dave
> >>>>>>>>>>
> >>>>>>>>>> [*] https://bugzilla.kernel.org/show_bug.cgi?id=81821
> >>>>>>>>>> https://bugzilla.redhat.com/show_bug.cgi?id=1133378
> >>>>>>>>>
> >>>>>>>>> I have the following during normal boot:
> >>>>>>>>>
> >>>>>>>>> [ 5.620796] Bluetooth: hci0: read Intel version:
> >>>>>>>>> 370710018002030d00
> >>>>>>>>> [ 5.620822] bluetooth hci0: Direct firmware load for
> >>>>>>>>> intel/ibt-hw-37.7.10-fw-1.80.2.3.d.bseq failed with error -2
> >>>>>>>>> [ 5.620827] Bluetooth: hci0 failed to open Intel firmware file:
> >>>>>>>>> intel/ibt-hw-37.7.10-fw-1.80.2.3.d.bseq(-2)
> >>>>>>>>> [ 5.620920] bluetooth hci0: Direct firmware load for
> >>>>>>>>> intel/ibt-hw-37.7.bseq failed with error -2
> >>>>>>>>> [ 5.620922] Bluetooth: hci0 failed to open default Intel fw
> >>>>>>>>> file: intel/ibt-hw-37.7.bseq
> >>>>>>>>> [ 5.629910] EXT4-fs (sda2): mounted filesystem with ordered
> >>>>>>>>> data mode. Opts: (null)
> >>>>>>>>> [ 5.629916] VFS: Mounted root (ext4 filesystem) readonly on
> >>>>>>>>> device 8:2.
> >>>>>>>>>
> >>>>>>>>> The driver is trying to load the firmware before root is
> >>>>>>>>> mounted. Do I
> >>>>>>>>> really need an initramfs?
> >>>>>>>>
> >>>>>>>> If btusb driver is loaded in initrd, you'd need the corresponding
> >>>>>>>> firmware in initrd, too.
> >>>>>>>
> >>>>>>> The driver is built into the kernel and I don't use an initrd. I
> >>>>>>> could
> >>>>>>> probably create one, but it's a bit tricky with UEFI and a tad
> >>>>>>> harder
> >>>>>>> to maintain.
> >>>>>>
> >>>>>> Then you can build the firmware file into kernel, too.
> >>>>>
> >>>>> huh? The whole idea of the firmware API was to keep (often
> >>>>> proprietary)
> >>>>> firmware out of the kernel. Has that strategy been abandoned recently?
> >>>>
> >>>> See CONFIG_EXTRA_FIRMARE. It doesn't mean to include the binary blob
> >>>> into the kernel source tree. It just allows to *build* into your
> >>>> kernel.
>
> So I looked at this Kconfig option and reading the help I came across
> this warning:
>
> """
> WARNING: If you include additional firmware files into your binary
> kernel image that are not available under the terms of the GPL,
> then it may be a violation of the GPL to distribute the resulting
> image since it combines both GPL and non-GPL work. You should
> consult a lawyer of your own before distributing such an image.
> """
>
> This is exactly what I meant, by "(often proprietary) firmware". So we
> should conclude that if a device needs proprietary firmware it can not
> be built-in the kernel if intended for distribution.
Well, that's why I've repeatedly written it's for *building* the
kernel. Building a kernel in such a way and using it is no problem.
The problem happens only when you distribute it. So, this doesn't
apply to the distro kernels, of course. Think separately between
build and distribution.
In Michai's case, he's certainly building the kernel manually (that's
why btusb is built-in, which usually isn't so on distro kernels).
Takashi
prev parent reply other threads:[~2014-11-27 10:10 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-11 18:12 Dave Jones
2014-11-25 16:40 ` Takashi Iwai
2014-11-26 5:15 ` Marcel Holtmann
2014-11-26 8:52 ` Takashi Iwai
2014-11-26 10:10 ` Oliver Neukum
2014-11-26 10:31 ` Takashi Iwai
2014-11-26 10:43 ` Oliver Neukum
2014-11-26 10:53 ` Takashi Iwai
2014-11-26 14:08 ` Marcel Holtmann
2014-11-26 14:23 ` Oliver Neukum
2014-11-26 14:31 ` Takashi Iwai
2014-11-26 14:38 ` Oliver Neukum
2014-11-26 14:05 ` Marcel Holtmann
2014-11-26 14:12 ` Takashi Iwai
2014-11-26 14:27 ` Oliver Neukum
2014-11-26 15:21 ` Takashi Iwai
2014-11-27 14:43 ` Takashi Iwai
2014-11-26 14:16 ` Oliver Neukum
2014-11-26 14:56 ` Mihai Donțu
2014-11-26 15:19 ` Takashi Iwai
2014-11-26 15:26 ` Mihai Donțu
2014-11-26 15:27 ` Takashi Iwai
2014-11-26 17:42 ` Arend van Spriel
2014-11-26 18:13 ` Takashi Iwai
2014-11-27 8:59 ` Arend van Spriel
2014-11-27 9:17 ` Takashi Iwai
2014-11-27 9:29 ` Arend van Spriel
2014-11-27 9:46 ` Arend van Spriel
2014-11-27 10:09 ` Takashi Iwai [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=s5hr3wpuf7x.wl-tiwai@suse.de \
--to=tiwai@suse.de \
--cc=arend@broadcom.com \
--cc=davej@redhat.com \
--cc=linux-bluetooth@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=marcel@holtmann.org \
--cc=mihai.dontu@gmail.com \
--cc=pgynther@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome