From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mta1.migadu.com (out-237.mta1.migadu.com [95.215.58.237]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7C9972DF126 for ; Thu, 8 Oct 2026 05:47:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=95.215.58.237 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791438433; cv=none; b=gWU/IMMTBm01JhmZ6MpWKw2v2aIQEqMN7BcSqPF16bycYqe0583uVl5b5mRuJOsfdgNLKzSvZa5Sl/3GVSLM8tWF/c5KvMfKGxy05AjXFuZcdIMPXG1dX62iTXySFEfGCfhQGvgR2RejMkrg46hvl1MKO8gMM5A3J4d/Xj+8Skw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791438433; c=relaxed/simple; bh=Oxi9M9WIAPNUTBUO7azXc2qlMNdidYUbADdfUbmOkDU=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=s09c5+Fi4YFui6IM2uANjQ/RsIIxxjfKOe20GD5vGmUv73Byxxhb7Vtgk4SgkiFxWlIlwuotM3QoRtC18tGnKSHQhFTguYamsL8BNjFhwqrKFTzHUhEeFMmAsnglwjuq2Ng8ciuM1bIq8Ue2psGWrR7kOM+O+N2ZtDqbuYeLAJ8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=wgRhgWdB; arc=none smtp.client-ip=95.215.58.237 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="wgRhgWdB" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=Oxi9M9WIAPNUTBUO7azXc2qlMNdidYUbADdfUbmOkDU=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1791438429; v=1; x=1792043229; b=wgRhgWdB/f+satF80/R21WU8Ji31U9YZDFl3rdY91bcAowK5CgF7P2etgBFXaY71F7tUrt9D 8E1u2nNPYW+hyUaD5I6GmnhlGk1wfTKdYNYqx5WZsCZOuVHP4gvJrJ3F8fnsdtGyq1+n1XMQiN7 tovEytfgHME2zbZHovm2EZuM= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id 46a23afb19c5ec56; Thu, 08 Oct 2026 05:47:08 +0000 X-Mizu-Trace-ID: 46a23afb19c5ec56 X-Migadu-Flow: FLOW_OUT Date: Thu, 8 Oct 2026 13:47:33 +0800 From: Chenguang Zhao To: Prathamesh Deshpande Cc: Leon Romanovsky , Tariq Toukan , Saeed Mahameed , Jason Gunthorpe , linux-rdma@vger.kernel.org, linux-kernel@vger.kernel.org, saeedm@nvidia.com, tariqt@nvidia.com Subject: Re: [PATCH rdma] RDMA/mlx5: Cancel deferred page-fault EQ work before teardown Message-ID: <20261008054733.GA256585@pc> References: <20261007234216.2765-1-prathameshdeshpande7@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20261007234216.2765-1-prathameshdeshpande7@gmail.com> On Thu, Oct 08, 2026 at 12:42:11AM +0100, Prathamesh Deshpande wrote: > Page-fault EQ work can remain queued after the notifier is disabled. > Destroying the EQ before cancelling that work can let the worker access > freed EQ memory. > > Cancel the deferred work before destroying the EQ. > > Fixes: d5d284b829a6 ("{net,IB}/mlx5: Move Page fault EQ and ODP logic to RDMA") > Signed-off-by: Prathamesh Deshpande > --- > drivers/infiniband/hw/mlx5/odp.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/infiniband/hw/mlx5/odp.c b/drivers/infiniband/hw/mlx5/odp.c > index b8618610737a..1f28c30095dc 100644 > --- a/drivers/infiniband/hw/mlx5/odp.c > +++ b/drivers/infiniband/hw/mlx5/odp.c > @@ -1885,8 +1885,8 @@ mlx5_ib_odp_destroy_eq(struct mlx5_ib_dev *dev, struct mlx5_ib_pf_eq *eq) > if (!eq->core) > return 0; > mlx5_eq_disable(dev->mdev, eq->core, &eq->irq_nb); > - err = mlx5_eq_destroy_generic(dev->mdev, eq->core); > cancel_work_sync(&eq->work); > + err = mlx5_eq_destroy_generic(dev->mdev, eq->core); > destroy_workqueue(eq->wq); > mempool_destroy(eq->pool); > > -- > 2.43.0 > Looks correct. Reviewed-by: Chenguang Zhao