diff options
author | Kirill A. Shutemov <kirill.shutemov@linux.intel.com> | 2016-01-21 19:40:25 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-01-21 20:20:51 -0500 |
commit | b6ec57f4b92e9bae4617f7d98a054d45370284bb (patch) | |
tree | 31b894dc2fa7c8a885baa4be7094c73002999719 /mm/memcontrol.c | |
parent | 404a47410c26a115123885977053e9a1a4460929 (diff) |
thp: change pmd_trans_huge_lock() interface to return ptl
After THP refcounting rework we have only two possible return values
from pmd_trans_huge_lock(): success and failure. Return-by-pointer for
ptl doesn't make much sense in this case.
Let's convert pmd_trans_huge_lock() to return ptl on success and NULL on
failure.
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Minchan Kim <minchan@kernel.org>
Acked-by: Michal Hocko <mhocko@suse.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/memcontrol.c')
-rw-r--r-- | mm/memcontrol.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/mm/memcontrol.c b/mm/memcontrol.c index ca052f2a4a0b..d06cae2de783 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c | |||
@@ -4638,7 +4638,8 @@ static int mem_cgroup_count_precharge_pte_range(pmd_t *pmd, | |||
4638 | pte_t *pte; | 4638 | pte_t *pte; |
4639 | spinlock_t *ptl; | 4639 | spinlock_t *ptl; |
4640 | 4640 | ||
4641 | if (pmd_trans_huge_lock(pmd, vma, &ptl)) { | 4641 | ptl = pmd_trans_huge_lock(pmd, vma); |
4642 | if (ptl) { | ||
4642 | if (get_mctgt_type_thp(vma, addr, *pmd, NULL) == MC_TARGET_PAGE) | 4643 | if (get_mctgt_type_thp(vma, addr, *pmd, NULL) == MC_TARGET_PAGE) |
4643 | mc.precharge += HPAGE_PMD_NR; | 4644 | mc.precharge += HPAGE_PMD_NR; |
4644 | spin_unlock(ptl); | 4645 | spin_unlock(ptl); |
@@ -4826,7 +4827,8 @@ static int mem_cgroup_move_charge_pte_range(pmd_t *pmd, | |||
4826 | union mc_target target; | 4827 | union mc_target target; |
4827 | struct page *page; | 4828 | struct page *page; |
4828 | 4829 | ||
4829 | if (pmd_trans_huge_lock(pmd, vma, &ptl)) { | 4830 | ptl = pmd_trans_huge_lock(pmd, vma); |
4831 | if (ptl) { | ||
4830 | if (mc.precharge < HPAGE_PMD_NR) { | 4832 | if (mc.precharge < HPAGE_PMD_NR) { |
4831 | spin_unlock(ptl); | 4833 | spin_unlock(ptl); |
4832 | return 0; | 4834 | return 0; |