staging: ft1000: Use return value for ft1000InitProc.
authorMarek Belisko <marek.belisko@open-nandra.com>
Thu, 9 Dec 2010 15:13:49 +0000 (16:13 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 10 Dec 2010 00:35:13 +0000 (16:35 -0800)
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>
drivers/staging/ft1000/ft1000-usb/ft1000_usb.c

index 7dfed41b02acc1654cd1501851c5a2f9e51f5eb1..0e1fc3f1e055775eb378a128846629723bddc093 100644 (file)
@@ -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: