diff options
author | Geliang Tang <geliangtang@163.com> | 2016-01-14 18:19:32 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-01-14 19:00:49 -0500 |
commit | 146693471f1df44115cf4aaf13c33618619ad855 (patch) | |
tree | 3bcdc95d68d963b87582faf937999d28f954e269 /mm/pgtable-generic.c | |
parent | 8cee852ec53fb530f10ccabf1596734209ae336b (diff) |
mm, thp: use list_first_entry_or_null()
Simplify the code with list_first_entry_or_null().
Signed-off-by: Geliang Tang <geliangtang@163.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/pgtable-generic.c')
-rw-r--r-- | mm/pgtable-generic.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/mm/pgtable-generic.c b/mm/pgtable-generic.c index 7d3db0247983..4c681baff363 100644 --- a/mm/pgtable-generic.c +++ b/mm/pgtable-generic.c | |||
@@ -176,13 +176,10 @@ pgtable_t pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp) | |||
176 | 176 | ||
177 | /* FIFO */ | 177 | /* FIFO */ |
178 | pgtable = pmd_huge_pte(mm, pmdp); | 178 | pgtable = pmd_huge_pte(mm, pmdp); |
179 | if (list_empty(&pgtable->lru)) | 179 | pmd_huge_pte(mm, pmdp) = list_first_entry_or_null(&pgtable->lru, |
180 | pmd_huge_pte(mm, pmdp) = NULL; | 180 | struct page, lru); |
181 | else { | 181 | if (pmd_huge_pte(mm, pmdp)) |
182 | pmd_huge_pte(mm, pmdp) = list_entry(pgtable->lru.next, | ||
183 | struct page, lru); | ||
184 | list_del(&pgtable->lru); | 182 | list_del(&pgtable->lru); |
185 | } | ||
186 | return pgtable; | 183 | return pgtable; |
187 | } | 184 | } |
188 | #endif | 185 | #endif |