From nobody Sat Feb 7 13:50:38 2026 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 CB5062DC767 for ; Tue, 6 Jan 2026 09:34:38 +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=1767692080; cv=none; b=fBbY5+NZqFPa0256zXdUuD4uWbR14lIvxgCO9eTyLtUCrnvYwROVG0TwlZfDGGMcAZVRspGYSEcdPJRoXkdGfX1qDTXQzxXV7v/mKrxjRc3Hbp7bLNgmzpJsdX00DJMSTROx4Z0mHNG5+HhQvnozFN/pX5MzN4ONVY2/zg1fD10= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767692080; c=relaxed/simple; bh=+qHREQZb/P8yRlR6ZEGY3Tlp5BRmeK/Y2vvYqkUUZAY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=tJ4s7U+BDlaG/gME5QiynTm57+8vqZ3w5LFGL6QiBW+dc4UTxiutuCxnbSVOHHL49mx1f7vXcYVxH3x5gDFEIqz0aJHAOYtOmnor8lQHdfO0LPdWSS1xEMzqU2cSJJ4rZcqozBXrVsFn7PB9Rp1t1tIN3Dm+RMdJSJE4qM6vGEw= 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=CBPIi2Vl; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Gt8xsCYv; 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="CBPIi2Vl"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Gt8xsCYv" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6069W8g84090717 for ; Tue, 6 Jan 2026 09:34:37 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= tmZmM1DrqJyOHUhXesLJRUeqjEH4qTmC0C9qc/Ubah4=; b=CBPIi2VlCvuOtEut 4ToHwq4PgGuEyPdqu9YdEG9lLZtiqMkbiXrYa5Ht7sBLrZsZRZV7xqHLmZQDBWYG OJZjAwSJxmZOagOR7JIj7MzAW/bO0B3PTuKdofd9bGjFl30PTF02il/fNvz49V2L +sre2VlPWtIJddY06rEqpLoz12QRFBj/M1DOnLcLf3MpS3vs6whGxO4CG2F3qrOG 6pok6wal+Eq3euFldaYCS+qJBQr52iOFnN/KvDhvfjx2Gk5uKql2FLkpYlBp139I WLrx59oVFc/y6qbLLCSU2NI/Sa0eT5X3ehSOlQR0UdzqEn8K4c6OCiCD+aDGLfuP cnDRyQ== Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4bgyun806f-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 06 Jan 2026 09:34:37 +0000 (GMT) Received: by mail-qt1-f198.google.com with SMTP id d75a77b69052e-4ee0995fa85so27456041cf.1 for ; Tue, 06 Jan 2026 01:34:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1767692077; x=1768296877; 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=tmZmM1DrqJyOHUhXesLJRUeqjEH4qTmC0C9qc/Ubah4=; b=Gt8xsCYv7UzfrBsdH1EdajCLLT3IFoj14dzRpILj5GLeP1Dpr1pxjnTEWWyJgyo+Hn no3PXQpziud/QWB8TCD1rNvzp5IrAPCwXXdB9fZGWnocBTdSxvlCcWuNjVTeqRG/NE/s NRltE8pK2//9g9/Tatx/qc8DE/JOnYiUCk/SmXtP/K/y/u6sUAcC3f/pe8Yn9uDlWo8h Z9TTqHHFLu3d/Sk6iVdTXO+00eCxzsJZNlQmYglSPQqv7sahNutPYbJwX4WvcHg+lPIg CpSp2O2MV9RRgNqo7LvYS8csZbgXU45EBz8zmsiR0iNu42p/GZZUNAo4DRGDwBj3mihO kIzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767692077; x=1768296877; 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=tmZmM1DrqJyOHUhXesLJRUeqjEH4qTmC0C9qc/Ubah4=; b=UPKtBwgfuegyE8NhtXa6VQOtVSY4+ciqDgOiQie2k3To3NwsZIInTLu8vorVh3SH7y 2gzE7p+n6XcgIeRsaCCh2mlXo+SwVgDoQNg3aRpdJkB5ybKWz7M2zyS2szY9LTRhhbvh d4I7u+d1cUDGlrhgWoI6Pkl8QcjbSQFpeFyftXx8ONrn4vaYHxQELMQOspI20y9Wwcg+ 4aWvI0HLmtIUh7HcPtz1BCkf0rTTw8QoVPFwSu9Zt4xXxAwePMw04JcOjQ1OpBMzXqwT oNfL24UmI7gT2m5B+rm8jKcsZilU/jYNVfVWEE0mCVzI4W2qLtNpKw0sPkZAloWL5wCI J1Ew== X-Forwarded-Encrypted: i=1; AJvYcCX/fSCP5ZC1IFJeBw0cVf1ss63/4O00ZdGA+2jcY1jCmjWaO3pAFVmw4ITMZDcReJ1QZ7BrGQQk6KqG1go=@vger.kernel.org X-Gm-Message-State: AOJu0YwV1GMXdpbyHj25yA+gehRkQrQxByaXjSTE5iS5FGQ87iERUehF NqZ2o3/fBLLdtaMfR+GPy/3eUmK8dr6nJlml5kheK3VBSNLOWhjWUlWhInBXC7YWdHUOkZjbjD3 X/KNefQW05gkLf6eAv3Bb6F8SQZXw+mK3PYFdewajcd1ASK1NOoXP0JMjtAAOjtj8OKA= X-Gm-Gg: AY/fxX7eacFO18b/ZRKkONVIkT/5foC708FCx8OQyTRbUHODXf9zSSUac0y+hQXP6W2 Ai5UUY6C6jlpV+UDLHzXyFHOcnizR9A6iPwGKV9lptNNqBFXBqB80cjIbrFF3ijVDQRhljxx2Sy wyP6JtRuaHwVPoWifd9PvKmGaI0hnZuGX75GqLdlEnEsEym2Lxieyeefc6JVm6ib02dNYWpYAl2 QtMHQMdnlpDjyugTIoxRjQllbqPLhjaL2l1N3+esbpESCtLjSmWvs1/I77ZWPUkEPnHpHbOHzzK GjLOXC9YoRvTO4zQWNjR1/6VEDx4M5B6C6pxYSbYf7Iy/9bjeTYdQqzxec0QztZ6W03MDzxSxAp gLuXLGLsrkudb8Wu/FtMi5rN7bZTLdUghiLhQ6j0e X-Received: by 2002:a05:622a:1b1f:b0:4f1:ab79:fb18 with SMTP id d75a77b69052e-4ffa772d574mr27246651cf.25.1767692076737; Tue, 06 Jan 2026 01:34:36 -0800 (PST) X-Google-Smtp-Source: AGHT+IEcESeKF2iwYSUjbkWzhDypOKB95tx24IZB+LbG8lT5vLTkucOzZwAeo0fKeU+mpsVopwQRXQ== X-Received: by 2002:a05:622a:1b1f:b0:4f1:ab79:fb18 with SMTP id d75a77b69052e-4ffa772d574mr27246531cf.25.1767692076341; Tue, 06 Jan 2026 01:34:36 -0800 (PST) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:a1e5:bc32:d004:3d67]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d7f66cd6bsm32013275e9.15.2026.01.06.01.34.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Jan 2026 01:34:35 -0800 (PST) From: Bartosz Golaszewski Date: Tue, 06 Jan 2026 10:34:21 +0100 Subject: [PATCH v2 1/3] gpio: shared: assign the correct firmware node for reset-gpio use-case 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: quoted-printable Message-Id: <20260106-gpio-shared-fixes-v2-1-c7091d2f7581@oss.qualcomm.com> References: <20260106-gpio-shared-fixes-v2-0-c7091d2f7581@oss.qualcomm.com> In-Reply-To: <20260106-gpio-shared-fixes-v2-0-c7091d2f7581@oss.qualcomm.com> To: Linus Walleij , Bartosz Golaszewski , Marek Szyprowski Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1267; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=+qHREQZb/P8yRlR6ZEGY3Tlp5BRmeK/Y2vvYqkUUZAY=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpXNcmGQ+SusPx1lJhTryWqLTPN1yJcWE3qcX0+ aCvRDUTugKJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaVzXJgAKCRAFnS7L/zaE ww4OEACveQI/ReF3ZZK4xdXhdM5r1F4k7vRVduvg9wGsmAcntN/w2xnXCXSh/PDz1MOcIsacUIq Mr5JHFkESy2PKIOrjyj9Nx+TYFaVD3GmEOQjk9h6dww6JgWaxb7ZSGyK38YMtrggC9w6nHYVGe6 KywuuvkRF/wczmN/4mtiI+icIkpYT/1yLIADP7rOHs2EoZXdt4ApQ3P6gnEC1oEXO/3IxeQn1gr /HuApYtdnVDjdachs34GJZN5J/8rZluTrBiXpH4W0GeTuipF4Abg2G4EbfcDV+raDB/ADRY4i6S 3GfpCmsOPhiRTzO3Xz6cRJOy+0cuBkdxL8BsTcFsvadY8h47Jj+N+I8J/q3v/rBrTXhP3i7Papy eF45mvOzyK9D4ctlrTK0ExtferSHFd0vRHbOAK2ToXB1emwDqYOKZA1HB0VkVXnLNuFn0Cc8bt7 VrZJDC5M8sKYMenErs8aVqJzXiQioPvC+UX00YjQsbCh0sraoMepdyxiAJ3JwplE9aElt8A80QV idmhG4VtdSTg4gEgJy8C79VtceZ1n9P8U6BfhQ7uAfmZ+L+XCSQgqmW6QaAF+LgOvPHgfC1MPNc pAgOBisW0mo7Ux3vepTH7KGJFSoYhKX9I0Z9+rDxBns5WXVLQn5D0ikePr26eiUebtyreANQwHD DCc+KW/9UPLeHKA== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTA2MDA4MCBTYWx0ZWRfX5nGWwyw7xfos ITBF+9txtWwTF4PU+vVZfRL+tyUWEb7Jh47xg3c7MZHkDIHOTXhGxUY3wICeS3yjarO+sbKBk2m AtreF51CpqMbXooS7mkCkAcRZpQLMpWqIPSiwPBJOjhk3+vzMJrMMVlrHWV76I/wQvZWglBlqNR MAFk6d3E9cmD4HVsa19gZNMGpUFDGJiZdikjhmmSq4rkaRDunkNIj5gAVpDJCLzbB5jH9fBVpvs ZURxHs8k33slrKhGJr0Aklo+s2GSXmPbBifQ+dkC7V29EVis3JxDfjuE1o1KTu6Ffyw10uMwWqo ixSEV1vECKQSsldQYcaB8EGOVEX6bJg0sP5kP78dXHFlATfoCZqWWl1k73OLpd9Gcv8aubLMsO4 cR8DBlos4lbOhvjCAtWsEpnXE/Gs5uOEShPoxk9bseWfokytRCqldHCkq+75b7wSil5LOGyn8g9 U5xxroHyKrlIkRpBQ0g== X-Authority-Analysis: v=2.4 cv=YqIChoYX c=1 sm=1 tr=0 ts=695cd72d cx=c_pps a=mPf7EqFMSY9/WdsSgAYMbA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=hD80L64hAAAA:8 a=EUspDBNiAAAA:8 a=0jxSSTtIkrDbntYdqkUA:9 a=QEXdDO2ut3YA:10 a=dawVfQjAaf238kedN5IG:22 X-Proofpoint-GUID: aWh9IGccfwdQUlQ2V0uoAmLjZDA4Pn6d X-Proofpoint-ORIG-GUID: aWh9IGccfwdQUlQ2V0uoAmLjZDA4Pn6d X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-05_02,2026-01-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 suspectscore=0 impostorscore=0 bulkscore=0 malwarescore=0 phishscore=0 adultscore=0 clxscore=1015 lowpriorityscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601060080 When we defer probe due to unlucky timing of adding the lookup table, we assign the matching firmware node to the shared reference for the future probing. However, the fwnode we assign is wrong so fix it and assign the one associated with the reset-gpio device. Fixes: 49416483a953 ("gpio: shared: allow sharing a reset-gpios pin between= reset-gpio and gpiolib") Reported-by: Marek Szyprowski Closes: https://lore.kernel.org/all/00107523-7737-4b92-a785-14ce4e93b8cb@sa= msung.com/ Signed-off-by: Bartosz Golaszewski Tested-by: Mark Brown --- drivers/gpio/gpiolib-shared.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpio/gpiolib-shared.c b/drivers/gpio/gpiolib-shared.c index baf7e07a3bb887dab8155078666a15779e304409..a68af06a6cc4e1e33946d7f200c= ecd4d3dc066af 100644 --- a/drivers/gpio/gpiolib-shared.c +++ b/drivers/gpio/gpiolib-shared.c @@ -417,7 +417,7 @@ static bool gpio_shared_dev_is_reset_gpio(struct device= *consumer, * Reuse the fwnode of the real device, next time we'll use it * in the normal path. */ - ref->fwnode =3D fwnode_handle_get(real_ref->fwnode); + ref->fwnode =3D fwnode_handle_get(reset_fwnode); return true; } =20 --=20 2.47.3 From nobody Sat Feb 7 13:50:38 2026 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 D18EC2DE702 for ; Tue, 6 Jan 2026 09:34:39 +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=1767692081; cv=none; b=Og6UZ225K2bNZeJR3M6Q2OLTIlxXT860HOozhKePYIoEUvqFseyXzCKXCOlkyiAu1xnguW90JmkLqd7A1/XVZ6wocI4wQZ/cwTR2GtxUBqrxPLAYdNs+hkcMTb6ZqJaDGtWIAJIr4DPT1dXL1D9AscabBWErSmu23m2l2NbcTjU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767692081; c=relaxed/simple; bh=UERTMG3e/bOHw3nQHtqYa0IAX/Hnv1dLVoWk857GePQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=h1/ChyuzHjlfIRCvZaWkhd4AULb3o6bOTZhIdrtPHSX0POB/lGXfV++mSe7O/ez2neMdoKuiDAHITChCA9crJBgB60VlvswG970rBMMsBJrwgxVWRO905bkcKssT8eKXuSHDoNp/3e5TrfPCKLk1f0u9Ug0qeh2blBGanbh5SrE= 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=VOYNCBD5; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Tw7uaRvo; 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="VOYNCBD5"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Tw7uaRvo" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60649B4Z2254237 for ; Tue, 6 Jan 2026 09:34:38 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= g5d8r1NNmwis8zwOib1MypX5zeM19jlIWAZ6ngmTdyE=; b=VOYNCBD5Q7cy3m2Z O2sEF2WtbFOiq5nHj3EF5LADEGBxihhnRswRYOUbtmMJg/kw8lYGfzKcibhpM30d jP2Uh3MXFOJI9riRWU+Y70hWKbJ2LbgvJ7nE33zhSkqYaJopVeHpMkJJsHpDeDGH f2qCtouynKwyZEfuW5rnqCSUIskIOgs/FeN7eMSzyAp0efBLubpUJKCRttCPd+Fm gcbedQGI3uUG4DpJ8ZuL3i2n4VBDU2UFDMd6BbEP6Z8Kkm6d0TjUyAbS6vMFsof5 +OQx1+ITnmLE93fndr8bDM6/TwR1Pnt8rrlkRMiDSiIjmmp1KkEtq/Ol7NJ8K9Uu pKYgKQ== Received: from mail-qt1-f200.google.com (mail-qt1-f200.google.com [209.85.160.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4bgu420w69-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 06 Jan 2026 09:34:38 +0000 (GMT) Received: by mail-qt1-f200.google.com with SMTP id d75a77b69052e-4f4ab58098eso21286501cf.1 for ; Tue, 06 Jan 2026 01:34:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1767692078; x=1768296878; 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=g5d8r1NNmwis8zwOib1MypX5zeM19jlIWAZ6ngmTdyE=; b=Tw7uaRvo6lQtR4J5KrLdZ8rHZ9tuaJUXyDPbH6c40PYZEOe0nR12E1UXTmQXuNI+/l +xM2zCG51ncrVs3ZiaHVPCe18uDJOfYNiWVxex010CFFMOS0xheeHpXPhEo7paPbHDNU YP40c53C2QjckHql7t2eZ8hSuNJgx7bKYbdVJLH0MF8d5a/27JzpyLm7NCJjCFIES9pd gzJkv/X3gs2uxGsIxeEiobcALK7ZJgzvY4VfzSdkQiFa1GzdwnmYo8fV7TmiJxF+12MY e7MqXHEZh2qhHQh3H1lcaI3QWHKhRRm/uF72VcVeG8r1Ye69tCl7qE2QCL1C3JVPFJ3y pwiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767692078; x=1768296878; 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=g5d8r1NNmwis8zwOib1MypX5zeM19jlIWAZ6ngmTdyE=; b=CGOXujUwEhAPL48B4BETRrn07ejV4md703thpJ+lA/Tz5v02LM6bW40RQlwv1wxm3z Q8+pNZ7EbocITDEy0AHct8gjtPGVy2wsJE1wCEKPPGVGX5tXZxLdTXgp8F156zfv3xOD 5b0oZGPXql9n2b5RbfRByGmuHwYUDjw8fnrP2z/7O+Q76qvtHwSCmbMELpyHym33zyj5 7fSUwkvrr+DntAF82E+wdTzwK1aZy6ylJPWpTMwGx4bO81xcCqvja0KCWrYHi0VPFtAD K2iZJxIjU7ybE0FeHcv+8zg1mVYkwm9R8yUHugSI0wuk7vlpIregrSlcoIbcJIvicHis HFVw== X-Forwarded-Encrypted: i=1; AJvYcCXp2iT2/uxFfhNVjxAD03NePjS1L6rzCt1OUPGs1UEkEhQkJl53nPp9kMq/Y582zTl8Kx7yv9Qucc2cXKM=@vger.kernel.org X-Gm-Message-State: AOJu0YwifEQabJWDv3PxHmoqQbkdO+F68/7QPjLZjB9mhO8jRwTQy2dc BFzg/NxIcNmlvV5qGYnB7SGlQ0lWgEhsThvFKG/gfov2xcMExoGwJhM6ZBB/p6v/O0vwbZu7Tdd 3zQZq21xmEd91vlJreAyI355oUYSIIlJzl4OuFXGDRI+UykHoLPBPDWWuc2o/j2tG3s/XjdArZp 8= X-Gm-Gg: AY/fxX55GLy7EeqJ86BeA5oBLQtH+hWy0n0AN5BTnWUTdQt8fnH/yxM8Q+1gFo+zLxs o7H5MG2Ia6eFpN7l7/EyC8UqgoUJ6QQyZC34JFOmKXhyp69MA1YUGQvtENR6fhVAWpYqiys6rwk uWLX8Z0NMWeuJw0f6yt9Q6j8dnR1m/OPnJAVLnD69nw5IErla2g2r9mXhgX1CV7e7U+A4yEDe1l 6ivrN6HEX5v44tKrs3bAcG0az0qAMKf65yYSwGo/cbKpbSbeJ7CEKI2r9/P7ZLRZ6rx0vU9vDdc oykR+sdl8fv2DwCoh4rneISDpCl0PydESTJ73SGFa031Bm2h5DzP3hNfAl9iRjXaQP3o8+d1MAj lseWfpcZjYs0JjIMe5z7GLQJYpXielz3kLHEPMBrg X-Received: by 2002:a05:622a:13d0:b0:4f3:4cde:1660 with SMTP id d75a77b69052e-4ffa784028bmr29382341cf.83.1767692078106; Tue, 06 Jan 2026 01:34:38 -0800 (PST) X-Google-Smtp-Source: AGHT+IGTTL+YhZnYD+jZYhlb413v4NMlYIez8touZGgxIrh9zP7ArKd1UiVSMuUpUiJlsMd8fJB1kg== X-Received: by 2002:a05:622a:13d0:b0:4f3:4cde:1660 with SMTP id d75a77b69052e-4ffa784028bmr29382161cf.83.1767692077697; Tue, 06 Jan 2026 01:34:37 -0800 (PST) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:a1e5:bc32:d004:3d67]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d7f66cd6bsm32013275e9.15.2026.01.06.01.34.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Jan 2026 01:34:36 -0800 (PST) From: Bartosz Golaszewski Date: Tue, 06 Jan 2026 10:34:22 +0100 Subject: [PATCH v2 2/3] gpio: shared: fix a race condition 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: quoted-printable Message-Id: <20260106-gpio-shared-fixes-v2-2-c7091d2f7581@oss.qualcomm.com> References: <20260106-gpio-shared-fixes-v2-0-c7091d2f7581@oss.qualcomm.com> In-Reply-To: <20260106-gpio-shared-fixes-v2-0-c7091d2f7581@oss.qualcomm.com> To: Linus Walleij , Bartosz Golaszewski , Marek Szyprowski Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3093; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=UERTMG3e/bOHw3nQHtqYa0IAX/Hnv1dLVoWk857GePQ=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpXNcnrdFJEcT3C9zrnNyvrDHrl9VDCRrXOoWzL oEx3JuEsleJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaVzXJwAKCRAFnS7L/zaE w21EEACjKeEsoceX2X4ozlaO3m2KGOKyKnIz5IHPEmIqLdjOMpnNZTIak7x/11odpdQAj/7dSzh W50skCbd8dHmT838+WyfMltVqIOSjslPmiWIaewu2olLw+9wkuOMFxk4Op10N+rI3l6EHJ6FZk6 Ek5dHds1qUsTl+WMsowXZ4lIxTsnfvqV3VZ9xMkYaXpIwixvEAVlEr1hOZvln/HBfUbPoS00QGV 8VmyykpS+h1p4Tosxx/fvLXbu8UmI0jELVxiyTrJUPcPmYSWvdxYVNEiSEr3rUVnKAowmH5FW2o 9DKyAOUsIUIs5AwjEoKzoiibULo+tOzMcGcTBOYAaPPJi2jrDAKYzyKsApAC1sc0pl7EjS4AeU0 TJt+jxTdp0SzdEvq3XIdMHZhdaM4KHQd7AFqY1TrjhWAX9QUq9p9i4Vrb3f7kINKJ3WofvRE9Fk +6G9/K/2mCBuxt391EFvupHZ2X4mTTwqNviENB2HVxDPhhsYrL/r/aflSoB13rcJ4YPY+ZqMXJ9 LZV/B/g/Kn4HC4ZvaXipkf0IwwKgfyAf6nVtEdqeRrNtVSlsU+zMvJhsOyK9xxFejvfyqD/rvAz iLei1EVJFMOOXzTH8X85Ou+8cwV4OTEmEmtj/sudFmEWhn+PXuBdD0O9tAcJYruqVHbWbT49CF0 R4r2UCljB9kZKDw== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Authority-Analysis: v=2.4 cv=dYuNHHXe c=1 sm=1 tr=0 ts=695cd72e cx=c_pps a=JbAStetqSzwMeJznSMzCyw==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=hD80L64hAAAA:8 a=EUspDBNiAAAA:8 a=5bH0XHadNbVE80xmesAA:9 a=QEXdDO2ut3YA:10 a=uxP6HrT_eTzRwkO_Te1X:22 X-Proofpoint-GUID: XEsL9sJZeIWnR_qmngPdNnIKO3Z4F2Sq X-Proofpoint-ORIG-GUID: XEsL9sJZeIWnR_qmngPdNnIKO3Z4F2Sq X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTA2MDA4MCBTYWx0ZWRfXzmUDT2hLeeZz He6vckopLIe6fxxMBUvxYZBRKAX4uWFTAK+9+FcgEV6BWKVHmY+adrEgv+ehl6imgLIv3nQuyvv Y9wY0xEV6X5MOdcYidBx+pBLyU58E3gU4jK4XllxLJgFwL2a5CphshmnXj/7aBSj69S0TccRO7b VTf/cTQi6VkkTTCqyrUwa/8KUm3CI0TZ3R6n2KavdEp0XkEWJN1KDSaS+OQMLcMZOl1f3YB7ab9 jGr/LvSSWM9yUcv9DegUip83ElI5hU19GRgYqMzTLCdWQDkfuTHLJXJvxQXfgk8sYJNeXp0/Cvv plbYJvPadYofkcxaGhzp31UarwMEZy5REGcclh5/VV85WQlsZGbR+5yRuLsUTqjeD1y+wtd+UGa L+RJZ/nSfFvhX2jKMjRcOiU74yLnIZuEcuHjqoOsXHghacO9v2ba2t+MiSy+g6wfjWz6mZfvpWW rTm+dyyEk2G4EYQxzrQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-05_02,2026-01-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 adultscore=0 malwarescore=0 impostorscore=0 phishscore=0 clxscore=1015 spamscore=0 lowpriorityscore=0 suspectscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601060080 When matching the reset-gpio reference with the actual firmware node consuming the GPIO, we also need to lock the structure associated with the latter as it can change while we're doing it. Due to triggering lockdep false-positives, we need to use a per-reference lockdep class but accidentally, this also allows us to remove the previous lockdep workaround for cleaner code. Fixes: 49416483a953 ("gpio: shared: allow sharing a reset-gpios pin between= reset-gpio and gpiolib") Reported-by: Marek Szyprowski Closes: https://lore.kernel.org/all/00107523-7737-4b92-a785-14ce4e93b8cb@sa= msung.com/ Signed-off-by: Bartosz Golaszewski Tested-by: Mark Brown --- drivers/gpio/gpiolib-shared.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/drivers/gpio/gpiolib-shared.c b/drivers/gpio/gpiolib-shared.c index a68af06a6cc4e1e33946d7f200cecd4d3dc066af..4c57b0928760c3f9f251ca88cfc= 54ee5887d50c9 100644 --- a/drivers/gpio/gpiolib-shared.c +++ b/drivers/gpio/gpiolib-shared.c @@ -38,6 +38,7 @@ struct gpio_shared_ref { int dev_id; /* Protects the auxiliary device struct and the lookup table. */ struct mutex lock; + struct lock_class_key lock_key; struct auxiliary_device adev; struct gpiod_lookup_table *lookup; }; @@ -99,7 +100,8 @@ static struct gpio_shared_ref *gpio_shared_make_ref(stru= ct fwnode_handle *fwnode ref->flags =3D flags; ref->con_id =3D no_free_ptr(con_id_cpy); ref->fwnode =3D fwnode; - mutex_init(&ref->lock); + lockdep_register_key(&ref->lock_key); + mutex_init_with_key(&ref->lock, &ref->lock_key); =20 return no_free_ptr(ref); } @@ -378,6 +380,11 @@ static bool gpio_shared_dev_is_reset_gpio(struct devic= e *consumer, * arguments match the ones from this consumer's node. */ list_for_each_entry(real_ref, &entry->refs, list) { + if (real_ref =3D=3D ref) + continue; + + guard(mutex)(&real_ref->lock); + if (!real_ref->fwnode) continue; =20 @@ -568,15 +575,6 @@ void gpio_device_teardown_shared(struct gpio_device *g= dev) if (!device_match_fwnode(&gdev->dev, entry->fwnode)) continue; =20 - /* - * For some reason if we call synchronize_srcu() in GPIO core, - * descent here and take this mutex and then recursively call - * synchronize_srcu() again from gpiochip_remove() (which is - * totally fine) called after gpio_shared_remove_adev(), - * lockdep prints a false positive deadlock splat. Disable - * lockdep here. - */ - lockdep_off(); list_for_each_entry(ref, &entry->refs, list) { guard(mutex)(&ref->lock); =20 @@ -589,7 +587,6 @@ void gpio_device_teardown_shared(struct gpio_device *gd= ev) =20 gpio_shared_remove_adev(&ref->adev); } - lockdep_on(); } } =20 @@ -685,6 +682,7 @@ static void gpio_shared_drop_ref(struct gpio_shared_ref= *ref) { list_del(&ref->list); mutex_destroy(&ref->lock); + lockdep_unregister_key(&ref->lock_key); kfree(ref->con_id); ida_free(&gpio_shared_ida, ref->dev_id); fwnode_handle_put(ref->fwnode); --=20 2.47.3 From nobody Sat Feb 7 13:50:38 2026 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 E931930ACF1 for ; Tue, 6 Jan 2026 09:34:40 +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=1767692082; cv=none; b=cfqRQJxv0K+p9WEw87LqHiUlYJnadSiAnKatX7fAuATy0vfitlV5N3F8zfxtgR0SPh6Fk++OZZwL9Kn6yRbcTDj04P4PCfUxqieFdM/qb59ONL86SM6D4y1fpiMU/BChjkGry2pfCTao4dM9LZ9varR7uVAOEVdL2SqNuN0AAk8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767692082; c=relaxed/simple; bh=6gdBkxEP/hTMAz/yyCxL6tCJ6ssERpAjcgaAm77KEts=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=im8DnRXDqNI+hGWulP+oGPAE5BafiClyCvkpi06aVUF79cu7x1BHqENXP2zUmA2sSGvK8v3ZNcZqSQfdUjI0tHwBc0pG25oizZIUtIvJ5qLmnTt5j5rftZqsZHdoByyV01BRYT0yq2KpH607ZecypccAbScnxx8HKKA7WxMT3dI= 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=N5Wr5Ok5; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=IJIwiJ1f; 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="N5Wr5Ok5"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="IJIwiJ1f" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6069W7h04090703 for ; Tue, 6 Jan 2026 09:34:39 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= Hrd4iZmdtKSO8597lpVeLcHuvrDRRhO0g51FyzpLiBc=; b=N5Wr5Ok5qGzy2sP/ VNBtrfLuoDzjml6bzzpTaG24cRdXqfVCEQjEOLbUDBHDDt/G0RD7+0b1WxrnN4DX J6i3VKun88JXMnx9OVONPqIxuJDhMrY6UhwRq+XnZ+VBAns08vAnnhVjvPKxXiVl FijpRlRp/5c1ArhHUwzA8GDqd37X/XbPbR88abI166J+TPq3DhFvaFwf0GpmYx35 QgoMU9reIgR/gr24FAp3j6DTB6UlmZQj661EcI+pzKMWNYugdwlu9c0Jcr7EeHGE SBpku7YyVO/fKruNZHWMY2sjoyrujNoJJII/v9GQ2PseQcwh6nz4l9In8taNxVfp IYtt1g== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4bgyun806h-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 06 Jan 2026 09:34:39 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-4ed6ff3de05so20612611cf.3 for ; Tue, 06 Jan 2026 01:34:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1767692079; x=1768296879; 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=Hrd4iZmdtKSO8597lpVeLcHuvrDRRhO0g51FyzpLiBc=; b=IJIwiJ1fx/licxHmFdH2B37vjr6ntHrVKiLBbE+tqUsRAVUEPc7YlqzMDUgCTaj52G qhwDdzHnxF3f4x15a3/XGmd7t8rUFVyxF6yTa1y4q6gx3r/ecfC9fUtlF2tOIdJZBViS kiNFxmP/vlVhn5zpol41YGgsZqYNoPj3g2INIRM+TIFSU5d5WmIDTzR+N0DTPRbn6UKk HoLchnrC0s0jngw7nA4nTKlHbF+RICPcy+NAWrYLMQhycRMs6vdO5P7UPSAnnzpdSvEM MwZOfB6HlmLjJFCBP0w1DMczOiOYyspzpZEhDJo8RWBKm3Whe4/EACBTnuf8f+BbGUY5 BhCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767692079; x=1768296879; 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=Hrd4iZmdtKSO8597lpVeLcHuvrDRRhO0g51FyzpLiBc=; b=Gt0uIMy1aoR0XBO/QF2OXAP0D6CEezTqzBPuUNvLXw6lj4AVBM77smmTvTyOPZWina 51ShdAUgXjSWZXdDuRXI3JlHfRms74Hxa5/YS8EA4+woG8iT0YlrOKYrQqPyZcok7Tc8 fIGN1t8WJm+M+s5BrwV2t8+VAXC9TF0UaQ5gfrYo/yNFQtLBvYTWgRz0wtsJK/SYcaFn x8KEkAawIXVcLp3RGNOicG1j5LuavXlEmUO1TrKIWNBqRIcwV8ghyN8Gn2SNeGIFk/dY tnvT6BNXKAgI4oIQQOUnHcA++QZVeY+fBvIGQfjrl3yFNI1Vmpejl97aW0mSOQzcZB6x 3Hqg== X-Forwarded-Encrypted: i=1; AJvYcCWEFKe1ixmbuqlnpShSDdvYtLUYQVf88djxSpEkSAeX5MW4wGASP+BeYEeHgdBWKMVw3XasXCArur+D9wQ=@vger.kernel.org X-Gm-Message-State: AOJu0Ywg3ThX4F6l330eTML0cJv9DtG8fAuwtQnO9HUppO9XuvIeKjJW P1TD0Uwd43+j+4z30umkPOAfcv2qurOen9fQ2rkd9Xsd0PuykHBmdoDav+B98V7EmOV5pLPKoj2 AkM5g4m7srZ4C55iWKqlfwu61MiSz05VGz66kG4m2nOEMBm25foTtnQJFyAWfGfrBZxc= X-Gm-Gg: AY/fxX7c+lk4FKY4VnCAsVP99im+GILuw6fPsVjAWd1ZSsW1KLt0tlQWlKMo3p0XM5Y UxmvWCVzRN0WhpyBoQ8x2h82XWHqiUwDmdYjbR91OsvKX3B+lSzz9YBXB8Of49jGZDgFMHahpxE 01e9VG/8059XycJ6JL+08urheZLPH7Kdp5ypZle/Nn2uUvsu7dqbdNzj+pBCCl+GrRnmHR0l6bh XYE4ln1EF46E1UgNXJUu6lUOJp6gnGqX52mSQMLbB2Q1c5wsf2nJCEQxIMSGo/YP7V9vMwuvZLz g4qHkEiL1NNqOZq+Hg4MJEq+mjpNZcqLf8txIJdRFKDmON8VVweO3yCKy1j3xHb3VcqPrGuT+k2 g3HIH/b49I8BZzPS+QVQUeWk6blsKyhTX72meBW6J X-Received: by 2002:ac8:7dc1:0:b0:4f0:2f0c:e91d with SMTP id d75a77b69052e-4ffa782419dmr30642271cf.73.1767692079178; Tue, 06 Jan 2026 01:34:39 -0800 (PST) X-Google-Smtp-Source: AGHT+IEFg8ssxLlkAY9OjBS9142G2En9qJi8N8fPZ9RGYsqYEq73tjKYd0WcfY++Di+UCxSK/q8PgA== X-Received: by 2002:ac8:7dc1:0:b0:4f0:2f0c:e91d with SMTP id d75a77b69052e-4ffa782419dmr30642111cf.73.1767692078808; Tue, 06 Jan 2026 01:34:38 -0800 (PST) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:a1e5:bc32:d004:3d67]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d7f66cd6bsm32013275e9.15.2026.01.06.01.34.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Jan 2026 01:34:38 -0800 (PST) From: Bartosz Golaszewski Date: Tue, 06 Jan 2026 10:34:23 +0100 Subject: [PATCH v2 3/3] gpio: shared: don't allocate the lookup table until we really need it 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: quoted-printable Message-Id: <20260106-gpio-shared-fixes-v2-3-c7091d2f7581@oss.qualcomm.com> References: <20260106-gpio-shared-fixes-v2-0-c7091d2f7581@oss.qualcomm.com> In-Reply-To: <20260106-gpio-shared-fixes-v2-0-c7091d2f7581@oss.qualcomm.com> To: Linus Walleij , Bartosz Golaszewski , Marek Szyprowski Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Bartosz Golaszewski X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2046; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=6gdBkxEP/hTMAz/yyCxL6tCJ6ssERpAjcgaAm77KEts=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpXNcpJeOYyZfnDryffIHGSZjVzdD6tzt/s7UT2 cIGYyeNZ4qJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaVzXKQAKCRAFnS7L/zaE w9WjEACnBgkbZlOOp9UQ+W3G3sTNpo1uttdY5sfVg1LPGFxLSH7gTiy+mMq2/1Z9pQb5LEt3P8l jzdY1y39zKF279B07yodRe/4tbLutLmiivemv+uomqY+j9A3/sOcTaBlupyPPDtX51VlD9fS9OE gNtVecJDI5g/e0qCLhN9x/sU9++tSw+0B9lebgfvlwODYegEQDrhzY12uRxd7SPI7eOkSoL5E1x WD13UpVyI/Ac/BnFDpDit0oiU3GBg8tUpdvrBghhzXDowtjm5c7dftcZkMwBNIMZYa+TQNflGbA djaP9WGjezaw1z90+Q/5QLSw0C5DhSkwrtiK6sA86eDPPp2/eYdM7hvqI5yAKWPI40iCuLJbY3Z LuIafKRrDO1Sim5YCclcafy0VPc7/F3XIcUkyGQod0fswKjkOi5Dr5Fc6THHzmaQ8xiCDRjC+qh JHrZu17oj3WxbXlVDaFCJYbC1hz0rb21qUr7YXtKqX8d39xPXROSa+Fdfv/rvIoqLW5hdBcNhts FmYT6Am/2ZRBqgBvMkqgmxW86v4dTmwB0M//qVA4XmzPG8vAc19Wki+WuTOSM9RYW/lRRYDWZDQ c00UyvgT3VllmJ/B+iv7WRNO9mpbDvIktjDLxVtrVYgDmDJeo7zHdTLuD7xBd8Aba93Wn9v3H28 5yK940JnSvC5bIQ== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTA2MDA4MCBTYWx0ZWRfX33fynsUMrSJP 7PANEIZYEtF+3olH0w1nvg1UgVL+wbv9b9CGMsapYeMsJ5VU5vCLqB7OOZXyF2bs6HrU9Ko5wDD fKWs+U0V0Sd+lsrqmx8FGWFZSnGuhekq9uKH0dAh2NXVq3bksBhbitn4TeAHxXFcvR4pWK+29j3 6Y8u7X88ky6xjhu5F3ucVXzNVS43eDjkKLSUkdPhITT/uHW3EEpyCBymbujKRB4qIhpCsVf0zM9 ZSdQMQkkbiwkgdcXsYVViEvtKKiDOcimaQOEIP2OiUFNtql5XPK8v8E8SbOrdCkpxsuytFlOT6z ZBZ6hCudyWwyy23awZNsNzJk9DpigoGn6X6Hdvb3uNKlLqYd/UW7YZkhCIUl6fq8ldmrxpwxATH tqksr+m2V/bZ/ZSZM0Z1fYQEl1xNiQlR7UkXVRPKkq2ayhNLI5Ay3RZTCTWiF4ZEWiEkBiQ1uND hfZVVCPT2cHmCHjpzIA== X-Authority-Analysis: v=2.4 cv=YqIChoYX c=1 sm=1 tr=0 ts=695cd72f cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=Qyp2fEuBoOJgs2tQtksA:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-GUID: 0aLPp9D04ZlEa6F-jQuPxI8dgZ0vymwg X-Proofpoint-ORIG-GUID: 0aLPp9D04ZlEa6F-jQuPxI8dgZ0vymwg X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-05_02,2026-01-06_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 suspectscore=0 impostorscore=0 bulkscore=0 malwarescore=0 phishscore=0 adultscore=0 clxscore=1015 lowpriorityscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2512120000 definitions=main-2601060080 We allocate memory for the GPIO lookup table at the top of gpio_shared_add_proxy_lookup() but we don't use it until the very end. Depending on the timing, we may return earlier. Move the allocation towards the end. Fixes: a060b8c511ab ("gpiolib: implement low-level, shared GPIO support") Signed-off-by: Bartosz Golaszewski Tested-by: Mark Brown --- drivers/gpio/gpiolib-shared.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/gpio/gpiolib-shared.c b/drivers/gpio/gpiolib-shared.c index 4c57b0928760c3f9f251ca88cfc54ee5887d50c9..076d8642675c2723c8938cbd22b= 1b51014c23871 100644 --- a/drivers/gpio/gpiolib-shared.c +++ b/drivers/gpio/gpiolib-shared.c @@ -443,14 +443,10 @@ int gpio_shared_add_proxy_lookup(struct device *consu= mer, const char *con_id, unsigned long lflags) { const char *dev_id =3D dev_name(consumer); + struct gpiod_lookup_table *lookup; struct gpio_shared_entry *entry; struct gpio_shared_ref *ref; =20 - struct gpiod_lookup_table *lookup __free(kfree) =3D - kzalloc(struct_size(lookup, table, 2), GFP_KERNEL); - if (!lookup) - return -ENOMEM; - list_for_each_entry(entry, &gpio_shared_list, list) { list_for_each_entry(ref, &entry->refs, list) { guard(mutex)(&ref->lock); @@ -482,6 +478,10 @@ int gpio_shared_add_proxy_lookup(struct device *consum= er, const char *con_id, if (!key) return -ENOMEM; =20 + lookup =3D kzalloc(struct_size(lookup, table, 2), GFP_KERNEL); + if (!lookup) + return -ENOMEM; + pr_debug("Adding machine lookup entry for a shared GPIO for consumer %s= , with key '%s' and con_id '%s'\n", dev_id, key, ref->con_id ?: "none"); =20 @@ -489,7 +489,7 @@ int gpio_shared_add_proxy_lookup(struct device *consume= r, const char *con_id, lookup->table[0] =3D GPIO_LOOKUP(no_free_ptr(key), 0, ref->con_id, lflags); =20 - ref->lookup =3D no_free_ptr(lookup); + ref->lookup =3D lookup; gpiod_add_lookup_table(ref->lookup); =20 return 0; --=20 2.47.3