2010-11-10 09:02:22

by Belisko Marek

[permalink] [raw]
Subject: [PATCH] staging: ft100: Create common return point.

When reg_ft1000_netdev() fails created kthread isn't stopped.
So add return point for stopping thread.

Signed-off-by: Marek Belisko <[email protected]>
---
drivers/staging/ft1000/ft1000-usb/ft1000_usb.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/ft1000/ft1000-usb/ft1000_usb.c b/drivers/staging/ft1000/ft1000-usb/ft1000_usb.c
index dcbc97c..99e3339 100644
--- a/drivers/staging/ft1000/ft1000-usb/ft1000_usb.c
+++ b/drivers/staging/ft1000/ft1000-usb/ft1000_usb.c
@@ -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);
--
1.7.1