···33/* "Bogolock": stop the entire machine, disable interrupts. This is a44 very heavy lock, which is equivalent to grabbing every spinlock55 (and more). So the "read" side to such a lock is anything which66- diables preeempt. */66+ disables preeempt. */77#include <linux/cpu.h>88#include <linux/cpumask.h>99#include <asm/system.h>10101111#if defined(CONFIG_STOP_MACHINE) && defined(CONFIG_SMP)1212-1313-/* Deprecated, but useful for transition. */1414-#define ALL_CPUS ~0U15121613/**1714 * stop_machine: freeze the machine on all CPUs and run this function···4750 return ret;4851}4952#endif /* CONFIG_SMP */5050-5151-static inline int __deprecated stop_machine_run(int (*fn)(void *), void *data,5252- unsigned int cpu)5353-{5454- /* If they don't care which cpu fn runs on, just pick one. */5555- if (cpu == NR_CPUS)5656- return stop_machine(fn, data, NULL);5757- else if (cpu == ~0U)5858- return stop_machine(fn, data, &cpu_possible_map);5959- else {6060- cpumask_t cpus = cpumask_of_cpu(cpu);6161- return stop_machine(fn, data, &cpus);6262- }6363-}6453#endif /* _LINUX_STOP_MACHINE */