Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp3595237pxk; Mon, 5 Oct 2020 13:59:40 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyv/9b6wWz1ED/hRGQHIGgECpP6KtrPVMn34OEhaHrnlCrQPZXdWusFtPpHgdb1ycz5Kdaz X-Received: by 2002:a17:906:3f95:: with SMTP id b21mr1655370ejj.93.1601931579935; Mon, 05 Oct 2020 13:59:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1601931579; cv=none; d=google.com; s=arc-20160816; b=Cg9p/QjAciKaFolyJpz5vtw6RztVFW2btlUqS4ju5/lJkoSPn/3ze1pR38NCw5gPDN 7FjBq6HWxdOFFY3D45xvy9sFrsMB7h67XR1yQ+g5qreOxpkJ2dbyj0A+PfLmZVoo5Hfu vgys6W6y5xkzMYNMV73CYDAxcg/5iS2cuwNgIn6k/wZq8eb3ijE9Yfv6Fzb36H0dZMMZ OU9TwbrPVOflYt6yqWnMioUFSznWqTL4oUte6DTG7SpTbtGq6yRi2TS+u7GQV7RNQ/fP 2HmebAiYXqT8lVQ5PSihV72ppjPjnLOwgTMS/SQqXyVT9/LylDGFhgte1FOKhlTph0w5 Apvw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date; bh=XqhIz+JcfymZwVpntpaMycNXnvISyGTEWq8eqR7xXCs=; b=nmsxaSvFXnjbQ7Mj7mOnbYOnOzL1OckXDZD2xHDJ/vsZxDG46WECWYh/oGE9+sKCHr va/SUDZqwAF3LZIWIxdG8dbVSvfevVrKkrAdOCZPzINr/A+Mb1DKq90ZmFq+9WOO98Ci GMxTLFwGNuG8fuhHaqZEmTPMKuS7Ulns+xQFBkVBDj6tcB2RWSQdw/6f7us9wusbbIow yxuXKR0hRfZB8aPgyce0+M6/fn2JZRQL2rCs6ZSkjaRBobq/rjNLuYMbGadmO4WkJ8Xi F7BlKKaL+PND6dcYQJM5Gu88cyP/Vlx8/DjCr/4bhAd07fY4Swpjfi3yumtA0zCDQBVK PaNQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id e17si715034edq.494.2020.10.05.13.59.17; Mon, 05 Oct 2020 13:59:39 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726013AbgJEU6H (ORCPT + 99 others); Mon, 5 Oct 2020 16:58:07 -0400 Received: from jabberwock.ucw.cz ([46.255.230.98]:56558 "EHLO jabberwock.ucw.cz" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725865AbgJEU6G (ORCPT ); Mon, 5 Oct 2020 16:58:06 -0400 Received: by jabberwock.ucw.cz (Postfix, from userid 1017) id 431AF1C0B77; Mon, 5 Oct 2020 22:58:04 +0200 (CEST) Date: Mon, 5 Oct 2020 22:58:03 +0200 From: Pavel Machek To: Greg Kroah-Hartman Cc: linux-kernel@vger.kernel.org, stable@vger.kernel.org, Chaitanya Kulkarni , Christoph Hellwig , Sasha Levin Subject: Re: [PATCH 4.19 17/38] nvme-core: get/put ctrl and transport module in nvme_dev_open/release() Message-ID: <20201005205803.GA27782@amd> References: <20201005142108.650363140@linuxfoundation.org> <20201005142109.502047700@linuxfoundation.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="C7zPtVaVf+AK4Oqc" Content-Disposition: inline In-Reply-To: <20201005142109.502047700@linuxfoundation.org> User-Agent: Mutt/1.5.23 (2014-03-12) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --C7zPtVaVf+AK4Oqc Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi! > diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c > index 33dad9774da01..9ea3d8e611005 100644 > --- a/drivers/nvme/host/core.c > +++ b/drivers/nvme/host/core.c > @@ -2605,10 +2605,24 @@ static int nvme_dev_open(struct inode *inode, str= uct file *file) > return -EWOULDBLOCK; > } > =20 > + nvme_get_ctrl(ctrl); > + if (!try_module_get(ctrl->ops->module)) > + return -EINVAL; This needs to do nvme_put_ctrl(ctrl); before returning, right? Otherwise we leak the reference. Plus, I'm not sure EINVAL is right error return. EBUSY? Signed-off-by: Pavel Machek (CIP) diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index 9ea3d8e61100..01c36f3dd87f 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -2606,8 +2606,10 @@ static int nvme_dev_open(struct inode *inode, struct= file *file) } =20 nvme_get_ctrl(ctrl); - if (!try_module_get(ctrl->ops->module)) - return -EINVAL; + if (!try_module_get(ctrl->ops->module)) { + nvme_put_ctrl(ctrl); + return -EBUSY; + } =20 file->private_data =3D ctrl; return 0; --=20 (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blo= g.html --C7zPtVaVf+AK4Oqc Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iEYEARECAAYFAl97iNsACgkQMOfwapXb+vKY/QCgu5iFjb5Q6+5DJ8nYlcpQ2Vxh TKcAnA3yoyqzy8hUN9+Jbz4D7BUaMUzF =T7Kw -----END PGP SIGNATURE----- --C7zPtVaVf+AK4Oqc--