Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4378d992 authored by Jay Cornwall's avatar Jay Cornwall Committed by Joerg Roedel
Browse files

iommu/amd: Take mmap_sem when calling get_user_pages



get_user_pages requires caller to hold a read lock on mmap_sem.

Signed-off-by: default avatarJay Cornwall <jay.cornwall@amd.com>
Signed-off-by: default avatarSuravee Suthikulpanit <suravee.suthikulpanit@amd.com>
Signed-off-by: default avatarJoerg Roedel <joro@8bytes.org>
parent e028a9e6
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -504,8 +504,10 @@ static void do_fault(struct work_struct *work)


	write = !!(fault->flags & PPR_FAULT_WRITE);
	write = !!(fault->flags & PPR_FAULT_WRITE);


	down_read(&fault->state->mm->mmap_sem);
	npages = get_user_pages(fault->state->task, fault->state->mm,
	npages = get_user_pages(fault->state->task, fault->state->mm,
				fault->address, 1, write, 0, &page, NULL);
				fault->address, 1, write, 0, &page, NULL);
	up_read(&fault->state->mm->mmap_sem);


	if (npages == 1) {
	if (npages == 1) {
		put_page(page);
		put_page(page);