int __ref create_proc_profile(void) /* false positive from hotcpu_notifier */ { struct proc_dir_entry *entry; int err = 0; if (!prof_on) return 0; cpu_notifier_register_begin(); if (create_hash_tables()) { err = -ENOMEM; goto out; } entry = proc_create("profile", S_IWUSR | S_IRUGO, NULL, &proc_profile_operations); if (!entry) goto out; proc_set_size(entry, (1 + prof_len) * sizeof(atomic_t)); __hotcpu_notifier(profile_cpu_callback, 0); out: cpu_notifier_register_done(); return err; }
static int __init vsyscall_init(void) { cpu_notifier_register_begin(); on_each_cpu(cpu_vsyscall_init, NULL, 1); /* notifier priority > KVM */ __hotcpu_notifier(cpu_vsyscall_notifier, 30); cpu_notifier_register_done(); return 0; }
static int __cpuinit topology_sysfs_init(void) { int cpu; int rc = 0; cpu_notifier_register_begin(); for_each_online_cpu(cpu) { rc = topology_add_dev(cpu); if (rc) goto out; } __hotcpu_notifier(topology_cpu_callback, 0); out: cpu_notifier_register_done(); return rc; }