From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Sasha Levin To: "stable@vger.kernel.org" , "linux-kernel@vger.kernel.org" CC: Leon Romanovsky , Jason Gunthorpe , Sasha Levin Subject: [PATCH AUTOSEL 4.18 030/136] RDMA/i40w: Hold read semaphore while looking after VMA Date: Mon, 17 Sep 2018 03:00:31 +0000 Message-ID: <20180917030006.245495-30-alexander.levin@microsoft.com> References: <20180917030006.245495-1-alexander.levin@microsoft.com> In-Reply-To: <20180917030006.245495-1-alexander.levin@microsoft.com> Content-Language: en-US Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: From: Leon Romanovsky [ Upstream commit 5d9a2b0e28759e319a623da33940dbb3ce952b7d ] VMA lookup is supposed to be performed while mmap_sem is held. Fixes: f26c7c83395b ("i40iw: Add 2MB page support") Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe Signed-off-by: Sasha Levin --- drivers/infiniband/hw/i40iw/i40iw_verbs.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/infiniband/hw/i40iw/i40iw_verbs.c b/drivers/infiniband= /hw/i40iw/i40iw_verbs.c index 68679ad4c6da..937899fea01d 100644 --- a/drivers/infiniband/hw/i40iw/i40iw_verbs.c +++ b/drivers/infiniband/hw/i40iw/i40iw_verbs.c @@ -1409,6 +1409,7 @@ static void i40iw_set_hugetlb_values(u64 addr, struct= i40iw_mr *iwmr) struct vm_area_struct *vma; struct hstate *h; =20 + down_read(¤t->mm->mmap_sem); vma =3D find_vma(current->mm, addr); if (vma && is_vm_hugetlb_page(vma)) { h =3D hstate_vma(vma); @@ -1417,6 +1418,7 @@ static void i40iw_set_hugetlb_values(u64 addr, struct= i40iw_mr *iwmr) iwmr->page_msk =3D huge_page_mask(h); } } + up_read(¤t->mm->mmap_sem); } =20 /** --=20 2.17.1