Re: mm: Do not iterate over NR_CPUS in __zone_pcp_update()

From: Andrew Morton
Date: Tue Mar 09 2010 - 15:23:46 EST


On Mon, 8 Mar 2010 10:21:04 +0100 (CET)
Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:

> __zone_pcp_update() iterates over NR_CPUS instead of limiting the
> access to the possible cpus. This might result in access to
> uninitialized areas as the per cpu allocator only populates the per
> cpu memory for possible cpus.
>
> Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> ---
> mm/page_alloc.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> Index: linux-2.6/mm/page_alloc.c
> ===================================================================
> --- linux-2.6.orig/mm/page_alloc.c
> +++ linux-2.6/mm/page_alloc.c
> @@ -3224,7 +3224,7 @@ static int __zone_pcp_update(void *data)
> int cpu;
> unsigned long batch = zone_batchsize(zone), flags;
>
> - for (cpu = 0; cpu < NR_CPUS; cpu++) {
> + for_each_possible_cpu(cpu) {
> struct per_cpu_pageset *pset;
> struct per_cpu_pages *pcp;
>

I'm having trouble working out whether we want to backport this into
2.6.33.x or earlier. Help?

--
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/