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

Commit f70316da authored by Mike Travis's avatar Mike Travis Committed by Ingo Molnar
Browse files

generic: use new set_cpus_allowed_ptr function



  * Use new set_cpus_allowed_ptr() function added by previous patch,
    which instead of passing the "newly allowed cpus" cpumask_t arg
    by value,  pass it by pointer:

    -int set_cpus_allowed(struct task_struct *p, cpumask_t new_mask)
    +int set_cpus_allowed_ptr(struct task_struct *p, const cpumask_t *new_mask)

  * Modify CPU_MASK_ALL

Depends on:
	[sched-devel]: sched: add new set_cpus_allowed_ptr function

Signed-off-by: default avatarMike Travis <travis@sgi.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent fc0e4748
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -838,10 +838,10 @@ static int acpi_processor_get_throttling(struct acpi_processor *pr)
	 * Migrate task to the cpu pointed by pr.
	 */
	saved_mask = current->cpus_allowed;
	set_cpus_allowed(current, cpumask_of_cpu(pr->id));
	set_cpus_allowed_ptr(current, &cpumask_of_cpu(pr->id));
	ret = pr->throttling.acpi_processor_get_throttling(pr);
	/* restore the previous state */
	set_cpus_allowed(current, saved_mask);
	set_cpus_allowed_ptr(current, &saved_mask);

	return ret;
}
@@ -1025,7 +1025,7 @@ int acpi_processor_set_throttling(struct acpi_processor *pr, int state)
	 * it can be called only for the cpu pointed by pr.
	 */
	if (p_throttling->shared_type == DOMAIN_COORD_TYPE_SW_ANY) {
		set_cpus_allowed(current, cpumask_of_cpu(pr->id));
		set_cpus_allowed_ptr(current, &cpumask_of_cpu(pr->id));
		ret = p_throttling->acpi_processor_set_throttling(pr,
						t_state.target_state);
	} else {
@@ -1056,7 +1056,7 @@ int acpi_processor_set_throttling(struct acpi_processor *pr, int state)
				continue;
			}
			t_state.cpu = i;
			set_cpus_allowed(current, cpumask_of_cpu(i));
			set_cpus_allowed_ptr(current, &cpumask_of_cpu(i));
			ret = match_pr->throttling.
				acpi_processor_set_throttling(
				match_pr, t_state.target_state);
@@ -1074,7 +1074,7 @@ int acpi_processor_set_throttling(struct acpi_processor *pr, int state)
							&t_state);
	}
	/* restore the previous state */
	set_cpus_allowed(current, saved_mask);
	set_cpus_allowed_ptr(current, &saved_mask);
	return ret;
}

+2 −2
Original line number Diff line number Diff line
@@ -265,7 +265,7 @@ static int smi_request(struct smi_cmd *smi_cmd)

	/* SMI requires CPU 0 */
	old_mask = current->cpus_allowed;
	set_cpus_allowed(current, cpumask_of_cpu(0));
	set_cpus_allowed_ptr(current, &cpumask_of_cpu(0));
	if (smp_processor_id() != 0) {
		dev_dbg(&dcdbas_pdev->dev, "%s: failed to get CPU 0\n",
			__FUNCTION__);
@@ -285,7 +285,7 @@ static int smi_request(struct smi_cmd *smi_cmd)
	);

out:
	set_cpus_allowed(current, old_mask);
	set_cpus_allowed_ptr(current, &old_mask);
	return ret;
}

+6 −3
Original line number Diff line number Diff line
@@ -182,15 +182,18 @@ static int pci_call_probe(struct pci_driver *drv, struct pci_dev *dev,
	struct mempolicy *oldpol;
	cpumask_t oldmask = current->cpus_allowed;
	int node = pcibus_to_node(dev->bus);
	if (node >= 0 && node_online(node))
	    set_cpus_allowed(current, node_to_cpumask(node));

	if (node >= 0) {
		node_to_cpumask_ptr(nodecpumask, node);
		set_cpus_allowed_ptr(current, nodecpumask);
	}
	/* And set default memory allocation policy */
	oldpol = current->mempolicy;
	current->mempolicy = NULL;	/* fall back to system default policy */
#endif
	error = drv->probe(dev, id);
#ifdef CONFIG_NUMA
	set_cpus_allowed(current, oldmask);
	set_cpus_allowed_ptr(current, &oldmask);
	current->mempolicy = oldpol;
#endif
	return error;
+3 −3
Original line number Diff line number Diff line
@@ -232,9 +232,9 @@ static int _cpu_down(unsigned int cpu, int tasks_frozen)

	/* Ensure that we are not runnable on dying cpu */
	old_allowed = current->cpus_allowed;
	tmp = CPU_MASK_ALL;
	cpus_setall(tmp);
	cpu_clear(cpu, tmp);
	set_cpus_allowed(current, tmp);
	set_cpus_allowed_ptr(current, &tmp);

	p = __stop_machine_run(take_cpu_down, &tcd_param, cpu);

@@ -268,7 +268,7 @@ static int _cpu_down(unsigned int cpu, int tasks_frozen)
out_thread:
	err = kthread_stop(p);
out_allowed:
	set_cpus_allowed(current, old_allowed);
	set_cpus_allowed_ptr(current, &old_allowed);
out_release:
	cpu_hotplug_done();
	return err;
+1 −1
Original line number Diff line number Diff line
@@ -165,7 +165,7 @@ static int ____call_usermodehelper(void *data)
	}

	/* We can run anywhere, unlike our parent keventd(). */
	set_cpus_allowed(current, CPU_MASK_ALL);
	set_cpus_allowed_ptr(current, CPU_MASK_ALL_PTR);

	/*
	 * Our parent is keventd, which runs with elevated scheduling priority.
Loading