diff options
| author | John Hawkes <hawkes@sgi.com> | 2006-04-19 01:20:33 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-04-19 12:13:49 -0400 |
| commit | 75129e297e861e6c61038aa4cdbf604b022de4ff (patch) | |
| tree | 48392ab6ae43547ae2d81a312eb22708af0dc515 /mm | |
| parent | 4a3b98a422a20dedf3a2a40c44892d6e7e665157 (diff) | |
[PATCH] mm/slob.c: for_each_possible_cpu(), not NR_CPUS
Convert for-loops that explicitly reference "NR_CPUS" into the
potentially more efficient for_each_possible_cpu() construct.
Signed-off-by: John Hawkes <hawkes@sgi.com>
Cc: Matt Mackall <mpm@selenic.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'mm')
| -rw-r--r-- | mm/slob.c | 10 |
1 files changed, 3 insertions, 7 deletions
| @@ -354,9 +354,7 @@ void *__alloc_percpu(size_t size) | |||
| 354 | if (!pdata) | 354 | if (!pdata) |
| 355 | return NULL; | 355 | return NULL; |
| 356 | 356 | ||
| 357 | for (i = 0; i < NR_CPUS; i++) { | 357 | for_each_possible_cpu(i) { |
| 358 | if (!cpu_possible(i)) | ||
| 359 | continue; | ||
| 360 | pdata->ptrs[i] = kmalloc(size, GFP_KERNEL); | 358 | pdata->ptrs[i] = kmalloc(size, GFP_KERNEL); |
| 361 | if (!pdata->ptrs[i]) | 359 | if (!pdata->ptrs[i]) |
| 362 | goto unwind_oom; | 360 | goto unwind_oom; |
| @@ -383,11 +381,9 @@ free_percpu(const void *objp) | |||
| 383 | int i; | 381 | int i; |
| 384 | struct percpu_data *p = (struct percpu_data *) (~(unsigned long) objp); | 382 | struct percpu_data *p = (struct percpu_data *) (~(unsigned long) objp); |
| 385 | 383 | ||
| 386 | for (i = 0; i < NR_CPUS; i++) { | 384 | for_each_possible_cpu(i) |
| 387 | if (!cpu_possible(i)) | ||
| 388 | continue; | ||
| 389 | kfree(p->ptrs[i]); | 385 | kfree(p->ptrs[i]); |
| 390 | } | 386 | |
| 391 | kfree(p); | 387 | kfree(p); |
| 392 | } | 388 | } |
| 393 | EXPORT_SYMBOL(free_percpu); | 389 | EXPORT_SYMBOL(free_percpu); |
