On Thu, Nov 04, 2021 at 12:20:01PM +1100, Alistair Popple wrote: > hmm_range_fault() can be used instead of get_user_pages() for devices > which allow faulting however unlike get_user_pages() it will return an > error when used on a VM_MIXEDMAP range. > > To make hmm_range_fault() more closely match get_user_pages() remove > this restriction. This requires dealing with the !ARCH_HAS_PTE_SPECIAL > case in hmm_vma_handle_pte(). Rather than replicating the logic of > vm_normal_page() call it directly and do a check for the zero pfn > similar to what get_user_pages() currently does. > > Also add a test to hmm selftest to verify functionality. Please add a fixes line > Signed-off-by: Alistair Popple <apopple@xxxxxxxxxx> > --- > lib/test_hmm.c | 24 +++++++++++++++ > mm/hmm.c | 5 +-- > tools/testing/selftests/vm/hmm-tests.c | 42 ++++++++++++++++++++++++++ > 3 files changed, 69 insertions(+), 2 deletions(-) Reviewed-by: Jason Gunthorpe <jgg@xxxxxxxxxx> Jason