Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp5605098pxb; Sun, 7 Nov 2021 16:14:13 -0800 (PST) X-Google-Smtp-Source: ABdhPJx01qpvcUWsmklc3P2xshiE0egTfrGD6cUI1pbiwtqH6NaO7CF2vOayv9kIJBqWaV3+4N1T X-Received: by 2002:a17:907:3f19:: with SMTP id hq25mr57081754ejc.225.1636330453064; Sun, 07 Nov 2021 16:14:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1636330453; cv=none; d=google.com; s=arc-20160816; b=GChLurRLAAcM+OMy4WyVQAYQRf+/cBenK3nPGBk1/t2XnVeoyUPfjXU7KpPso5fCq/ WKXuK5zHJitj4k/Lkxj9D5AUfTtnDQmENgHiAv5Cjpi0DXdlg+LlbADm5xL3cDi7+dk6 k7vhnAEjKSGjHeLhQHtTPxqJqZogrKtIvdbj0WvwDDZ8hnb3WJTfr4FlN/s5jx5GvBA8 D3CMOshtSQIHlsmQpUsNxZLDjskfO4cvGyxabKdWrV32Ty0Axi+49A5hKGwfYBSRqSl3 0ltlD9aN1XVsLxYbPuQIOOaNs4Y73jCuo+E1m1JTHpCclhjpW5tOf4RLPoi+JeKVV3+p CjBg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:references:cc :to:from:subject; bh=ScqpsOESlz81pNrW/p5QpL7xgPEwj+YZyzi1cMtc+OU=; b=WFm1WoagtT6p7V0Pp1YpgdEP6I0PCoqNGUXlRfizASg58WkOFFRBeJBANlgYovA1J/ JgoiBeceTv0hPotIjDQtbRhAHAxV+tJrFfHHAptHP8JLongSIi5atDhw1sCdnsNVl/PM URCsJw9m7dNqOf1pBuzvc+wBJtmqzxQ/YKWoEmXdwqfcr1Nr7Ya9uK273aT3/6X63qrH Dj8XXCMBpxh54FV0jDgbWlYrB+ekN6ZZkc+N5uNhYC+2c00eAVTLVt2Ha3YVrUmrmzCI 7Won9S7i8m/uuClCNphcsqEzq6T63Thw/u+51Nc28r5W6LeAa1jd78bWzfAcSuLq+03A 4k2w== 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 s10si38603336edd.193.2021.11.07.16.13.49; Sun, 07 Nov 2021 16:14:13 -0800 (PST) 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 S232626AbhKGR2B (ORCPT + 99 others); Sun, 7 Nov 2021 12:28:01 -0500 Received: from smtp09.smtpout.orange.fr ([80.12.242.131]:65166 "EHLO smtp.smtpout.orange.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232053AbhKGR17 (ORCPT ); Sun, 7 Nov 2021 12:27:59 -0500 Received: from [192.168.1.18] ([86.243.171.122]) by smtp.orange.fr with ESMTPA id jlutmTloWf6fnjlutmDbdz; Sun, 07 Nov 2021 18:25:16 +0100 X-ME-Helo: [192.168.1.18] X-ME-Auth: YWZlNiIxYWMyZDliZWIzOTcwYTEyYzlhMmU3ZiQ1M2U2MzfzZDfyZTMxZTBkMTYyNDBjNDJlZmQ3ZQ== X-ME-Date: Sun, 07 Nov 2021 18:25:16 +0100 X-ME-IP: 86.243.171.122 Subject: Re: [PATCH] nvdimm/pmem: Fix an error handling path in 'pmem_attach_disk()' From: Marion & Christophe JAILLET To: Ira Weiny Cc: dan.j.williams@intel.com, vishal.l.verma@intel.com, dave.jiang@intel.com, nvdimm@lists.linux.dev, linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org References: <20211107171157.GC3538886@iweiny-DESK2.sc.intel.com> <050385c3-7707-76cb-c580-c64d43456462@wanadoo.fr> Message-ID: <22d5172f-2d13-0ce2-2029-9cf46f203792@wanadoo.fr> Date: Sun, 7 Nov 2021 18:25:15 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0 MIME-Version: 1.0 In-Reply-To: <050385c3-7707-76cb-c580-c64d43456462@wanadoo.fr> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: fr Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Le 07/11/2021 à 18:20, Christophe JAILLET a écrit : > Le 07/11/2021 à 18:11, Ira Weiny a écrit : >> On Sat, Nov 06, 2021 at 06:27:11PM +0100, Christophe JAILLET wrote: >>> If 'devm_init_badblocks()' fails, a previous 'blk_alloc_disk()' call >>> must >>> be undone. >> >> I think this is a problem... >> >>> >>> Signed-off-by: Christophe JAILLET >>> --- >>> This patch is speculative. Several fixes on error handling paths have >>> been >>> done recently, but this one has been left as-is. There was maybe a good >>> reason that I have missed for that. So review with care! >>> >>> I've not been able to identify a Fixes tag that please me :( >>> --- >>>   drivers/nvdimm/pmem.c | 5 +++-- >>>   1 file changed, 3 insertions(+), 2 deletions(-) >>> >>> diff --git a/drivers/nvdimm/pmem.c b/drivers/nvdimm/pmem.c >>> index fe7ece1534e1..c37a1e6750b3 100644 >>> --- a/drivers/nvdimm/pmem.c >>> +++ b/drivers/nvdimm/pmem.c >>> @@ -490,8 +490,9 @@ static int pmem_attach_disk(struct device *dev, >>>       nvdimm_namespace_disk_name(ndns, disk->disk_name); >>>       set_capacity(disk, (pmem->size - pmem->pfn_pad - >>> pmem->data_offset) >>>               / 512); >>> -    if (devm_init_badblocks(dev, &pmem->bb)) >>> -        return -ENOMEM; >>> +    rc = devm_init_badblocks(dev, &pmem->bb); >>> +    if (rc) >>> +        goto out; >> >> But I don't see this 'out' label in the function currently?  Was that >> part of >> your patch missing? > > Hi, > the patch is based on the latest linux-next. > See [1]. The 'out' label exists there and is already used. > > In fact, I run an own-made coccinelle script which tries to spot mix-up > between return and goto. > In this case, we have a 'return -ENOMEM' after a 'goto out' which looks > spurious. Hence, my patch. > > [1]:https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/nvdimm/pmem.c#n512 > Lol, the #n512 above is in fact another place that should be updated as well. I missed it and only fixed #n494! CJ > > CJ > >> >> Ira >> >>>       nvdimm_badblocks_populate(nd_region, &pmem->bb, &bb_range); >>>       disk->bb = &pmem->bb; >>> -- >>> 2.30.2 >>> >> > >