/* Check if a timeout waiting for other CPUs happened.  */
static int mce_timed_out(u64 *t)
/* Check if a timeout waiting for other CPUs happened.  */
static int mce_timed_out(u64 *t)
{
	rmb();
	if (atomic_read(&mce_paniced))
		wait_for_panic();
	if (!monarch_timeout)
		goto out;
	if ((s64)*t < SPINUNIT) {
		if (tolerant < 1)
			mce_panic("Timeout synchronizing machine check over CPUs",
				  NULL, NULL);
		cpu_missing = 1;
		return 1;
	}
	*t -= SPINUNIT;
out:
	touch_nmi_watchdog();
	return 0;
}