mm/hmm: return error for non-vma snapshots
authorJason Gunthorpe <jgg@mellanox.com>
Fri, 27 Mar 2020 20:00:21 +0000 (17:00 -0300)
committerJason Gunthorpe <jgg@mellanox.com>
Mon, 30 Mar 2020 19:58:36 +0000 (16:58 -0300)
commitbd5d3587b218d33d70a835582dfe1d8f8498e702
treedb5411fb8e0b0d82ef248753372d8d42d201fdbc
parent53bfe17ff88faaadf024956e7cb2b295fae7744b
mm/hmm: return error for non-vma snapshots

The pagewalker does not call most ops with NULL vma, those are all routed
to hmm_vma_walk_hole() via ops->pte_hole instead.

Thus hmm_vma_fault() is only called with a NULL vma from
hmm_vma_walk_hole(), so hoist the NULL vma check to there.

Now it is clear that snapshotting with no vma is a HMM_PFN_ERROR as
without a vma we have no path to call hmm_vma_fault().

Link: https://lore.kernel.org/r/20200327200021.29372-10-jgg@ziepe.ca
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
mm/hmm.c