From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id BCD74C43334 for ; Wed, 15 Jun 2022 18:30:21 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 1FECD839C3; Wed, 15 Jun 2022 20:30:19 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="gxocVnjF"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id D0B6183B15; Wed, 15 Jun 2022 20:30:17 +0200 (CEST) Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com [IPv6:2a00:1450:4864:20::631]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id A054F8339D for ; Wed, 15 Jun 2022 20:30:15 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=zajec5@gmail.com Received: by mail-ej1-x631.google.com with SMTP id gl15so24919545ejb.4 for ; Wed, 15 Jun 2022 11:30:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:date:mime-version:user-agent:subject:to:cc:references :from:in-reply-to:content-transfer-encoding; bh=0tVyV2MItMC7Xp0ChiF5DdKmNUp2ewZ5lqSMGrWKASc=; b=gxocVnjFbqdfBUTdrVKam+IQDV5GQh5/vy8ZoEFNIr3dW1TgmwXHMGt1O/02WiD8g2 rP91nRYckz7bNxVqzjY+uzKfWAxCUvIGlTimiIZyr973U67kM6RQJbjkuBYEU6ItaRTO a6Nkf4XIURXKD63XwumNXuR2G9e7pxBmVGERbTcqFxc9WBktPlCqnWu9j270IhPmz3SO Ul+bdCduITEeYFAmHvvEluaSNUzwC3X8yAvg6VA+Tq9SGy2HadhTrqK0BywnZVzMNiZt DgJQUc/MhKNTRMk86f/PrDNp9NtcU+w04j7WHxc7Egq9l/9ZJJ6Z/lbMMNoIFELUD6qh 9L1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :to:cc:references:from:in-reply-to:content-transfer-encoding; bh=0tVyV2MItMC7Xp0ChiF5DdKmNUp2ewZ5lqSMGrWKASc=; b=LoJ4n2aE5lfOlca9GTy4I/UdeNcr1Jj+32QIeDwpwM9W/Ti7vuUCDUxO3vC/e7fToE 4aZSLO8n+9Kyb6QzX0A9I1OAM6dv58h79xhK5ADB46uHf2qlO/y9wMTF5clawcGTvS1a VdTVrpmHRo8iux/Zgyq2fKgeVqJ6O3f41MVvRZbY3bPfnbt/cQjirCBN/l8hvzZD8lQa mINkwCbU4LY2OrG4ormqfLXGciApO88TEqZ/o6G9rbMZvgvn95hSK+9YKt3Nh+G9tEqw 4zucveNMS1Ky2/RnfXxbB6lt5UcK32iUdbImjVnmaOuoadGfhEVZrhOkZY3hlDZfUSNE 658w== X-Gm-Message-State: AJIora9pTNthEUAza+HcowSI51NGmbR8JjktauUUOm4N3kEbni03DVaS 69A4JzaO7sPIOk1GwcLfrfY= X-Google-Smtp-Source: AGRyM1uM41ebjYsi0V8Q6io3lK1TJ3cHgdXH58BCSObJYShmcsB7lz5YVOLlsr7DzxhCAEvYvfp42g== X-Received: by 2002:a17:906:b208:b0:70e:c7f1:f8bf with SMTP id p8-20020a170906b20800b0070ec7f1f8bfmr997939ejz.143.1655317815135; Wed, 15 Jun 2022 11:30:15 -0700 (PDT) Received: from [192.168.26.149] (ip-194-187-74-233.konfederacka.maverick.com.pl. [194.187.74.233]) by smtp.googlemail.com with ESMTPSA id fw37-20020a170907502500b0071579abcf3csm5425587ejc.111.2022.06.15.11.30.13 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 15 Jun 2022 11:30:14 -0700 (PDT) Message-ID: Date: Wed, 15 Jun 2022 20:30:12 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:96.0) Gecko/20100101 Thunderbird/96.0 Subject: Re: [PATCH V3 2/2] nvmem: add driver handling U-Boot environment variables To: Ahmad Fatoum , Srinivas Kandagatla , Miquel Raynal , Richard Weinberger , Vignesh Raghavendra Cc: Tom Rini , linux-arm-kernel@lists.infradead.org, u-boot@lists.denx.de, devicetree@vger.kernel.org, linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, =?UTF-8?B?UmFmYcWCIE1pxYJlY2tp?= , Pengutronix Kernel Team References: <20220611204651.19947-1-zajec5@gmail.com> <20220611204651.19947-2-zajec5@gmail.com> <1ecbb1af-53d6-1ac1-fd9f-b780a7c50fd9@pengutronix.de> From: =?UTF-8?B?UmFmYcWCIE1pxYJlY2tp?= In-Reply-To: <1ecbb1af-53d6-1ac1-fd9f-b780a7c50fd9@pengutronix.de> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 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" X-Virus-Scanned: clamav-milter 0.103.5 at phobos.denx.de X-Virus-Status: Clean On 14.06.2022 08:45, Ahmad Fatoum wrote: >> + if (err && !mtd_is_bitflip(err)) { >> + dev_err(dev, "Failed to read from mtd: %d\n", err); > > Nitpick: %pe My "err" variable in int, not a pointer (I don't use PTR_ERR()). >> +static int u_boot_env_add_cells(struct u_boot_env *priv, uint8_t *buf, >> + size_t data_offset, size_t data_len) >> +{ >> + struct device *dev = priv->dev; >> + char *data = buf + data_offset; >> + char *var, *value, *eq; >> + int idx; >> + >> + priv->ncells = 0; >> + for (var = data; var < data + data_len && *var; var += strlen(var) + 1) >> + priv->ncells++; >> + >> + priv->cells = devm_kcalloc(dev, priv->ncells, sizeof(*priv->cells), GFP_KERNEL); >> + if (!priv->cells) >> + return -ENOMEM; >> + >> + for (var = data, idx = 0; >> + var < data + data_len && *var; >> + var = value + strlen(value) + 1, idx++) { >> + eq = strchr(var, '='); >> + if (!eq) >> + break; >> + *eq = '\0'; >> + value = eq + 1; >> + >> + priv->cells[idx].name = devm_kstrdup(dev, var, GFP_KERNEL); >> + if (!priv->cells[idx].name) >> + return -ENOMEM; >> + priv->cells[idx].offset = data_offset + value - data; >> + priv->cells[idx].bytes = strlen(value); > > U-Boot environment can't hold binary values? I believe it can't. In any case \0 is a always a separator. >> + } >> + >> + if (WARN_ON(idx != priv->ncells)) >> + priv->ncells = idx; >> + >> + return 0; >> +}