lkml.org 
[lkml]   [2021]   [Mar]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 316/663] watchdog: intel-mid_wdt: Postpone IRQ handler registration till SCU is ready
    Date
    From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

    [ Upstream commit f285c9532b5bd3de7e37a6203318437cab79bd9a ]

    When SCU is not ready and CONFIG_DEBUG_SHIRQ=y we got deferred probe followed
    by fired test IRQ which immediately makes kernel panic. Fix this by delaying
    IRQ handler registration till SCU is ready.

    Fixes: 80ae679b8f86 ("watchdog: intel-mid_wdt: Convert to use new SCU IPC API")
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Reviewed-by: Guenter Roeck <linux@roeck-us.net>
    Acked-by: Linus Walleij <linus.walleij@linaro.org>
    Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/watchdog/intel-mid_wdt.c | 8 ++++----
    1 file changed, 4 insertions(+), 4 deletions(-)

    diff --git a/drivers/watchdog/intel-mid_wdt.c b/drivers/watchdog/intel-mid_wdt.c
    index 1ae03b64ef8bf..9b2173f765c8c 100644
    --- a/drivers/watchdog/intel-mid_wdt.c
    +++ b/drivers/watchdog/intel-mid_wdt.c
    @@ -154,6 +154,10 @@ static int mid_wdt_probe(struct platform_device *pdev)
    watchdog_set_nowayout(wdt_dev, WATCHDOG_NOWAYOUT);
    watchdog_set_drvdata(wdt_dev, mid);

    + mid->scu = devm_intel_scu_ipc_dev_get(dev);
    + if (!mid->scu)
    + return -EPROBE_DEFER;
    +
    ret = devm_request_irq(dev, pdata->irq, mid_wdt_irq,
    IRQF_SHARED | IRQF_NO_SUSPEND, "watchdog",
    wdt_dev);
    @@ -162,10 +166,6 @@ static int mid_wdt_probe(struct platform_device *pdev)
    return ret;
    }

    - mid->scu = devm_intel_scu_ipc_dev_get(dev);
    - if (!mid->scu)
    - return -EPROBE_DEFER;
    -
    /*
    * The firmware followed by U-Boot leaves the watchdog running
    * with the default threshold which may vary. When we get here
    --
    2.27.0


    \
     
     \ /
      Last update: 2021-03-02 02:10    [W:2.408 / U:0.524 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site