if (notify_die(DIE_MCA_MONARCH_LEAVE, "MCA", regs, 0, 0, recover) == NOTIFY_STOP) ia64_mca_spin(__FUNCTION__); 
ia64_mca_handler(struct pt_regs *regs, struct switch_stack *sw,		 struct ia64_sal_os_state *sos){	pal_processor_state_info_t *psp = (pal_processor_state_info_t *)		&sos->proc_state_param;	int recover, cpu = smp_processor_id();	task_t *previous_current;	oops_in_progress = 1;	/* FIXME: make printk NMI/MCA/INIT safe */	previous_current = ia64_mca_modify_original_stack(regs, sw, sos, "MCA");	monarch_cpu = cpu;	ia64_wait_for_slaves(cpu);	/* Wakeup all the processors which are spinning in the rendezvous loop.	 * They will leave SAL, then spin in the OS with interrupts disabled	 * until this monarch cpu leaves the MCA handler.  That gets control	 * back to the OS so we can backtrace the other cpus, backtrace when	 * spinning in SAL does not work.	 */	ia64_mca_wakeup_all();	/* Get the MCA error record and log it */	ia64_mca_log_sal_error_record(SAL_INFO_TYPE_MCA);	/* TLB error is only exist in this SAL error record */	recover = (psp->tc && !(psp->cc || psp->bc || psp->rc || psp->uc))	/* other error recovery */	   || (ia64_mca_ucmc_extension		&& ia64_mca_ucmc_extension(			IA64_LOG_CURR_BUFFER(SAL_INFO_TYPE_MCA),			sos));	if (recover) {		sal_log_record_header_t *rh = IA64_LOG_CURR_BUFFER(SAL_INFO_TYPE_MCA);		rh->severity = sal_log_severity_corrected;		ia64_sal_clear_state_info(SAL_INFO_TYPE_MCA);		sos->os_status = IA64_MCA_CORRECTED;	}	set_curr_task(cpu, previous_current);	monarch_cpu = -1;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/9138d581b0ef855c0314c41c14852a7231b9941c/mca.c/buggy/arch/ia64/kernel/mca.c