Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp5646831pxv; Wed, 7 Jul 2021 08:32:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz1rwvPgbmoAtii2CJyFqJP/YXvvTbZ9kX9RWSynkmArULuUAVkEggwe+KHeRPwTR4rR1yB X-Received: by 2002:a17:906:f285:: with SMTP id gu5mr25167866ejb.226.1625671968344; Wed, 07 Jul 2021 08:32:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625671968; cv=none; d=google.com; s=arc-20160816; b=lj5BXVW/v4YHGw9AsBF5mT5eTrcIJT5rvBuZ4rnPuW66o8UiYUdVchhuSCfzN+rzIh MLHt17PCbvmspFZxXDKKMkOVqSFRZECsFS4DPdCFbft26/cBSrNPnD1pzLZo/CM0SJ2C xAdUodJ86X/8nXO3CNRaCn7YPLk/Wi4QBiAMfNPgHeQ6ouQEFRBfRTgRZiJCXmhMSPIt 5E35I0uAEFgSO2Xk99ow1BGkX0ygJFwRv1DvIES2anlYYC0CC3LLbP2gpjo3Mpu0Yr9t O9rlJYsESPxKaxEng8FbL1C+DyxISRbO+q511+oCWk07TkdgajNay+hCsma8A5ZMHQAj ONfg== 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=463I5Kn83G/zVB2GPiLeqFvap57D0rJfLHdECXpBuRE=; b=BZL0eN+oGCAHAgklnZkGw6MZKKNgC1ZErku1RlWHn/1BmTKS12O6voKqTYlQzeYF1C IZ8sdMSqazrVo7BQiKezf2ua+nuGdP9F94Eanqd7/MfuHTKW6icnrJaAfM/E8JnJRQIW nPD0GYmoZwM1Dm2BwRa2zQ83f1zLhjQxU4TCaSr/b+RUsCejmLcQg0aC1WXGE68osxC3 kD1rqB24Za29C/obnqGoY3ggj0LGJ93UoHZyxrXt2km2IHzf4bYHIYdcmzJmdUj/VVIw toVg0D/0RpmHUdtqOwKXguP+5eqPIbpvk1Aixb/Eic1pLvwIxXerrP8rHF7n/BOigQhI G2Aw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@walle.cc header.s=mail2016061301 header.b=IV9HpANb; 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 a4si17712214eds.291.2021.07.07.08.32.24; Wed, 07 Jul 2021 08:32:48 -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=IV9HpANb; 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 S231878AbhGGN4s (ORCPT + 99 others); Wed, 7 Jul 2021 09:56:48 -0400 Received: from ssl.serverraum.org ([176.9.125.105]:46489 "EHLO ssl.serverraum.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231472AbhGGN4s (ORCPT ); Wed, 7 Jul 2021 09:56:48 -0400 Received: from mwalle01.kontron.local (unknown [213.135.10.150]) (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 E8C7B22239; Wed, 7 Jul 2021 15:54:05 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=walle.cc; s=mail2016061301; t=1625666046; 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=463I5Kn83G/zVB2GPiLeqFvap57D0rJfLHdECXpBuRE=; b=IV9HpANbPafhl3HpYqL3jLg8qQcVxE1vfNilaqpJl3wSUlbkC5wsU8tWz6WqhYH8daw6bX jTtuTCJCW9d6KMqcQPSpvkOQ93BsNuixhwFnbSPeeimwmrBiQSryiDcDuCd3KewXkqdedu Tnr5iCguAA4eJ6o6WELtm5uiBxljfXQ= From: Michael Walle To: linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org Cc: Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , Tudor.Ambarus@microchip.com, Michael Walle , Guenter Roeck Subject: [PATCH v2] mtd: core: handle flashes without OTP gracefully Date: Wed, 7 Jul 2021 15:53:59 +0200 Message-Id: <20210707135359.32398-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 Tested-by: Guenter Roeck --- changes since v1: - move the check into mtd_otp_size() drivers/mtd/mtdcore.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c index b5ccd3037788..c8fd7f758938 100644 --- a/drivers/mtd/mtdcore.c +++ b/drivers/mtd/mtdcore.c @@ -806,7 +806,9 @@ static ssize_t mtd_otp_size(struct mtd_info *mtd, bool is_user) err: kfree(info); - return ret; + + /* ENODATA means there is no OTP region. */ + return ret == -ENODATA ? 0 : ret; } static struct nvmem_device *mtd_otp_nvmem_register(struct mtd_info *mtd, -- 2.20.1