stop_machine: Wean existing callers off stop_machine_run()
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Родитель
eeec4fad96
Коммит
9b1a4d3837
|
@ -197,7 +197,7 @@ void __kprobes arch_arm_kprobe(struct kprobe *p)
|
||||||
args.new = BREAKPOINT_INSTRUCTION;
|
args.new = BREAKPOINT_INSTRUCTION;
|
||||||
|
|
||||||
kcb->kprobe_status = KPROBE_SWAP_INST;
|
kcb->kprobe_status = KPROBE_SWAP_INST;
|
||||||
stop_machine_run(swap_instruction, &args, NR_CPUS);
|
stop_machine(swap_instruction, &args, NULL);
|
||||||
kcb->kprobe_status = status;
|
kcb->kprobe_status = status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -212,7 +212,7 @@ void __kprobes arch_disarm_kprobe(struct kprobe *p)
|
||||||
args.new = p->opcode;
|
args.new = p->opcode;
|
||||||
|
|
||||||
kcb->kprobe_status = KPROBE_SWAP_INST;
|
kcb->kprobe_status = KPROBE_SWAP_INST;
|
||||||
stop_machine_run(swap_instruction, &args, NR_CPUS);
|
stop_machine(swap_instruction, &args, NULL);
|
||||||
kcb->kprobe_status = status;
|
kcb->kprobe_status = status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -331,7 +331,7 @@ static int __kprobes kprobe_handler(struct pt_regs *regs)
|
||||||
* No kprobe at this address. The fault has not been
|
* No kprobe at this address. The fault has not been
|
||||||
* caused by a kprobe breakpoint. The race of breakpoint
|
* caused by a kprobe breakpoint. The race of breakpoint
|
||||||
* vs. kprobe remove does not exist because on s390 we
|
* vs. kprobe remove does not exist because on s390 we
|
||||||
* use stop_machine_run to arm/disarm the breakpoints.
|
* use stop_machine to arm/disarm the breakpoints.
|
||||||
*/
|
*/
|
||||||
goto no_kprobe;
|
goto no_kprobe;
|
||||||
|
|
||||||
|
|
|
@ -241,7 +241,7 @@ static int __init intel_rng_hw_init(void *_intel_rng_hw)
|
||||||
struct intel_rng_hw *intel_rng_hw = _intel_rng_hw;
|
struct intel_rng_hw *intel_rng_hw = _intel_rng_hw;
|
||||||
u8 mfc, dvc;
|
u8 mfc, dvc;
|
||||||
|
|
||||||
/* interrupts disabled in stop_machine_run call */
|
/* interrupts disabled in stop_machine call */
|
||||||
|
|
||||||
if (!(intel_rng_hw->fwh_dec_en1_val & FWH_F8_EN_MASK))
|
if (!(intel_rng_hw->fwh_dec_en1_val & FWH_F8_EN_MASK))
|
||||||
pci_write_config_byte(intel_rng_hw->dev,
|
pci_write_config_byte(intel_rng_hw->dev,
|
||||||
|
@ -365,10 +365,10 @@ static int __init mod_init(void)
|
||||||
* location with the Read ID command, all activity on the system
|
* location with the Read ID command, all activity on the system
|
||||||
* must be stopped until the state is back to normal.
|
* must be stopped until the state is back to normal.
|
||||||
*
|
*
|
||||||
* Use stop_machine_run because IPIs can be blocked by disabling
|
* Use stop_machine because IPIs can be blocked by disabling
|
||||||
* interrupts.
|
* interrupts.
|
||||||
*/
|
*/
|
||||||
err = stop_machine_run(intel_rng_hw_init, intel_rng_hw, NR_CPUS);
|
err = stop_machine(intel_rng_hw_init, intel_rng_hw, NULL);
|
||||||
pci_dev_put(dev);
|
pci_dev_put(dev);
|
||||||
iounmap(intel_rng_hw->mem);
|
iounmap(intel_rng_hw->mem);
|
||||||
kfree(intel_rng_hw);
|
kfree(intel_rng_hw);
|
||||||
|
|
|
@ -678,7 +678,7 @@ static int try_stop_module(struct module *mod, int flags, int *forced)
|
||||||
if (flags & O_NONBLOCK) {
|
if (flags & O_NONBLOCK) {
|
||||||
struct stopref sref = { mod, flags, forced };
|
struct stopref sref = { mod, flags, forced };
|
||||||
|
|
||||||
return stop_machine_run(__try_stop_module, &sref, NR_CPUS);
|
return stop_machine(__try_stop_module, &sref, NULL);
|
||||||
} else {
|
} else {
|
||||||
/* We don't need to stop the machine for this. */
|
/* We don't need to stop the machine for this. */
|
||||||
mod->state = MODULE_STATE_GOING;
|
mod->state = MODULE_STATE_GOING;
|
||||||
|
@ -1416,7 +1416,7 @@ static int __unlink_module(void *_mod)
|
||||||
static void free_module(struct module *mod)
|
static void free_module(struct module *mod)
|
||||||
{
|
{
|
||||||
/* Delete from various lists */
|
/* Delete from various lists */
|
||||||
stop_machine_run(__unlink_module, mod, NR_CPUS);
|
stop_machine(__unlink_module, mod, NULL);
|
||||||
remove_notes_attrs(mod);
|
remove_notes_attrs(mod);
|
||||||
remove_sect_attrs(mod);
|
remove_sect_attrs(mod);
|
||||||
mod_kobject_remove(mod);
|
mod_kobject_remove(mod);
|
||||||
|
@ -2197,7 +2197,7 @@ static struct module *load_module(void __user *umod,
|
||||||
/* Now sew it into the lists so we can get lockdep and oops
|
/* Now sew it into the lists so we can get lockdep and oops
|
||||||
* info during argument parsing. Noone should access us, since
|
* info during argument parsing. Noone should access us, since
|
||||||
* strong_try_module_get() will fail. */
|
* strong_try_module_get() will fail. */
|
||||||
stop_machine_run(__link_module, mod, NR_CPUS);
|
stop_machine(__link_module, mod, NULL);
|
||||||
|
|
||||||
/* Size of section 0 is 0, so this works well if no params */
|
/* Size of section 0 is 0, so this works well if no params */
|
||||||
err = parse_args(mod->name, mod->args,
|
err = parse_args(mod->name, mod->args,
|
||||||
|
@ -2231,7 +2231,7 @@ static struct module *load_module(void __user *umod,
|
||||||
return mod;
|
return mod;
|
||||||
|
|
||||||
unlink:
|
unlink:
|
||||||
stop_machine_run(__unlink_module, mod, NR_CPUS);
|
stop_machine(__unlink_module, mod, NULL);
|
||||||
module_arch_cleanup(mod);
|
module_arch_cleanup(mod);
|
||||||
cleanup:
|
cleanup:
|
||||||
kobject_del(&mod->mkobj.kobj);
|
kobject_del(&mod->mkobj.kobj);
|
||||||
|
|
|
@ -91,8 +91,8 @@ static void force_quiescent_state(struct rcu_data *rdp,
|
||||||
* rdp->cpu is the current cpu.
|
* rdp->cpu is the current cpu.
|
||||||
*
|
*
|
||||||
* cpu_online_map is updated by the _cpu_down()
|
* cpu_online_map is updated by the _cpu_down()
|
||||||
* using stop_machine_run(). Since we're in irqs disabled
|
* using __stop_machine(). Since we're in irqs disabled
|
||||||
* section, stop_machine_run() is not exectuting, hence
|
* section, __stop_machine() is not exectuting, hence
|
||||||
* the cpu_online_map is stable.
|
* the cpu_online_map is stable.
|
||||||
*
|
*
|
||||||
* However, a cpu might have been offlined _just_ before
|
* However, a cpu might have been offlined _just_ before
|
||||||
|
|
|
@ -2372,7 +2372,7 @@ static void build_zonelist_cache(pg_data_t *pgdat)
|
||||||
|
|
||||||
#endif /* CONFIG_NUMA */
|
#endif /* CONFIG_NUMA */
|
||||||
|
|
||||||
/* return values int ....just for stop_machine_run() */
|
/* return values int ....just for stop_machine() */
|
||||||
static int __build_all_zonelists(void *dummy)
|
static int __build_all_zonelists(void *dummy)
|
||||||
{
|
{
|
||||||
int nid;
|
int nid;
|
||||||
|
@ -2397,7 +2397,7 @@ void build_all_zonelists(void)
|
||||||
} else {
|
} else {
|
||||||
/* we have to stop all cpus to guarantee there is no user
|
/* we have to stop all cpus to guarantee there is no user
|
||||||
of zonelist */
|
of zonelist */
|
||||||
stop_machine_run(__build_all_zonelists, NULL, NR_CPUS);
|
stop_machine(__build_all_zonelists, NULL, NULL);
|
||||||
/* cpuset refresh routine should be here */
|
/* cpuset refresh routine should be here */
|
||||||
}
|
}
|
||||||
vm_total_pages = nr_free_pagecache_pages();
|
vm_total_pages = nr_free_pagecache_pages();
|
||||||
|
|
Загрузка…
Ссылка в новой задаче