staging: ft1000: Create common return point.
authorMarek Belisko <marek.belisko@gmail.com>
Wed, 10 Nov 2010 09:04:30 +0000 (10:04 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 11 Nov 2010 00:28:29 +0000 (16:28 -0800)
When reg_ft1000_netdev() fails created kthread isn't stopped.
So add return point for stopping thread.

Signed-off-by: Marek Belisko <marek.belisko@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/ft1000/ft1000-usb/ft1000_usb.c

index dcbc97c432e57e1e8803c0861a28a9cb0a1ff0b3..99e3339023769abf71be4bececf972738c198d32 100644 (file)
@@ -178,15 +178,13 @@ static int ft1000_probe(struct usb_interface *interface,
 
        if (IS_ERR(pft1000info->pPollThread)) {
                ret = PTR_ERR(pft1000info->pPollThread);
-               goto err_load;
+               goto err_thread;
        }
 
        msleep(500);
 
        while (!pft1000info->CardReady) {
                if (gPollingfailed) {
-                       if (pft1000info->pPollThread)
-                               kthread_stop(pft1000info->pPollThread);
                        ret = -EIO;
                        goto err_load;
                }
@@ -207,6 +205,8 @@ static int ft1000_probe(struct usb_interface *interface,
        return 0;
 
 err_load:
+       kthread_stop(pft1000info->pPollThread);
+err_thread:
        kfree(pFileStart);
 err_fw:
        kfree(ft1000dev);