Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9b1a4d38 authored by Rusty Russell's avatar Rusty Russell
Browse files

stop_machine: Wean existing callers off stop_machine_run()

parent eeec4fad
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -197,7 +197,7 @@ void __kprobes arch_arm_kprobe(struct kprobe *p)
	args.new = BREAKPOINT_INSTRUCTION;

	kcb->kprobe_status = KPROBE_SWAP_INST;
	stop_machine_run(swap_instruction, &args, NR_CPUS);
	stop_machine(swap_instruction, &args, NULL);
	kcb->kprobe_status = status;
}

@@ -212,7 +212,7 @@ void __kprobes arch_disarm_kprobe(struct kprobe *p)
	args.new = p->opcode;

	kcb->kprobe_status = KPROBE_SWAP_INST;
	stop_machine_run(swap_instruction, &args, NR_CPUS);
	stop_machine(swap_instruction, &args, NULL);
	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
		 * caused by a kprobe breakpoint. The race of breakpoint
		 * 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;

+3 −3
Original line number Diff line number Diff line
@@ -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;
	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))
		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
	 * 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.
	 */
	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);
	iounmap(intel_rng_hw->mem);
	kfree(intel_rng_hw);
+4 −4
Original line number Diff line number Diff line
@@ -678,7 +678,7 @@ static int try_stop_module(struct module *mod, int flags, int *forced)
	if (flags & O_NONBLOCK) {
		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 {
		/* We don't need to stop the machine for this. */
		mod->state = MODULE_STATE_GOING;
@@ -1416,7 +1416,7 @@ static int __unlink_module(void *_mod)
static void free_module(struct module *mod)
{
	/* Delete from various lists */
	stop_machine_run(__unlink_module, mod, NR_CPUS);
	stop_machine(__unlink_module, mod, NULL);
	remove_notes_attrs(mod);
	remove_sect_attrs(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
         * info during argument parsing.  Noone should access us, since
         * 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 */
	err = parse_args(mod->name, mod->args,
@@ -2231,7 +2231,7 @@ static struct module *load_module(void __user *umod,
	return mod;

 unlink:
	stop_machine_run(__unlink_module, mod, NR_CPUS);
	stop_machine(__unlink_module, mod, NULL);
	module_arch_cleanup(mod);
 cleanup:
	kobject_del(&mod->mkobj.kobj);
+2 −2
Original line number Diff line number Diff line
@@ -91,8 +91,8 @@ static void force_quiescent_state(struct rcu_data *rdp,
		 * rdp->cpu is the current cpu.
		 *
		 * cpu_online_map is updated by the _cpu_down()
		 * using stop_machine_run(). Since we're in irqs disabled
		 * section, stop_machine_run() is not exectuting, hence
		 * using __stop_machine(). Since we're in irqs disabled
		 * section, __stop_machine() is not exectuting, hence
		 * the cpu_online_map is stable.
		 *
		 * However,  a cpu might have been offlined _just_ before
+2 −2
Original line number Diff line number Diff line
@@ -2372,7 +2372,7 @@ static void build_zonelist_cache(pg_data_t *pgdat)

#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)
{
	int nid;
@@ -2397,7 +2397,7 @@ void build_all_zonelists(void)
	} else {
		/* we have to stop all cpus to guarantee there is no user
		   of zonelist */
		stop_machine_run(__build_all_zonelists, NULL, NR_CPUS);
		stop_machine(__build_all_zonelists, NULL, NULL);
		/* cpuset refresh routine should be here */
	}
	vm_total_pages = nr_free_pagecache_pages();