forked from luck/tmp_suning_uos_patched
[AVR32] Simplify pte_alloc_one{,_kernel}
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>
This commit is contained in:
parent
5221b34edf
commit
e7f3bac95e
@ -38,18 +38,9 @@ static inline void pgd_free(pgd_t *pgd)
|
|||||||
static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm,
|
static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm,
|
||||||
unsigned long address)
|
unsigned long address)
|
||||||
{
|
{
|
||||||
int count = 0;
|
|
||||||
pte_t *pte;
|
pte_t *pte;
|
||||||
|
|
||||||
do {
|
pte = (pte_t *)get_zeroed_page(GFP_KERNEL | __GFP_REPEAT);
|
||||||
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));
|
|
||||||
|
|
||||||
return pte;
|
return pte;
|
||||||
}
|
}
|
||||||
@ -57,18 +48,9 @@ static inline pte_t *pte_alloc_one_kernel(struct mm_struct *mm,
|
|||||||
static inline struct page *pte_alloc_one(struct mm_struct *mm,
|
static inline struct page *pte_alloc_one(struct mm_struct *mm,
|
||||||
unsigned long address)
|
unsigned long address)
|
||||||
{
|
{
|
||||||
int count = 0;
|
|
||||||
struct page *pte;
|
struct page *pte;
|
||||||
|
|
||||||
do {
|
pte = alloc_page(GFP_KERNEL | __GFP_REPEAT | __GFP_ZERO);
|
||||||
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));
|
|
||||||
|
|
||||||
return pte;
|
return pte;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user