Browse Source

staging: ft1000: Use return value for ft1000InitProc.

Add checking for return value ft1000InitProc and cleanup
if something fail.

Signed-off-by: Marek Belisko <marek.belisko@open-nandra.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Marek Belisko 14 years ago
parent
commit
1c46282421
1 changed files with 7 additions and 2 deletions
  1. 7 2
      drivers/staging/ft1000/ft1000-usb/ft1000_usb.c

+ 7 - 2
drivers/staging/ft1000/ft1000-usb/ft1000_usb.c

@@ -198,12 +198,17 @@ static int ft1000_probe(struct usb_interface *interface,
 	if (ret)
 		goto err_thread;
 
-	pft1000info->NetDevRegDone = 1;
+	ret = ft1000InitProc(ft1000dev->net);
+	if (ret)
+		goto err_proc;
 
-	ft1000InitProc(ft1000dev->net);
+	pft1000info->NetDevRegDone = 1;
 
 	return 0;
 
+err_proc:
+	unregister_netdev(ft1000dev->net);
+	free_netdev(ft1000dev->net);
 err_thread:
 	kthread_stop(pft1000info->pPollThread);
 err_load: