From: 黄涛 Date: Thu, 3 Mar 2011 11:31:05 +0000 (+0800) Subject: rk29: backlight: fix kernel BUG by double add_timer while fast suspend/resume X-Git-Tag: firefly_0821_release~10721 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=71d7d8f486173c33e1832860c180515f9a8e5134;p=firefly-linux-kernel-4.4.55.git rk29: backlight: fix kernel BUG by double add_timer while fast suspend/resume fix this bug: kernel BUG at kernel/timer.c:791! Unable to handle kernel NULL pointer dereference at virtual address 00000000 pgd = c0404000 [00000000] *pgd=00000000 Internal error: Oops: 817 [#1] PREEMPT last sysfs file: /sys/devices/platform/rk29_i2c.0/i2c-0/0-0055/power_supply/bq27510-battery/status Modules linked in: wlan CPU: 0 Not tainted (2.6.32.27 #2) PC is at __bug+0x18/0x24 LR is at __bug+0x14/0x24 [] (__bug+0x18/0x24) from [] (add_timer+0x1c/0x2c) [] (add_timer+0x1c/0x2c) from [] (late_resume+0x104/0x158) [] (late_resume+0x104/0x158) from [] (worker_thread+0x180/0x22c) [] (worker_thread+0x180/0x22c) from [] (kthread+0x78/0x80) [] (kthread+0x78/0x80) from [] (kernel_thread_exit+0x0/0x8) --- diff --git a/drivers/video/backlight/rk29_backlight.c b/drivers/video/backlight/rk29_backlight.c index ecb362ee57b4..86b25cde8798 100644 --- a/drivers/video/backlight/rk29_backlight.c +++ b/drivers/video/backlight/rk29_backlight.c @@ -201,6 +201,7 @@ static void rk29_bl_suspend(struct early_suspend *h) clk_disable(pwm_clk); suspend_flag = 1; + del_timer_sync(&rk29_bl_info->timer); }