diff options
| author | Nick Piggin <nickpiggin@yahoo.com.au> | 2006-01-06 03:10:57 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-06 11:33:25 -0500 |
| commit | 77a8a78834561398fb4cb1480afa7b0e80b1dd53 (patch) | |
| tree | c58179bfb6c68fb6cad547852345150be039591f | |
| parent | c54ad30c784b84d0275152d0ca80985b21471811 (diff) | |
[PATCH] mm: set_page_refs opt
Inline set_page_refs.
Signed-off-by: Nick Piggin <npiggin@suse.de>
Cc: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| -rw-r--r-- | mm/internal.h | 19 | ||||
| -rw-r--r-- | mm/page_alloc.c | 17 |
2 files changed, 17 insertions, 19 deletions
diff --git a/mm/internal.h b/mm/internal.h index 6bf134e8fb3d..85004f540e34 100644 --- a/mm/internal.h +++ b/mm/internal.h | |||
| @@ -9,5 +9,20 @@ | |||
| 9 | * 2 of the License, or (at your option) any later version. | 9 | * 2 of the License, or (at your option) any later version. |
| 10 | */ | 10 | */ |
| 11 | 11 | ||
| 12 | /* page_alloc.c */ | 12 | static inline void set_page_refs(struct page *page, int order) |
| 13 | extern void set_page_refs(struct page *page, int order); | 13 | { |
| 14 | #ifdef CONFIG_MMU | ||
| 15 | set_page_count(page, 1); | ||
| 16 | #else | ||
| 17 | int i; | ||
| 18 | |||
| 19 | /* | ||
| 20 | * We need to reference all the pages for this order, otherwise if | ||
| 21 | * anyone accesses one of the pages with (get/put) it will be freed. | ||
| 22 | * - eg: access_process_vm() | ||
| 23 | */ | ||
| 24 | for (i = 0; i < (1 << order); i++) | ||
| 25 | set_page_count(page + i, 1); | ||
| 26 | #endif /* CONFIG_MMU */ | ||
| 27 | } | ||
| 28 | |||
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 680cbe5b6ba2..6d513faf050b 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c | |||
| @@ -453,23 +453,6 @@ expand(struct zone *zone, struct page *page, | |||
| 453 | return page; | 453 | return page; |
| 454 | } | 454 | } |
| 455 | 455 | ||
| 456 | void set_page_refs(struct page *page, int order) | ||
| 457 | { | ||
| 458 | #ifdef CONFIG_MMU | ||
| 459 | set_page_count(page, 1); | ||
| 460 | #else | ||
| 461 | int i; | ||
| 462 | |||
| 463 | /* | ||
| 464 | * We need to reference all the pages for this order, otherwise if | ||
| 465 | * anyone accesses one of the pages with (get/put) it will be freed. | ||
| 466 | * - eg: access_process_vm() | ||
| 467 | */ | ||
| 468 | for (i = 0; i < (1 << order); i++) | ||
| 469 | set_page_count(page + i, 1); | ||
| 470 | #endif /* CONFIG_MMU */ | ||
| 471 | } | ||
| 472 | |||
| 473 | /* | 456 | /* |
| 474 | * This page is about to be returned from the page allocator | 457 | * This page is about to be returned from the page allocator |
| 475 | */ | 458 | */ |
