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

Commit 2f8975fb authored by Rusty Russell's avatar Rusty Russell Committed by Ingo Molnar
Browse files

cpumask: convert drivers/net/sfc



Impact: reduce stack usage, use new cpumask API.

Remove a cpumask from the stack.  Ben Hutchings indicated that printing
a warning and returning 1 was acceptable for the corner case where allocation
fails.

Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
Signed-off-by: default avatarMike Travis <travis@sgi.com>
Cc: Ben Hutchings <bhutchings@solarflare.com>
Cc: linux-net-drivers@solarflare.com
parent f7df8ed1
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -854,20 +854,27 @@ static void efx_fini_io(struct efx_nic *efx)
 * interrupts across them. */
static int efx_wanted_rx_queues(void)
{
	cpumask_t core_mask;
	cpumask_var_t core_mask;
	int count;
	int cpu;

	cpus_clear(core_mask);
	if (!alloc_cpumask_var(&core_mask, GFP_KERNEL)) {
		printk(KERN_WARNING
		       "efx.c: allocation failure, irq balancing hobbled\n");
		return 1;
	}

	cpumask_clear(core_mask);
	count = 0;
	for_each_online_cpu(cpu) {
		if (!cpu_isset(cpu, core_mask)) {
		if (!cpumask_test_cpu(cpu, core_mask)) {
			++count;
			cpumask_or(&core_mask, &core_mask,
			cpumask_or(core_mask, core_mask,
				   topology_core_cpumask(cpu));
		}
	}

	free_cpumask_var(core_mask);
	return count;
}