On Thu, 2007-03-08 at 23:05 +0100, Rafael J. Wysocki wrote: > > The easiest solution I came up with is below. Of course, the suspend > > patches for powerpc64 are still very much work in progress and I might > > end up changing the whole reservation scheme after some feedback... If > > nobody else needs this then don't think about it now. > > Well, it may be needed for other things too. Yeah, but it's probably better to wait for them :) > I think we should pass a mask. BTW, can you please check if the appended patch > is sufficient? Unfortunately I won't be able to actually try this on hardware until the 20th or so. > > With this patch and appropriate changes to my suspend code, it works. > > OK, thanks for testing! Forgot to mention, patches are at http://johannes.sipsolutions.net/patches/ look for the latest powerpc-suspend-* patchset. > + if (system_state == SYSTEM_BOOTING) { > + /* This allocation cannot fail */ > + region = alloc_bootmem_low(sizeof(struct nosave_region)); > + } else { > + region = kzalloc(sizeof(struct nosave_region), GFP_ATOMIC); > + if (!region) { > + printk(KERN_WARNING "swsusp: Not enough memory " > + "to register a nosave region!\n"); > + WARN_ON(1); > + return; > + } > + } I don't think that'll be sufficient, system_state = SYSTEM_BOOTING is done only in init/main.c:init_post which is done after after calling the initcalls (they are called in do_basic_setup) johannes