Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp2851091imu; Sun, 6 Jan 2019 11:32:46 -0800 (PST) X-Google-Smtp-Source: ALg8bN6F2ejuV02ClnN0qthE1N15EypLDBWzL5hNhNMGDztMy0AGRuDH7+umcPWvttAYGJ19cdCq X-Received: by 2002:a17:902:e18c:: with SMTP id cd12mr55704373plb.279.1546803166112; Sun, 06 Jan 2019 11:32:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1546803166; cv=none; d=google.com; s=arc-20160816; b=Zla7Nefh+yTCA+7fkEvEaQlVWPFJO+kLgsm6hBo8YJ5GYpMq9vewujlVNBnO5Mk/g5 TxBWpPsRaK+3x2yGZEPkwoy5CNE7Ok6lfyIvR7iSzDOM0MTrjGXnojhzggnuxCiq3urK GuNsPAS5Ee6jjNI+x+0F/3mv75PNc61OBrtRGqANGpvATIp2NxeatBk14jSl6h+0d3D2 ZJhCNxpeKKR+V2/fcmuN0VJ+NM92OO3CIRFi5JbIZYUpHX4M0iEuQpTsH5dDnZcNPKpo WTyk8wKj2LNaVTA/NQc6gj71dSyVhrhe3OGumv6HzW5HnH0KTy/lSWMUaXI+Pw7hhFj5 vibA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=gUGiR1zG+fKjW7Rya7DGUEndGzsg1cst7xTqHBGo9lU=; b=FPJhpO5W43cMTR9H3lU32rsiZYBehyOv/W2StTd4TrULTij6ROjS4KTEICxPMKeClb YwaccSyUqOdUHBc3NH6+2A2LU7zn18usYOQ2Z/HQHWGwh5qLOka15y/Gc8X/WmlUmskh yhV7+xZ6pOij0YRN4r/QGVXyT8+mYb9zkUqNX8FaoOBV/BfPbx0ZoW2pcf2YmzWleBJY /BbSVbq6RzJsJPLbfv4TqP/xQaAuxXf9uQtmEqO0Mw4glAv7jBUcg9uWzVSJZGJjtfWT xYBp+dtv/sS10ekUzi4oqLpei6BMvxZwkhnBfWu1GqB8iLEiRlQEOmg43OqAmfBpjj0W WLEg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y26si6447056pfd.25.2019.01.06.11.32.31; Sun, 06 Jan 2019 11:32:46 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726468AbfAFT3L (ORCPT + 99 others); Sun, 6 Jan 2019 14:29:11 -0500 Received: from smtp3-g21.free.fr ([212.27.42.3]:35588 "EHLO smtp3-g21.free.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726050AbfAFT3K (ORCPT ); Sun, 6 Jan 2019 14:29:10 -0500 Received: from localhost.localdomain (unknown [IPv6:2a02:8108:4840:8f74:143e:fcd5:beb7:2140]) (Authenticated sender: albeu) by smtp3-g21.free.fr (Postfix) with ESMTPA id 054DF13F7E7; Sun, 6 Jan 2019 20:29:02 +0100 (CET) From: Alban Bedel To: Srinivas Kandagatla Cc: linux-kernel@vger.kernel.org, Alban Bedel Subject: [PATCH 6/8] nvmem: core: Always reference the device returned by nvmem_device_get() Date: Sun, 6 Jan 2019 20:28:18 +0100 Message-Id: <20190106192820.12558-7-albeu@free.fr> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190106192820.12558-1-albeu@free.fr> References: <20190106192820.12558-1-albeu@free.fr> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In nvmem_device_get(), when the device lookup fails with DT it currently fallback on nvmem_find() which is wrong for two reasons. First nvmem_find() return NULL when nothing is found instead of an ERR_PTR. But nvmem_find() also just lookup the device, it doesn't reference the module and increment the reference count like it is done in the DT path. To fix this we replace the call to nvmem_find() with a call to __nvmem_device_get() which does all the referencing and return a proper ERR_PTR in case of error. Signed-off-by: Alban Bedel --- drivers/nvmem/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c index 28e01a9876c6..2fa97b373601 100644 --- a/drivers/nvmem/core.c +++ b/drivers/nvmem/core.c @@ -874,7 +874,7 @@ struct nvmem_device *nvmem_device_get(struct device *dev, const char *dev_name) } - return nvmem_find(dev_name); + return __nvmem_device_get(NULL, dev_name); } EXPORT_SYMBOL_GPL(nvmem_device_get); -- 2.19.1