FreeBSD/sys/x86/x86/mca.c
/* Called for a CMCI (correctable machine check interrupt). */
Called for a CMCI (correctable machine check interrupt).
Called for a CMCI ( correctable machine check interrupt ) .
void
cmc_intr(void)
{
	struct mca_internal *mca;
	int count;
	count = mca_scan(CMCI);
	if (count != 0) {
		mtx_lock_spin(&mca_lock);
		STAILQ_FOREACH(mca, &mca_records, link) {
			if (!mca->logged) {
				mca->logged = 1;
				mca_log(&mca->rec);
			}
		}
		mtx_unlock_spin(&mca_lock);
	}
}
void cmc_intr ( void ) { struct mca_internal * mca ; int count ; count = mca_scan ( CMCI ) ; if ( count != 0 ) { mtx_lock_spin ( & mca_lock ) ; STAILQ_FOREACH ( mca , & mca_records , link ) { if ( ! mca -> logged ) { mca -> logged = 1 ; mca_log ( & mca -> rec ) ; } } mtx_unlock_spin ( & mca_lock ) ; } }
Called for a CMCI (correctable machine check interrupt).
Called for a CMCI ( correctable machine check interrupt ) .
/*
	 * Serialize MCA bank scanning to prevent collisions from
	 * sibling threads.
	 */ /* If we found anything, log them to the console. */