Skip to content

Commit 372f7d6

Browse files
XidianGeneralKalle Valo
authored andcommitted
b43: Fix memory leaks in b43_bus_dev_ssb_init and b43_bus_dev_bcma_init
The memory allocated by kzalloc in b43_bus_dev_ssb_init and b43_bus_dev_bcma_init is not freed. This patch fixes the bug by adding kfree in b43_ssb_remove, b43_bcma_remove and error handling code of b43_bcma_probe. Thanks Michael for his suggestion. Signed-off-by: Jia-Ju Bai <baijiaju1990@163.com> Acked-by: Michael Büsch <m@bues.ch> Signed-off-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
1 parent 9a34921 commit 372f7d6

File tree

1 file changed

+4
-2
lines changed
  • drivers/net/wireless/broadcom/b43

1 file changed

+4
-2
lines changed

drivers/net/wireless/broadcom/b43/main.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5680,11 +5680,12 @@ static int b43_bcma_probe(struct bcma_device *core)
56805680
INIT_WORK(&wl->firmware_load, b43_request_firmware);
56815681
schedule_work(&wl->firmware_load);
56825682

5683-
bcma_out:
56845683
return err;
56855684

56865685
bcma_err_wireless_exit:
56875686
ieee80211_free_hw(wl->hw);
5687+
bcma_out:
5688+
kfree(dev);
56885689
return err;
56895690
}
56905691

@@ -5712,8 +5713,8 @@ static void b43_bcma_remove(struct bcma_device *core)
57125713
b43_rng_exit(wl);
57135714

57145715
b43_leds_unregister(wl);
5715-
57165716
ieee80211_free_hw(wl->hw);
5717+
kfree(wldev->dev);
57175718
}
57185719

57195720
static struct bcma_driver b43_bcma_driver = {
@@ -5796,6 +5797,7 @@ static void b43_ssb_remove(struct ssb_device *sdev)
57965797

57975798
b43_leds_unregister(wl);
57985799
b43_wireless_exit(dev, wl);
5800+
kfree(dev);
57995801
}
58005802

58015803
static struct ssb_driver b43_ssb_driver = {

0 commit comments

Comments
 (0)