Re: [RFC][PATCH] PM / Hibernate / x86: Change RESTORE_MAGIC on x86_64

From: H. Peter Anvin
Date: Tue Sep 28 2010 - 19:28:52 EST


On 09/28/2010 04:12 PM, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rjw@xxxxxxx>
>
> On x86_64 the configuration and version of the kernel that
> hibernates and creates a system image may be different from the
> configuration and version of the boot kernel that loads the image.
> So long as both these kernels are built with the same value of
> RESTORE_MAGIC, the image created by one of them should be
> successfully loaded and restored by the other one.
>
> It wasn't necessary to modify RESTORE_MAGIC in the past, but now
> that we are adding compression to the in-kernel hibernate code,
> change the value of RESTORE_MAGIC so that earlier kernels don't
> try to load compressed images they can't handle.
>
> Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx>
> ---
> arch/x86/power/hibernate_64.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> Index: linux-2.6/arch/x86/power/hibernate_64.c
> ===================================================================
> --- linux-2.6.orig/arch/x86/power/hibernate_64.c
> +++ linux-2.6/arch/x86/power/hibernate_64.c
> @@ -137,7 +137,7 @@ struct restore_data_record {
> unsigned long magic;
> };
>
> -#define RESTORE_MAGIC 0x0123456789ABCDEFUL
> +#define RESTORE_MAGIC 0x0123456789ABCDF0UL
>

Two issues with this:

a) shouldn't we only set this when the image is actually compressed?

b) using systematic magics like this is pessimal in terms of collision
avoidance. It's much better to use a true random number.

Hence, I propose:

: anacreon 95 ; ranpwd -xc 16
0x4ddedd3236f1e6e1

-hpa
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/