Thread (6 messages) 6 messages, 3 authors, 2016-10-15

RE: [PATCH][v10] PM / hibernate: Verify the consistent of e820 memory map by md5 digest

From: "Chen, Yu C" <yu.c.chen@intel.com>
Date: 2016-09-25 03:44:11
Also in: lkml

Hi,
Sorry for late response, I missed the thread in mailbox,
-----Original Message-----
From: rjwysocki@gmail.com [mailto:rjwysocki@gmail.com] On Behalf Of
Rafael J. Wysocki
Sent: Monday, September 19, 2016 7:46 PM
To: Chen, Yu C
Cc: Linux PM; the arch/x86 maintainers; Linux Kernel Mailing List; Thomas
Gleixner; Ingo Molnar; H. Peter Anvin; Wysocki, Rafael J; Pavel Machek; Lee
Chun-Yi; Borislav Petkov
Subject: Re: [PATCH][v10] PM / hibernate: Verify the consistent of e820
memory map by md5 digest

On Fri, Sep 9, 2016 at 2:21 PM, Chen Yu [off-list ref] wrote:
quoted
On some platforms, there is occasional panic triggered when trying to
resume from hibernation, a typical panic looks like:
[cut]
quoted
@@ -211,10 +292,15 @@ int arch_hibernation_header_save(void *addr,
unsigned int max_size)
quoted
  */
 int arch_hibernation_header_restore(void *addr)  {
+       bool e820_mismatch = false;
The extra local variable can be avoided if you structure the code slightly
differently.
quoted
        struct restore_data_record *rdr = addr;

        restore_jump_address = rdr->jump_address;
        jump_address_phys = rdr->jump_address_phys;
        restore_cr3 = rdr->cr3;
-       return (rdr->magic == RESTORE_MAGIC) ? 0 : -EINVAL;
+
+       e820_mismatch = hibernation_e820_mismatch(rdr->e820_digest);
Also calling hibernation_e820_mismatch() before checking rdr->magic may not
be useful at all.
Yes.
quoted
+
+       return (rdr->magic == RESTORE_MAGIC) ?
+               (e820_mismatch ? -ENODEV : 0) : -EINVAL;
So what about:

if (rdr->magic != RESTORE_MAGIC)
        return -EINVAL;

if (hibernation_e820_mismatch(rdr->e820_digest))
        return -ENODEV;

return 0;
Ok, will change it to this one. Thanks.
quoted
 }
--
Thanks,
Rafael

Thanks,
Yu
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help