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

Commit ee39facb authored by David S. Miller's avatar David S. Miller
Browse files

net: Revert mlx4 cpumask changes.



This reverts commit 70a640d0
("net/mlx4_en: Use affinity hint") and commit
c8865b64 ("cpumask: Utility function
to set n'th cpu - local cpu first") because these changes break
the build when SMP is disabled amongst other things.

Reported-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 2a82e40d
Loading
Loading
Loading
Loading
+28 −22
Original line number Diff line number Diff line
@@ -1441,31 +1441,33 @@ static int ks8851_probe(struct spi_device *spi)
		}
	}

	ks->vdd_io = devm_regulator_get(&spi->dev, "vdd-io");
	ks->vdd_io = devm_regulator_get_optional(&spi->dev, "vdd-io");
	if (IS_ERR(ks->vdd_io)) {
		ret = PTR_ERR(ks->vdd_io);
		if (ret == -EPROBE_DEFER)
			goto err_reg_io;
	}

	} else {
		ret = regulator_enable(ks->vdd_io);
		if (ret) {
			dev_err(&spi->dev, "regulator vdd_io enable fail: %d\n",
				ret);
			goto err_reg_io;
		}
	}

	ks->vdd_reg = devm_regulator_get(&spi->dev, "vdd");
	ks->vdd_reg = devm_regulator_get_optional(&spi->dev, "vdd");
	if (IS_ERR(ks->vdd_reg)) {
		ret = PTR_ERR(ks->vdd_reg);
		if (ret == -EPROBE_DEFER)
			goto err_reg;
	}

	} else {
		ret = regulator_enable(ks->vdd_reg);
		if (ret) {
			dev_err(&spi->dev, "regulator vdd enable fail: %d\n",
				ret);
			goto err_reg;
		}
	}

	if (gpio_is_valid(gpio)) {
		usleep_range(10000, 11000);
@@ -1570,8 +1572,10 @@ static int ks8851_probe(struct spi_device *spi)
	if (gpio_is_valid(gpio))
		gpio_set_value(gpio, 0);
err_id:
	if (!IS_ERR(ks->vdd_reg))
		regulator_disable(ks->vdd_reg);
err_reg:
	if (!IS_ERR(ks->vdd_io))
		regulator_disable(ks->vdd_io);
err_reg_io:
err_gpio:
@@ -1590,7 +1594,9 @@ static int ks8851_remove(struct spi_device *spi)
	free_irq(spi->irq, priv);
	if (gpio_is_valid(priv->gpio))
		gpio_set_value(priv->gpio, 0);
	if (!IS_ERR(priv->vdd_reg))
		regulator_disable(priv->vdd_reg);
	if (!IS_ERR(priv->vdd_io))
		regulator_disable(priv->vdd_io);
	free_netdev(priv->netdev);

+0 −2
Original line number Diff line number Diff line
@@ -257,8 +257,6 @@ static inline void cpumask_set_cpu(unsigned int cpu, struct cpumask *dstp)
	set_bit(cpumask_check(cpu), cpumask_bits(dstp));
}

int cpumask_set_cpu_local_first(int i, int numa_node, cpumask_t *dstp);

/**
 * cpumask_clear_cpu - clear a cpu in a cpumask
 * @cpu: cpu number (< nr_cpu_ids)
+0 −64
Original line number Diff line number Diff line
@@ -163,68 +163,4 @@ void __init free_bootmem_cpumask_var(cpumask_var_t mask)
{
	memblock_free_early(__pa(mask), cpumask_size());
}

/**
 * cpumask_set_cpu_local_first - set i'th cpu with local numa cpu's first
 *
 * @i: index number
 * @numa_node: local numa_node
 * @dstp: cpumask with the relevant cpu bit set according to the policy
 *
 * This function sets the cpumask according to a numa aware policy.
 * cpumask could be used as an affinity hint for the IRQ related to a
 * queue. When the policy is to spread queues across cores - local cores
 * first.
 *
 * Returns 0 on success, -ENOMEM for no memory, and -EAGAIN when failed to set
 * the cpu bit and need to re-call the function.
 */
int cpumask_set_cpu_local_first(int i, int numa_node, cpumask_t *dstp)
{
	cpumask_var_t mask;
	int cpu;
	int ret = 0;

	if (!zalloc_cpumask_var(&mask, GFP_KERNEL))
		return -ENOMEM;

	i %= num_online_cpus();

	if (!cpumask_of_node(numa_node)) {
		/* Use all online cpu's for non numa aware system */
		cpumask_copy(mask, cpu_online_mask);
	} else {
		int n;

		cpumask_and(mask,
			    cpumask_of_node(numa_node), cpu_online_mask);

		n = cpumask_weight(mask);
		if (i >= n) {
			i -= n;

			/* If index > number of local cpu's, mask out local
			 * cpu's
			 */
			cpumask_andnot(mask, cpu_online_mask, mask);
		}
	}

	for_each_cpu(cpu, mask) {
		if (--i < 0)
			goto out;
	}

	ret = -EAGAIN;

out:
	free_cpumask_var(mask);

	if (!ret)
		cpumask_set_cpu(cpu, dstp);

	return ret;
}
EXPORT_SYMBOL(cpumask_set_cpu_local_first);

#endif