Re: [PATCH v6 17/17] RFC: mm: add mmu_notifier argument to follow_pfn

From: Jason Gunthorpe
Date: Fri Nov 20 2020 - 13:32:01 EST


On Thu, Nov 19, 2020 at 03:41:46PM +0100, Daniel Vetter wrote:
> @@ -4805,21 +4824,15 @@ EXPORT_SYMBOL(follow_pte_pmd);
> * Return: zero and the pfn at @pfn on success, -ve otherwise.
> */
> int follow_pfn(struct vm_area_struct *vma, unsigned long address,
> - unsigned long *pfn)
> + unsigned long *pfn, struct mmu_notifier *subscription)
> {
> - int ret = -EINVAL;
> - spinlock_t *ptl;
> - pte_t *ptep;
> + if (WARN_ON(!subscription->mm))
> + return -EINVAL;
>
> + if (WARN_ON(subscription->mm != vma->vm_mm))
> + return -EINVAL;

These two things are redundant right? vma->vm_mm != NULL?

BTW, why do we even have this for nommu? If the only caller is kvm,
can you even compile kvm on nommu??

Jason