mm/hmm: do not call hmm_vma_walk_hole() while holding a spinlock
authorJason Gunthorpe <jgg@mellanox.com>
Mon, 2 Mar 2020 19:26:44 +0000 (15:26 -0400)
committerJason Gunthorpe <jgg@mellanox.com>
Thu, 26 Mar 2020 17:33:37 +0000 (14:33 -0300)
commit05fc1df95e5dc09802813bab9c1e718f1e419d93
treeadcaddd7bac8e2f5aa139d0075b096cbc2e4dfd1
parentdfdc22078f3f064d2659acdc42d886834f3a3863
mm/hmm: do not call hmm_vma_walk_hole() while holding a spinlock

This eventually calls into handle_mm_fault() which is a sleeping function.
Release the lock first.

hmm_vma_walk_hole() does not touch the contents of the PUD, so it does not
need the lock.

Fixes: 3afc423632a1 ("mm: pagewalk: add p4d_entry() and pgd_entry()")
Cc: Steven Price <steven.price@arm.com>
Reviewed-by: Ralph Campbell <rcampbell@nvidia.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
mm/hmm.c