From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jacob Shin Subject: Re: od_set_powersave_bias: NULL pointer dereference Date: Wed, 26 Jun 2013 12:57:22 -0500 Message-ID: <20130626175722.GA20226@jshin-Toonie> References: <51C87ADC.4070409@canonical.com> <20130625161935.GA10208@jshin-Toonie> <20130626142852.GA2326@jshin-Toonie> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Return-path: Content-Disposition: inline In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org To: Viresh Kumar Cc: Tim Gardner , "Rafael J. Wysocki" , LKML , cpufreq@vger.kernel.org, linux-pm@vger.kernel.org List-Id: linux-pm@vger.kernel.org On Wed, Jun 26, 2013 at 08:02:29PM +0530, Viresh Kumar wrote: > On 26 June 2013 19:58, Jacob Shin wrote: > > On Wed, Jun 26, 2013 at 12:18:27PM +0530, Viresh Kumar wrote: > > >> I am not sure if this is enough. What if we had ondemand as the > >> governor initially, then we changed it to something else. Now also > >> cur_policy contains a address and isn't zero. I just tested this case with this patch applied, and did not have any problems. > >> > >> > cpumask_or(&done, &done, policy->cpus); > >> > + > >> > + if (policy->governor != &cpufreq_gov_ondemand) > >> > + continue; > > > > This should catch that case no ? > > Policy might be freed and reallocated by then. And so doing > policy->governor is dangerous. Are you worried that after we have passed the above if check, and before we access ->tuner governor change might occur? Is there something synonymous to get/put_online_cpus() for cpufreq to prevent governor change while we update ->tuner values? Otherwise, should just spinlock?