Skip to content

Commit

Permalink
[AVR32] Simplify pte_alloc_one{,_kernel}
Browse files Browse the repository at this point in the history
There's really no need to retry an allocation with __GFP_REPEAT set.
Also, use get_zeroed_page() and __GFP_ZERO to eliminate the extra call
to clear_page() afterwards.

Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
  • Loading branch information
Haavard Skinnemoen committed Aug 15, 2007
1 parent 5221b34 commit e7f3bac
Showing 1 changed file with 2 additions and 20 deletions.
22 changes: 2 additions & 20 deletions include/asm-avr32/pgalloc.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,37 +38,19 @@ static inline void pgd_free(pgd_t *pgd)
static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm,
unsigned long address)
{
int count = 0;
pte_t *pte;

do {
pte = (pte_t *) __get_free_page(GFP_KERNEL | __GFP_REPEAT);
if (pte)
clear_page(pte);
else {
current->state = TASK_UNINTERRUPTIBLE;
schedule_timeout(HZ);
}
} while (!pte && (count++ < 10));
pte = (pte_t *)get_zeroed_page(GFP_KERNEL | __GFP_REPEAT);

return pte;
}

static inline struct page *pte_alloc_one(struct mm_struct *mm,
unsigned long address)
{
int count = 0;
struct page *pte;

do {
pte = alloc_pages(GFP_KERNEL, 0);
if (pte)
clear_page(page_address(pte));
else {
current->state = TASK_UNINTERRUPTIBLE;
schedule_timeout(HZ);
}
} while (!pte && (count++ < 10));
pte = alloc_page(GFP_KERNEL | __GFP_REPEAT | __GFP_ZERO);

return pte;
}
Expand Down

0 comments on commit e7f3bac

Please sign in to comment.