• Linus Torvalds's avatar
    Merge tag 'for-linus-hmm' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · 50a5de89
    Linus Torvalds authored
    Pull hmm updates from Jason Gunthorpe:
     "This series focuses on corner case bug fixes and general clarity
      improvements to hmm_range_fault(). It arose from a review of
      hmm_range_fault() by Christoph, Ralph and myself.
    
      hmm_range_fault() is being used by these 'SVM' style drivers to
      non-destructively read the page tables. It is very similar to
      get_user_pages() except that the output is an array of PFNs and
      per-pfn flags, and it has various modes of reading.
    
      This is necessary before RDMA ODP can be converted, as we don't want
      to have weird corner case regressions, which is still a looking
      forward item. Ralph has a nice tester for this routine, but it is
      waiting for feedback from the selftests maintainers.
    
      Summary:
    
       - 9 bug fixes
    
       - Allow pgmap to track the 'owner' of a DEVICE_PRIVATE - in this case
         the owner tells the driver if it can understand the DEVICE_PRIVATE
         page or not. Use this to resolve a bug in nouveau where it could
         touch DEVICE_PRIVATE pages from other drivers.
    
       - Remove a bunch of dead, redundant or unused code and flags
    
       - Clarity improvements to hmm_range_fault()"
    
    * tag 'for-linus-hmm' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (25 commits)
      mm/hmm: return error for non-vma snapshots
      mm/hmm: do not set pfns when returning an error code
      mm/hmm: do not unconditionally set pfns when returning EBUSY
      mm/hmm: use device_private_entry_to_pfn()
      mm/hmm: remove HMM_FAULT_SNAPSHOT
      mm/hmm: remove unused code and tidy comments
      mm/hmm: return the fault type from hmm_pte_need_fault()
      mm/hmm: remove pgmap checking for devmap pages
      mm/hmm: check the device private page owner in hmm_range_fault()
      mm: simplify device private page handling in hmm_range_fault
      mm: handle multiple owners of device private pages in migrate_vma
      memremap: add an owner field to struct dev_pagemap
      mm: merge hmm_vma_do_fault into into hmm_vma_walk_hole_
      mm/hmm: don't handle the non-fault case in hmm_vma_walk_hole_()
      mm/hmm: simplify hmm_vma_walk_hugetlb_entry()
      mm/hmm: remove the unused HMM_FAULT_ALLOW_RETRY flag
      mm/hmm: don't provide a stub for hmm_range_fault()
      mm/hmm: do not check pmd_protnone twice in hmm_vma_handle_pmd()
      mm/hmm: add missing call to hmm_pte_need_fault in HMM_PFN_SPECIAL handling
      mm/hmm: return -EFAULT when setting HMM_PFN_ERROR on requested valid pages
      ...
    50a5de89
amdgpu_ttm.c 65.7 KB