From: Alexandre Belloni <alexandre.belloni@free-electrons.com>
To: Bryan O'Donoghue <pure.logic@nexus-software.ie>
Cc: linux-kernel@vger.kernel.org, a.zummo@towertech.it,
Pan Bian <bianpan2016@163.com>,
Guy Shapiro <guy.shapiro@mobi-wize.com>,
Stefan Agner <stefan@agner.ch>, Frank Li <Frank.Li@freescale.com>,
Shawn Guo <shawn.guo@linaro.org>,
linux-rtc@vger.kernel.org, "# v3 . 16+" <stable@vger.kernel.org>
Subject: Re: [RESEND] [PATCH] rtc: snvs: Fix usage of snvs_rtc_enable
Date: Tue, 3 Apr 2018 16:56:42 +0200 [thread overview]
Message-ID: <20180403145642.GA6444@piout.net> (raw)
In-Reply-To: <1522264445-2398-1-git-send-email-pure.logic@nexus-software.ie>
On 28/03/2018 20:14:05+0100, Bryan O'Donoghue wrote:
> commit 179a502f8c46 ("rtc: snvs: add Freescale rtc-snvs driver") introduces
> the SNVS RTC driver with a function snvs_rtc_enable().
>
> snvs_rtc_enable() can return an error on the enable path however this
> driver does not currently trap that failure on the probe() path and
> consequently if enabling the RTC fails we encounter a later error spinning
> forever in rtc_write_sync_lp().
>
> [ 36.093481] [<c010d630>] (__irq_svc) from [<c0c2e9ec>] (_raw_spin_unlock_irqrestore+0x34/0x44)
> [ 36.102122] [<c0c2e9ec>] (_raw_spin_unlock_irqrestore) from [<c072e32c>] (regmap_read+0x4c/0x5c)
> [ 36.110938] [<c072e32c>] (regmap_read) from [<c085d0f4>] (rtc_write_sync_lp+0x6c/0x98)
> [ 36.118881] [<c085d0f4>] (rtc_write_sync_lp) from [<c085d160>] (snvs_rtc_alarm_irq_enable+0x40/0x4c)
> [ 36.128041] [<c085d160>] (snvs_rtc_alarm_irq_enable) from [<c08567b4>] (rtc_timer_do_work+0xd8/0x1a8)
> [ 36.137291] [<c08567b4>] (rtc_timer_do_work) from [<c01441b8>] (process_one_work+0x28c/0x76c)
> [ 36.145840] [<c01441b8>] (process_one_work) from [<c01446cc>] (worker_thread+0x34/0x58c)
> [ 36.153961] [<c01446cc>] (worker_thread) from [<c014aee4>] (kthread+0x138/0x150)
> [ 36.161388] [<c014aee4>] (kthread) from [<c0107e14>] (ret_from_fork+0x14/0x20)
> [ 36.168635] rcu_sched kthread starved for 2602 jiffies! g496 c495 f0x2 RCU_GP_WAIT_FQS(3) ->state=0x0 ->cpu=0
> [ 36.178564] rcu_sched R running task 0 8 2 0x00000000
> [ 36.185664] [<c0c288b0>] (__schedule) from [<c0c29134>] (schedule+0x3c/0xa0)
> [ 36.192739] [<c0c29134>] (schedule) from [<c0c2db80>] (schedule_timeout+0x78/0x4e0)
> [ 36.200422] [<c0c2db80>] (schedule_timeout) from [<c01a7ab0>] (rcu_gp_kthread+0x648/0x1864)
> [ 36.208800] [<c01a7ab0>] (rcu_gp_kthread) from [<c014aee4>] (kthread+0x138/0x150)
> [ 36.216309] [<c014aee4>] (kthread) from [<c0107e14>] (ret_from_fork+0x14/0x20)
>
> This patch fixes by parsing the result of rtc_write_sync_lp() and
> propagating both in the probe and elsewhere. If the RTC doesn't start we
> don't proceed loading the driver and don't get into this loop mess later
> on.
>
> Fixes: 179a502f8c46 ("rtc: snvs: add Freescale rtc-snvs driver")
>
> Signed-off-by: Bryan O'Donoghue <pure.logic@nexus-software.ie>
> Cc: a.zummo@towertech.it
> Cc: alexandre.belloni@free-electrons.com
> Cc: Pan Bian <bianpan2016@163.com>
> Cc: Guy Shapiro <guy.shapiro@mobi-wize.com>
> Cc: Stefan Agner <stefan@agner.ch>
> Cc: Frank Li <Frank.Li@freescale.com>
> Cc: Shawn Guo <shawn.guo@linaro.org>
> Cc: linux-rtc@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
> Cc: <stable@vger.kernel.org> # v3.16+
> ---
> drivers/rtc/rtc-snvs.c | 15 +++++++++++----
> 1 file changed, 11 insertions(+), 4 deletions(-)
>
Applied, thanks.
--
Alexandre Belloni, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
prev parent reply other threads:[~2018-04-03 14:56 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-28 19:14 [RESEND] [PATCH] rtc: snvs: Fix usage of snvs_rtc_enable Bryan O'Donoghue
2018-03-29 0:12 ` [RESEND] " Trent Piepho
2018-03-29 0:12 ` Trent Piepho
2018-03-29 1:53 ` Bryan O'Donoghue
2018-03-30 22:59 ` Trent Piepho
2018-03-30 22:59 ` Trent Piepho
2018-04-02 22:51 ` Bryan O'Donoghue
2018-04-03 14:42 ` Alexandre Belloni
2018-03-29 2:18 ` [RESEND] [PATCH] " Shawn Guo
2018-04-03 14:56 ` Alexandre Belloni [this message]
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=20180403145642.GA6444@piout.net \
--to=alexandre.belloni@free-electrons.com \
--cc=Frank.Li@freescale.com \
--cc=a.zummo@towertech.it \
--cc=bianpan2016@163.com \
--cc=guy.shapiro@mobi-wize.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rtc@vger.kernel.org \
--cc=pure.logic@nexus-software.ie \
--cc=shawn.guo@linaro.org \
--cc=stable@vger.kernel.org \
--cc=stefan@agner.ch \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.