From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5A595381AE3 for ; Wed, 29 Apr 2026 15:43:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777477429; cv=none; b=PFYCl0UXsLYpTQFzZz3409pP7XW6GsEe0Vj9SfNje33aojTY+PMyWMWeMLiddc5XP+XoXNINGvThkxGmu7s0NsChLv5WCMHmP+kDvN45cDnQbNnH1liG9BxBNdwbKW9CXZRFCXw5NSp2laZKzKec094fUrDVTA7HZ+MJov9tFCI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777477429; c=relaxed/simple; bh=yD3N0cYcmQAzbGD78GtKBQ9bc7aSvwfTcCxmV/LtyDM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=lBS5knZrC8dZVWG4V3MXpm6fQYjNv+xL4dokMSccXR15lb8MiMx1zkdCCGc6H76HsNQLZcbhzrT3KZJScvzAeFkdO70tryTwOAcLhK+VfIgJ3+PVMPTqRj5iwWNYEcsxgc7cryXNvZovBi6fmlstSXbb6Z6G4dNQVoxNmWBQe4Y= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=YC2UAXpR; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=JrUs7cUA; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="YC2UAXpR"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="JrUs7cUA" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63TFAgvY3067082 for ; Wed, 29 Apr 2026 15:43:44 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= RkvyX2A5HBGUs77rprhwxQ7sgit2vdJpqOUIWDmp7cw=; b=YC2UAXpReVXQSbxD uNB+nzxKZxuJS8EzMaP/2BxevuAEviwhYFDvweG4cM2ayCH1qXMnRSmHJwON/B6W /h2aL9LqYOmZi8ZiqDqX8AZ/6q4xWKx8Z/4RWuBI6WCIgJkIV6TeeE6ytFyLF0RD b2TvCEoBqf3fCSsNa57mxyYeVDwU55Ua6t8aYFTGvxzuHOQWimWXT/zSnFJ0d8eV dFiQ5z65f7G+BNYhv4A4Hlgr4ZNsU2xz1svlghdVt4Tc6OA8l0Fp7vF2VUu+qcMD j+1LyJzrFrC1r5t7VKfwMb74wkjQC3f1xb2+oidQ9j5irAOCb1Pgdh84mPt9h6GU +6whjA== Received: from mail-qt1-f199.google.com (mail-qt1-f199.google.com [209.85.160.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4du7sxb8aw-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 29 Apr 2026 15:43:44 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-50fb007bc36so6234441cf.3 for ; Wed, 29 Apr 2026 08:43:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777477424; x=1778082224; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=RkvyX2A5HBGUs77rprhwxQ7sgit2vdJpqOUIWDmp7cw=; b=JrUs7cUANCEbZ7+qkF00lgsRVov5nmlCe1jFQgcrSmZfihG3Z4g9EV2z8Jf+sfFPR1 P9Bphc7MjA9XwYu0HuruQYhM606iN2BGdpnAkzUAIFL6+E8v02RcxIaP64F1fJvC12/o i92OwoS+2M982Ri2pkvnEhoNhUL2VrHvo/hLlSv9UPaOKAKqU1cHp7O2fTai7hV79qzx ct5W5kFjjVGY0CpyAd4uU5HIvqeHx1df1pnJHs/6QCsn46x92/jahjUMD5dHAW2bAr7m OILPv3H0TYZc+oaFn31XEMDJD05eOeKBPGHdx+B47rjnxeypOUAbD+THuFrhR0IWBq2D Z4rA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777477424; x=1778082224; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=RkvyX2A5HBGUs77rprhwxQ7sgit2vdJpqOUIWDmp7cw=; b=FzAJ31Qmr54SLwuZvQRIvRAPonnUG+mtVVNevd0U8vvLoKV9gbZCWzygfq9xAiKvYV aBnuA4wbB6YE3zQBiiPxAW0NOSWIVAZcvGpU2O9+b5P9gryYMfljy3JXNLcMirKdIApj ceQBBXv9hB+jUMB2rApao6Yqy65NhjNEl3pKppzkZQ2F+49WwJDpkiWMtnjdxD8Ocali 3Y2mJKO7KgkQ+y+t3Vb7u0bls8nhrLoph6WGay8OqDi3u2SUW2o8EscacrmELT0c/61u EcKf4LsHS2KBzHYSXdH38p5J7mTlUelT84GwR3j7p69yGuoZJWoFQDJNus2oUq79xsYi Su8g== X-Gm-Message-State: AOJu0Yx8dYtLB4zSr+8thWOukmBF6klkCfPdgBxBQT7oJmSpw2VyWkOo 5ubuoKLRasC/iOGYdFmxZlTdgK27ju1TNmLmfifwhJRHwRE12VxXbYLLTmkM19SqJT0eX8tAMcp r1V5NgZfn4Mxkyi7a+6gKsJ6Fly+Om0po1v696oofwK+42naRdFjFO7fGzzGKtTdiABI= X-Gm-Gg: AeBDiescIqTuQZkqdBsBahdM8H+LZqO+c6AF5Bl59Rvx/0SH7zxf7ryaEJmPWkMvZaq xtKE7gNqefbFNV5d5RZjzh6AL2eJ32F1rXbBVu4OzlVCeelHgy4mmJ09ercwI4gLgq+O2RaUcAY gAI5ky3AlHR+Y4YPBkexMzH/IPBkuLw65r8/1U+D4JJ0FbtvpwmNAA3igGmlGlz0CgazrFmXLQx aQF2QoaHIcxkz/jyj+hgiIxp7pCiIRxRVXRS/PCUBURYX115sMtQnpvMvDewBUBMigi97juyCW/ DYMRys0XfhXtVpKYSodji8a6W3KRf9IbNOfQMUTrzJuFkDI02lfBfc4wcfvFvhnzrNqWpZ5TJHd ZK56fz5ME7/vKM+Jm+NNDdnOcOulzVla+mAMeWxeNJWf8jT8zP1JWADOMTyilpQ== X-Received: by 2002:ac8:5854:0:b0:50e:5935:d4e with SMTP id d75a77b69052e-5101893a16dmr63552821cf.2.1777477423852; Wed, 29 Apr 2026 08:43:43 -0700 (PDT) X-Received: by 2002:ac8:5854:0:b0:50e:5935:d4e with SMTP id d75a77b69052e-5101893a16dmr63552431cf.2.1777477423424; Wed, 29 Apr 2026 08:43:43 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:e9c0:e45a:1dbc:c82a]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-447b3d481b2sm6837552f8f.4.2026.04.29.08.43.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 08:43:42 -0700 (PDT) From: Bartosz Golaszewski Date: Wed, 29 Apr 2026 17:43:18 +0200 Subject: [PATCH v3 3/9] nvmem: check the return value of gpiod_set_value_cansleep() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260429-nvmem-unbind-v3-3-2a694f95395b@oss.qualcomm.com> References: <20260429-nvmem-unbind-v3-0-2a694f95395b@oss.qualcomm.com> In-Reply-To: <20260429-nvmem-unbind-v3-0-2a694f95395b@oss.qualcomm.com> To: Srinivas Kandagatla , Bartosz Golaszewski , Johan Hovold Cc: linux-kernel@vger.kernel.org, brgl@kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1432; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=yD3N0cYcmQAzbGD78GtKBQ9bc7aSvwfTcCxmV/LtyDM=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBp8iciCabcnf4TAH2hn8KWmI3VNf5jNgUEy6Sjj L2NzCJbhKuJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCafInIgAKCRAFnS7L/zaE w6i0EAChbZoG89H30qGwBwSJ9VBJ7pq+dAYhSEok2lTf84JeoR7ImByz4mUGfeiMj+CKW1Wn0hl FgHsNNi5s9lrH3MDcmFKAcTRGgMh1z+GHV8N7ncYmx+NMwgnxSQiez2fYc3nus7w5kJ0qUKUavf +DI3p24/wZgX0mGkzzTeLn/ACpkCnR/nTNTQ5AAJWmbpc/1XUWaawF7jD6C7C1uKR1Kgfls12fU fVpxGwcLrC9NeBHjkKACHtCJJEomTsf/iMcd8wVwq1E2GjFH6TkfQSY85lBx9KhO7FvuyLMH7WB QoLTukQwPbTK9CW1vgj9PF5PSX4D99f+9KOmMWHlxJmJPJN5eRckWMsvvLQFE1fDiIl18VzQw+A d1HBzhpcWTVKGDbCWMiWfofEdDqzyiejzUs58hlUzf2/OmkWPOsOhgLUL4CGR2dCXuIwknTktfC 6dHE34pLKuu+VgX6vPzJ7RK444K0RpFGPnkaRiloubTwvD4N4KvLAI22iH0Hi/R6tl1md1BkXPJ +D8789HVunSNtyx1bUKB+/nqhee/68tZyp/fWJwLevxSBMn1REgoe1nPFJHjmfggMGM7boqnsab FdnN5pgNdONB1dB5xHPIKPTCj2xoEbQAgvM/aUREfwKtrbmeKilidnN8/eIHpzMLExdLF+ICJW1 OTGYH/9WDU0IceA== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-GUID: snMu87AM078QEsmAruaYbX4gcVDqx1nH X-Authority-Analysis: v=2.4 cv=eeANubEH c=1 sm=1 tr=0 ts=69f22730 cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=ii2iuPLuu9iRZ_mRmhMA:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDI5MDE1NyBTYWx0ZWRfX/PLJpluOtfZ0 O2r7lt9f3ZiWDoYVuY1kaGtaMPXOOPArl2JKeLJl6KURw1JInua9Gdxn/XaH+wImMhuhJdNc5Le FxtLxRFpgihvjDnB9fsOPha2GiBfesEEgZaM9fB8uvb2bXe5aNredxuYCV0JEPtkEpQAuw7UkDH y9MeWQsHa6pknWVTlDLCSa9htSONJdXOEI17ELRQUFVJT9R2AZ2uymb/vV7JNBRio863QHylwHW xJtq1FsUk4kUCg+VijHVjlu4rguv9H+fMi3EXeSkd4jL6VKT/fsWxapQnGILc4DOEko0E40lUaU OEqlXNAOBOjbFQQbnqqQqqgCi8UTU0o9jlyeznFq2A3OHGDbwM8y+RQf7e3e5Do43gdcgkv81om 55sam2SF/06AcJGcuusePVQLTyY8QetINp/tTpuYFc1qEygr+Xfh0/BsG3yOveDaJ670nonYKQ9 +cgLyTNow71fQ66QWFg== X-Proofpoint-ORIG-GUID: snMu87AM078QEsmAruaYbX4gcVDqx1nH X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-29_01,2026-04-28_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 adultscore=0 clxscore=1015 malwarescore=0 impostorscore=0 phishscore=0 suspectscore=0 lowpriorityscore=0 bulkscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604290157 GPIO setters now return integer values and can indicate failures in lower abstraction layers. Check the return values of gpiod_set_value_cansleep() calls in nvmem core. Reviewed-by: Johan Hovold Signed-off-by: Bartosz Golaszewski --- drivers/nvmem/core.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c index c18c7bb94a13b20ad27ec452a2b9fe80c2a4f843..61f7484f96f3a89450686745c1efad8fc24c667e 100644 --- a/drivers/nvmem/core.c +++ b/drivers/nvmem/core.c @@ -64,16 +64,22 @@ static int __nvmem_reg_read(struct nvmem_device *nvmem, unsigned int offset, static int __nvmem_reg_write(struct nvmem_device *nvmem, unsigned int offset, void *val, size_t bytes) { - int ret; + int ret, written; if (!nvmem->reg_write) return -EOPNOTSUPP; - gpiod_set_value_cansleep(nvmem->wp_gpio, 0); - ret = nvmem->reg_write(nvmem->priv, offset, val, bytes); - gpiod_set_value_cansleep(nvmem->wp_gpio, 1); + ret = gpiod_set_value_cansleep(nvmem->wp_gpio, 0); + if (ret) + return ret; - return ret; + written = nvmem->reg_write(nvmem->priv, offset, val, bytes); + + ret = gpiod_set_value_cansleep(nvmem->wp_gpio, 1); + if (ret) + return ret; + + return written; } static int nvmem_access_with_keepouts(struct nvmem_device *nvmem, -- 2.47.3