/* After a CPU went down cycle through all the others and rediscover Must run in process context.  */
void cmci_rediscover(int dying)
/* After a CPU went down cycle through all the others and rediscover Must run in process context.  */
void cmci_rediscover(int dying)
{
	int banks;
	int cpu;
	cpumask_var_t old;
	if (!cmci_supported(&banks))
		return;
	if (!alloc_cpumask_var(&old, GFP_KERNEL))
		return;
	cpumask_copy(old, &current->cpus_allowed);
	for_each_online_cpu(cpu) {
		if (cpu == dying)
			continue;
		if (set_cpus_allowed_ptr(current, cpumask_of(cpu)))
			continue;
		if (cmci_supported(&banks))
			cmci_discover(banks, 0);
	}
	set_cpus_allowed_ptr(current, old);
	free_cpumask_var(old);
}