iommu/amd: Take mmap_sem when calling get_user_pages
authorJay Cornwall <jay.cornwall@amd.com>
Mon, 28 Apr 2014 22:27:46 +0000 (17:27 -0500)
committerJoerg Roedel <joro@8bytes.org>
Tue, 13 May 2014 10:33:11 +0000 (12:33 +0200)
get_user_pages requires caller to hold a read lock on mmap_sem.

Signed-off-by: Jay Cornwall <jay.cornwall@amd.com>
Signed-off-by: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
Signed-off-by: Joerg Roedel <joro@8bytes.org>
drivers/iommu/amd_iommu_v2.c

index 5208828792e603ad3f5effaa22b2e9c09ca0ac02..203b2e6a91cfca1184eb37df8761b339bc2a3728 100644 (file)
@@ -504,8 +504,10 @@ static void do_fault(struct work_struct *work)
 
        write = !!(fault->flags & PPR_FAULT_WRITE);
 
+       down_read(&fault->state->mm->mmap_sem);
        npages = get_user_pages(fault->state->task, fault->state->mm,
                                fault->address, 1, write, 0, &page, NULL);
+       up_read(&fault->state->mm->mmap_sem);
 
        if (npages == 1) {
                put_page(page);
This page took 0.028279 seconds and 5 git commands to generate.