audio: Fix panic on add_timer [1/1]
authorShuai Li <shuai.li@amlogic.com>
Mon, 22 Jul 2019 06:13:48 +0000 (14:13 +0800)
committerTao Zeng <tao.zeng@amlogic.com>
Thu, 25 Jul 2019 03:08:07 +0000 (20:08 -0700)
PD#TV-7920

Problem:
Audio drive caused kernel panic.
BUG_ON timer_pending.

Solution:
Add timer will panic calling add_timer.
If timer is pending we need use mod_timer
to deal with this case.

Verify:
T962

Change-Id: Ib4143de384af40803609c3513ad07eeb3fe59bbf
Signed-off-by: Shuai Li <shuai.li@amlogic.com>
sound/soc/amlogic/meson/i2s.c

index 461fe03e9f4dc958a78e0aec901d32d4c84af36c..c562c1584c2deccebe9c327f6ed665679fad7d44 100644 (file)
@@ -463,8 +463,7 @@ static void start_timer(struct aml_runtime_data *prtd)
                hrtimer_start(&prtd->hrtimer, prtd->wakeups_per_second,
                                  HRTIMER_MODE_REL);
 #else
-               prtd->timer.expires = jiffies + 1;
-               add_timer(&prtd->timer);
+               mod_timer(&prtd->timer, jiffies + 1);
 #endif
 #endif
                prtd->active = 1;