aboutsummaryrefslogtreecommitdiffstats
path: root/mm/pgtable-generic.c
diff options
context:
space:
mode:
authorGeliang Tang <geliangtang@163.com>2016-01-14 18:19:32 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2016-01-14 19:00:49 -0500
commit146693471f1df44115cf4aaf13c33618619ad855 (patch)
tree3bcdc95d68d963b87582faf937999d28f954e269 /mm/pgtable-generic.c
parent8cee852ec53fb530f10ccabf1596734209ae336b (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.c9
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