Re: [PATCH 40/49] firmware: pcsi: replace cpumask_weight with cpumask_weight_eq

Mark Rutland
2022-02-11T10:33:33Z

On Thu, Feb 10, 2022 at 02:49:24PM -0800, Yury Norov wrote:
> down_and_up_cpus() calls cpumask_weight() to compare the weight of
> cpumask with a given number. We can do it more efficiently with
> cpumask_weight_{eq, ...} because conditional cpumask_weight may stop
> traversing the cpumask earlier, as soon as condition is (or can't be) met.
>
> Signed-off-by: Yury Norov <yury.norov@gmail.com>

With the 'pcsi' typo fixed:

Acked-by: Mark Rutland <mark.rutland@arm.com>

Mark.

> ---
> drivers/firmware/psci/psci_checker.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/firmware/psci/psci_checker.c b/drivers/firmware/psci/psci_checker.c
> index 116eb465cdb4..90c9473832a9 100644
> --- a/drivers/firmware/psci/psci_checker.c
> +++ b/drivers/firmware/psci/psci_checker.c
> @@ -90,7 +90,7 @@ static unsigned int down_and_up_cpus(const struct cpumask *cpus,
> * cpu_down() checks the number of online CPUs before the TOS
> * resident CPU.
> */
> - if (cpumask_weight(offlined_cpus) + 1 == nb_available_cpus) {
> + if (cpumask_weight_eq(offlined_cpus, nb_available_cpus - 1)) {
> if (ret != -EBUSY) {
> pr_err("Unexpected return code %d while trying "
> "to power down last online CPU %d\n",
> --
> 2.32.0