summaryrefslogtreecommitdiff
path: root/drivers/media/radio/CG2900/cg2900_fm_driver.c
diff options
context:
space:
mode:
authorHemant Gupta <hemant.gupta@stericsson.com>2011-08-25 17:07:19 +0530
committerPhilippe Langlais <philippe.langlais@stericsson.com>2012-05-22 11:06:02 +0200
commit3c7ad0557eac4106b99daae678b534c206486aec (patch)
treef1d5b9c4ec112d830de1c0e64bd9d92e6d91f994 /drivers/media/radio/CG2900/cg2900_fm_driver.c
parentcf6f957122407f33d18d59926dc2dfe47482b4f8 (diff)
CG2900 FM Radio: BandScan IOCTL Calls Hangs.
This patch fixes the issue of Bandscan not returning, resulting in failure of test case. This patch also fixes spin_unlock issue in corner case. ST-Ericsson Linux next: NA ST-Ericsson ID: 352330 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I48b15be434cf9488626bcd184be087bbe56c9663 Signed-off-by: Hemant Gupta <hemant.gupta@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/30557 Reviewed-by: Johan PALMAEUS <johan.xj.palmaeus@stericsson.com> Reviewed-by: Virupax SADASHIVPETIMATH <virupax.sadashivpetimath@stericsson.com> Tested-by: Virupax SADASHIVPETIMATH <virupax.sadashivpetimath@stericsson.com>
Diffstat (limited to 'drivers/media/radio/CG2900/cg2900_fm_driver.c')
-rw-r--r--drivers/media/radio/CG2900/cg2900_fm_driver.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/media/radio/CG2900/cg2900_fm_driver.c b/drivers/media/radio/CG2900/cg2900_fm_driver.c
index 4120eaa4d50..ad04705cc55 100644
--- a/drivers/media/radio/CG2900/cg2900_fm_driver.c
+++ b/drivers/media/radio/CG2900/cg2900_fm_driver.c
@@ -1023,7 +1023,7 @@ static void fmd_read_cb(
FM_INFO_REPORT("fmd_read_cb");
if (skb->data == NULL || skb->len == 0)
- goto error;
+ return;
spin_lock(&fmd_spinlock_read);
CG2900_HEX_READ_PACKET_DUMP;
@@ -1035,7 +1035,6 @@ static void fmd_read_cb(
FM_GET_PKT_LEN(skb->data),
FM_GET_RSP_PKT_ADDR(skb->data));
-error:
kfree_skb(skb);
spin_unlock(&fmd_spinlock_read);
}
@@ -4639,11 +4638,8 @@ void fmd_stop_rds_thread(void)
sema_init(&rds_sem, 0);
cb_rds_func = NULL;
rds_thread_required = false;
- if (rds_thread_task) {
- kthread_stop(rds_thread_task);
+ if (rds_thread_task)
rds_thread_task = NULL;
- return;
- }
}
void fmd_get_rds_sem(void)