From patchwork Fri Jan 18 19:19:03 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sam Protsenko X-Patchwork-Id: 156044 Delivered-To: patch@linaro.org Received: by 2002:a02:48:0:0:0:0:0 with SMTP id 69csp3612497jaa; Fri, 18 Jan 2019 11:19:41 -0800 (PST) X-Google-Smtp-Source: ALg8bN5Ejxi7rVQjTCxHS8N4spIzdY3EXR8aRXolUCsk85L5XpLwy1fy/m9V2LV/hvKRMQoItyb1 X-Received: by 2002:a17:906:2313:: with SMTP id l19-v6mr15738112eja.204.1547839180906; Fri, 18 Jan 2019 11:19:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1547839180; cv=none; d=google.com; s=arc-20160816; b=Tl7hS+I87Uvu+uJ7W6YJHHB4i+MRm4XQxnfIVUKwSfigo68upGgOjQPvWrEUTad0qh Jlipl2DNYqkHpFvg8JppuCzVsh7U9JOwEbpj+dZIALlsRhDj6o1WYs0J+OV2KY79ZW0s unBxG5P/Y7zzOr+ADO2g+NzQyYbV0bgyWgB6CyeWV39LxjZ5MwVwuII2X3DWMevKNxx7 3WrA3eaFqq8opsKPSbJLUi689IBYdfUAHIbl+7T2tIdndMtXztYepPFfazJESwIY4b6d QQS/pInIioPUN/KI1FBB5oliIguGRvf+3YmG4As5stQW1VPJ3r9TBMMA/lv0ZcK+QFmp Yo7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:list-subscribe:list-help :list-post:list-archive:list-unsubscribe:list-id:precedence:subject :cc:mime-version:references:in-reply-to:message-id:date:to:from :dkim-signature; bh=mDIDfyKdQYZlfBCHtlv4YKsdkl3yVk7bVEzxq8aCxSg=; b=Es408dmfg7WPPPhqTxjaHkU6BZMQh52UT6pcLMT1E6QS8FSbMc5G8N5cmYzFr5V3Rb VkG89NB0S0KJnxrLD1VmjpG/8992EbLxXz1fc2MoGO0bIewEX1SdKk2ZOTq8Kpedc7HP tuv5utboKdI+s8izCsVG9l5Vtnf7xru9qxmIqlZGP+W1SV2Et3ygYw5D4qOwZKir2jNE w1eDNNFj0LTEKcg1QPfaAh915V3wr2wNmCOXIwLh2Dm4hUqr2hlC54J6jyXK+/UV635o UEFcY/so0qhE71nZGG83/bAT7nqAL456m9yyAStSpvCVy9u3s4JFmycM4Z9U0+b7gDFp XA4w== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=ODaypQOB; spf=pass (google.com: best guess record for domain of u-boot-bounces@lists.denx.de designates 81.169.180.215 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.denx.de (dione.denx.de. [81.169.180.215]) by mx.google.com with ESMTP id c33si2195270edf.294.2019.01.18.11.19.40; Fri, 18 Jan 2019 11:19:40 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of u-boot-bounces@lists.denx.de designates 81.169.180.215 as permitted sender) client-ip=81.169.180.215; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=ODaypQOB; spf=pass (google.com: best guess record for domain of u-boot-bounces@lists.denx.de designates 81.169.180.215 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: by lists.denx.de (Postfix, from userid 105) id 7D6B7C21C6A; Fri, 18 Jan 2019 19:19:29 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 7E52AC21C27; Fri, 18 Jan 2019 19:19:10 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 2F72FC21C6A; Fri, 18 Jan 2019 19:19:08 +0000 (UTC) Received: from mail-lf1-f45.google.com (mail-lf1-f45.google.com [209.85.167.45]) by lists.denx.de (Postfix) with ESMTPS id BD8DFC21C27 for ; Fri, 18 Jan 2019 19:19:07 +0000 (UTC) Received: by mail-lf1-f45.google.com with SMTP id y14so11262580lfg.13 for ; Fri, 18 Jan 2019 11:19:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=tUvJGCqEVYWuCyNl2hRZYfKZvgtQnx0ZiquEh0A3vt0=; b=ODaypQOBv/tsQyYAA3cdl7eKyprLs3MgdZv5B4O6KQxe5zIXaEwKeFxJPUQ1ZBJfAk 9DdIv9Mteq2sumgYRVZk/Sm3+kd19+gdQBXCiY+HCOuC5mTHenr65YM8Lry2FwygFgoE e4vasTGhG6eWtLoLjPGOwXzGM/3I4K6CRXLjo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=tUvJGCqEVYWuCyNl2hRZYfKZvgtQnx0ZiquEh0A3vt0=; b=AyMq7W/71HkLv3D4/JVthXY8IWrETLI2G5Je3ace3BE1zdgffXr88oFOk180KlRJ1R KaVXEccfAEShXld+tyBlXQ/8GBTk31B9Mt2o6kodOJHOhKPDUVpwTUrka6XdOMJvUUHU F0IonVZtqxhSFtD7j7QI2ZhoeDw8za4nU4WKUs6mXxf5KWmQa7F50LPKq7IMipO8TnLD kjPiutOqLiLjjFrfalVn9AbSyA6OGSZKyR91MnfFL03sCciGp5TtFwrzEni9e1l+gqaE g0hjf6hPsgcsOU/SIAN6kTIR4+ipxvhNoyuCdlMpgLklSc26Yf6dUQUK+V89h9lqInXZ 7XWA== X-Gm-Message-State: AJcUukfnFDo1VRxy8TCPycP8INGPkijmwic3/YCEKgl/W+fsSiK1HU1y zsn/EekyQONHoOZ+74ri7AulCP6cxTE= X-Received: by 2002:a19:c954:: with SMTP id z81mr13043433lff.150.1547839146950; Fri, 18 Jan 2019 11:19:06 -0800 (PST) Received: from localhost ([195.238.92.132]) by smtp.gmail.com with ESMTPSA id k3-v6sm874763lja.8.2019.01.18.11.19.06 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 18 Jan 2019 11:19:06 -0800 (PST) From: Sam Protsenko To: u-boot@lists.denx.de Date: Fri, 18 Jan 2019 21:19:03 +0200 Message-Id: <20190118191904.634-2-semen.protsenko@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190118191904.634-1-semen.protsenko@linaro.org> References: <20190118191904.634-1-semen.protsenko@linaro.org> MIME-Version: 1.0 Cc: Tom Rini , Nicholas Faustini , Maxime Ripard Subject: [U-Boot] [PATCH 1/2] env: common: Return specific error code on bad CRC X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Callers of env_import*() functions might want to check the case when we have incorrect environment (with bad CRC). For example, when environment location is being defined in env_load(), call chain may look like this: env_load() -> drv->load() = env_mmc_load() -> env_import() Return code will be passed from env_import() all way up to env_load(). Right now both env_mmc_load() and env_import() return -EIO error code, so env_load() can't differentiate between two cases: 1. Driver reports the error, because device is not accessible 2. Device is actually accessible, but environment is broken Let's return -ENOMSG in env_import(), so we can distinguish two cases mentioned above. It will make it possible to continue working with "bad CRC" environment (like doing "env save"), instead of considering it not functional (implemented in subsequent patch). Signed-off-by: Sam Protsenko Reviewed-by: Simon Goldschmidt --- env/common.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/env/common.c b/env/common.c index d1a6a52860..324502ed82 100644 --- a/env/common.c +++ b/env/common.c @@ -115,7 +115,7 @@ int env_import(const char *buf, int check) if (crc32(0, ep->data, ENV_SIZE) != crc) { set_default_env("bad CRC", 0); - return -EIO; + return -ENOMSG; /* needed for env_load() */ } } @@ -169,7 +169,7 @@ int env_import_redund(const char *buf1, int buf1_read_fail, if (!crc1_ok && !crc2_ok) { set_default_env("bad CRC", 0); - return -EIO; + return -ENOMSG; /* needed for env_load() */ } else if (crc1_ok && !crc2_ok) { gd->env_valid = ENV_VALID; } else if (!crc1_ok && crc2_ok) {