int upgrade_mem_handle(void)
{
	int ret_value;
	if(!check_upgrade_mem()){
		//printf("Share region: CRC invalid.\n"); 
		upgrade_mem->flags.update_flag = 0;
	//	memset(upgrade_mem, 0x0, sizeof(upgrade_mem_t));
	}
	ret_value = recovery_handle();
	save_upgrade_mem();
	return ret_value;
}
int share_region_handle(void)
{
	if (!check_share_region()) {
		memset(share_region, 0x0, 0x1000);	
	}
	
	tmp = share_region->flags.kernel_flag;  //this can clear the flag
	memset(share_region, 0x0, 0x1000);
	share_region->flags.uboot_flag = tmp;

	return recovery_handle();
}