if ((cap & (1<<9)) && ((cap >> 16) & 0xff) >= 9) rip_msr = MSR_IA32_MCG_EIP;
static void mce_init(void *dummy){	u64 cap;	int i;	rdmsrl(MSR_IA32_MCG_CAP, cap);	banks = cap & 0xff;	if (banks > NR_BANKS) { 		printk(KERN_INFO "MCE: warning: using only %d banks\n", banks);		banks = NR_BANKS; 	}	/* Log the machine checks left over from the previous reset.	   This also clears all registers */	do_machine_check(NULL, -1);	set_in_cr4(X86_CR4_MCE);	if (cap & MCG_CTL_P)		wrmsr(MSR_IA32_MCG_CTL, 0xffffffff, 0xffffffff);	for (i = 0; i < banks; i++) {		wrmsrl(MSR_IA32_MC0_CTL+4*i, bank[i]);		wrmsrl(MSR_IA32_MC0_STATUS+4*i, 0);	}	}