Re: Bug in BCMA: device_unregister causing "NULL pointer dereference at"

From: RafaÅ MiÅecki
Date: Thu Jul 07 2011 - 11:27:31 EST


W dniu 7 lipca 2011 17:25 uÅytkownik RafaÅ MiÅecki <zajec5@xxxxxxxxx> napisaÅ:
> I've problem with bcma and bus subsystem.
>
> This works fine:
> modprobe bcma; rmmod bcma
>
> This:
> modprobe bcma; modprobe b43; rmmod b43; rmmod bcma
> causes:
> BUG: unable to handle kernel NULL pointer dereference at  (null)
>
> My BCMA has only 3 fores, out of them only 1 is registered as device:
> bcma: Core 0 found: ChipCommon (manuf 0x4BF, id 0x800, rev 0x22, class 0x0)
> bcma: Core 1 found: IEEE 802.11 (manuf 0x4BF, id 0x812, rev 0x17, class 0x0)
> bcma: Core 2 found: PCIe (manuf 0x4BF, id 0x820, rev 0x0F, class 0x0)
>
> The dereference comes out from
> static void bcma_unregister_cores(struct bcma_bus *bus)
>
> There is a simple loop:
> list_for_each_entry(core, &bus->cores, list) {
> Â Â Â Âif (core->dev_registered)
> Â Â Â Â Â Â Â Âdevice_unregister(&core->dev);
> }
>
>
> So when I unload bcma after I got driver (b43) for 0x812 core, I get
> NULL pointer dereference.
>
> Any tip, why does it happen?

Dmesg

--
RafaÅ

Attachment: dmesg.log
Description: Binary data