lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5c0e697e-abca-bcf0-cf68-d9c240d82527@collabora.com>
Date:   Sun, 29 May 2022 19:59:10 +0300
From:   Dmitry Osipenko <dmitry.osipenko@...labora.com>
To:     Viresh Kumar <viresh.kumar@...aro.org>,
        "Rafael J. Wysocki" <rafael@...nel.org>,
        Thierry Reding <thierry.reding@...il.com>,
        Jonathan Hunter <jonathanh@...dia.com>
Cc:     linux-pm@...r.kernel.org,
        Vincent Guittot <vincent.guittot@...aro.org>,
        Rafael Wysocki <rjw@...ysocki.net>,
        Stephen Boyd <sboyd@...nel.org>, Nishanth Menon <nm@...com>,
        Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>,
        linux-tegra@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 08/31] cpufreq: tegra20: Migrate to
 dev_pm_opp_set_config()

On 5/29/22 19:19, Dmitry Osipenko wrote:
> On 5/26/22 14:42, Viresh Kumar wrote:
>> The OPP core now provides a unified API for setting all configuration
>> types, i.e. dev_pm_opp_set_config().
>>
>> Lets start using it.
>>
>> Signed-off-by: Viresh Kumar <viresh.kumar@...aro.org>
>> ---
>>  drivers/cpufreq/tegra20-cpufreq.c | 12 ++++++++----
>>  1 file changed, 8 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/cpufreq/tegra20-cpufreq.c b/drivers/cpufreq/tegra20-cpufreq.c
>> index e8db3d75be25..2c73623e3abb 100644
>> --- a/drivers/cpufreq/tegra20-cpufreq.c
>> +++ b/drivers/cpufreq/tegra20-cpufreq.c
>> @@ -34,7 +34,7 @@ static bool cpu0_node_has_opp_v2_prop(void)
>>  
>>  static void tegra20_cpufreq_put_supported_hw(void *opp_table)
>>  {
>> -	dev_pm_opp_put_supported_hw(opp_table);
>> +	dev_pm_opp_clear_config(opp_table);
>>  }
>>  
>>  static void tegra20_cpufreq_dt_unregister(void *cpufreq_dt)
>> @@ -49,6 +49,10 @@ static int tegra20_cpufreq_probe(struct platform_device *pdev)
>>  	struct device *cpu_dev;
>>  	u32 versions[2];
>>  	int err;
>> +	struct dev_pm_opp_config config = {
>> +		.supported_hw = versions,
>> +		.supported_hw_count = ARRAY_SIZE(versions),
>> +	};
>>  
>>  	if (!cpu0_node_has_opp_v2_prop()) {
>>  		dev_err(&pdev->dev, "operating points not found\n");
>> @@ -71,10 +75,10 @@ static int tegra20_cpufreq_probe(struct platform_device *pdev)
>>  	if (WARN_ON(!cpu_dev))
>>  		return -ENODEV;
>>  
>> -	opp_table = dev_pm_opp_set_supported_hw(cpu_dev, versions, 2);
>> -	err = PTR_ERR_OR_ZERO(opp_table);
>> +	opp_table = dev_pm_opp_set_config(cpu_dev, &config);
>> +	err = PTR_ERR(opp_table);
> 
> Please keep the PTR_ERR_OR_ZERO.
> 
> tegra20-cpufreq tegra20-cpufreq: failed to set OPP config: -1042688000
> 

With that fixed, now there is another error:

[    1.761945] cpu cpu0: _of_add_opp_table_v2: no supported OPPs
[    1.761960] cpu cpu0: OPP table can't be empty

I see this on Tegra30, but not on Tegra20. Apparently OPP table
refcounting is broken on Tegra30 by this patchset. To make it clear,
there are no error without these OPP patches applied. I may take a
closer look if will be needed, just ping me.

-- 
Best regards,
Dmitry

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ