Re: [PATCH] percpu: fix unit_map[] verification in pcpu_setup_first_chunk()

From: Tejun Heo
Date: Mon Sep 28 2009 - 12:36:11 EST


Christoph Lameter wrote:
> On Tue, 29 Sep 2009, Tejun Heo wrote:
>
>> pcpu_setup_first_chunk() incorrectly used NR_CPUS as the impossible
>> unit number while unit number can equal and go over NR_CPUS with
>> sparse unit map. This triggers BUG_ON() spuriously on machines which
>> have non-power-of-two number of cpus. Use UINT_MAX instead.
>
> Uhhh. Funky. The assumption nr_cpu_ids < NR_CPUS has been broken. Wonder
> what other effects that will have. In particular since the slab and page
> allocators have arrays indexed by the cpu number and those arrays are
> dimensioned for NR_CPUS.

Heh.. that's not what's broken. unit# can legally go over NR_CPUS or
nr_cpu_ids as cpus can be sparsely mapped to units. The problem is
that I didn't fix unit_map allocation. Will update the patch. Just a
sec.

--
tejun
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/