Messages in this thread |  | | From | "Rafael J. Wysocki" <> | Subject | Re: [RFC][PATCH] Randomize kernel base address on boot | Date | Fri, 27 May 2011 18:21:33 +0200 |
| |
On Friday, May 27, 2011, Dan Rosenberg wrote: > On Thu, 2011-05-26 at 15:32 -0700, H. Peter Anvin wrote: > > On 05/26/2011 03:18 PM, Rafael J. Wysocki wrote: > > > > > > Well, as far as I can tell, this feature is going to break hibernation on > > > both x86_32 and x86_64 at the moment, unless you can guarantee that the > > > randomized kernel location will be the same for both the boot and the target > > > kernels. > > > > > > > Obviously we can't and we don't. I'm a bit surprised at that > > constraint... how can that constraint not break things like kernels of > > slightly different size? > > > > -hpa > > Am I understanding it correctly that hibernation is currently operating > under a possibly false assumption? If it's the case that hibernation > should be saving the physical address at which the kernel was previously > loaded and restoring it there regardless of randomization, it would > certainly help me out if someone familiar with the code could take a > stab at that.
It rather has to save the address where to jump into the image kernel from the boot kernel, but ISTR that's not straightforward. I thought about implementing something like this some time ago, but finally I didn't have the time to finish that work.
At the moment I'm preparing for a trip to Japan, so I'll be able to work on this with you when I get back home (some time next weekend). In the meantime, please have a look at arch/x86/power/hibernate_64.c and arch/x86/power/hibernate_asm_64.S.
Thanks, Rafael
|  |