iommu/amd: Fix BUG when faulting a PROT_NONE VMA
authorJay Cornwall <jay@jcornwall.me>
Wed, 16 Sep 2015 19:10:03 +0000 (14:10 -0500)
committerJoerg Roedel <jroedel@suse.de>
Thu, 15 Oct 2015 14:13:07 +0000 (16:13 +0200)
commitd14f6fced5f9360edca5a1325ddb7077aab1203b
tree316e2d46b4987b04d6a8a6c7aae18bdef9fbc7c9
parent5adad9915472e180712030d730cdc476c6f8a60b
iommu/amd: Fix BUG when faulting a PROT_NONE VMA

handle_mm_fault indirectly triggers a BUG in do_numa_page
when given a VMA without read/write/execute access. Check
this condition in do_fault.

do_fault -> handle_mm_fault -> handle_pte_fault -> do_numa_page

  mm/memory.c
  3147  static int do_numa_page(struct mm_struct *mm, struct vm_area_struct *vma,
  ....
  3159  /* A PROT_NONE fault should not end up here */
  3160  BUG_ON(!(vma->vm_flags & (VM_READ | VM_EXEC | VM_WRITE)));

Signed-off-by: Jay Cornwall <jay@jcornwall.me>
Cc: <stable@vger.kernel.org> # v4.1+
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/amd_iommu_v2.c