Re: [PATCH] cpufreq: Fix policy->freq_table is NULL in __cpufreq_driver_target()

From: Rafael J. Wysocki
Date: Thu Mar 30 2023 - 06:10:36 EST


On Thu, Mar 30, 2023 at 5:57 AM Viresh Kumar <viresh.kumar@xxxxxxxxxx> wrote:
>
> On 30-03-23, 01:39, Yajun Deng wrote:
> > March 29, 2023 10:21 PM, "Rafael J. Wysocki" <rafael@xxxxxxxxxx> wrote:
> >
> > > On Wed, Mar 29, 2023 at 3:36 PM Yajun Deng <yajun.deng@xxxxxxxxx> wrote:
> > >
> > >> __resolve_freq() may be return target_freq if policy->freq_table is
> > >> NULL. In this case, it should return -EINVAL before __target_index().
> > >
> > > Even so, __target_index() itself doesn't dereference freq_table
> > > AFAICS, so arguably the driver should be prepared to deal with a NULL
> > > freq_table which comes from it after all.
> > >
> >
> > But there is a statement 'unsigned int newfreq = policy->freq_table[index].frequency;'
> > in __target_index(), if driver doesn't provide freq_table, __target_index()
> > will fault before the driver itself.
>
> Driver must provide a freq table here.

OK, so let's do the check when the driver gets registered.