summaryrefslogtreecommitdiff
authorrenjiang.han <renjiang.han@amlogic.com>2019-05-16 08:34:31 (GMT)
committer Tao Zeng <tao.zeng@amlogic.com>2019-05-17 06:30:53 (GMT)
commit8bbc052df4711057692f9a0a816c32c73503e8a2 (patch)
tree2bb7b95deca71e3c4042120314fa0a3b377ffb12
parent97d8a70bb0df8b2579ef542ab84f655aeaddc59b (diff)
downloadcommon-8bbc052df4711057692f9a0a816c32c73503e8a2.zip
common-8bbc052df4711057692f9a0a816c32c73503e8a2.tar.gz
common-8bbc052df4711057692f9a0a816c32c73503e8a2.tar.bz2
ppmgr: Add IS_ERR_OR_NULL to determine if the thread exists [1/1]
PD#SWPL-8658 Problem: handle is NULL cause kernel panic. Solution: Add IS_ERR_OR_NULL to prevent hanle from being NULL to cause kernel panic. Verify: on T962X2 Change-Id: I3086a497d99646e6475a93b5a53b3c9aca2d2ada Signed-off-by: renjiang.han <renjiang.han@amlogic.com>
Diffstat
-rw-r--r--drivers/amlogic/media/video_processor/ppmgr/ppmgr_vpp.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/drivers/amlogic/media/video_processor/ppmgr/ppmgr_vpp.c b/drivers/amlogic/media/video_processor/ppmgr/ppmgr_vpp.c
index 225b887..1e954a1 100644
--- a/drivers/amlogic/media/video_processor/ppmgr/ppmgr_vpp.c
+++ b/drivers/amlogic/media/video_processor/ppmgr/ppmgr_vpp.c
@@ -3608,7 +3608,10 @@ int start_ppmgr_task(void)
ppmgr_quit_flag = false;
task = kthread_run(ppmgr_task, 0, "ppmgr");
}
- task_running = 1;
+ if (!IS_ERR_OR_NULL(task))
+ task_running = 1;
+ else
+ task = NULL;
return 0;
}
@@ -3617,7 +3620,7 @@ void stop_ppmgr_task(void)
#ifdef PPMGR_TB_DETECT
stop_tb_task();
#endif
- if (task) {
+ if (!IS_ERR_OR_NULL(task)) {
/* send_sig(SIGTERM, task, 1); */
ppmgr_quit_flag = true;
up(&thread_sem);
@@ -3862,7 +3865,10 @@ int start_tb_task(void)
tb_detect_init();
tb_detect_task = kthread_run(tb_task, 0, "tb_detect");
}
- tb_task_running = 1;
+ if (!IS_ERR_OR_NULL(tb_detect_task))
+ tb_task_running = 1;
+ else
+ tb_detect_task = NULL;
return 0;
}
@@ -3870,7 +3876,7 @@ void stop_tb_task(void)
{
int val = 0;
- if (tb_detect_task) {
+ if (!IS_ERR_OR_NULL(tb_detect_task)) {
tb_quit_flag = true;
up(&tb_sem);
/* send_sig(SIGTERM, tb_detect_task, 1); */