Re: regression: oops with usb bcm203x bluetooth dongle 2.6.5

From: Soeren Sonnenburg
Date: Tue Apr 06 2004 - 01:51:09 EST


On Tue, 2004-04-06 at 01:17, Marcel Holtmann wrote:
> Hi Soeren,
>
> > That is why I removed all the bluefw stuff in /etc/hotplug before
> > testing bluetooth again... but it still oopsed.
>
> maybe you wanna try 2.6.5-mh1 from http://www.bluez.org/patches.html
Alright so I did zcat patch.gz | patch -p0 and a make && make
modules_install and rebooted in the new 2.6.5-mh1 kernel.

Same oops again (see below)!
To be 100% sure I renamed /sbin/bluefw to /sbin/bluefw.inactive (same
oops once again). Then I renamed /sbin/hotplug to /sbin/hotplug.inactive
and manually modprobe bcm203x and then hci_usb.

This time firmware is loaded without any trouble (but this is the very
very rare case it never worked again ...) and hci0 is there and seems to
work...

So I rmmod bcm203x firmware_class hci_usb and wondered what could go
wrong when I do the very same with hotplug ?

So I had a look at the hotplug script and tried to process command by
command manually. Args with which the firmware script is called:
ACTION: add
SYSFS: /sys
DEVPATH: /class/firmware/1-1
FIRMWARE: BCM2033-MD.hex

FIRMWARE_DIR=/usr/lib/hotplug/firmware

# mountpoint of sysfs
SYSFS=$(sed -n 's/^.* \([^ ]*\) sysfs .*$/\1/p' /proc/mounts)

# use /proc for 2.4 kernels
if [ "$SYSFS" = "" ]; then
SYSFS=/proc
fi

#
# What to do with this firmware hotplug event?
#
case "$ACTION" in

add)
if [ ! -e $SYSFS/$DEVPATH/loading ]; then
sleep 1
fi

if [ -f "$FIRMWARE_DIR/$FIRMWARE" ]; then
echo 1 > $SYSFS/$DEVPATH/loading
cp "$FIRMWARE_DIR/$FIRMWARE" $SYSFS/$DEVPATH/data
echo 0 > $SYSFS/$DEVPATH/loading
else
echo -1 > $SYSFS/$DEVPATH/loading
fi

;;


I realized that when I use e.g

...
add)
n=0;
while [ $n -lt 10 ] && [ ! -e $SYSFS/$DEVPATH/loading ]; do
sleep 1
let n++
done

if [ -e $SYSFS/$DEVPATH/loading ]; then
if [ -f "$FIRMWARE_DIR/$FIRMWARE" ]; then
echo 1 > $SYSFS/$DEVPATH/loading
cp "$FIRMWARE_DIR/$FIRMWARE" $SYSFS/$DEVPATH/data
echo 0 > $SYSFS/$DEVPATH/loading
else
echo -1 > $SYSFS/$DEVPATH/loading
fi
fi

I don't get any more oopses.

But still firmware loading does not anymore work (without bluefw)

HTH,
Soeren.

devfs_mk_dev: could not append to parent for bluetooth/rfcomm/0
usb 1-1: new full speed USB device using address 2
Bluetooth: Broadcom Blutonium firmware driver ver 1.0
drivers/usb/core/usb.c: registered new driver bcm203x
usb 1-1: USB disconnect, address 2
usb 1-1: new full speed USB device using address 3
Oops: kernel access of bad area, sig: 11 [#1]
NIP: C0260554 LR: C02607F8 SP: EFEB9D00 REGS: efeb9c50 TRAP: 0301 Not tainted
MSR: 00009032 EE: 1 PR: 0 FP: 0 ME: 1 IR/DR: 11
DAR: 00000004, DSISR: 40000000
TASK = c1aee000[5] 'khubd' Last syscall: -1
GPR00: C02607F8 EFEB9D00 C1AEE000 EFCAE550 EE8B5CF4 00000000 EE874A90 C04622C4
GPR08: 00009032 00000017 00010C00 C04F9958 82008022
Call trace:
[c02607f8] usb_set_interface+0x94/0x164
[f2443ab4] hci_usb_probe+0x21c/0x48c [hci_usb]
[c0259f88] usb_probe_interface+0x80/0x98
[c01f5fac] bus_match+0x50/0x8c
[c01f6040] device_attach+0x58/0xbc
[c01f62c0] bus_add_device+0x7c/0xd8
[c01f4b60] device_add+0xb0/0x184
[c0260be4] usb_set_configuration+0x20c/0x25c
[c025b2c4] usb_new_device+0x2bc/0x3d4
[c025cd24] hub_port_connect_change+0x1a0/0x298
[c025d0f0] hub_events+0x2d4/0x354
[c025d1ac] hub_thread+0x3c/0xf4
[c000914c] kernel_thread+0x44/0x60


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/