History

mm/hmm: remove superfluous arguments from hmm_range_register

The start, end and page_shift values are all saved in the range structure, so we might as well use that for argument passing.

Christoph Hellwig committed 7 years ago

Commit fac555a1 parent 2cbeb415 files · +14 −26Browse files

Unified · Split

5 files
  1. Documentation/vm/hmm.rst +1 −1
  2. drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +5 −2
  3. drivers/gpu/drm/nouveau/nouveau_svm.c +2 −3
  4. include/linux/hmm.h +1 −5
  5. mm/hmm.c +5 −15
Documentation/vm/hmm.rst+1−1
@@ -222,7 +222,7 @@ The usage pattern is:: · 221 unmodified lines
222222 range.flags = ...;
223223 range.values = ...;
224224 range.pfn_shift = ...;
225− hmm_range_register(&range);
225+ hmm_range_register(&range, mirror);
226226
227227 /*
228228 * Just wait for range to be valid, safe to ignore return value as we
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c+5−2
@@ -818,8 +818,11 @@ int amdgpu_ttm_tt_get_user_pages(struct amdgpu_bo *bo, struct page **pages) · 817 unmodified lines
818818 0 : range->flags[HMM_PFN_WRITE];
819819 range->pfn_flags_mask = 0;
820820 range->pfns = pfns;
821− hmm_range_register(range, mirror, start,
822− start + ttm->num_pages * PAGE_SIZE, PAGE_SHIFT);
821+ range->page_shift = PAGE_SHIFT;
822+ range->start = start;
823+ range->end = start + ttm->num_pages * PAGE_SIZE;
824+
825+ hmm_range_register(range, mirror);
823826
824827 /*
825828 * Just wait for range to be valid, safe to ignore return value as we
drivers/gpu/drm/nouveau/nouveau_svm.c+2−3
@@ -492,9 +492,7 @@ nouveau_range_fault(struct nouveau_svmm *svmm, struct hmm_range *range) · 491 unmodified lines
492492 range->default_flags = 0;
493493 range->pfn_flags_mask = -1UL;
494494
495− ret = hmm_range_register(range, &svmm->mirror,
496− range->start, range->end,
497− PAGE_SHIFT);
495+ ret = hmm_range_register(range, &svmm->mirror);
498496 if (ret) {
499497 up_read(&svmm->mm->mmap_sem);
500498 return (int)ret;
@@ -682,6 +680,7 @@ nouveau_svm_fault(struct nvif_notify *notify) · 181 unmodified lines
682680 args.i.p.addr + args.i.p.size, fn - fi);
683681
684682 /* Have HMM fault pages within the fault window to the GPU. */
683+ range.page_shift = PAGE_SHIFT;
685684 range.start = args.i.p.addr;
686685 range.end = args.i.p.addr + args.i.p.size;
687686 range.pfns = args.phys;
include/linux/hmm.h+1−5
@@ -400,11 +400,7 @@ void hmm_mirror_unregister(struct hmm_mirror *mirror); · 399 unmodified lines
400400 /*
401401 * Please see Documentation/vm/hmm.rst for how to use the range API.
402402 */
403−int hmm_range_register(struct hmm_range *range,
404− struct hmm_mirror *mirror,
405− unsigned long start,
406− unsigned long end,
407− unsigned page_shift);
403+int hmm_range_register(struct hmm_range *range, struct hmm_mirror *mirror);
408404 void hmm_range_unregister(struct hmm_range *range);
409405
410406 /*
mm/hmm.c+5−15
@@ -850,35 +850,25 @@ static void hmm_pfns_clear(struct hmm_range *range, · 849 unmodified lines
850850 * hmm_range_register() - start tracking change to CPU page table over a range
851851 * @range: range
852852 * @mm: the mm struct for the range of virtual address
853− * @start: start virtual address (inclusive)
854− * @end: end virtual address (exclusive)
855− * @page_shift: expect page shift for the range
853+ *
856854 * Return: 0 on success, -EFAULT if the address space is no longer valid
857855 *
858856 * Track updates to the CPU page table see include/linux/hmm.h
859857 */
860−int hmm_range_register(struct hmm_range *range,
861− struct hmm_mirror *mirror,
862− unsigned long start,
863− unsigned long end,
864− unsigned page_shift)
858+int hmm_range_register(struct hmm_range *range, struct hmm_mirror *mirror)
865859 {
866− unsigned long mask = ((1UL << page_shift) - 1UL);
860+ unsigned long mask = ((1UL << range->page_shift) - 1UL);
867861 struct hmm *hmm = mirror->hmm;
868862 unsigned long flags;
869863
870864 range->valid = false;
871865 range->hmm = NULL;
872866
873− if ((start & mask) || (end & mask))
867+ if ((range->start & mask) || (range->end & mask))
874868 return -EINVAL;
875− if (start >= end)
869+ if (range->start >= range->end)
876870 return -EINVAL;
877871
878− range->page_shift = page_shift;
879− range->start = start;
880− range->end = end;
881−
882872 /* Prevent hmm_release() from running while the range is valid */
883873 if (!mmget_not_zero(hmm->mm))
884874 return -EFAULT;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t