Patch "infiniband: fix race condition between infiniband mlx4, mlx5 driver and core dumping" has been added to the 4.9-stable tree

gregkh at gregkh at
Mon Aug 5 06:03:20 UTC 2019

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

    infiniband: fix race condition between infiniband mlx4, mlx5  driver and core dumping

to the 4.9-stable tree which can be found at:;a=summary

The filename of the patch is:
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 <stable at> know about it.

>From akaher at  Mon Aug  5 08:01:12 2019
From: Ajay Kaher <akaher at>
Date: Sun, 4 Aug 2019 09:29:26 +0530
Subject: infiniband: fix race condition between infiniband mlx4, mlx5  driver and core dumping
To: <aarcange at>, <jannh at>, <oleg at>, <peterx at>, <rppt at>, <jgg at>, <mhocko at>
Cc: srinidhir at, linux-kernel at, linux-mm at, amakhalov at, sean.hefty at, srivatsa at, srivatsab at, devel at, linux-rdma at, bvikas at, dledford at, akaher at, riandrews at, hal.rosenstock at, vsirnapalli at, leonro at, jglisse at, viro at, gregkh at, yishaih at, matanb at, stable at, arve at, linux-fsdevel at, akpm at, torvalds at, mike.kravetz at
Message-ID: <1564891168-30016-2-git-send-email-akaher at>

From: Ajay Kaher <akaher at>

This patch is the extension of following upstream commit to fix
the race condition between get_task_mm() and core dumping
for IB->mlx4 and IB->mlx5 drivers:

commit 04f5866e41fb ("coredump: fix race condition between
mmget_not_zero()/get_task_mm() and core dumping")'

Thanks to Jason for pointing this.

Signed-off-by: Ajay Kaher <akaher at>
Reviewed-by: Jason Gunthorpe <jgg at>
Signed-off-by: Greg Kroah-Hartman <gregkh at>
 drivers/infiniband/hw/mlx4/main.c |    4 +++-
 drivers/infiniband/hw/mlx5/main.c |    3 +++
 2 files changed, 6 insertions(+), 1 deletion(-)

--- a/drivers/infiniband/hw/mlx4/main.c
+++ b/drivers/infiniband/hw/mlx4/main.c
@@ -1172,6 +1172,8 @@ static void mlx4_ib_disassociate_ucontex
 	 * mlx4_ib_vma_close().
+	if (!mmget_still_valid(owning_mm))
+		goto skip_mm;
 	for (i = 0; i < HW_BAR_COUNT; i++) {
 		vma = context->hw_bar_info[i].vma;
 		if (!vma)
@@ -1190,7 +1192,7 @@ static void mlx4_ib_disassociate_ucontex
 		/* context going to be destroyed, should not access ops any more */
 		context->hw_bar_info[i].vma->vm_ops = NULL;
--- a/drivers/infiniband/hw/mlx5/main.c
+++ b/drivers/infiniband/hw/mlx5/main.c
@@ -1307,6 +1307,8 @@ static void mlx5_ib_disassociate_ucontex
 	 * mlx5_ib_vma_close.
+	if (!mmget_still_valid(owning_mm))
+		goto skip_mm;
 	list_for_each_entry_safe(vma_private, n, &context->vma_private_list,
 				 list) {
 		vma = vma_private->vma;
@@ -1321,6 +1323,7 @@ static void mlx5_ib_disassociate_ucontex

Patches currently in stable-queue which might be from akaher at are


More information about the devel mailing list