[PATCH v5 15/15] arm64: hibernate: Prevent resume from a different kernel version
From: Pavel Machek <hidden>
Date: 2016-02-20 19:57:02
Also in:
linux-pm
On Sat 2016-02-20 19:16:59, Chen, Yu C wrote:
quoted
-----Original Message----- From: James Morse [mailto:james.morse at arm.com] Sent: Thursday, February 18, 2016 8:00 PM To: Chen, Yu C Cc: Pavel Machek; linux-arm-kernel at lists.infradead.org; Will Deacon; Sudeep Holla; Geoff Levand; Catalin Marinas; Lorenzo Pieralisi; Mark Rutland; AKASHI Takahiro; Marc Zyngier; Rafael J . Wysocki; linux-pm at vger.kernel.org Subject: Re: [PATCH v5 15/15] arm64: hibernate: Prevent resume from a different kernel version On 17/02/16 02:20, Chen, Yu C wrote:quoted
quoted
On Tue 2016-02-16 15:49:27, James Morse wrote:This reminds me a similar problem I once encountered on x86 : - ) The efi memory layout should be strictly the same before/after hibernation,right? The kernel hopes it is the same, as the page-tables it uses for runtime services calls are restored along with the rest of memory, but there is the risk that these don't match the EFI memory map any more. Even if the amount of memory is the same, the layout might be different. (Core hibernate code already has a counter of the number of physical pages.)I've encountered this situation before.quoted
I'm still digging through the efi code (and spec), but it is fairly easy to cause the memory map to change before entry to linux. This doesn't seem to be a problem, as linux happily overwrites most of the allocated areas, so it may not be as fragile as I thought.If I did some peripherals plug/unplug after suspend to hibernation, then the next time it boots up there would likely be a slightly different efi memory map. The efi provides a callback of get_memory_map to Linux for retrieving the initial map, which depends on the bios/bootloader probing/enumeration IMO. The difference of efi map might lead to kernel panic during resume sometimes.
md5hash of the efi map, and complain to bios vendors if it happens? Because iirc it is not supposed to. Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html