Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp2658285pxj; Mon, 17 May 2021 06:56:05 -0700 (PDT) X-Google-Smtp-Source: ABdhPJztDLtuH5bmCVxFrHCOo4x/ngZguZKcKRvKersttzXy/a+CLRXLO8/NfnzjhPKDEg9uwfec X-Received: by 2002:a17:906:b048:: with SMTP id bj8mr47369ejb.236.1621259765304; Mon, 17 May 2021 06:56:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1621259765; cv=none; d=google.com; s=arc-20160816; b=NwWM3ratAEVG1eBaDG85F2xjxgkqyZ3CkwxFfxdSRG3Nhy5v++TTPxbCOYH+Gud/qH yJLD8KG2JTnfaFFqLnqAx4TVTOl4kFg49/AIY1dAQJOErsdR6smrP3YoMQWL9eUDMceh iicKhMztwKaOoneGfHuLNtb4P7i9wExfns94oss64+4YyuXy/oglKqPzW1czniolKe8w mriXJdohPDvTkR1xh6MWrk/x/LS89/R8gDvETKiPwzW1zEzVW2t14wRDQc7jKHFTChF1 9ycwR9ctlMG++eSdn9QZPbkv85dHN2WjQ2weUzD5+LDeL5ghzHuk4sFEm5SDEeastKwp vUtg== 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:from:references :cc:to:subject:dkim-signature; bh=T/5TWOCY6X4gFs8XapHsMmEazRhVsK/TX4tyFRmCWSM=; b=w59tmOwX/yMlPVEurhtgCPvOCsTiaFb6Bl/ICSHmL1/+GjFEm/0VXTEb+lco7NJ9HJ 8vez/423UREUy0k+GjLhrCYcJz9Y6OkFw/khXsnmhFEP4FxAPzKhzTDSS3IfImUuipNy RDsrsdrlhbaQ45JpBP1Cgcn4ZRfltZfQVHLyc56+gbxxXjj+diPSSlsL1yY03UsndQ7p mYyUYvS1H66ocy/g0rKDnbNGxB3VJ1vSdWxBhp6kGNGf9d72PPBrY9qr92uzoi05msHK pro+c4ahjUssjg/L05av11XNXjD/uLRkTy2z+giA8b95QB0GOc4A223aWX/4D9ANkwhU reRg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ZcVEXDmF; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h13si7218253ede.282.2021.05.17.06.55.42; Mon, 17 May 2021 06:56:05 -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; dkim=pass header.i=@linaro.org header.s=google header.b=ZcVEXDmF; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235839AbhEQJU1 (ORCPT + 99 others); Mon, 17 May 2021 05:20:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54884 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235821AbhEQJUY (ORCPT ); Mon, 17 May 2021 05:20:24 -0400 Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com [IPv6:2a00:1450:4864:20::431]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7486DC061573 for ; Mon, 17 May 2021 02:19:08 -0700 (PDT) Received: by mail-wr1-x431.google.com with SMTP id a4so5600566wrr.2 for ; Mon, 17 May 2021 02:19:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=T/5TWOCY6X4gFs8XapHsMmEazRhVsK/TX4tyFRmCWSM=; b=ZcVEXDmFZjnhf7DCda0LUdLBXU6JhSUqA1dLn+R6/IqSgZYQMGAElxkV/mxT/5DV7b 7MS1APXQeVi+tf++O99fLHKv9zwtaV1U+hu6Ik9b01XaFuJwgmTqSOKyjMUBF5ufG+Pb 521pC+jf96loU2QvwOckZrZyiZQpk2AYDT/ZMRFlI4aZYu6JwLd3bke/Miif0055DYUy EsehwIRrAnIlbwhZbGsgeWzSR+ntbtp0ZPbs5F5SUnw5XXU9LvqxFs0MGU+1fyutEslr jJricKsFgmvsDIrTFdrjH1pRzE2TqQxcAgZMHy8M/Fizn17wRIxxkDAW8DsIzyrCTfsv cMoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=T/5TWOCY6X4gFs8XapHsMmEazRhVsK/TX4tyFRmCWSM=; b=IB0SwlFyfMBnZP5aLdMaGcNOcvCAvbS1Jcz8S003wYTx67rNNoifPxzChP7yMp6oT4 C/vQAy0fqf39+a8exojg/g3fVaQuVlIfAWgSiiSzZZaYJpX3UWdf8f9xDfwGIxgsW0Iw B04fgHnHl/IoCBZFOnDcmfGKuS5RtzsjgjhrgePSc/VBCzmQnF04JFxd3sIXKVirYgz8 IgBiVATfHQ8SLyCcx460vLWa6XkVLNnrswvs2c09hEX8zb7ciAe234pKH3L/L7xtGXPL 0bsEP7+VC2s1Q/ow3R6G+iTrlYAACw0CIV1QO1r7vUVOHsix+8GUM859qNcT4UckzGs0 iqxw== X-Gm-Message-State: AOAM5301TUdJb+BRBQKMA/s7pt4X7B4sfxi+vtEoaulfGmUcfS/fS2pP UBBUL6eagEz+ltTKNiKgmpQFkQ== X-Received: by 2002:a5d:4a8c:: with SMTP id o12mr27440001wrq.108.1621243147175; Mon, 17 May 2021 02:19:07 -0700 (PDT) Received: from [192.168.86.34] (cpc86377-aztw32-2-0-cust226.18-1.cable.virginm.net. [92.233.226.227]) by smtp.googlemail.com with ESMTPSA id x13sm6592926wro.31.2021.05.17.02.19.06 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 17 May 2021 02:19:06 -0700 (PDT) Subject: Re: [PATCH V2] nvmem: core: add a missing of_node_put To: Christophe JAILLET , bgolaszewski@baylibre.com, gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org References: <10f4577d8a72765780006fbaf7751c8df9c26d0a.1620454485.git.christophe.jaillet@wanadoo.fr> From: Srinivas Kandagatla Message-ID: <8c4ef1a6-8f7a-09b9-5952-1692c426dcd0@linaro.org> Date: Mon, 17 May 2021 10:19:05 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: <10f4577d8a72765780006fbaf7751c8df9c26d0a.1620454485.git.christophe.jaillet@wanadoo.fr> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 08/05/2021 07:16, Christophe JAILLET wrote: > 'for_each_child_of_node' performs an of_node_get on each iteration, so a > return from the middle of the loop requires an of_node_put. > > Fixes: e888d445ac33 ("nvmem: resolve cells from DT at registration time") > Signed-off-by: Christophe JAILLET > --- Applied thanks, --srini > v2: Reorder code to delay the 'cell->np = of_node_get(child);' > Without this change, we needed a double 'of_node_put' in the last > hunk which could be confusing to the reader > --- > drivers/nvmem/core.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c > index bca671ff4e54..f9c9c9859919 100644 > --- a/drivers/nvmem/core.c > +++ b/drivers/nvmem/core.c > @@ -686,15 +686,17 @@ static int nvmem_add_cells_from_of(struct nvmem_device *nvmem) > continue; > if (len < 2 * sizeof(u32)) { > dev_err(dev, "nvmem: invalid reg on %pOF\n", child); > + of_node_put(child); > return -EINVAL; > } > > cell = kzalloc(sizeof(*cell), GFP_KERNEL); > - if (!cell) > + if (!cell) { > + of_node_put(child); > return -ENOMEM; > + } > > cell->nvmem = nvmem; > - cell->np = of_node_get(child); > cell->offset = be32_to_cpup(addr++); > cell->bytes = be32_to_cpup(addr); > cell->name = kasprintf(GFP_KERNEL, "%pOFn", child); > @@ -715,11 +717,12 @@ static int nvmem_add_cells_from_of(struct nvmem_device *nvmem) > cell->name, nvmem->stride); > /* Cells already added will be freed later. */ > kfree_const(cell->name); > - of_node_put(cell->np); > kfree(cell); > + of_node_put(child); > return -EINVAL; > } > > + cell->np = of_node_get(child); > nvmem_cell_add(cell); > } > >