hmm               805 drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c 	mm = mirror->hmm->mmu_notifier.mm;
hmm               162 include/linux/hmm.h 	struct hmm		*hmm;
hmm               184 include/linux/hmm.h 	return wait_event_timeout(range->hmm->wq, range->valid,
hmm               367 include/linux/hmm.h 	struct hmm			*hmm;
hmm                31 mm/hmm.c       	struct hmm *hmm;
hmm                33 mm/hmm.c       	hmm = kzalloc(sizeof(*hmm), GFP_KERNEL);
hmm                34 mm/hmm.c       	if (!hmm)
hmm                37 mm/hmm.c       	init_waitqueue_head(&hmm->wq);
hmm                38 mm/hmm.c       	INIT_LIST_HEAD(&hmm->mirrors);
hmm                39 mm/hmm.c       	init_rwsem(&hmm->mirrors_sem);
hmm                40 mm/hmm.c       	INIT_LIST_HEAD(&hmm->ranges);
hmm                41 mm/hmm.c       	spin_lock_init(&hmm->ranges_lock);
hmm                42 mm/hmm.c       	hmm->notifiers = 0;
hmm                43 mm/hmm.c       	return &hmm->mmu_notifier;
hmm                48 mm/hmm.c       	struct hmm *hmm = container_of(mn, struct hmm, mmu_notifier);
hmm                50 mm/hmm.c       	WARN_ON(!list_empty(&hmm->ranges));
hmm                51 mm/hmm.c       	WARN_ON(!list_empty(&hmm->mirrors));
hmm                52 mm/hmm.c       	kfree(hmm);
hmm                57 mm/hmm.c       	struct hmm *hmm = container_of(mn, struct hmm, mmu_notifier);
hmm                64 mm/hmm.c       	WARN_ON(!list_empty_careful(&hmm->ranges));
hmm                66 mm/hmm.c       	down_read(&hmm->mirrors_sem);
hmm                67 mm/hmm.c       	list_for_each_entry(mirror, &hmm->mirrors, list) {
hmm                75 mm/hmm.c       	up_read(&hmm->mirrors_sem);
hmm                78 mm/hmm.c       static void notifiers_decrement(struct hmm *hmm)
hmm                82 mm/hmm.c       	spin_lock_irqsave(&hmm->ranges_lock, flags);
hmm                83 mm/hmm.c       	hmm->notifiers--;
hmm                84 mm/hmm.c       	if (!hmm->notifiers) {
hmm                87 mm/hmm.c       		list_for_each_entry(range, &hmm->ranges, list) {
hmm                92 mm/hmm.c       		wake_up_all(&hmm->wq);
hmm                94 mm/hmm.c       	spin_unlock_irqrestore(&hmm->ranges_lock, flags);
hmm               100 mm/hmm.c       	struct hmm *hmm = container_of(mn, struct hmm, mmu_notifier);
hmm               106 mm/hmm.c       	spin_lock_irqsave(&hmm->ranges_lock, flags);
hmm               107 mm/hmm.c       	hmm->notifiers++;
hmm               108 mm/hmm.c       	list_for_each_entry(range, &hmm->ranges, list) {
hmm               114 mm/hmm.c       	spin_unlock_irqrestore(&hmm->ranges_lock, flags);
hmm               117 mm/hmm.c       		down_read(&hmm->mirrors_sem);
hmm               118 mm/hmm.c       	else if (!down_read_trylock(&hmm->mirrors_sem)) {
hmm               123 mm/hmm.c       	list_for_each_entry(mirror, &hmm->mirrors, list) {
hmm               135 mm/hmm.c       	up_read(&hmm->mirrors_sem);
hmm               139 mm/hmm.c       		notifiers_decrement(hmm);
hmm               146 mm/hmm.c       	struct hmm *hmm = container_of(mn, struct hmm, mmu_notifier);
hmm               148 mm/hmm.c       	notifiers_decrement(hmm);
hmm               188 mm/hmm.c       	mirror->hmm = container_of(mn, struct hmm, mmu_notifier);
hmm               190 mm/hmm.c       	down_write(&mirror->hmm->mirrors_sem);
hmm               191 mm/hmm.c       	list_add(&mirror->list, &mirror->hmm->mirrors);
hmm               192 mm/hmm.c       	up_write(&mirror->hmm->mirrors_sem);
hmm               207 mm/hmm.c       	struct hmm *hmm = mirror->hmm;
hmm               209 mm/hmm.c       	down_write(&hmm->mirrors_sem);
hmm               211 mm/hmm.c       	up_write(&hmm->mirrors_sem);
hmm               212 mm/hmm.c       	mmu_notifier_put(&hmm->mmu_notifier);
hmm               793 mm/hmm.c       	struct hmm *hmm = mirror->hmm;
hmm               797 mm/hmm.c       	range->hmm = NULL;
hmm               805 mm/hmm.c       	if (!mmget_not_zero(hmm->mmu_notifier.mm))
hmm               809 mm/hmm.c       	spin_lock_irqsave(&hmm->ranges_lock, flags);
hmm               811 mm/hmm.c       	range->hmm = hmm;
hmm               812 mm/hmm.c       	list_add(&range->list, &hmm->ranges);
hmm               818 mm/hmm.c       	if (!hmm->notifiers)
hmm               820 mm/hmm.c       	spin_unlock_irqrestore(&hmm->ranges_lock, flags);
hmm               835 mm/hmm.c       	struct hmm *hmm = range->hmm;
hmm               838 mm/hmm.c       	spin_lock_irqsave(&hmm->ranges_lock, flags);
hmm               840 mm/hmm.c       	spin_unlock_irqrestore(&hmm->ranges_lock, flags);
hmm               843 mm/hmm.c       	mmput(hmm->mmu_notifier.mm);
hmm               851 mm/hmm.c       	memset(&range->hmm, POISON_INUSE, sizeof(range->hmm));
hmm               895 mm/hmm.c       	struct hmm *hmm = range->hmm;
hmm               899 mm/hmm.c       	lockdep_assert_held(&hmm->mmu_notifier.mm->mmap_sem);
hmm               906 mm/hmm.c       		vma = find_vma(hmm->mmu_notifier.mm, start);