Re: [PATCH 3/5] scsi: lpfc: fix lpfc_cpu_affinity_check() if no further cpus set

From: Linus Torvalds
Date: Mon Mar 06 2023 - 13:48:31 EST


On Mon, Mar 6, 2023 at 8:07 AM Vernon Yang <vernon2gm@xxxxxxxxx> wrote:
>
> - if (new_cpu == nr_cpumask_bits)
> + if (new_cpu >= nr_cpumask_bits)

This all should use "nr_cpu_ids", not "nr_cpumask_bits".

But I really suspect that it should all be rewritten to not do that
thing over and over, but just use a helper function for it.

int lpfc_next_present_cpu(int n, int alternate)
{
n = cpumask_next(n, cpu_present_mask);
if (n >= nr_cpu_ids)
n = alternate;
return n;
}

and then you could just use

start_cpu = lpfc_next_present_cpu(new_cpu, first_cpu);

or similar.

Linus

PS. We "kind of" already have a helper function for this:
cpumask_next_wrap(). But it's really meant for a different pattern
entirely, so let's not confuse things.