X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=mm%2Fpercpu-km.c;h=89633fefc6a2b39d8d32d0204846f4ab8b303930;hb=66886d6f8c9bcdee3d7fce5796dcffd6b4bc0b48;hp=df680855540a61264d27fbb041d274c5b6ca3d2a;hpb=b74b953b998bcc2db91b694446f3a2619ec32de6;p=~andy%2Flinux diff --git a/mm/percpu-km.c b/mm/percpu-km.c index df680855540..89633fefc6a 100644 --- a/mm/percpu-km.c +++ b/mm/percpu-km.c @@ -27,7 +27,7 @@ * chunk size is not aligned. percpu-km code will whine about it. */ -#ifdef CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK +#if defined(CONFIG_SMP) && defined(CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK) #error "contiguous percpu allocation is incompatible with paged first chunk" #endif @@ -35,7 +35,11 @@ static int pcpu_populate_chunk(struct pcpu_chunk *chunk, int off, int size) { - /* noop */ + unsigned int cpu; + + for_each_possible_cpu(cpu) + memset((void *)pcpu_chunk_addr(chunk, cpu, 0) + off, 0, size); + return 0; }