]> git.baikalelectronics.ru Git - kernel.git/commit
mm/memory.c: properly pte_offset_map_lock/unlock in vm_insert_pages()
authorArjun Roy <arjunroy@google.com>
Fri, 26 Jun 2020 03:30:01 +0000 (20:30 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 26 Jun 2020 07:27:37 +0000 (00:27 -0700)
commit5538dd3b423fc131a311d14309b7368c5912bc9b
tree9acf8e8fac975ee9a01806f2f03273fab17bf98d
parent43e63971ec75ee91846215504e0922ffdaa8443b
mm/memory.c: properly pte_offset_map_lock/unlock in vm_insert_pages()

Calls to pte_offset_map() in vm_insert_pages() are erroneously not
matched with a call to pte_unmap().  This would cause problems on
architectures where that is not a no-op.

This patch does away with the non-traditional locking in the existing
code, and instead uses pte_offset_map_lock/unlock() as usual,
incrementing PTE as necessary.  The PTE pointer is kept within bounds
since we clamp it with PTRS_PER_PTE.

Link: http://lkml.kernel.org/r/20200618220446.20284-1-arjunroy.kdev@gmail.com
Fixes: a60851e56e14 ("mm/memory.c: add vm_insert_pages()")
Signed-off-by: Arjun Roy <arjunroy@google.com>
Acked-by: David Rientjes <rientjes@google.com>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Soheil Hassas Yeganeh <soheil@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/memory.c