Skip to contentSkip to conversation

Patch "IB/mlx5: Take write semaphore when changing the vma struct" has been added to the 4.9-stable tree

PATCH [email protected] 1 participant 1 message Mar 22, 2018

Subsystems (3)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

IB/mlx5: Take write semaphore when changing the vma struct

to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
ib-mlx5-take-write-semaphore-when-changing-the-vma-struct.patch
and it can be found in the queue-4.9 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From foo@baz Thu Mar 22 14:40:23 CET 2018

From: Maor Gottlieb <[email protected]>
Date: Wed, 29 Mar 2017 06:03:02 +0300
Subject: IB/mlx5: Take write semaphore when changing the vma struct

From: Maor Gottlieb <[email protected]>

[ Upstream commit ecc7d83be3243835c9396a1a2fb8ce95f205207b ]

When the driver disassociate user context, it changes the vma to anonymous by setting the vm_ops to null and zap the vma ptes.

In order to avoid race in the kernel, we need to take write lock before we change the vma entries.

Fixes 7c2344c3bbf97 ('IB/mlx5: Implements disassociate_ucontext API')
---
 drivers/infiniband/hw/mlx5/main.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/infiniband/hw/mlx5/main.c +2 -2
@@ -1313,7 +1313,7 @@ static void mlx5_ib_disassociate_ucontex
 	/* need to protect from a race on closing the vma as part of
 	 * mlx5_ib_vma_close.
 	 */
-	down_read(&owning_mm->mmap_sem);
+	down_write(&owning_mm->mmap_sem);
 	list_for_each_entry_safe(vma_private, n, &context->vma_private_list,
 				 list) {
 		vma = vma_private->vma;
@@ -1327,7 +1327,7 @@ static void mlx5_ib_disassociate_ucontex
 		list_del(&vma_private->list);
 		kfree(vma_private);
 	}
-	up_read(&owning_mm->mmap_sem);
+	up_write(&owning_mm->mmap_sem);
 	mmput(owning_mm);
 	put_task_struct(owning_process);
 }

Patches currently in stable-queue which might be from [email protected] are

queue-4.9/ib-mlx4-change-vma-from-shared-to-private.patch queue-4.9/ib-mlx5-take-write-semaphore-when-changing-the-vma-struct.patch queue-4.9/ib-mlx5-change-vma-from-shared-to-private.patch queue-4.9/ib-mlx4-take-write-semaphore-when-changing-the-vma-struct.patch