From: Dmitry Osipenko <digetx@gmail.com> To: Viresh Kumar <viresh.kumar@linaro.org>, Viresh Kumar <vireshk@kernel.org>, Nishanth Menon <nm@ti.com>, Stephen Boyd <sboyd@kernel.org> Cc: linux-pm@vger.kernel.org, Vincent Guittot <vincent.guittot@linaro.org>, Rafael Wysocki <rjw@rjwysocki.net>, Sibi Sankar <sibis@codeaurora.org>, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, "linux-tegra@vger.kernel.org" <linux-tegra@vger.kernel.org> Subject: Re: [PATCH 07/13] opp: Allow _generic_set_opp_clk_only() to work for non-freq devices Date: Thu, 21 Jan 2021 23:26:43 +0300 [thread overview] Message-ID: <9b2638e6-b842-8737-e5a0-aeeb84927fce@gmail.com> (raw) In-Reply-To: <1585f6c21ea8aee64fe4da0bf72b36ea4d74a779.1611227342.git.viresh.kumar@linaro.org> 21.01.2021 14:17, Viresh Kumar пишет: > In order to avoid conditional statements at the caller site, this patch > updates _generic_set_opp_clk_only() to work for devices that don't > change frequency (like power domains, etc.). Return 0 if the clk pointer > passed to this routine is not valid. > > Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> > --- ... Hello Viresh, Thank you very much for yours effort! I gave a quick test to this series and instantly found one small issue in this patch. > + /* We may reach here for devices which don't change frequency */ > + if (unlikely(!clk)) I replaced dev_pm_opp_set_voltage() with dev_pm_opp_set_opp() in the Tegra PD driver and got a crash, which happens because the above line should be: if (IS_ERR(clk)) The opp_table->clk is initialized to ERR_PTR(-ENOENT) if device doesn't have a clock, like a power domain device in my case. Everything works good after fixing this patch. I'll keep testing and will be taking a closer look at the rest of the patches over this weekend. For the record, here is a backtrace of the crash: Unable to handle kernel NULL pointer dereference at virtual address 00000016 ... (clk_set_rate) from (_set_opp) (_set_opp) from (dev_pm_opp_set_opp) (dev_pm_opp_set_opp) from (tegra_genpd_set_performance_state) (tegra_genpd_set_performance_state) from (_genpd_set_performance_state) (_genpd_set_performance_state) from (dev_pm_genpd_set_performance_state) (dev_pm_genpd_set_performance_state) from (_set_required_opp) (_set_required_opp) from (_set_opp) (_set_opp) from (dev_pm_opp_set_rate) (dev_pm_opp_set_rate) from (host1x_runtime_resume) (host1x_runtime_resume) from (genpd_runtime_resume) (genpd_runtime_resume) from (__rpm_callback) (__rpm_callback) from (rpm_callback) (rpm_callback) from (rpm_resume) (rpm_resume) from (__pm_runtime_resume) (__pm_runtime_resume) from (host1x_probe) (host1x_probe) from (platform_probe) (platform_probe) from (really_probe) (really_probe) from (driver_probe_device) (driver_probe_device) from (device_driver_attach) (device_driver_attach) from (__driver_attach) (__driver_attach) from (bus_for_each_dev) (bus_for_each_dev) from (bus_add_driver) (bus_add_driver) from (driver_register) (driver_register) from (__platform_register_drivers) (__platform_register_drivers) from (host1x_module_init) (host1x_module_init) from (do_one_initcall) (do_one_initcall) from (kernel_init_freeable) (kernel_init_freeable) from (kernel_init)
WARNING: multiple messages have this Message-ID
From: Dmitry Osipenko <digetx@gmail.com> To: Viresh Kumar <viresh.kumar@linaro.org>, Viresh Kumar <vireshk@kernel.org>, Nishanth Menon <nm@ti.com>, Stephen Boyd <sboyd@kernel.org> Cc: Vincent Guittot <vincent.guittot@linaro.org>, linux-pm@vger.kernel.org, Rafael Wysocki <rjw@rjwysocki.net>, linux-kernel@vger.kernel.org, Sibi Sankar <sibis@codeaurora.org>, "linux-tegra@vger.kernel.org" <linux-tegra@vger.kernel.org>, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH 07/13] opp: Allow _generic_set_opp_clk_only() to work for non-freq devices Date: Thu, 21 Jan 2021 23:26:43 +0300 [thread overview] Message-ID: <9b2638e6-b842-8737-e5a0-aeeb84927fce@gmail.com> (raw) In-Reply-To: <1585f6c21ea8aee64fe4da0bf72b36ea4d74a779.1611227342.git.viresh.kumar@linaro.org> 21.01.2021 14:17, Viresh Kumar пишет: > In order to avoid conditional statements at the caller site, this patch > updates _generic_set_opp_clk_only() to work for devices that don't > change frequency (like power domains, etc.). Return 0 if the clk pointer > passed to this routine is not valid. > > Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> > --- ... Hello Viresh, Thank you very much for yours effort! I gave a quick test to this series and instantly found one small issue in this patch. > + /* We may reach here for devices which don't change frequency */ > + if (unlikely(!clk)) I replaced dev_pm_opp_set_voltage() with dev_pm_opp_set_opp() in the Tegra PD driver and got a crash, which happens because the above line should be: if (IS_ERR(clk)) The opp_table->clk is initialized to ERR_PTR(-ENOENT) if device doesn't have a clock, like a power domain device in my case. Everything works good after fixing this patch. I'll keep testing and will be taking a closer look at the rest of the patches over this weekend. For the record, here is a backtrace of the crash: Unable to handle kernel NULL pointer dereference at virtual address 00000016 ... (clk_set_rate) from (_set_opp) (_set_opp) from (dev_pm_opp_set_opp) (dev_pm_opp_set_opp) from (tegra_genpd_set_performance_state) (tegra_genpd_set_performance_state) from (_genpd_set_performance_state) (_genpd_set_performance_state) from (dev_pm_genpd_set_performance_state) (dev_pm_genpd_set_performance_state) from (_set_required_opp) (_set_required_opp) from (_set_opp) (_set_opp) from (dev_pm_opp_set_rate) (dev_pm_opp_set_rate) from (host1x_runtime_resume) (host1x_runtime_resume) from (genpd_runtime_resume) (genpd_runtime_resume) from (__rpm_callback) (__rpm_callback) from (rpm_callback) (rpm_callback) from (rpm_resume) (rpm_resume) from (__pm_runtime_resume) (__pm_runtime_resume) from (host1x_probe) (host1x_probe) from (platform_probe) (platform_probe) from (really_probe) (really_probe) from (driver_probe_device) (driver_probe_device) from (device_driver_attach) (device_driver_attach) from (__driver_attach) (__driver_attach) from (bus_for_each_dev) (bus_for_each_dev) from (bus_add_driver) (bus_add_driver) from (driver_register) (driver_register) from (__platform_register_drivers) (__platform_register_drivers) from (host1x_module_init) (host1x_module_init) from (do_one_initcall) (do_one_initcall) from (kernel_init_freeable) (kernel_init_freeable) from (kernel_init) _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2021-01-21 20:28 UTC|newest] Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-01-21 11:17 [PATCH 00/13] opp: Implement dev_pm_opp_set_opp() Viresh Kumar 2021-01-21 11:17 ` Viresh Kumar 2021-01-21 11:17 ` Viresh Kumar 2021-01-21 11:17 ` [PATCH 01/13] opp: Rename _opp_set_rate_zero() Viresh Kumar 2021-01-21 11:17 ` Viresh Kumar 2021-01-21 11:17 ` [PATCH 02/13] opp: No need to check clk for errors Viresh Kumar 2021-01-21 11:17 ` Viresh Kumar 2021-01-21 11:17 ` [PATCH 03/13] opp: Keep track of currently programmed OPP Viresh Kumar 2021-01-21 11:17 ` Viresh Kumar 2021-01-21 21:41 ` Dmitry Osipenko 2021-01-21 21:41 ` Dmitry Osipenko 2021-01-22 4:45 ` Viresh Kumar 2021-01-22 4:45 ` Viresh Kumar 2021-01-22 14:31 ` Dmitry Osipenko 2021-01-22 14:31 ` Dmitry Osipenko 2021-01-25 3:12 ` Viresh Kumar 2021-01-25 3:12 ` Viresh Kumar 2021-01-27 16:31 ` Akhil P Oommen 2021-01-28 4:14 ` Viresh Kumar 2021-01-28 4:14 ` Viresh Kumar 2021-07-07 10:24 ` Ionela Voinescu 2021-07-07 10:24 ` Ionela Voinescu 2021-07-08 7:53 ` Viresh Kumar 2021-07-08 7:53 ` Viresh Kumar 2021-07-09 8:57 ` Ionela Voinescu 2021-07-09 8:57 ` Ionela Voinescu 2021-07-12 4:14 ` Viresh Kumar 2021-07-12 4:14 ` Viresh Kumar 2021-01-21 11:17 ` [PATCH 04/13] opp: Split _set_opp() out of dev_pm_opp_set_rate() Viresh Kumar 2021-01-21 11:17 ` Viresh Kumar 2021-01-21 11:17 ` [PATCH 05/13] opp: Allow _set_opp() to work for non-freq devices Viresh Kumar 2021-01-21 11:17 ` Viresh Kumar 2021-01-21 11:17 ` [PATCH 06/13] opp: Allow _generic_set_opp_regulator() " Viresh Kumar 2021-01-21 11:17 ` Viresh Kumar 2021-01-21 11:17 ` [PATCH 07/13] opp: Allow _generic_set_opp_clk_only() " Viresh Kumar 2021-01-21 11:17 ` Viresh Kumar 2021-01-21 20:26 ` Dmitry Osipenko [this message] 2021-01-21 20:26 ` Dmitry Osipenko 2021-01-22 4:35 ` Viresh Kumar 2021-01-22 4:35 ` Viresh Kumar 2021-01-25 21:09 ` Dmitry Osipenko 2021-01-25 21:09 ` Dmitry Osipenko 2021-01-27 6:58 ` Viresh Kumar 2021-01-27 6:58 ` Viresh Kumar 2021-01-21 11:17 ` [PATCH 08/13] opp: Update parameters of _set_opp_custom() Viresh Kumar 2021-01-21 11:17 ` Viresh Kumar 2021-01-21 11:17 ` [PATCH 09/13] opp: Implement dev_pm_opp_set_opp() Viresh Kumar 2021-01-21 11:17 ` Viresh Kumar 2021-01-21 11:17 ` [PATCH 10/13] cpufreq: qcom: Migrate to dev_pm_opp_set_opp() Viresh Kumar 2021-01-21 11:17 ` Viresh Kumar 2021-01-21 11:17 ` [PATCH 11/13] devfreq: tegra30: " Viresh Kumar 2021-01-21 11:17 ` Viresh Kumar 2021-01-21 21:36 ` Dmitry Osipenko 2021-01-21 21:36 ` Dmitry Osipenko 2021-01-22 6:26 ` Viresh Kumar 2021-01-22 6:26 ` Viresh Kumar 2021-01-22 15:28 ` Dmitry Osipenko 2021-01-22 15:28 ` Dmitry Osipenko 2021-01-25 3:14 ` Viresh Kumar 2021-01-25 3:14 ` Viresh Kumar 2021-01-25 16:00 ` Dmitry Osipenko 2021-01-25 16:00 ` Dmitry Osipenko 2021-01-27 9:10 ` [PATCH V2 " Viresh Kumar 2021-01-27 10:02 ` Viresh Kumar 2021-01-27 15:58 ` Dmitry Osipenko 2021-01-28 7:01 ` Viresh Kumar 2021-02-01 0:21 ` Chanwoo Choi 2021-02-01 19:57 ` Dmitry Osipenko 2021-01-21 11:17 ` [PATCH 12/13] drm: msm: " Viresh Kumar 2021-01-21 11:17 ` Viresh Kumar 2021-01-21 11:17 ` Viresh Kumar 2021-01-21 11:17 ` [PATCH 13/13] opp: Remove dev_pm_opp_set_bw() Viresh Kumar 2021-01-21 11:17 ` Viresh Kumar
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=9b2638e6-b842-8737-e5a0-aeeb84927fce@gmail.com \ --to=digetx@gmail.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pm@vger.kernel.org \ --cc=linux-tegra@vger.kernel.org \ --cc=nm@ti.com \ --cc=rjw@rjwysocki.net \ --cc=sboyd@kernel.org \ --cc=sibis@codeaurora.org \ --cc=vincent.guittot@linaro.org \ --cc=viresh.kumar@linaro.org \ --cc=vireshk@kernel.org \ --subject='Re: [PATCH 07/13] opp: Allow _generic_set_opp_clk_only() to work for non-freq devices' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.