Ubuntu

b43 panic

Reported by Jeremy Huddleston on 2009-09-15
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Linux
Fix Released
Medium
linux (Ubuntu)
Undecided
Unassigned

Bug Description

Binary package hint: kernel-image-2.6.31-8-powerpc-di

With the Karmic kernel, the system panics on shutdown. The stack trace indicates it is failing in the broadcom wireless driver (b43). This problem happens with the built Karmic kernels (all 2.6.31 builds I've tried) as well as custom built kernels from mainline.

http://bugzilla.kernel.org/show_bug.cgi?id=14181

Hi Jeremy,

It's most helpful to the kernel developers if you can capture the entire contents of the Kernel panic. Can you try installing the linux-crashdump package which can often help capture the contents of a kernel panic, especially in the event of a sudden system freeze/lockup. You will first need to install the linux-crashdump package, the apport-retrace package, and then reboot the system.

sudo apt-get install apport-retrace linux-crashdump
sudo reboot

Once installed and rebooted, shutdown the system to trigger the panic. Upon the next reboot, run the following command from a Terminal (Applications->Accessories->Terminal):

sudo apport-retrace -s -R /var/crash/linux-image*-.crash > /tmp/crash.log

This will hopefully have collects the contents of the panic and write it to /tmp/crash.log . Please attach the resulting "crash.log" file to this bug report. For additional information, please refer to https://wiki.ubuntu.com/KernelTeam/CrashdumpRecipe . Thanks in advance.

Changed in linux (Ubuntu):
status: New → Incomplete
Changed in linux:
status: Unknown → Confirmed
Jeremy Huddleston (jeremyhu) wrote :
Download full text (4.1 KiB)

This happens just by disabling wireless once it's active, so it's easier to verify. Here's the log:

[ 46.732182] eth0: no IPv6 routers present
[ 49.568008] ondemand governor failed, too long transition latency of HW, fallback to performance governor
[ 86.389403] wlan0: authenticate with AP 00:1f:9e:8d:ab:50
[ 86.391480] wlan0: authenticated
[ 86.391493] wlan0: associate with AP 00:1f:9e:8d:ab:50
[ 86.394154] wlan0: RX AssocResp from 00:1f:9e:8d:ab:50 (capab=0x421 status=0 aid=1)
[ 86.394163] wlan0: associated
[ 86.400101] ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[ 86.435719] cfg80211: Calling CRDA for country: US
[ 86.512979] cfg80211: Current regulatory domain updated by AP to: US
[ 86.512992] (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 86.512997] (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2700 mBm)
[ 96.780199] wlan0: no IPv6 routers present
[ 100.419999] ondemand governor failed, too long transition latency of HW, fallback to performance governor
[ 129.672373] wlan0: authenticate with AP 00:1f:9e:8d:b6:a0
[ 129.673663] wlan0: authenticated
[ 129.673674] wlan0: associate with AP 00:1f:9e:8d:b6:a0
[ 129.696196] wlan0: RX ReassocResp from 00:1f:9e:8d:b6:a0 (capab=0x421 status=0 aid=13)
[ 129.696207] wlan0: associated
[ 155.232787] wlan0: disassociating by local choice (reason=3)
[ 155.258139] wlan0: deauthenticating by local choice (reason=3)
[ 156.816231] Machine check in kernel mode.
[ 156.816244] Caused by (from SRR1=149030): Transfer error ack signal
[ 156.816301] Oops: Machine check, sig: 7 [#1]
[ 156.816306] PowerMac
[ 156.816308] Modules linked in: binfmt_misc radeon drm af_packet ppdev lp parport rfcomm sco bridge stp bnep l2cap ipv6 cpufreq_ondemand cpufreq_conservative cpufreq_powersave cpufreq_userspace cpufreq_stats therm_adt746x sbp2 apm_emu apm_emulation snd_aoa_codec_tas snd_aoa_fabric_layout snd_aoa snd_aoa_i2sbus snd_pcm_oss snd_mixer_oss snd_pcm snd_page_alloc snd_seq_dummy snd_seq_oss snd_seq_midi snd_rawmidi snd_seq_midi_event btusb snd_seq bluetooth arc4 snd_timer ecb snd_seq_device joydev b43 snd soundcore evdev appletouch mac80211 pmac_zilog ams input_polldev pcmcia cfg80211 yenta_socket snd_aoa_soundbus rfkill rsrc_nonstatic pcmcia_core serial_core rtc_generic ext3 jbd mbcache hid_apple ohci1394 ieee1394 sungem sungem_phy usbhid hid ssb uninorth_agp agpgart windfarm_core
[ 156.816385] NIP: c001d644 LR: f20b7a64 CTR: c001d63c
[ 156.816391] REGS: ef87fe10 TRAP: 0200 Not tainted (2.6.31-6-powerpc)
[ 156.816394] MSR: 00149030 <EE,ME,IR,DR> CR: 42000082 XER: 00000000
[ 156.816404] TASK = ef84bd40[5] 'events/0' THREAD: ef87e000
[ 156.816407] GPR00: ef8df450 ef87fec0 ef84bd40 00000000 0000049a 00010000 00000002 00000010
[ 156.816415] GPR08: ee509f50 f20ba714 00000000 c001d63c 22000082 00000000 0021b960 0021b9e4
[ 156.816423] GPR16: 0021b93c 0021bb28 002413b0 0021b860 ef84bd40 ee91e900 c04cd7cc c04cd804
[ 156.816431] GPR24: c0510f40 ee9579c0 ef8df400 00000001 ee9571a0 f2537808 0000049a ef8df400
[ 156.816453] NIP [c001d644] ioread16+0x8/0x18
[ 156.816476] LR [f20b7a64] ssb_pci_read16+0x34/0x70 [ssb]
[ 156.816480] Call Trace:...

Read more...

Jeremy Huddleston (jeremyhu) wrote :

It doesn't look like I have access to linux-crashdump. It's only built for i386 and x86_64 ... should I build it manually for ppc, or is there a reason it's not built for ppc?

http://packages.ubuntu.com/karmic/linux-crashdump

Jeremy Huddleston (jeremyhu) wrote :

For that matter, it doesn't look like the linux-crashdump package even installs anything:

http://packages.ubuntu.com/karmic/amd64/linux-crashdump/filelist

Jeremy Huddleston (jeremyhu) wrote :

I can't run apport-retrace because of bug #436157.

The problem occurs when doing 'ifconfig wlan0 down' ... but I can work around it by just 'rmmod b43' instead.

Jeremy Huddleston (jeremyhu) wrote :

Here is the patch from the upstream bug report which I have verified to correct the problem.

Changed in linux:
status: Confirmed → Fix Released
Jeremy Huddleston (jeremyhu) wrote :

Here is the final released fix:

diff --git a/drivers/net/wireless/b43/rfkill.c b/drivers/net/wireless/b43/rfkill.c
index 31e5599..dcde92d 100644
--- a/drivers/net/wireless/b43/rfkill.c
+++ b/drivers/net/wireless/b43/rfkill.c
@@ -33,7 +33,8 @@ bool b43_is_hw_radio_enabled(struct b43_wldev *dev)
                      & B43_MMIO_RADIO_HWENABLED_HI_MASK))
                        return 1;
        } else {
- if (b43_read16(dev, B43_MMIO_RADIO_HWENABLED_LO)
+ if (b43_status(dev) >= B43_STAT_STARTED &&
+ b43_read16(dev, B43_MMIO_RADIO_HWENABLED_LO)
                    & B43_MMIO_RADIO_HWENABLED_LO_MASK)
                        return 1;
        }

Jeremy Huddleston (jeremyhu) wrote :

This has been upstream since November. When is it going to land in an updated Ubuntu kernel?

Changed in linux:
importance: Unknown → Medium
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.