All of lore.kernel.org
 help / color / mirror / Atom feed
From: Felix Janda <felix.janda@posteo.de>
To: Larry Finger <Larry.Finger@lwfinger.net>
Cc: John W Linville <linville@tuxdriver.com>,
	b43-dev <b43-dev@lists.infradead.org>,
	linux-wireless <linux-wireless@vger.kernel.org>
Subject: [RFC/RFT] b43: Load initial firmware file asynchronously
Date: Sat, 8 Dec 2012 18:56:15 +0100	[thread overview]
Message-ID: <20121208175615.GA10664@gauss> (raw)
In-Reply-To: <50C375BE.9050907@lwfinger.net>

On 12/08/12 at 11:15am, Larry Finger wrote:
> On 12/08/2012 08:30 AM, Felix Janda wrote:
> > Thanks, for coming back to this.
> >
> > It now gives me a kernel panic after 30 seconds.
> >
> > I did some debugging using ssleep and printk. b43_fw_cb seems
> > to be called several times and on the last time the "firmware"
> > argument seems to be zero. The execution then returns to
> > b43_do_request_fw, which tries to deference a zero pointer in
> > the line
> >
> >> +	if (ctx->blob->size < sizeof(struct b43_fw_header))
> >
> >
> > It is another machine then last time, has B4306 (rev 3) and a
> > kernel without modules. The firmware is in /lib/firmware/b43,
> > which is on the root partition. There is no udev installed.
> 
> Felix,
> 
> Curious. I would have expected a single call to b43_do_request_fw() with the 
> async flag set, and thus a single call to the callback routine.
> 
> Attached is a new version of the patch. It will give us some instrumentation on 
> the calls, and it should prevent the crash. I would like to see the dmesg output 
> showing the info.
> 
> Thanks for testing,
> 
> Larry

Sorry, I assumed that the callback routine was called several times only
by looking at how much delay I was producing by putting ssleep(10) into it.

There's no more panic with the new version and the dmesg output looks
interesting.

Am I missing some firmware? /lib/firmware/b43 contains:

a0g0bsinitvals5.fw a0g0initvals5.fw a0g1bsinitvals5.fw
a0g1initvals5.fw b0g0bsinitvals5.fw b0g0initvals5.fw pcm5.fw ucode5.fw

Thanks for fixing this,
Felix
-------------- next part --------------
[    0.502490] b43-phy0: Broadcom 4306 WLAN found (core revision 5)
[    0.543046] b43-phy0: Found PHY: Analog 2, Type 2 (G), Revision 2
[    0.705141] async load of b43/ucode5.fw
[    0.738576] Broadcom 43xx driver loaded [ Features: PL ]
[   62.284701] In callback routine, firmware not available
[   62.284712] Pid: 643, comm: kworker/0:2 Not tainted 3.7.0-rc8 #20
[   62.284715] Call Trace:
[   62.284734]  [<c12eefaa>] b43_fw_cb+0x1a/0x30
[   62.284746]  [<c12b3c5b>] request_firmware_work_func+0x5b/0xb0
[   62.284753]  [<c104b540>] process_one_work+0x110/0x380
[   62.284758]  [<c12b3c00>] ? _request_firmware_prepare.isra.14+0x380/0x380
[   62.284762]  [<c104c2e9>] worker_thread+0x119/0x340
[   62.284766]  [<c104c1d0>] ? manage_workers+0x260/0x260
[   62.284774]  [<c1050abf>] kthread+0x8f/0xa0
[   62.284783]  [<c14dffb7>] ret_from_kernel_thread+0x1b/0x28
[   62.284788]  [<c1050a30>] ? __kthread_bind+0x30/0x30
[   62.284793] Firmware not found
[   62.284799] async load of b43-open/ucode5.fw
[   62.323259] In callback routine, firmware not available
[   62.323267] Pid: 643, comm: kworker/0:2 Not tainted 3.7.0-rc8 #20
[   62.323269] Call Trace:
[   62.323278]  [<c12eefaa>] b43_fw_cb+0x1a/0x30
[   62.323284]  [<c12b3c5b>] request_firmware_work_func+0x5b/0xb0
[   62.323289]  [<c104b540>] process_one_work+0x110/0x380
[   62.323295]  [<c12b3c00>] ? _request_firmware_prepare.isra.14+0x380/0x380
[   62.323298]  [<c104c2e9>] worker_thread+0x119/0x340
[   62.323302]  [<c104c1d0>] ? manage_workers+0x260/0x260
[   62.323308]  [<c1050abf>] kthread+0x8f/0xa0
[   62.323314]  [<c14dffb7>] ret_from_kernel_thread+0x1b/0x28
[   62.323318]  [<c1050a30>] ? __kthread_bind+0x30/0x30
[   62.323322] Firmware not found
[   62.323329] b43-phy0 ERROR: You must go to http://wireless.kernel.org/en/users/Drivers/b43#devicefirmware and download the correct firmware for this driver version. Please carefully read all instructions on this website.

WARNING: multiple messages have this Message-ID (diff)
From: Felix Janda <felix.janda@posteo.de>
To: Larry Finger <Larry.Finger@lwfinger.net>
Cc: John W Linville <linville@tuxdriver.com>,
	b43-dev <b43-dev@lists.infradead.org>,
	linux-wireless <linux-wireless@vger.kernel.org>
Subject: Re: [RFC/RFT] b43: Load initial firmware file asynchronously
Date: Sat, 8 Dec 2012 18:56:15 +0100	[thread overview]
Message-ID: <20121208175615.GA10664@gauss> (raw)
In-Reply-To: <50C375BE.9050907@lwfinger.net>

[-- Attachment #1: Type: text/plain, Size: 1563 bytes --]

On 12/08/12 at 11:15am, Larry Finger wrote:
> On 12/08/2012 08:30 AM, Felix Janda wrote:
> > Thanks, for coming back to this.
> >
> > It now gives me a kernel panic after 30 seconds.
> >
> > I did some debugging using ssleep and printk. b43_fw_cb seems
> > to be called several times and on the last time the "firmware"
> > argument seems to be zero. The execution then returns to
> > b43_do_request_fw, which tries to deference a zero pointer in
> > the line
> >
> >> +	if (ctx->blob->size < sizeof(struct b43_fw_header))
> >
> >
> > It is another machine then last time, has B4306 (rev 3) and a
> > kernel without modules. The firmware is in /lib/firmware/b43,
> > which is on the root partition. There is no udev installed.
> 
> Felix,
> 
> Curious. I would have expected a single call to b43_do_request_fw() with the 
> async flag set, and thus a single call to the callback routine.
> 
> Attached is a new version of the patch. It will give us some instrumentation on 
> the calls, and it should prevent the crash. I would like to see the dmesg output 
> showing the info.
> 
> Thanks for testing,
> 
> Larry

Sorry, I assumed that the callback routine was called several times only
by looking at how much delay I was producing by putting ssleep(10) into it.

There's no more panic with the new version and the dmesg output looks
interesting.

Am I missing some firmware? /lib/firmware/b43 contains:

a0g0bsinitvals5.fw a0g0initvals5.fw a0g1bsinitvals5.fw
a0g1initvals5.fw b0g0bsinitvals5.fw b0g0initvals5.fw pcm5.fw ucode5.fw

Thanks for fixing this,
Felix

[-- Attachment #2: dmesg --]
[-- Type: text/plain, Size: 1946 bytes --]

[    0.502490] b43-phy0: Broadcom 4306 WLAN found (core revision 5)
[    0.543046] b43-phy0: Found PHY: Analog 2, Type 2 (G), Revision 2
[    0.705141] async load of b43/ucode5.fw
[    0.738576] Broadcom 43xx driver loaded [ Features: PL ]
[   62.284701] In callback routine, firmware not available
[   62.284712] Pid: 643, comm: kworker/0:2 Not tainted 3.7.0-rc8 #20
[   62.284715] Call Trace:
[   62.284734]  [<c12eefaa>] b43_fw_cb+0x1a/0x30
[   62.284746]  [<c12b3c5b>] request_firmware_work_func+0x5b/0xb0
[   62.284753]  [<c104b540>] process_one_work+0x110/0x380
[   62.284758]  [<c12b3c00>] ? _request_firmware_prepare.isra.14+0x380/0x380
[   62.284762]  [<c104c2e9>] worker_thread+0x119/0x340
[   62.284766]  [<c104c1d0>] ? manage_workers+0x260/0x260
[   62.284774]  [<c1050abf>] kthread+0x8f/0xa0
[   62.284783]  [<c14dffb7>] ret_from_kernel_thread+0x1b/0x28
[   62.284788]  [<c1050a30>] ? __kthread_bind+0x30/0x30
[   62.284793] Firmware not found
[   62.284799] async load of b43-open/ucode5.fw
[   62.323259] In callback routine, firmware not available
[   62.323267] Pid: 643, comm: kworker/0:2 Not tainted 3.7.0-rc8 #20
[   62.323269] Call Trace:
[   62.323278]  [<c12eefaa>] b43_fw_cb+0x1a/0x30
[   62.323284]  [<c12b3c5b>] request_firmware_work_func+0x5b/0xb0
[   62.323289]  [<c104b540>] process_one_work+0x110/0x380
[   62.323295]  [<c12b3c00>] ? _request_firmware_prepare.isra.14+0x380/0x380
[   62.323298]  [<c104c2e9>] worker_thread+0x119/0x340
[   62.323302]  [<c104c1d0>] ? manage_workers+0x260/0x260
[   62.323308]  [<c1050abf>] kthread+0x8f/0xa0
[   62.323314]  [<c14dffb7>] ret_from_kernel_thread+0x1b/0x28
[   62.323318]  [<c1050a30>] ? __kthread_bind+0x30/0x30
[   62.323322] Firmware not found
[   62.323329] b43-phy0 ERROR: You must go to http://wireless.kernel.org/en/users/Drivers/b43#devicefirmware and download the correct firmware for this driver version. Please carefully read all instructions on this website.

  reply	other threads:[~2012-12-08 17:56 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-06  3:47 [RFC/RFT] b43: Load initial firmware file asynchronously Larry Finger
2012-12-08 14:30 ` Felix Janda
2012-12-08 14:30   ` Felix Janda
2012-12-08 17:15   ` Larry Finger
2012-12-08 17:15     ` Larry Finger
2012-12-08 17:56     ` Felix Janda [this message]
2012-12-08 17:56       ` Felix Janda
2012-12-08 19:48       ` Larry Finger
2012-12-08 19:48         ` Larry Finger
     [not found]         ` <20121208202435.GA14973@gauss>
     [not found]           ` <50C3AF0C.8000607@lwfinger.net>
2012-12-08 21:41             ` Felix Janda
2012-12-08 21:41               ` Felix Janda
2012-12-08 22:19               ` Larry Finger
2012-12-08 22:19                 ` Larry Finger
2012-12-08 22:35                 ` Felix Janda
2012-12-08 22:35                   ` Felix Janda
2012-12-08 23:12                   ` Larry Finger
2012-12-08 23:12                     ` Larry Finger
2012-12-09  7:44                     ` Felix Janda
2012-12-09  7:44                       ` Felix Janda

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=20121208175615.GA10664@gauss \
    --to=felix.janda@posteo.de \
    --cc=Larry.Finger@lwfinger.net \
    --cc=b43-dev@lists.infradead.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linville@tuxdriver.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.