[PATCH 0/7] arm64: hibernate: dust off the suspend/cleanup rework
Mark Rutland
mark.rutland at arm.com
Wed Sep 2 07:03:07 PDT 2026
On Wed, Sep 02, 2026 at 02:51:22PM +0100, Bradley Morgan wrote:
> On 2 September 2026 14:50:22 BST, Mark Rutland <mark.rutland at arm.com>
> wrote:
> >On Tue, Aug 25, 2026 at 08:58:32PM +0000, Bradley Morgan wrote:
> >> This comes out of the hibernate resume discussion where Will asked if
> >> the restored kernel's hyp vectors are reinstalled before we come back
> >> from swsusp_arch_suspend() and free the reserved pages. Rather than
> >> answer with a one off fix, this series reworks resume to look like a
> >> resume from idle, which makes the answer fall out on its own.
> >>
> >> The series leans on Mark Rutland's old work for inspiration, he had the
> >> same end goal in a branch from back then:
> >>
> >>
> >https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git/log/?h=arm64/suspend/cleanup
> >
> >Most of the series seems to be a rebased of those patches, just with
> >paraphrased commit messages and my S-o-B lines dropped. As commented on
> >patch 4, I do not think that is appropriate.
>
> Same question as patch 2
>
> If you want your S-O-B added, ok fine, but yeah.
As on patch 2, please read the documentation before continuing futher.
> Do you think this series itself is good?
No. At present I think it's in a worse state than it was in my branch,
because portions have changed, with no rationale and no clear benefit.
Hence my ask to Catalin and Will to NOT pick this up for now.
Mark.
>
> >
> >I'll take a more in-depth look shortly.
>
> thanks!
>
> >
> >Catalin, Will, for the moment please do not pick these up.
> >
> >Mark.
> >
> >> The short answer to the question: yes, but only because the rework makes
> >> resume look like a resume from idle. We enter cpu_resume() at the
> >highest
> >> available EL with the MMU off, and the resumed kernel installs its own
> >> hyp stub vectors into VBAR_EL2 through init_kernel_el() before anything
> >> else runs, so by the time swsusp_free() releases the trans_pgd copies
> >> nothing points at them anymore.
> >>
> >> The series is structured so the first patch stands alone as a stable
> >> worthy fix for the missing hvc arguments. The rest is the cleanup: the
> >> stale init_kernel_el() comment gets corrected, MTE tag pages get freed
> >> after save instead of leaking on failed hibernates, the fragile
> >> _cpu_resume() calling convention gets split, and the last patch reworks
> >> hibernate to use the regular cpu_resume() logic end to end.
> >>
> >> Everything object compiles and passes checkpatch and sparse. I could not
> >> boot or run a hibernate cycle on real hardware here, so that still wants
> >> doing before anyone gets excited.
> >>
> >> Bradley Morgan (7):
> >> arm64: hibernate: pass HVC_SET_VECTORS args to the resume hvc
> >> arm64: head: correct comment for init_kernel_el()
> >> arm64: hibernate: free MTE tag pages after saving
> >> arm64: hibernate: fix _cpu_resume() calling convention
> >> arm64: hibernate: use dcache_by_myline_op
> >> arm64: hibernate: only clean to PoC
> >> arm64: hibernate: use regular cpu_resume() logic
> >>
> >> arch/arm64/include/asm/suspend.h | 1 -
> >> arch/arm64/kernel/head.S | 6 +--
> >> arch/arm64/kernel/hibernate-asm.S | 87 +++++++++++++++++++------------
> >> arch/arm64/kernel/hibernate.c | 66 +++++++++++------------
> >> arch/arm64/kernel/sleep.S | 6 +--
> >> 5 files changed, 88 insertions(+), 78 deletions(-)
> >>
> >> --
> >> 2.47.3
>
> --- Thanks!
> https://lore.kernel.org/all/EE579805-42F2-4C58-B752-F28779EEB717@grrlz.net/
More information about the linux-arm-kernel
mailing list