hmm_range_fault related fixes and legacy API removal v3

From: Christoph Hellwig
Date: Wed Jul 24 2019 - 02:53:07 EST


Hi JÃrÃme, Ben and Jason,

below is a series against the hmm tree which fixes up the mmap_sem
locking in nouveau and while at it also removes leftover legacy HMM APIs
only used by nouveau.

The first 4 patches are a bug fix for nouveau, which I suspect should
go into this merge window even if the code is marked as staging, just
to avoid people copying the breakage.

Changes since v2:
- new patch from Jason to document FAULT_FLAG_ALLOW_RETRY semantics
better
- remove -EAGAIN handling in nouveau earlier

Changes since v1:
- don't return the valid state from hmm_range_unregister
- additional nouveau cleanups