Subject: [PATCH 2/3] airo: Fix an error path memory leak

From: Michal Schmidt <[email-masked]>
Date: Fri, 16 Mar 2007 12:42:59 +0100

The airo driver leaks memory if request_irq() fails.

Signed-off-by: Michal Schmidt <[email-masked]>

diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c
index 71ac1f1..0d5b433 100644
--- a/drivers/net/wireless/airo.c
+++ b/drivers/net/wireless/airo.c
@@ -2850,7 +2850,7 @@ static struct net_device *_init_airo_card( unsigned short irq, int port,
 	if (rc) {
 		airo_print_err(dev->name, "register interrupt %d failed, rc %d",
 				irq, rc);
-		goto err_out_unlink;
+		goto err_out_nets;
 	}
 	if (!is_pcmcia) {
 		if (!request_region( dev->base_addr, 64, dev->name )) {
@@ -2933,6 +2933,8 @@ err_out_res:
 	        release_region( dev->base_addr, 64 );
 err_out_irq:
 	free_irq(dev->irq, dev);
+err_out_nets:
+	airo_networks_free(ai);
 err_out_unlink:
 	del_airo_dev(dev);
 err_out_thr: