X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fcpumask.c;h=5f97dc25ef9c925fb68b83fecec5a7c0114ab339;hb=3196a88a8593748bad24824ef5eb8e5aa99698c9;hp=3a67dc5ada7d5b2655ae461890519e995d50d7c9;hpb=2e11665c5ea436e2fc2cfecbfc6dbfb8d420af29;p=linux-2.6 diff --git a/lib/cpumask.c b/lib/cpumask.c index 3a67dc5ada..5f97dc25ef 100644 --- a/lib/cpumask.c +++ b/lib/cpumask.c @@ -15,22 +15,14 @@ int __next_cpu(int n, const cpumask_t *srcp) } EXPORT_SYMBOL(__next_cpu); -/* - * Find the highest possible smp_processor_id() - * - * Note: if we're prepared to assume that cpu_possible_map never changes - * (reasonable) then this function should cache its return value. - */ -int highest_possible_processor_id(void) +#if NR_CPUS > 64 +int __next_cpu_nr(int n, const cpumask_t *srcp) { - unsigned int cpu; - unsigned highest = 0; - - for_each_cpu_mask(cpu, cpu_possible_map) - highest = cpu; - return highest; + return min_t(int, nr_cpu_ids, + find_next_bit(srcp->bits, nr_cpu_ids, n+1)); } -EXPORT_SYMBOL(highest_possible_processor_id); +EXPORT_SYMBOL(__next_cpu_nr); +#endif int __any_online_cpu(const cpumask_t *mask) {