}  if ((free_pages = nr_free_pages()) < FREE_PAGE_NUMBER) { pr_debug("PM: free some memory\n"); shrink_all_memory(FREE_PAGE_NUMBER - free_pages); if (nr_free_pages() < FREE_PAGE_NUMBER) { error = -ENOMEM; printk(KERN_ERR "PM: No enough memory\n"); goto Thaw; } 
static int suspend_prepare(suspend_state_t state){	int error = 0;	if (!pm_ops || !pm_ops->enter)		return -EPERM;	pm_prepare_console();	if (freeze_processes()) {		error = -EAGAIN;		goto Thaw;	}	if (pm_ops->prepare) {		if ((error = pm_ops->prepare(state)))			goto Thaw;	}	if ((error = device_suspend(PMSG_SUSPEND))) {		printk(KERN_ERR "Some devices failed to suspend\n");		goto Finish;	}	return 0; Finish:	if (pm_ops->finish)		pm_ops->finish(state); Thaw:	thaw_processes();	pm_restore_console();	return error;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/5ae947ecc9c1c23834201e5321684a5cb68bdd3f/main.c/clean/kernel/power/main.c