From nobody Fri Dec 19 15:01:48 2025 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 D7DC02E1C57 for ; Sat, 6 Dec 2025 11:54:52 +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=1765022094; cv=none; b=EZafvOb9J7mS4mVD7FSRjBYrNtruV/EhAL6y8LR1MsSSsBQnFd4IxuM4/S7zeaZAwiwNwDM1u++M15O4ZKL9QXlJGKkrFNYE8QyApekFWwLnihc+MyYIYO139jzCLGa3Bp/5OEi6t7N1wDOtGzcCuk6KEaOuWkFe4iYrAe/ysU0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765022094; c=relaxed/simple; bh=uIrarfK4jgXXr+NR+ffSBIsyZqiC6vtwPuFwfYlHqmg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=AVDelw+F5LT28gm1xnRXu2fLxWDpZAqIqqThQfPgb9eGk7UKUE5/7csanJFPhmy0/mo590sdfFZAzJQDiJOGLnn+RscH7GdKc+3EjvwDVfjMmd/wfvrUvWXxNTSw1TrJaAzxikohrHVy2iZAdaOnGRv01PuHwgEBqz502P1iLgI= 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=YIWUEK92; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=j8PzW0uX; 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="YIWUEK92"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="j8PzW0uX" 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 5B6Bb8ta3542760 for ; Sat, 6 Dec 2025 11:54:52 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= c3u5yo4Df03bHNQPkwona9TVXnQQlzvzXlqMLvEOyEg=; b=YIWUEK92NemeiRvb bJYwpesZdvVR4AY9wYQJL30wwz99ScAreIsz0kWPs/V67/ZMxsRgFu8cQ8uJ6C6/ 1w8Hg6WyH1qJWW+Ur9X4ecBrYksPd6rw5b2qfftg8gKLgyAXm3gny32z4VezUxtj BoWIyjUh2+P6rLVK6GQGdLPh1PjySY5XG4GpY3SfcvxnZqjC7ey/6zQ/jM4Rcnez iyGCP1+22WbFdlAFcwR9lRG9fPzi1+lJfLcSY/MiRo1LoGPAxUH1WMwZ61whSBJX B/7+PQj3KEhf+xMZvsGdzMkeiCTtlHUbZy29rACOGqxXcElgsJMWKiet/aY0iVR2 lOEAVg== 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 4av9upry8k-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sat, 06 Dec 2025 11:54:51 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-8b259f0da04so634197485a.0 for ; Sat, 06 Dec 2025 03:54:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1765022091; x=1765626891; 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=c3u5yo4Df03bHNQPkwona9TVXnQQlzvzXlqMLvEOyEg=; b=j8PzW0uX5sLId+MbgQmLufSImysmSUiWbsCD2LEATsxJ6/8PbnubLlWg+UlkGUlbRg pYyCZnCPpYAThywNPB07EmWvxFZVuDV1Y5E7XzoMjggQ6JchrUnTz5vY1XnEIOsany72 oP6YMk+JW8r/HAz/BtkKTi/zoHkJ8vcJPCAZnF5RHNZFUf4BPjDJDsna1n1vUOPjFR0o skvFXVY2eaqCt7XVE3Nac1vg4LnVbu/kQtJZBJoqwWd+1ivxIN4QI41xOKctWzSL82VF +hlbpeT4unRgHl2G/fOhb0OLy0lK52Pfock+u7TcwjSCuikBT37HWD0Ki8JPTkERzuOh JAQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765022091; x=1765626891; 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=c3u5yo4Df03bHNQPkwona9TVXnQQlzvzXlqMLvEOyEg=; b=Ih0ddZoBtmHRK1C4t0nqRRelObqQp3nkmJOSgHqR/ugZdUEMOevMVT0lO7L40RGAJm YR5z8PA68+8YzFo6edVOUt9KS3RpzNYR+bie0oZ4+JB672kk9PjMCfeu+jjLokw5aBog xtlTZ5S2j6JNlvrJDymwKaiClMPHRnoZIHB5le9biJFXeCnR7d2pbmuEc1rG10PaAwam 7PvSohkd1HLx8ZiwNelFcSyWRu9ptE4CKVwBb0f7hq6NpYjJMASEes35kyCNR5jsUEJE IG5Pn3qHOaDg1bHIq/x7UulXnUvYue7UJe6qAw73iOFsNF9KW3GB6cXOFBCdi0B2uYVr WtXw== X-Forwarded-Encrypted: i=1; AJvYcCVXYWZH4g7nJ5ThyBirPRxqEpFb2VGkCGHgbnKXbSp1PoVB3VhYmTQJ0q+EhoUWJfgs3CCE0rQZXeYznTw=@vger.kernel.org X-Gm-Message-State: AOJu0Yzx3NEDEEwNUfknHlnyrlr9ywSH2yLl9cb2jxMxQyoJ+nMmj/u4 Y+WxUZt33wNaBOisHIzwCJN/y/eGm03cmf5WdUI4jbvJJgCRsxuP8TEFKZDSLEfinCCqy6uFjsO qfha4DT8Q2coRNwgRmGssPwY4ALvvKb/9dXgdaxzFUi9Dz/LKa0EiUTHANWIHqU/zqyU= X-Gm-Gg: ASbGnctqeCACOd35nTvD9CEZlnDsoIJ5xZLEEXLDSmbJ5O204fWra8e0izT07I0uaEU Q/7+uexomRm2HKZBjIHttm3TiDz1HaAFLC93uDJerDBPawC48PjBrWYZqeh83xqgkd1N0W3Ydah XVm0nWcCNIXWIrtdpHsZS8jBwGynnw0/WxfZTIIZHn6hfGgDacBaJgeXMVoeXPCz1I287DcSHHf njIZAkxJ9I84ONjeL1hK0SkFvFZzGjh73QbRRiw7jN/QOnszWM1Y38hfoK995uBWgAWyAJsJ9FY WyiIYhFymxw6qTJvlExmGy+1JC95lPMmBJhAp80Opn5HuhtDrbyfkOrJI2SkQwbsr6/uJ1KiKAr O7rooqZuAG9LAsiGitoKqFhfQLO+bLI6V2XH0guskcIAoL42nz0c= X-Received: by 2002:a05:620a:28c2:b0:8b5:222d:ce3b with SMTP id af79cd13be357-8b6a25a9527mr318171285a.52.1765022091270; Sat, 06 Dec 2025 03:54:51 -0800 (PST) X-Google-Smtp-Source: AGHT+IEaT3kRv70fXmev5flwo2Ss2eHBTAciT1pUtMwvrC9XHWatCHPoJzv5n0BuoaTsgH6GxabDLw== X-Received: by 2002:a05:620a:28c2:b0:8b5:222d:ce3b with SMTP id af79cd13be357-8b6a25a9527mr318169685a.52.1765022090880; Sat, 06 Dec 2025 03:54:50 -0800 (PST) Received: from [127.0.1.1] (75.13.23.93.rev.sfr.net. [93.23.13.75]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-42f7cbfeb38sm14027048f8f.12.2025.12.06.03.54.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Dec 2025 03:54:50 -0800 (PST) From: Bartosz Golaszewski Date: Sat, 06 Dec 2025 12:53:54 +0100 Subject: [PATCH 2/4] gpio: shared: check if a reference is populated before cleaning its resources 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: <20251206-gpio-shared-teardown-fixes-v1-2-35ac458cfce1@oss.qualcomm.com> References: <20251206-gpio-shared-teardown-fixes-v1-0-35ac458cfce1@oss.qualcomm.com> In-Reply-To: <20251206-gpio-shared-teardown-fixes-v1-0-35ac458cfce1@oss.qualcomm.com> To: Linus Walleij , Bartosz Golaszewski Cc: Linus Walleij , 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=1269; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=uIrarfK4jgXXr+NR+ffSBIsyZqiC6vtwPuFwfYlHqmg=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBpNBmFsmO7/LHJtIldE2l0Ccw456dwSb/k2wyKW gDyxxHzQ3GJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCaTQZhQAKCRAFnS7L/zaE w6Q/D/9bJrIH2mXGQPjeLTBePZgzQ4zazPoptHAvdSakXSoode0XlPfad218JnhgP0aOX/wP7Vl kNhEFKZCq71HUYRHo7NZTy+avcx5hOGHs20/+5VTSyhiL71LSIGfQgSYo/26DObo7NzwscqKDq7 9eGlhu0bPzhX3n6reGnu7JEgJsUi2CwQP0/rf92atIBbb/AaojmFDktWGiaCJf+VSAiHMIDzmam wSlfcT/DZ7tli4KxVwHe1efVjHNuT5FgjNJOglX/c6E7xMbLNR9JhUSk38cVTFiJiyTN0jNfgTM bbISnhf3UFuU1uT8U4wtiDO2GHcNgXOUpJJtGksdPoW0RclRcqfzbrw09LCK2J1eMvJ3XD5OS5c w37jm8luaAh7tm82F9mmHWaeJJZIucmhv/eUEE2KWdgQ3elY2g8TpcUZ2LZkSdVNGaeDdneEEWQ vSqktjRZebVpeS2/pGkDmNJFkya18WoaOlUl7xgGQI3OeqzxsKPaXob/BsT3lQwh3G6pvOCXhtO CzVER0IRHeBYHk7iZhjkoINV6t4DaviDAEoiBlgPIAL6ES6HVKuKU5a/Ox3vJIhS+JycEGul6ma GgkL++ssnJ5A/bHAy0YvREab0xnf0DSFcdIUPD7zNhdAdfmCRWQBQLn8vl1eATTc/bqjJdpX6O4 fwpuizYyB9Vij9w== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Proofpoint-GUID: tppq5s_EwQvJhFmmrG1bZGdz92CC2Om4 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjA2MDA5NiBTYWx0ZWRfX2gSl3Y0HmTuG MIgjRydvmmbYf7mjKQeyBdB0YGiPPrtrGil+Pvf4i6paUNKbQhjaCExOei9LV01r0lI+1LhZWbv wz64Q4cXoLFIKpk0UDTcxXWJSxH8ou6nfvbx9f0Q4h5NOtFUTxh9fPHbXFJVRQ8sLL9uFQnyZx4 ZCkP7SbRJdpwBKcLzcM/sMcx87uGMiclnZMddxHADjR+lTqGxhWD7aYelRcXgvr4KAIi8BKECeK 7TufUUiDDna8FLPr7uMImChtn77qvMKjpv0z2/YUB6kgJDHGfYsFzqoM6Tx/ZjAXEKX4HShqNrF tDGDcNU764dO68XCR3G/WQ8OUuYXA/HvzuAkw5HVJFVBdbCs2XWClB4G5pa+m7fkZFdRAtJbmTb JlF2oQNjFXHcd3Q1OLJUjmabdG+E0Q== X-Proofpoint-ORIG-GUID: tppq5s_EwQvJhFmmrG1bZGdz92CC2Om4 X-Authority-Analysis: v=2.4 cv=NsHcssdJ c=1 sm=1 tr=0 ts=6934198b cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=OJCUNAs2RTwferbJ40Rlvg==:17 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=1wcC7Ly_4S32lYx0NjMA:9 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 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=2025-12-06_02,2025-12-04_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 adultscore=0 clxscore=1015 phishscore=0 priorityscore=1501 malwarescore=0 spamscore=0 impostorscore=0 lowpriorityscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512060096 It's possible that not all proxy entries will be set up when the device gets removed so check if they are before trying to dereference members which are still NULL. This can happen if some consumers never requested their shared GPIOs. Fixes: a060b8c511ab ("gpiolib: implement low-level, shared GPIO support") Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpiolib-shared.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/gpio/gpiolib-shared.c b/drivers/gpio/gpiolib-shared.c index 17da15c1075f97f4ebed969b38197ac155141406..4084a28a953a7c9f4b04cbf867b= 05a1a74b557ca 100644 --- a/drivers/gpio/gpiolib-shared.c +++ b/drivers/gpio/gpiolib-shared.c @@ -491,10 +491,13 @@ void gpio_device_teardown_shared(struct gpio_device *= gdev) continue; =20 list_for_each_entry(ref, &entry->refs, list) { - gpiod_remove_lookup_table(ref->lookup); - kfree(ref->lookup->table[0].key); - kfree(ref->lookup); - ref->lookup =3D NULL; + if (ref->lookup) { + gpiod_remove_lookup_table(ref->lookup); + kfree(ref->lookup->table[0].key); + kfree(ref->lookup); + ref->lookup =3D NULL; + } + gpio_shared_remove_adev(&ref->adev); } } --=20 2.51.0