ignore_normal_resume = 1; 
static int suspend(int vetoable){	int		err;	struct apm_user	*as;	if (pm_send_all(PM_SUSPEND, (void *)3)) {		/* Vetoed */		if (vetoable) {			if (apm_info.connection_version > 0x100)				set_system_power_state(APM_STATE_REJECT);			err = -EBUSY;			ignore_sys_suspend = 0;			printk(KERN_WARNING "apm: suspend was vetoed.\n");			goto out;		}		printk(KERN_CRIT "apm: suspend was vetoed, but suspending anyway.\n");	}	device_suspend(PMSG_SUSPEND);	local_irq_disable();	device_power_down(PMSG_SUSPEND);	/* serialize with the timer interrupt */	write_seqlock(&xtime_lock);	/* protect against access to timer chip registers */	spin_lock(&i8253_lock);	get_time_diff();	/*	 * Irq spinlock must be dropped around set_system_power_state.	 * We'll undo any timer changes due to interrupts below.	 */	spin_unlock(&i8253_lock);	write_sequnlock(&xtime_lock);	local_irq_enable();	save_processor_state();	err = set_system_power_state(APM_STATE_SUSPEND);	restore_processor_state();	local_irq_disable();	write_seqlock(&xtime_lock);	spin_lock(&i8253_lock);	reinit_timer();	set_time();	ignore_normal_resume = 1;	spin_unlock(&i8253_lock);	write_sequnlock(&xtime_lock);	if (err == APM_NO_ERROR)		err = APM_SUCCESS;	if (err != APM_SUCCESS)		apm_error("suspend", err);	err = (err == APM_SUCCESS) ? 0 : -EIO;	device_power_up();	local_irq_enable();	device_resume();	pm_send_all(PM_RESUME, (void *)0);	queue_event(APM_NORMAL_RESUME, NULL); out:	spin_lock(&user_list_lock);	for (as = user_list; as != NULL; as = as->next) {		as->suspend_wait = 0;		as->suspend_result = err;	}	spin_unlock(&user_list_lock);	wake_up_interruptible(&apm_suspend_waitqueue);	return err;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/92c6dc59b7c1ca514021502c7eef53b9f2c738fd/apm.c/clean/arch/i386/kernel/apm.c