[PATCH] cpufreq_sched: set governor_data before waking up kschedfreq
Fix null pointer dereference error liked below. This BUG can be easily re-produced by 'monkey --throttle 50' in android 6.0. Unable to handle kernel NULL pointer dereference at virtual address 0010 [KERN Warning] check backtrace: CPU: 0 PID: 10714 Comm: kschedfreq:0 Tainted: Call trace: [] dump_backtrace+0x0/0x15c [] show_stack+0x10/0x1c [] dump_stack+0x74/0xb8 [] debug_locks_off+0x4c/0x7c [] oops_enter+0xc/0x28 [] die+0x2c/0x1a4 [] __do_kernel_fault.part.5+0x70/0x84 [] do_page_fault+0x344/0x348 [] do_translation_fault+0xbc/0xf0 [] do_mem_abort+0x38/0x9c [] el1_da+0x14/0x80 [] kthread+0xd4/0xec Signed-off-by: Pingbo Wen --- kernel/sched/cpufreq_sched.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/sched/cpufreq_sched.c b/kernel/sched/cpufreq_sched.c index e1d208e..93731ef 100644 --- a/kernel/sched/cpufreq_sched.c +++ b/kernel/sched/cpufreq_sched.c @@ -265,6 +265,8 @@ static int cpufreq_sched_policy_init(struct cpufreq_policy *policy) pr_debug("%s: throttle threshold = %u [ns]\n", __func__, gd->throttle_nsec); + policy->governor_data = gd; + if (cpufreq_driver_is_slow()) { cpufreq_driver_slow = true; gd->task = kthread_create(cpufreq_sched_thread, policy, @@ -281,7 +283,6 @@ static int cpufreq_sched_policy_init(struct cpufreq_policy *policy) init_irq_work(&gd->irq_work, cpufreq_sched_irq_work); } - policy->governor_data = gd; set_sched_freq(); return 0; -- 1.9.1
Re: [Eas-dev] [PATCH] cpufreq_sched: set governor_data before waking up kschedfreq
Hi, On 20/02/16 19:32, Pingbo Wen wrote: > Fix null pointer dereference error liked below. This BUG can be easily > re-produced by 'monkey --throttle 50' in android 6.0. > I'm not sure which code base you are looking at here, but I think this problem has already been noticed and fixed by Ricky. Thanks for sharing your fix, though. However, I'm afraid that eas-dev might be not open, so please don't cross post in the future. Best, - Juri
Re: [Eas-dev] [PATCH] cpufreq_sched: set governor_data before waking up kschedfreq
Hi, Juri On Monday, February 22, 2016 06:53 PM, Juri Lelli wrote: > Hi, > > On 20/02/16 19:32, Pingbo Wen wrote: >> Fix null pointer dereference error liked below. This BUG can be easily >> re-produced by 'monkey --throttle 50' in android 6.0. >> > > I'm not sure which code base you are looking at here, but I think this > problem has already been noticed and fixed by Ricky. Thanks for sharing > your fix, though. I pulled git://linux-arm.org/linux-power.git origin/energy_model_rfc_v5.2, but didn't get any new commits about this bug. Where can I find the latest branch? Pingbo
Re: [Eas-dev] [PATCH] cpufreq_sched: set governor_data before waking up kschedfreq
On 22/02/16 19:32, Pingbo Wen wrote: > Hi, Juri > > On Monday, February 22, 2016 06:53 PM, Juri Lelli wrote: > > Hi, > > > > On 20/02/16 19:32, Pingbo Wen wrote: > >> Fix null pointer dereference error liked below. This BUG can be easily > >> re-produced by 'monkey --throttle 50' in android 6.0. > >> > > > > I'm not sure which code base you are looking at here, but I think this > > problem has already been noticed and fixed by Ricky. Thanks for sharing > > your fix, though. > > I pulled git://linux-arm.org/linux-power.git origin/energy_model_rfc_v5.2, > but didn't get any new commits about this bug. Where can I find the latest > branch? > The fix is not yet present in any branch, but I think it has been already discussed in Steve's last RFC. I guess it will be incorporated in his next version. Best, - Juri