From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 A9BC73612EF for ; Mon, 23 Feb 2026 10:57:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771844279; cv=none; b=PLDf6c/SNz2VN9fK/Wn0dJSnYIjEt6vu9CimByyZ1xUyyYEbCzYu69H+2WzxHhOMzbPw0HD7pF29tKs58VSduqFI9sDqtkL4gr/XrfCuhOm2YnoFtYtQw/EyQ99YD7AIi4ixFh2Gw3L+S813q4jYCBFg7iMSGM2IYO63zovh2w4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771844279; c=relaxed/simple; bh=mGzJzyIKxNS5t3nGvi38gjDDAEPc8ifJxKU5wQBfOf4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=q3rLmZReNKxVov2vmhepwTx1ab+566kHjxX3Pf/lsk/VnZhcmKbRjWOgvgyKERUg/YXKQq1UcSyQ2F/iIqMkTenxj6GT2u4YQCg1FL154Nj5zbJJksTV5trgX++LH0m4NRDOXW7fKUYPvDF00nrTq44M206zUB70FmloOBr4jBE= 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=FObrvSFh; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=EdQeBjZp; arc=none smtp.client-ip=205.220.168.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="FObrvSFh"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="EdQeBjZp" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61NA8Ev72565272 for ; Mon, 23 Feb 2026 10:57:58 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= agC/kjbE73M+Z8wiAl9vb91FGbgjM3TwVypA0iNDKm8=; b=FObrvSFhXSpU7d7r +I3AaS7vhDdQRuic7pWMf0/IfVPRBEshQkCNLz9vcw9J5YMjuNhcPUYbnmA1X5Fj rsOMEcG4iFUicO5DqTLX9DRhTXFXwKQR94fz7ZXFCFfB4tAVMzE4tr+vuGpaBVNv 1VrGp1/Wi9SPafrRjCJKG4cLBRCW1al4jSDzwhCqZnaP9x/itTxVulQQUdeVYToV XU+S2KzOCdsSZZ5wM1HlJF3ty0UWurTV2MwwUZXDC/Irzj4zRPR2HeqS1YcIpQbi u9MxzzVK/Yrzke4DK+bp+tixJvs+r3goDHEOSJ2ImRGPL+27YZ2NujjizuzAbEvW gzbS+Q== Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cf5wyvek7-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 23 Feb 2026 10:57:57 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-8cb3a2eb984so1335053085a.0 for ; Mon, 23 Feb 2026 02:57:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1771844277; x=1772449077; 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=agC/kjbE73M+Z8wiAl9vb91FGbgjM3TwVypA0iNDKm8=; b=EdQeBjZpzXef7zhiD2laGngRk4hvKe19AUOSoAOgqQwDkEd1FezVhHTMah1yCciEnP DQqHmnJHAmXKGX3Mos8VbvoKhHAS+GU4UTFe8VmUpHN3vgscC3q0ji90ZHqbenBmjgYG UkDez/QUhgb3C7nf6HrqPtZeiEQKHZLJHj755+2VthUvl3luDiZsZMoMgNX+F3ABLQdM Oh2efX5TI+bHupAOv0fPjuNzOCEfJq0cQzwZE+cgKzpR4fgRSIyjOgkzEMxtRTw3z3KG EoNw5YgXxiys/sBzbpbdKkfOBYTpPQm9PSaArDeWofnNZHqLn/pMI83+mPgbmn96Yvbt 82eQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771844277; x=1772449077; 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=agC/kjbE73M+Z8wiAl9vb91FGbgjM3TwVypA0iNDKm8=; b=aIC+GdaRG/tNuENfTLfNe8xVGP5gmzUSRocs8AUQHGEU08nYxi2I43FbnfSC1hpHwv SPFS738TxkaOdgtPuGga8l+jKoCwEhDGyF82lDskTKelDk+kt0Xl8u4WgSysuWAg7X/9 YCcupd7cqS98aBScfMQ72L/qJaOdDIiatJ2gRJrY/IQhEjF8dlEo2qWJIgH9EylcBkD8 ZYa1V6pI47pDmFww4MHJhvMnnigmBtzGdG7QFeSKTzXanHr7RPXNbyw+Ts4VO1lEutje +mB3EjfUSCVaWzqWgRLdXL2oSpCr3xy8wmHnq+AvqYq025HCwADoVtdsPG6db6OtF/sN P/4w== X-Gm-Message-State: AOJu0YwYmoqjiplXl0g0NkvOPtFdMMYGT18zR6Kntfv46+YVrnYWZf3R I1XPI86XtCaWeBFBn78J9hUU9hqkRiLeZ0IBV+2VVW9cDs5iMr+qCSTid/Yvet78fDRRLMu/mhK C7EjTRAWBVuiqz817qekghgmDjSFby3aTJ4NfFnrmeKKvOsgYjzNAEGSbamzri4bTgHs= X-Gm-Gg: AZuq6aIGO+kgp9Yw1SXnqQD1pBcoXGHhyl9Y9qo/Jt3wdHgZOtb//4w3Re5XNV3JA0V jhpq8yWDHhD8LByqng912Et01ta2G8mNZAiThOC+9cFErL6o5orQkWCRhEBXRl3r7JeIhkJebUI 0zKK98jjpjmkalztUAPTcLbG9Fa7WlkKwcSNDus4MNA0RK62PtWg/OSreVoms8Tsascv9+sS6/e 1Ihm86f7xDSyQOkyyTTv4wmdEub5daTEknHhUhf0BKBeUJln/kagofYy1FhTstKDNb4VOG+wCXN GTFcwfMijnVlEBvot06Fk3FkVzjLIZeuszCGgUSk+lFV+4f+NR7TlKH1h++TosycNLPTPL5oTKT tBRSWvH5mEZQ132Z/7SBo+B700xd1W6+ZBLtiPeyKnFueFBJ8Bbir X-Received: by 2002:a05:620a:1a8b:b0:8b0:f04c:9f0f with SMTP id af79cd13be357-8cb8ca7fee0mr1067590485a.63.1771844277000; Mon, 23 Feb 2026 02:57:57 -0800 (PST) X-Received: by 2002:a05:620a:1a8b:b0:8b0:f04c:9f0f with SMTP id af79cd13be357-8cb8ca7fee0mr1067589085a.63.1771844276617; Mon, 23 Feb 2026 02:57:56 -0800 (PST) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:bd71:422c:5e83:8b37]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43970c00c18sm18120002f8f.14.2026.02.23.02.57.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Feb 2026 02:57:56 -0800 (PST) From: Bartosz Golaszewski Date: Mon, 23 Feb 2026 11:57:04 +0100 Subject: [PATCH v2 3/7] 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: <20260223-nvmem-unbind-v2-3-0df33a933dca@oss.qualcomm.com> References: <20260223-nvmem-unbind-v2-0-0df33a933dca@oss.qualcomm.com> In-Reply-To: <20260223-nvmem-unbind-v2-0-0df33a933dca@oss.qualcomm.com> To: Srinivas Kandagatla , Bartosz Golaszewski 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=1386; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=mGzJzyIKxNS5t3nGvi38gjDDAEPc8ifJxKU5wQBfOf4=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpnDKqYwEKSD3IA+M4hOWgDs1mCDqzMfDduEjmC +cFzh8ci/qJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaZwyqgAKCRAFnS7L/zaE w1D8EACb3UUV6DmZBXF0fz10K0RTxCY39ovAB5JReZFHhe0jGHR6NGM57hz2NnOkJ2nPsFrD8RB RAnXbDlL5HWAJHnihRYPs6gRewrlK3OWRdYWY9r8u5xI5aDb0zdRE7bHMmSBfmEmfULFYFVf/26 WRoZ62DvtVCugobDHHJLszolHkeKcTDrLlxdqTR35OXRStlyjPdQo20yTNhTASNtNDs+bg26boa a+K59QrliJplL6A88AuOGMaFIFFE6ikkHtJv12nTcwkQz2OrgngD0ueDLa6y6m5DSH5yFhBWTde n3BMw5V0p5KXRcAu8dOKnxi4usCZq3oygXsk7T8dh0PLYDjxhCVlmPsthC9Rrq2u2WFgbXhLL0v KFy3JKn+a/aSPMrsePmLi1V5HeZlSvb7I2waUBKC2ZwLiP2+bljz0vvkcHuQTaj5C5MtpvkLFl8 FzZ/lB8c/up++MNZ0s3nuRkCEbhm21Knbc5pMY4Qv8uOC7yYsxHPbclJbGZtxI90oHtvhw33LeG OCGElGzxbeqS9Fk97pmn1XVaTkNe/XNtSHEiWfWlLcsRP7hgmCxq03DAkaVfcORqRprnobE6uo5 SiA1mw26m0XMp6NSqVhHvalY7M26kyfG4MVWa7z21o34yPZLY7yvzKLCfag3MgBnQys91BehSUM 6L5KUraCrjohO/Q== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjIzMDA5NCBTYWx0ZWRfXxH0ZOpGhmLnv S2SK2nXb0SLfeylN6D10f0Vr+PJDGnz4ruigi4y6Y/OYiLyaudi4MiDN36HT6N/QY+lT2vD1n4k rx5Vkc+CmEhsRQUIoLuC57kgQPZdXbtJ9to7/wvHRFM9EWoH02cQqc80cnc7xzuXW/VC3LZFUkF vEnkDNfbv/y8R2iZ3wj7iM3SUgI67TT5aDoWTrut4Ci1uIo7D3swVYoBsHKd4osP1QX+KFehUJ+ 3OXdMkMUaHyLh2vHvPFbCoE0petkbYq68jB0lxt+Sx9kjMGRPkbPHD/L/GQm47nK36+xR7icOE0 t6l1Tlg0k5VwyZ8f7WetI5O6SNM2LNNTQiuL3u20tEFqEJqrRCmIT1FuYII6merRCbW14nle6CO 5j6YFmYIO7mZoT/qVif7eiEHBIwBxd6aiRne0XaIj9NraelecWohJHNZzHZ0ZBRd2hNCO8Y3u38 yZ1XZeEJ3e3uJI51wrg== X-Authority-Analysis: v=2.4 cv=UO/Q3Sfy c=1 sm=1 tr=0 ts=699c32b5 cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=ii2iuPLuu9iRZ_mRmhMA:9 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 X-Proofpoint-GUID: vnyk0PxGAMxplVWDrmVXjXZ7EUa8PuDJ X-Proofpoint-ORIG-GUID: vnyk0PxGAMxplVWDrmVXjXZ7EUa8PuDJ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-23_02,2026-02-20_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 spamscore=0 lowpriorityscore=0 adultscore=0 impostorscore=0 malwarescore=0 priorityscore=1501 bulkscore=0 phishscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602230094 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. 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 14f583e466c8d95690539bd886fd0c2fdd440998..924e2e247ac1ad426d73310f1024000ca64e0471 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