Re: [PATCH] base: fix a missing check of clk_prepare

2019-02-11 Thread Pavel Machek
On Tue 2019-01-01 22:05:39, Rafael J. Wysocki wrote:
> On Tue, Jan 1, 2019 at 9:21 PM Pavel Machek  wrote:
> >
> > On Tue 2019-01-01 21:13:01, Rafael J. Wysocki wrote:
> > > On Mon, Dec 31, 2018 at 6:25 PM Pavel Machek  wrote:
> > > >
> > > > On Wed 2018-12-26 10:37:54, Rafael J. Wysocki wrote:
> > > > > On Wed, Dec 26, 2018 at 3:47 AM Kangjie Lu  wrote:
> > > > > >
> > > > > > clk_prepare() could fail, so let's check its status, and if it 
> > > > > > fails,
> > > > > > issue an error message.
> > > > > >
> > > > > > Signed-off-by: Kangjie Lu 
> > > > > > ---
> > > > > >  drivers/base/power/clock_ops.c | 4 +++-
> > > > > >  1 file changed, 3 insertions(+), 1 deletion(-)
> > > > > >
> > > > > > diff --git a/drivers/base/power/clock_ops.c 
> > > > > > b/drivers/base/power/clock_ops.c
> > > > > > index 5a42ae4078c2..cb6144fb24e2 100644
> > > > > > --- a/drivers/base/power/clock_ops.c
> > > > > > +++ b/drivers/base/power/clock_ops.c
> > > > > > @@ -65,7 +65,9 @@ static void pm_clk_acquire(struct device *dev, 
> > > > > > struct pm_clock_entry *ce)
> > > > > > if (IS_ERR(ce->clk)) {
> > > > > > ce->status = PCE_STATUS_ERROR;
> > > > > > } else {
> > > > > > -   clk_prepare(ce->clk);
> > > > > > +   if (clk_prepare(ce->clk))
> > > > > > +   dev_err(dev, "clk_prepare failed.\n");
> > > > >
> > > > > I'm not sure that this is useful.  The code continues regardless of
> > > > > the error anyway and it should at least set ce->status to
> > > > > PCE_STATUS_ERROR in the failing case.
> > > >
> > > > Maybe this is not complete fix, but dev_err() is preferable to silent
> > > > failure.
> > >
> > > Preferable to you I suppose?
> >
> > Preferable to the poor person trying to figure out why his machine
> > does not work?
> 
> Not really, unless that person knows what the message means.
> 
> Honestly, what would you do if you saw that message?

Grep it in the kernel sources. Having something to grep for
(vs. machine that fails to work properly) is quite important.
Pavel

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) 
http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html


signature.asc
Description: Digital signature


Re: [PATCH] base: fix a missing check of clk_prepare

2019-01-01 Thread Rafael J. Wysocki
On Tue, Jan 1, 2019 at 9:21 PM Pavel Machek  wrote:
>
> On Tue 2019-01-01 21:13:01, Rafael J. Wysocki wrote:
> > On Mon, Dec 31, 2018 at 6:25 PM Pavel Machek  wrote:
> > >
> > > On Wed 2018-12-26 10:37:54, Rafael J. Wysocki wrote:
> > > > On Wed, Dec 26, 2018 at 3:47 AM Kangjie Lu  wrote:
> > > > >
> > > > > clk_prepare() could fail, so let's check its status, and if it fails,
> > > > > issue an error message.
> > > > >
> > > > > Signed-off-by: Kangjie Lu 
> > > > > ---
> > > > >  drivers/base/power/clock_ops.c | 4 +++-
> > > > >  1 file changed, 3 insertions(+), 1 deletion(-)
> > > > >
> > > > > diff --git a/drivers/base/power/clock_ops.c 
> > > > > b/drivers/base/power/clock_ops.c
> > > > > index 5a42ae4078c2..cb6144fb24e2 100644
> > > > > --- a/drivers/base/power/clock_ops.c
> > > > > +++ b/drivers/base/power/clock_ops.c
> > > > > @@ -65,7 +65,9 @@ static void pm_clk_acquire(struct device *dev, 
> > > > > struct pm_clock_entry *ce)
> > > > > if (IS_ERR(ce->clk)) {
> > > > > ce->status = PCE_STATUS_ERROR;
> > > > > } else {
> > > > > -   clk_prepare(ce->clk);
> > > > > +   if (clk_prepare(ce->clk))
> > > > > +   dev_err(dev, "clk_prepare failed.\n");
> > > >
> > > > I'm not sure that this is useful.  The code continues regardless of
> > > > the error anyway and it should at least set ce->status to
> > > > PCE_STATUS_ERROR in the failing case.
> > >
> > > Maybe this is not complete fix, but dev_err() is preferable to silent
> > > failure.
> >
> > Preferable to you I suppose?
>
> Preferable to the poor person trying to figure out why his machine
> does not work?

Not really, unless that person knows what the message means.

Honestly, what would you do if you saw that message?


Re: [PATCH] base: fix a missing check of clk_prepare

2019-01-01 Thread Pavel Machek
On Tue 2019-01-01 21:13:01, Rafael J. Wysocki wrote:
> On Mon, Dec 31, 2018 at 6:25 PM Pavel Machek  wrote:
> >
> > On Wed 2018-12-26 10:37:54, Rafael J. Wysocki wrote:
> > > On Wed, Dec 26, 2018 at 3:47 AM Kangjie Lu  wrote:
> > > >
> > > > clk_prepare() could fail, so let's check its status, and if it fails,
> > > > issue an error message.
> > > >
> > > > Signed-off-by: Kangjie Lu 
> > > > ---
> > > >  drivers/base/power/clock_ops.c | 4 +++-
> > > >  1 file changed, 3 insertions(+), 1 deletion(-)
> > > >
> > > > diff --git a/drivers/base/power/clock_ops.c 
> > > > b/drivers/base/power/clock_ops.c
> > > > index 5a42ae4078c2..cb6144fb24e2 100644
> > > > --- a/drivers/base/power/clock_ops.c
> > > > +++ b/drivers/base/power/clock_ops.c
> > > > @@ -65,7 +65,9 @@ static void pm_clk_acquire(struct device *dev, struct 
> > > > pm_clock_entry *ce)
> > > > if (IS_ERR(ce->clk)) {
> > > > ce->status = PCE_STATUS_ERROR;
> > > > } else {
> > > > -   clk_prepare(ce->clk);
> > > > +   if (clk_prepare(ce->clk))
> > > > +   dev_err(dev, "clk_prepare failed.\n");
> > >
> > > I'm not sure that this is useful.  The code continues regardless of
> > > the error anyway and it should at least set ce->status to
> > > PCE_STATUS_ERROR in the failing case.
> >
> > Maybe this is not complete fix, but dev_err() is preferable to silent
> > failure.
> 
> Preferable to you I suppose?

Preferable to the poor person trying to figure out why his machine
does not work?
Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) 
http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html


signature.asc
Description: Digital signature


Re: [PATCH] base: fix a missing check of clk_prepare

2019-01-01 Thread Rafael J. Wysocki
On Mon, Dec 31, 2018 at 6:25 PM Pavel Machek  wrote:
>
> On Wed 2018-12-26 10:37:54, Rafael J. Wysocki wrote:
> > On Wed, Dec 26, 2018 at 3:47 AM Kangjie Lu  wrote:
> > >
> > > clk_prepare() could fail, so let's check its status, and if it fails,
> > > issue an error message.
> > >
> > > Signed-off-by: Kangjie Lu 
> > > ---
> > >  drivers/base/power/clock_ops.c | 4 +++-
> > >  1 file changed, 3 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/base/power/clock_ops.c 
> > > b/drivers/base/power/clock_ops.c
> > > index 5a42ae4078c2..cb6144fb24e2 100644
> > > --- a/drivers/base/power/clock_ops.c
> > > +++ b/drivers/base/power/clock_ops.c
> > > @@ -65,7 +65,9 @@ static void pm_clk_acquire(struct device *dev, struct 
> > > pm_clock_entry *ce)
> > > if (IS_ERR(ce->clk)) {
> > > ce->status = PCE_STATUS_ERROR;
> > > } else {
> > > -   clk_prepare(ce->clk);
> > > +   if (clk_prepare(ce->clk))
> > > +   dev_err(dev, "clk_prepare failed.\n");
> >
> > I'm not sure that this is useful.  The code continues regardless of
> > the error anyway and it should at least set ce->status to
> > PCE_STATUS_ERROR in the failing case.
>
> Maybe this is not complete fix, but dev_err() is preferable to silent
> failure.

Preferable to you I suppose?


Re: [PATCH] base: fix a missing check of clk_prepare

2018-12-31 Thread Pavel Machek
On Wed 2018-12-26 10:37:54, Rafael J. Wysocki wrote:
> On Wed, Dec 26, 2018 at 3:47 AM Kangjie Lu  wrote:
> >
> > clk_prepare() could fail, so let's check its status, and if it fails,
> > issue an error message.
> >
> > Signed-off-by: Kangjie Lu 
> > ---
> >  drivers/base/power/clock_ops.c | 4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/base/power/clock_ops.c b/drivers/base/power/clock_ops.c
> > index 5a42ae4078c2..cb6144fb24e2 100644
> > --- a/drivers/base/power/clock_ops.c
> > +++ b/drivers/base/power/clock_ops.c
> > @@ -65,7 +65,9 @@ static void pm_clk_acquire(struct device *dev, struct 
> > pm_clock_entry *ce)
> > if (IS_ERR(ce->clk)) {
> > ce->status = PCE_STATUS_ERROR;
> > } else {
> > -   clk_prepare(ce->clk);
> > +   if (clk_prepare(ce->clk))
> > +   dev_err(dev, "clk_prepare failed.\n");
> 
> I'm not sure that this is useful.  The code continues regardless of
> the error anyway and it should at least set ce->status to
> PCE_STATUS_ERROR in the failing case.

Maybe this is not complete fix, but dev_err() is preferable to silent
failure.
Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) 
http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html


signature.asc
Description: Digital signature


Re: [PATCH] base: fix a missing check of clk_prepare

2018-12-26 Thread Rafael J. Wysocki
On Wed, Dec 26, 2018 at 3:47 AM Kangjie Lu  wrote:
>
> clk_prepare() could fail, so let's check its status, and if it fails,
> issue an error message.
>
> Signed-off-by: Kangjie Lu 
> ---
>  drivers/base/power/clock_ops.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/base/power/clock_ops.c b/drivers/base/power/clock_ops.c
> index 5a42ae4078c2..cb6144fb24e2 100644
> --- a/drivers/base/power/clock_ops.c
> +++ b/drivers/base/power/clock_ops.c
> @@ -65,7 +65,9 @@ static void pm_clk_acquire(struct device *dev, struct 
> pm_clock_entry *ce)
> if (IS_ERR(ce->clk)) {
> ce->status = PCE_STATUS_ERROR;
> } else {
> -   clk_prepare(ce->clk);
> +   if (clk_prepare(ce->clk))
> +   dev_err(dev, "clk_prepare failed.\n");

I'm not sure that this is useful.  The code continues regardless of
the error anyway and it should at least set ce->status to
PCE_STATUS_ERROR in the failing case.

Have you seen a failure in this particular spot in practice?

> +
> ce->status = PCE_STATUS_ACQUIRED;
> dev_dbg(dev, "Clock %pC con_id %s managed by runtime PM.\n",
> ce->clk, ce->con_id);
> --
> 2.17.2 (Apple Git-113)
>


[PATCH] base: fix a missing check of clk_prepare

2018-12-25 Thread Kangjie Lu
clk_prepare() could fail, so let's check its status, and if it fails,
issue an error message.

Signed-off-by: Kangjie Lu 
---
 drivers/base/power/clock_ops.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/base/power/clock_ops.c b/drivers/base/power/clock_ops.c
index 5a42ae4078c2..cb6144fb24e2 100644
--- a/drivers/base/power/clock_ops.c
+++ b/drivers/base/power/clock_ops.c
@@ -65,7 +65,9 @@ static void pm_clk_acquire(struct device *dev, struct 
pm_clock_entry *ce)
if (IS_ERR(ce->clk)) {
ce->status = PCE_STATUS_ERROR;
} else {
-   clk_prepare(ce->clk);
+   if (clk_prepare(ce->clk))
+   dev_err(dev, "clk_prepare failed.\n");
+
ce->status = PCE_STATUS_ACQUIRED;
dev_dbg(dev, "Clock %pC con_id %s managed by runtime PM.\n",
ce->clk, ce->con_id);
-- 
2.17.2 (Apple Git-113)