Re: [PATCH 4.4 078/131] PM / Hibernate: Call flush_icache_range() on pages restored in-place

From: Catalin Marinas
Date: Wed Apr 03 2019 - 07:01:00 EST


On Mon, Apr 01, 2019 at 10:39:18PM +0200, Pavel Machek wrote:
> On Mon 2019-04-01 19:02:28, Greg Kroah-Hartman wrote:
> > 4.4-stable review patch. If anyone has any objections, please let me know.
> >
> > ------------------
> >
> > [ Upstream commit f6cf0545ec697ddc278b7457b7d0c0d86a2ea88e ]
> >
> > Some architectures require code written to memory as if it were data to be
> > 'cleaned' from any data caches before the processor can fetch them as new
> > instructions.
> >
> > During resume from hibernate, the snapshot code copies some pages directly,
> > meaning these architectures do not get a chance to perform their cache
> > maintenance. Modify the read and decompress code to call
> > flush_icache_range() on all pages that are restored, so that the restored
> > in-place pages are guaranteed to be executable on these architectures.
> >
> > Signed-off-by: James Morse <james.morse@xxxxxxx>
> > Acked-by: Pavel Machek <pavel@xxxxxx>
> > Acked-by: Rafael J. Wysocki <rjw@xxxxxxxxxxxxx>
> > Acked-by: Catalin Marinas <catalin.marinas@xxxxxxx>
> > [will: make clean_pages_on_* static and remove initialisers]
> > Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
> > Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
>
> I don't think this is suitable for stable.
>
> Catalin: Are there platforms that a) need this and b) support
> hibernation in 4.4.X?

Good point. This commit was required for the arm64 hibernate support
that went in the 4.7 kernel.

Greg, why was this patch selected for stable? It's harmless anyway.

Thanks.

--
Catalin