diff --git a/drivers/bcma/main.c b/drivers/bcma/main.c index a8f570d69075bcd46e4e0bcf6c33735ecf5bf0e2..432aeeedfd5e6992c28ea081e4185bf88ffeed8e 100644 --- a/drivers/bcma/main.c +++ b/drivers/bcma/main.c @@ -227,7 +227,17 @@ int __devinit bcma_bus_register(struct bcma_bus *bus) void bcma_bus_unregister(struct bcma_bus *bus) { + struct bcma_device *cores[3]; + + cores[0] = bcma_find_core(bus, BCMA_CORE_MIPS_74K); + cores[1] = bcma_find_core(bus, BCMA_CORE_PCIE); + cores[2] = bcma_find_core(bus, BCMA_CORE_4706_MAC_GBIT_COMMON); + bcma_unregister_cores(bus); + + kfree(cores[2]); + kfree(cores[1]); + kfree(cores[0]); } int __init bcma_bus_early_register(struct bcma_bus *bus,