Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp1392300pxv; Fri, 2 Jul 2021 02:40:05 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzWYbWPnHVCB2T67RKUFX+8W97PTLMDnoTL9V/sHVmaNODi0UX6ry27XuQFrwU3UVvPYYWa X-Received: by 2002:a6b:7c07:: with SMTP id m7mr611434iok.47.1625218805387; Fri, 02 Jul 2021 02:40:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625218805; cv=none; d=google.com; s=arc-20160816; b=aoZUxIqLRi4f41PiZtBDHql+pN0ojfXQDH7E3i3VsVVzJJMZDOW6cbz5dHWB0GtFvY uniG79wLwsCA0sTjjwDAIR2eZ0DeQciTFtxO2g4a/liLLSEI9tX3h5dH+VApg6RPGBs4 Y6RErdAkdh7kSwz/a0HqmmdkU+blAYzJ5dCe3GOHhZALQtwCFFtyZ+ARKv3dgsSfR8nS 6QFC9kn/tjf41uQUH6j0dJsa9O6w36TDG1fAAU8gocNJDKSTJjFTjIVrvdKcNBm1bPqv TbWMSnlgFYiyfQOoAFTCIerfnn4oBgTz4SZel78VOvJAJxQlte3RD5PLDZGSjtmhSZKI ON8w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=BgGFzoe/HAoDDHuJaUL6REa6//gf/BtKSwE8c/6Kq/Q=; b=RYiDPKSNiJ5kdzvXQdeghH+wrB6SEnIatgOnISl9tUn6RONMi4Gu84kccCiYU62xPh U3lFgdLx4lriIY7C0Zs41Iz41PjqsNlI0qvGy6LwDu956ot//BwoHw6NUuiZWc7Uugj3 xzUSniEVFD5l8/W6LmLkM8Pb6BtQ0LQ32UFqFqnr6N0f90ukOH57krk3uUmdG5McofeC j6lY2aRp8aId5G6E29hQ6zWwfypHT8FeW6pN/83avr9vn4+BEgCXeJSCZxgnYZevn9KY p15N1HljtS9HC+xJChpAiRF+vwYZuFG/XRxqgr5wqc/XLgYqq3wP6aWZ58YD/7fBGrz7 bCxg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@walle.cc header.s=mail2016061301 header.b=bjoxUW9N; 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 w17si2706597iot.47.2021.07.02.02.39.53; Fri, 02 Jul 2021 02:40: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=@walle.cc header.s=mail2016061301 header.b=bjoxUW9N; 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 S231440AbhGBJlZ (ORCPT + 99 others); Fri, 2 Jul 2021 05:41:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33016 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231262AbhGBJlV (ORCPT ); Fri, 2 Jul 2021 05:41:21 -0400 Received: from ssl.serverraum.org (ssl.serverraum.org [IPv6:2a01:4f8:151:8464::1:2]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6E731C061762 for ; Fri, 2 Jul 2021 02:38:49 -0700 (PDT) Received: from mwalle01.fritz.box (ip4d17858c.dynamic.kabel-deutschland.de [77.23.133.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ssl.serverraum.org (Postfix) with ESMTPSA id 54B1822249; Fri, 2 Jul 2021 11:38:47 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=walle.cc; s=mail2016061301; t=1625218727; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=BgGFzoe/HAoDDHuJaUL6REa6//gf/BtKSwE8c/6Kq/Q=; b=bjoxUW9Ns8ZMyl9hbo0Z2kkkCOSIR4uAI+h1Kv2HZmm1sf2WT185CQuTeK1sGJ9AtDNlBa Fu/AWNLuHVzGiQdCb8ZXQDcMB3SRvN7cqTP9951iDsg+DVBW33lg9v3CZbp3uvxo1Y9o9V Dx4NCswCEDXTYuScDWe2bVwbLVBpKnU= From: Michael Walle To: linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , Michael Walle , Guenter Roeck Subject: [PATCH] mtd: core: handle flashes without OTP gracefully Date: Fri, 2 Jul 2021 11:38:41 +0200 Message-Id: <20210702093841.32307-1-michael@walle.cc> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org There are flash drivers which registers the OTP callbacks although the flash doesn't support OTP regions and return -ENODATA for these callbacks if there is no OTP. If this happens, the probe of the whole flash will fail. Fix it by handling the ENODATA return code and skip the OTP region nvmem setup. Fixes: 4b361cfa8624 ("mtd: core: add OTP nvmem provider support") Reported-by: Guenter Roeck Signed-off-by: Michael Walle --- drivers/mtd/mtdcore.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c index b5ccd3037788..6881d1423dd6 100644 --- a/drivers/mtd/mtdcore.c +++ b/drivers/mtd/mtdcore.c @@ -880,7 +880,10 @@ static int mtd_otp_nvmem_add(struct mtd_info *mtd) if (mtd->_get_user_prot_info && mtd->_read_user_prot_reg) { size = mtd_otp_size(mtd, true); - if (size < 0) + /* ENODATA means there is no OTP region */ + if (size == -ENODATA) + size = 0; + else if (size < 0) return size; if (size > 0) { @@ -896,7 +899,10 @@ static int mtd_otp_nvmem_add(struct mtd_info *mtd) if (mtd->_get_fact_prot_info && mtd->_read_fact_prot_reg) { size = mtd_otp_size(mtd, false); - if (size < 0) { + /* ENODATA means there is no OTP region */ + if (size == -ENODATA) { + size = 0; + } else if (size < 0) { err = size; goto err; } -- 2.20.1