Re: [PATCH 1/3] watchdog: sprd: should not disable watchdog in resume

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 26 Oct 2020 at 22:27, Guenter Roeck <linux@xxxxxxxxxxxx> wrote:
>
> On 10/26/20 1:09 AM, Chunyan Zhang wrote:
> > From: Lingling Xu <ling_ling.xu@xxxxxxxxxx>
> >
> > Don't disable watchdog in resume process, otherwise system would crash
> > once kick watchdog.
> >
>
> This is a bit misleading: It is only disabled if the attempt to start it
> has failed. Was this observed in practice ? If so, it might make sense
> to identify and fix the underlying problem instead of trying to work
> around it (or is this addressed with the second patch of the series ?)

Yes, I think the root cause of this problem was like what I explained
in the 3rd patch in this series.
Lingling found there was something wrong in sprd_wdt_pm_resume() when
debugging that issue, then we had this patch.

>
> Anyway, the patch itself is fine.
>
> Reviewed-by: Guenter Roeck <linux@xxxxxxxxxxxx>

Thanks,
Chunyan

>
> Thanks,
> Guenter
>
> > Fixes: 477603467009 ("watchdog: Add Spreadtrum watchdog driver")
> > Signed-off-by: Lingling Xu <ling_ling.xu@xxxxxxxxxx>
> > Signed-off-by: Chunyan Zhang <chunyan.zhang@xxxxxxxxxx>
> > ---
> >  drivers/watchdog/sprd_wdt.c | 9 ++-------
> >  1 file changed, 2 insertions(+), 7 deletions(-)
> >
> > diff --git a/drivers/watchdog/sprd_wdt.c b/drivers/watchdog/sprd_wdt.c
> > index 65cb55f3916f..f3c90b4afead 100644
> > --- a/drivers/watchdog/sprd_wdt.c
> > +++ b/drivers/watchdog/sprd_wdt.c
> > @@ -345,15 +345,10 @@ static int __maybe_unused sprd_wdt_pm_resume(struct device *dev)
> >       if (ret)
> >               return ret;
> >
> > -     if (watchdog_active(&wdt->wdd)) {
> > +     if (watchdog_active(&wdt->wdd))
> >               ret = sprd_wdt_start(&wdt->wdd);
> > -             if (ret) {
> > -                     sprd_wdt_disable(wdt);
> > -                     return ret;
> > -             }
> > -     }
> >
> > -     return 0;
> > +     return ret;
> >  }
> >
> >  static const struct dev_pm_ops sprd_wdt_pm_ops = {
> >
>



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux