topology.c 663 B

123456789101112131415161718192021222324252627282930313233
  1. // SPDX-License-Identifier: GPL-2.0
  2. #include <linux/cpu.h>
  3. #include <linux/cpumask.h>
  4. #include <linux/init.h>
  5. #include <linux/node.h>
  6. #include <linux/nodemask.h>
  7. #include <linux/percpu.h>
  8. static DEFINE_PER_CPU(struct cpu, cpu_devices);
  9. static int __init topology_init(void)
  10. {
  11. int i, ret;
  12. #ifdef CONFIG_NUMA
  13. for_each_online_node(i)
  14. register_one_node(i);
  15. #endif /* CONFIG_NUMA */
  16. for_each_present_cpu(i) {
  17. struct cpu *c = &per_cpu(cpu_devices, i);
  18. c->hotpluggable = 1;
  19. ret = register_cpu(c, i);
  20. if (ret)
  21. printk(KERN_WARNING "topology_init: register_cpu %d "
  22. "failed (%d)\n", i, ret);
  23. }
  24. return 0;
  25. }
  26. subsys_initcall(topology_init);