mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 20:22:09 +00:00
mm: drop NULL return check of pte_offset_map_lock()
pte_offset_map_lock() finds and takes ptl, and returns pte. But some callers return without unlocking the ptl when pte == NULL, which seems weird. Git history said that !pte check in change_pte_range() was introduced in commit1ad9f620c3
("mm: numa: recheck for transhuge pages under lock during protection changes") and still remains after commit175ad4f1e7
("mm: mprotect: use pmd_trans_unstable instead of taking the pmd_lock") which partially reverts1ad9f620c3
. So I think that it's just dead code. Many other caller of pte_offset_map_lock() never check NULL return, so let's do likewise. Link: http://lkml.kernel.org/r/1495089737-1292-1-git-send-email-n-horiguchi@ah.jp.nec.com Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> Acked-by: Vlastimil Babka <vbabka@suse.cz> Cc: Mel Gorman <mgorman@suse.de> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Andrea Arcangeli <aarcange@redhat.com> Cc: Rik van Riel <riel@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
d73d3c9f69
commit
8bc3c3fe4f
@ -4014,8 +4014,6 @@ static int __follow_pte_pmd(struct mm_struct *mm, unsigned long address,
|
|||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
ptep = pte_offset_map_lock(mm, pmd, address, ptlp);
|
ptep = pte_offset_map_lock(mm, pmd, address, ptlp);
|
||||||
if (!ptep)
|
|
||||||
goto out;
|
|
||||||
if (!pte_present(*ptep))
|
if (!pte_present(*ptep))
|
||||||
goto unlock;
|
goto unlock;
|
||||||
*ptepp = ptep;
|
*ptepp = ptep;
|
||||||
|
@ -58,8 +58,6 @@ static unsigned long change_pte_range(struct vm_area_struct *vma, pmd_t *pmd,
|
|||||||
* reading.
|
* reading.
|
||||||
*/
|
*/
|
||||||
pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl);
|
pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl);
|
||||||
if (!pte)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
/* Get target node for single threaded private VMAs */
|
/* Get target node for single threaded private VMAs */
|
||||||
if (prot_numa && !(vma->vm_flags & VM_SHARED) &&
|
if (prot_numa && !(vma->vm_flags & VM_SHARED) &&
|
||||||
|
Loading…
Reference in New Issue
Block a user