Skip to content

Commit

Permalink
xip: fix get_zeroed_page with __GFP_HIGHMEM
Browse files Browse the repository at this point in the history
The use of get_zeroed_page() with __GFP_HIGHMEM is invalid.  Use
alloc_page() with __GFP_ZERO instead of invalid get_zeroed_page().

(This patch is only compile tested)

Cc: Carsten Otte <[email protected]>
Signed-off-by: Akinobu Mita <[email protected]>
Acked-by: Hugh Dickins <[email protected]>
Acked-by: Carsten Otte <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
mita authored and Linus Torvalds committed Jan 9, 2008
1 parent 0f94e87 commit c51b1a1
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions mm/filemap_xip.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,15 @@ static struct page *__xip_sparse_page;
static struct page *xip_sparse_page(void)
{
if (!__xip_sparse_page) {
unsigned long zeroes = get_zeroed_page(GFP_HIGHUSER);
if (zeroes) {
struct page *page = alloc_page(GFP_HIGHUSER | __GFP_ZERO);

if (page) {
static DEFINE_SPINLOCK(xip_alloc_lock);
spin_lock(&xip_alloc_lock);
if (!__xip_sparse_page)
__xip_sparse_page = virt_to_page(zeroes);
__xip_sparse_page = page;
else
free_page(zeroes);
__free_page(page);
spin_unlock(&xip_alloc_lock);
}
}
Expand Down

0 comments on commit c51b1a1

Please sign in to comment.