duplicate boot_kernel_data_buffer

[email protected] Tue, 20 Mar 2012 13:42:01 +0900
Newsgroups gmane.linux.swsusp.devel,gmane.linux.swsusp.general
Message-ID <[email protected]>
Hi all,

I'm doing porting development of the TuxOnIce to ARM/BeagleBoard. 
I'm investigating the phenomenon (The board freezes at the time of RESUME) where RESUME is not stabilized, 
and I have a question about boot_kernel_data_buffer. 

The debugging code for displaying restore_pblist was added. (below)

When the phenomenon to freeze occurs, orig_address of boot_kernel_data_buffer is displayed(printk output) twice. 

Please tell me whether it is a bug that there is a duplicate to pblist boot_kernel_data_buffer.


tuxonice_pagedir.c:
int add_boot_kernel_data_pbe(void)
{
	this_low_pbe->address = (char *) __toi_get_nonconflicting_page();
	if (!this_low_pbe->address) {
		printk(KERN_INFO "Failed to get bkd atomic restore buffer.");
		return -ENOMEM;
	}

	toi_bkd.size = sizeof(toi_bkd);
	memcpy(this_low_pbe->address, &toi_bkd, sizeof(toi_bkd));

	*last_low_pbe_ptr = this_low_pbe;
	this_low_pbe->orig_address = (char *) boot_kernel_data_buffer;
	this_low_pbe->next = NULL;

/*********************** DEBUG CODE ***********************/
#ifdef	PBLIST_DUMP 
	static struct pbe *temp_pbe;

	printk(" ------- restore_pblist dump ------- n");
	temp_pbe = restore_pblist;
	while(1) {
		if(temp_pbe == (struct pbe*)0) break;
		printk("address = 0x%08x, orig_address = 0x%08x, next = 0x%08xn",
			temp_pbe->address, temp_pbe->orig_address, temp_pbe->next);
		temp_pbe = temp_pbe->next;
	}
#endif
	return 0;
}


Regards,
sabakawa