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

Commit 86c6f274 authored by Rusty Russell's avatar Rusty Russell
Browse files

cpumask: powerpc: Introduce cpumask_of_{node,pcibus} to replace {node,pcibus}_to_cpumask



Impact: New APIs

The old node_to_cpumask/node_to_pcibus returned a cpumask_t: these
return a pointer to a struct cpumask.  Part of removing cpumasks from
the stack.

(Also replaces powerpc internal uses of node_to_cpumask).

Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
parent 7479a293
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -22,11 +22,11 @@ static inline cpumask_t node_to_cpumask(int node)
	return numa_cpumask_lookup_table[node];
}

#define cpumask_of_node(node) (&numa_cpumask_lookup_table[node])

static inline int node_to_first_cpu(int node)
{
	cpumask_t tmp;
	tmp = node_to_cpumask(node);
	return first_cpu(tmp);
	return cpumask_first(cpumask_of_node(node));
}

int of_node_to_nid(struct device_node *device);
@@ -46,6 +46,10 @@ static inline int pcibus_to_node(struct pci_bus *bus)
					node_to_cpumask(pcibus_to_node(bus)) \
				)

#define cpumask_of_pcibus(bus)	(pcibus_to_node(bus) == -1 ?		\
				 cpu_all_mask :				\
				 cpumask_of_node(pcibus_to_node(bus)))

/* sched_domains SD_NODE_INIT for PPC64 machines */
#define SD_NODE_INIT (struct sched_domain) {		\
	.span			= CPU_MASK_NONE,	\
+3 −3
Original line number Diff line number Diff line
@@ -80,10 +80,10 @@ static void cpu_affinity_set(struct spu *spu, int cpu)
	u64 route;

	if (nr_cpus_node(spu->node)) {
		cpumask_t spumask = node_to_cpumask(spu->node);
		cpumask_t cpumask = node_to_cpumask(cpu_to_node(cpu));
		const struct cpumask *spumask = cpumask_of_node(spu->node),
			*cpumask = cpumask_of_node(cpu_to_node(cpu));

		if (!cpus_intersects(spumask, cpumask))
		if (!cpumask_intersects(spumask, cpumask))
			return;
	}

+2 −2
Original line number Diff line number Diff line
@@ -166,9 +166,9 @@ void spu_update_sched_info(struct spu_context *ctx)
static int __node_allowed(struct spu_context *ctx, int node)
{
	if (nr_cpus_node(node)) {
		cpumask_t mask = node_to_cpumask(node);
		const struct cpumask *mask = cpumask_of_node(node);

		if (cpus_intersects(mask, ctx->cpus_allowed))
		if (cpumask_intersects(mask, &ctx->cpus_allowed))
			return 1;
	}