Skip to content

Commit

Permalink
bcma: don't leak memory for PCIE, MIPS, GBIT cores
Browse files Browse the repository at this point in the history
bcma_scan_bus allocates a bcma_core for each core found on the bus, but the
memory for cores handled by the bcma driver itself was not being freed when
the bus was unregistered. This patch adds special handling for the PCIE,
MIPS, and GBIT COMMON cores, to ensure that their memory allocation is
freed as well.

Note that this patch doesn't address the memory allocated for the CC core,
as that was corrected in my previous patch "bcma: register cc core driver,
device."

Cc: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Saul St. John <saul.stjohn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Saul St. John authored and John W. Linville committed Sep 7, 2012
1 parent 0374737 commit ee91592
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions drivers/bcma/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down

0 comments on commit ee91592

Please sign in to comment.