From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Shawn Guo <shawn.guo@linaro.org>
Cc: Jiri Slaby <jirislaby@kernel.org>,
Martin Kaiser <martin@kaiser.cx>,
Pengutronix Kernel Team <kernel@pengutronix.de>,
NXP Linux Team <linux-imx@nxp.com>,
linux-serial@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] serial: imx: Add missing .thaw_noirq hook
Date: Wed, 12 Oct 2022 18:20:35 +0200 [thread overview]
Message-ID: <Y0bpU51o88u6iH0R@kroah.com> (raw)
In-Reply-To: <20221012121353.2346280-1-shawn.guo@linaro.org>
On Wed, Oct 12, 2022 at 08:13:53PM +0800, Shawn Guo wrote:
> The following warning is seen with non-console UART instance when
> system hibernates.
>
> [ 37.371969] ------------[ cut here ]------------
> [ 37.376599] uart3_root_clk already disabled
> [ 37.380810] WARNING: CPU: 0 PID: 296 at drivers/clk/clk.c:952 clk_core_disable+0xa4/0xb0
> ...
> [ 37.506986] Call trace:
> [ 37.509432] clk_core_disable+0xa4/0xb0
> [ 37.513270] clk_disable+0x34/0x50
> [ 37.516672] imx_uart_thaw+0x38/0x5c
> [ 37.520250] platform_pm_thaw+0x30/0x6c
> [ 37.524089] dpm_run_callback.constprop.0+0x3c/0xd4
> [ 37.528972] device_resume+0x7c/0x160
> [ 37.532633] dpm_resume+0xe8/0x230
> [ 37.536036] hibernation_snapshot+0x288/0x430
> [ 37.540397] hibernate+0x10c/0x2e0
> [ 37.543798] state_store+0xc4/0xd0
> [ 37.547203] kobj_attr_store+0x1c/0x30
> [ 37.550953] sysfs_kf_write+0x48/0x60
> [ 37.554619] kernfs_fop_write_iter+0x118/0x1ac
> [ 37.559063] new_sync_write+0xe8/0x184
> [ 37.562812] vfs_write+0x230/0x290
> [ 37.566214] ksys_write+0x68/0xf4
> [ 37.569529] __arm64_sys_write+0x20/0x2c
> [ 37.573452] invoke_syscall.constprop.0+0x50/0xf0
> [ 37.578156] do_el0_svc+0x11c/0x150
> [ 37.581648] el0_svc+0x30/0x140
> [ 37.584792] el0t_64_sync_handler+0xe8/0xf0
> [ 37.588976] el0t_64_sync+0x1a0/0x1a4
> [ 37.592639] ---[ end trace 56e22eec54676d75 ]---
>
> On hibernating, pm core calls into related hooks in sequence like:
>
> .freeze
> .freeze_noirq
> .thaw_noirq
> .thaw
>
> With .thaw_noirq hook being absent, the clock will be disabled in a
> unbalanced call which results the warning above.
>
> imx_uart_freeze()
> clk_prepare_enable()
> imx_uart_suspend_noirq()
> clk_disable()
> imx_uart_thaw
> clk_disable_unprepare()
>
> Adding the missing .thaw_noirq hook as imx_uart_resume_noirq() will have
> the call sequence corrected as below and thus fix the warning.
>
> imx_uart_freeze()
> clk_prepare_enable()
> imx_uart_suspend_noirq()
> clk_disable()
> imx_uart_resume_noirq()
> clk_enable()
> imx_uart_thaw
> clk_disable_unprepare()
>
> Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
What commit id does this fix, and does it need to go to older/stable
kernels?
thanks,
greg k-h
next prev parent reply other threads:[~2022-10-12 16:20 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-12 12:13 Shawn Guo
2022-10-12 15:49 ` Martin Kaiser
2022-10-12 16:20 ` Greg Kroah-Hartman [this message]
2022-10-13 1:31 ` Shawn Guo
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=Y0bpU51o88u6iH0R@kroah.com \
--to=gregkh@linuxfoundation.org \
--cc=jirislaby@kernel.org \
--cc=kernel@pengutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-imx@nxp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=martin@kaiser.cx \
--cc=shawn.guo@linaro.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome