From nobody Sun May 24 18:42:25 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 058243B95E4 for ; Fri, 22 May 2026 09:12:54 +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=1779441176; cv=none; b=FiFoA20dLq6BPI3ZCpwGvpPCjvpYbo4wpt2pjzytICcuPpq8gtZubRB0xRE6oY9HJdXkI9PDsdazBWLAGBo3P86szbUDQqBQPegWr0XVZOCJa7FvG6SsjsK+AmbMkOQMJaTBGTX5883gU9S3hY5WnoxH8McrwBWeTAuBp9WnsJk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779441176; c=relaxed/simple; bh=s/zZIjFeP8/2k81esWo2MCwCvK3NUWqItzbOgSvm+XA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gJeO0XyWvSQrF9xgPjM22RzZtj67amzB6yWWIrBtwlD8uxgZ4FnsQvUl7vk594DvpDhb8BY1Q8J6hWiT4zk/G2QF6oyi8HmCcRduQ7NRiRdtRhTfqRk91M9lkoOBWzOFEUdyqcxP0H4eleyNYK3p6P9XqNrFIqAZ1l/Q2W1Cy1g= 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=kIl/1b+q; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=LBCCYcAe; 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="kIl/1b+q"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="LBCCYcAe" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64M8t3m82765337 for ; Fri, 22 May 2026 09:12:54 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= K08GxGjbyjk9lS2Rm9N/zaIGPK47NJLVvBwRaxBMJg8=; b=kIl/1b+qYIrHQHI0 LdxOsHC5mDFatqNAlwDeUN2kdNBS3LML8Bey6NMhML2aX1ZG3EbvCKpaoCHydZty EzSXcF+LrNvqdqfd1RRe7LkkS9Qtopuyle5BkSGSM1NDW4YT/+habWRW+s7ukrkN e1Nsqsr60QQKDsobXUx4wSeIuKNsckjm49l9UWW1WbaIcrh1BaU8vFJr+0yTmlyD T9Lu+OC0U0CZg/oIJD0hKD0eNu35V/sf33naliJ64hwPgtWHVob4hp4/6vDdjazO 20aIItoNVXrbzWfVfY+lNyyQykY5DIfQyeG7wvVHLVpPJdauEWfV+b52lDeiG3gI fuuaRA== 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 4ea3u7v7x2-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 22 May 2026 09:12:54 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-516d6cf547bso13124691cf.3 for ; Fri, 22 May 2026 02:12:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1779441173; x=1780045973; 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=K08GxGjbyjk9lS2Rm9N/zaIGPK47NJLVvBwRaxBMJg8=; b=LBCCYcAeq19xjZCLgfQGCFY1v6zegv7e5YJy5zPHRhs3F9Bp6caeBymXQd6jQ5hSZz R4rInaczlBEPPTJ3wci/u97vvaPoDD5b0P4dm7icrKikdhewZbQ7vYv4brjd2sUbjNkG ooIqw0ySewOFcoyDmZ7Jea5rH1TcxuSZU20czc1TMA7kVrbc63NoYfi7n2Zg+14OSsNA 5rFOJY0PvSRIhqkGwxP4eXQ9ecB9OPIb68EN9h+l0uTI7Dd3DH3aMMd+c7Hp7MlYjGa1 tUWHDFpJk5qVNJ2freKV4orsjaldzaqLpTTK7xekTCVziktzzn2sum4l1AHNJQxqiffV gEKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779441173; x=1780045973; 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=K08GxGjbyjk9lS2Rm9N/zaIGPK47NJLVvBwRaxBMJg8=; b=gKApOnu+Ei62fk+k+YCFSfQbA5ePx0oWbQH7ruSFiw6LBrR+6gQVPdVaCYHf4iSLK6 mm4uAW5EC4+DqSxzyFd7zY/ekIthOfK75AbiI6h0jqFKpGDUhiUpcfD1d2Ou3o9axn0X m+Hv9Fjy1F/wtYqwFjVn5Je1pTzvT77SsL/ViWCfZR7/OyQGVJolvPNuMfW2WF68I3WI sNU9aeoMi+N2yGeBG21+Tk9EDsdXB4+HFRNmFjzkYtskawmRph4UrGH0oTFgOaWpT5oJ fJuqlq5jwHpqV761OHpW2K6dU7SCl+TC4jzb4kM3n3nj9BIZefv3ctaf2Td3JSjCSgIq u4PA== X-Forwarded-Encrypted: i=1; AFNElJ95kmPRGdN9tW3PDO2lFyUEtiEzPp54hMKH0t2rOb8HzozQ2pD6KjuuRrVUc5q3ylhpJha+AUyy7EmGfAU=@vger.kernel.org X-Gm-Message-State: AOJu0Yy2GNstzPTfNHgayubz5otzkCr6j68lP2aP/c6ujwouk1iKKMaa Rvq8f5/vU1wsfLIAqrF2/c+CZf8z1lkJHf2Uvvtr8n3/ACeqQDZENGEKYUBDLmbVGUsyga2XsjI MjeFoVgwAWK+uZaMKEM852fQ/vlBCVANSV4p3xzZKuyYh8n8Masz1U4ObK/oBTdztCS8= X-Gm-Gg: Acq92OEfDdhpn3dABYTh7erwyJj7weVyLHFzyhqWh2V6hT6NeWx0CekZNdGfbdobHO5 Tm/0wFmozaPjwO7z+Q9vUgwv9+u6D2vQiM/0AIbHNbt2OQICCiz7GRCpzqQaWrIHfOlqLY0ohCt L4D/FVP09l3HRu42LroxdAK186JoQCup3VFYXi1KfxEXOaZKcy3R3QJJTkh9An/gKX+zxIaeh97 q1f1cvkb6XQHNW0D6G2R/4mn2gdfqE23cUBC5ztSfFepNRNx9i1sZ1rP/6ktbnkxr0OSei416ow 7EwhFEjmhYLTwoLLW/cgawa8d0b0Y+UkfrFaCRZn3oMB6BgBgDaXwjbOCeoZCXvP0w6C/1EvZrp jHowaJ/WO5Els9i4qTfJdJhfbBqysLKjJHzsXQnd/vvCOg5nWERhfbWmDr5zC X-Received: by 2002:a05:622a:251b:b0:50d:60a4:47a7 with SMTP id d75a77b69052e-516d429dc50mr38667961cf.4.1779441173469; Fri, 22 May 2026 02:12:53 -0700 (PDT) X-Received: by 2002:a05:622a:251b:b0:50d:60a4:47a7 with SMTP id d75a77b69052e-516d429dc50mr38667811cf.4.1779441173067; Fri, 22 May 2026 02:12:53 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:2fa:6280:a48f:fb37]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-490428d4cefsm11953415e9.14.2026.05.22.02.12.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 02:12:52 -0700 (PDT) From: Bartosz Golaszewski Date: Fri, 22 May 2026 11:12:36 +0200 Subject: [PATCH 1/2] gpio: shared: fix deadlock on shared proxy's parent removal 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: <20260522-gpio-shared-deadlock-v1-1-76bca088f8c0@oss.qualcomm.com> References: <20260522-gpio-shared-deadlock-v1-0-76bca088f8c0@oss.qualcomm.com> In-Reply-To: <20260522-gpio-shared-deadlock-v1-0-76bca088f8c0@oss.qualcomm.com> To: Linus Walleij , Bartosz Golaszewski Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Bartosz Golaszewski , stable@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1965; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=s/zZIjFeP8/2k81esWo2MCwCvK3NUWqItzbOgSvm+XA=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqEB4L290UDqcHSoJPDRdplmBHWS6z73Y5PvQmx 9FRbwt+SJSJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCahAeCwAKCRAFnS7L/zaE w4J1D/95G3XAKIR96aO2aPxKtvZwZFLE0M3ofS8aEoe0ThqBN5Q0q5M/ZJAr3PICi4pEwSWecEv 220tdJtVX3CLtd13CNsfKiCAJ6+NbEouviq+ZV2T/KMfyek60fgv81NNGQY5eNJRJ5gc+Rw+XQE xdOqUl+hC/EqvrcWHYJsrw0CqSIMrkHmc2zIE1HQ+y3IkLtmxq9szAF+oOBJjbq34XqobkHsLQ4 UedzWjZySmwkmdSh9RzTuiaJm73uwrS94v0BZo2u/Zx7qoBuixcKCVKP02UaSzInmq7knVmQWob roNY/kS8Ce06NjWVQLnBMWxuShNeajh+4dETWmTPimOOhrO+xAHP/q2j9OaN5R5SVIuDjJ8cRCY AqsVJ7HJP3nwQBN6DmKndYEvaBJ+EKMpykBAaeI+CbRpFhRouOwZVTODOzYdjSZZQs5oLdCWTJy b9rXWh5FvT1kMsg7lRSUzuTa3baeyoudN9J1wQRMYIPZBmo+wmbcS5Y8dW7VcsCgbnDwGRBjHOj 4BqJ5LY29/NPqMT1626pm7TP7eRPN+ukffYfgfXhqm2cNAOdMSeuRGjpOChM4XMnRZ2mgERizqz oQAUApsl96d9wjoyozPWOkEEBxD9wK+KIVtYtYfU85I9xciY9lBd6KMBNzFUeoYVx8jwHZbFLwU rcL0OGXMJaw6Piw== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Authority-Analysis: v=2.4 cv=aIXAb79m c=1 sm=1 tr=0 ts=6a101e16 cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=JrNlowrVSM02oZUCpr0A:9 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-GUID: hxpUyKaUc7mMcnA0n6Rn0FMZIH2Zqtw4 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIyMDA5MSBTYWx0ZWRfXym0K2jJOftkT IQrDExlqfCC33fee8pGF1zaodCVuE5g0m9MQfmIKx59CIOuY6B67Gn5ukEebYj5pn+dNyF0zItt f/E/ct0LL7qN2MvuaQe2mnwiNeEEBpwLTxSugvmuf0d34YCQxFxIl8S5l9HLz48QMoQQBtGjHXH wYqhMrdMCDjl1pmu4SOzEG4KwDpg56jxb4hLaTLWKoNR98UTGCEw3bTyRmYRUbYQvyVwHwFalbc KXnN4RRrv3WqqfUX283+Wd3ecJ6qdahyftWjwMfhEf/+7c0l0W5DeAsjfv/lVTWUyV9W1SjL0Oz Vno9Cqv0LA2OOmHlaNMkNqFB5loWkiecl2eKB/aB1yKREBI5SeEo66ikFonrcssnlnAm3uZzLEM pmiKru+bg1NPrBozOnRvdt8Y19bN/aJChqTsLDUEkRCWJdDuHS6AzHAaSfH1k0PSLiZl6onpEsf FTPOPtjzYJVZIocjnAA== X-Proofpoint-ORIG-GUID: hxpUyKaUc7mMcnA0n6Rn0FMZIH2Zqtw4 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-05-22_02,2026-05-18_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 malwarescore=0 lowpriorityscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 spamscore=0 suspectscore=0 bulkscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605220091 Commit 710abda58055 ("gpio: shared: call gpio_chip::of_xlate() if set") used the mutex embedded in struct gpio_shared_entry to protect the offset field which now can be modified after assignment. The critical section however is too wide and introduced a potential deadlock on the removal of the shared GPIO proxy's parent. Make the critical section shorter - only protect the offset when it's being read. While at it: mention the fact that the entry lock is now also used to protect against concurrent access to the offset field in the structure's documentation. Cc: stable@vger.kernel.org Fixes: 710abda58055 ("gpio: shared: call gpio_chip::of_xlate() if set") Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpiolib-shared.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/gpio/gpiolib-shared.c b/drivers/gpio/gpiolib-shared.c index e02d6b93a4ab42b197f0fd64e4854a303f54f140..087b64c06c9f42b698abe5741e6= 3102538beb488 100644 --- a/drivers/gpio/gpiolib-shared.c +++ b/drivers/gpio/gpiolib-shared.c @@ -53,7 +53,7 @@ struct gpio_shared_entry { unsigned int offset; /* Index in the property value array. */ size_t index; - /* Synchronizes the modification of shared_desc. */ + /* Synchronizes the modification of shared_desc and offset. */ struct mutex lock; struct gpio_shared_desc *shared_desc; struct kref ref; @@ -598,12 +598,11 @@ void gpio_device_teardown_shared(struct gpio_device *= gdev) struct gpio_shared_ref *ref; =20 list_for_each_entry(entry, &gpio_shared_list, list) { - guard(mutex)(&entry->lock); - if (!device_match_fwnode(&gdev->dev, entry->fwnode)) continue; =20 - gpiod_free_commit(&gdev->descs[entry->offset]); + scoped_guard(mutex, &entry->lock) + gpiod_free_commit(&gdev->descs[entry->offset]); =20 list_for_each_entry(ref, &entry->refs, list) { guard(mutex)(&ref->lock); --=20 2.47.3 From nobody Sun May 24 18:42:25 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 EC2CB3B8D78 for ; Fri, 22 May 2026 09:12:56 +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=1779441179; cv=none; b=J70nsAX2XTComcmhXfg26IBTXc7iFtPXbuWIfDS3Aj1MHaMLFeHosDS0Nqj66DRpXmJdSEL84IFEvZxXNTkhwhgeOHzlRjCdysAtzj9JUziT1NSepYi6IRRrWsz1Bkyl/FM3SbU3lJmSyEOXpCAXo3YN5jegPiMsJj/KmGQYDjY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779441179; c=relaxed/simple; bh=ri6+7Mshndp9CACThu5Gvsc42fp7xD2GlBt6c+BQ99E=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=CtyMTlpgyEQ1zU1+JEO0hMk54RCt4YijB1wwt7l0F8Qzr0bbpNlRFbSp4JiZFI/Qy0LvXTJmg7yZFzakKKbynXXjV9JZH+w97JsbzWvZNiHyGz05W3Dcis+WydapZoeUQfCgZTsETd7VGHzTM4mmCKjXwphSmAjRlS7dYOgddJo= 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=Ln4/cUDJ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=F2gZfoEH; 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="Ln4/cUDJ"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="F2gZfoEH" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64M4AlHZ2765202 for ; Fri, 22 May 2026 09:12:56 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= HajT9N9mhu8ogn6wOXsYUoUBDXAOvtcNKi4FVtUWAAI=; b=Ln4/cUDJcDDKJPnK 5FTJORWlZAol6r+dc+w9vLf8Vn4mBisR9/7USVNPmlJIprG2Al5kY+KR0Z1Pd16J OHNNvGhNU6HBqgb0z2D5c7OGTnCYojS01W3QD80yvHVMpHeH+Ay5Zrdf5uRYwBYf LUTqwiAO5UlccGg9afFt5RJ97lT64Gaa/j2ThZ+iFLWuYEDSt7pkEEeaKrOpYaSN eqV4/Q/kqM6VzUsAG2yk2SpLf0T+lcwOV3c8jAcEVTYIAATggmOTFTqSqCG/jxxb 3DK6dwovhPmKG4EuEf20jufk3PDbPWXco8MBZJUlp9ji91DK3k1MDEyC/wpGiwBU 8ZuHZw== 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 4ea3u7v7x8-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 22 May 2026 09:12:55 +0000 (GMT) Received: by mail-qt1-f199.google.com with SMTP id d75a77b69052e-516d191f2ccso22434231cf.2 for ; Fri, 22 May 2026 02:12:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1779441175; x=1780045975; 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=HajT9N9mhu8ogn6wOXsYUoUBDXAOvtcNKi4FVtUWAAI=; b=F2gZfoEHLcwHrA64TWOGi/FrBAuILSJtZha6Rm5D0qcUjezIXyH/60dLn5CnrmjD71 epY/+VJ5KEfLISbLcN68bzfWcxtVhCcq+W3pI8iyuAWMuqKY4uMDYAMZHy/fxarpQB+g u2/u58HTs+QmtGsws+SRScAH15yQGHtuR5sH2pAst5RlcbuTqxssQeykYOiHN1aQLyCu Z6jrPZR44iNDAuBvxBfxsUvpx3FhwObGuteTz3qnr4z8BA9eB/joZPFjx976aTsxMFu1 Dg+r2to86KK+/8jtTswwuUFfwhqkq1uMRVM/9ehmEptniGC9B1gNrpbN855ddSGq8YqJ 4vFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779441175; x=1780045975; 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=HajT9N9mhu8ogn6wOXsYUoUBDXAOvtcNKi4FVtUWAAI=; b=mt5MCQWosVohGrjhREP0bPjgu/Hm9JTkTjMz3fTkj+hZBLOnZweFtJ1tv3ioSvZWvp XTYDM5A/hGE9qPhpT5/1KotYljSWkw0QlJuXcK5ImLl61u3oEqgH6eC3Jri2EDer3YP9 DfIen9Eb780Ki08lVtNqbf71lH+q/ECHMCnk0YRmjhMZS1Kd1KMlK3b7HHRZvv5BYefY tkmXXzNS+rmwISEPeKxHwZbmmV2Vls+LPL9+G8x35MlKc1Km89/6d+9tSq//sXM22gSq Y4AT+OzFbRsgsrFC9NlrqRGslI9yEcP/LYTvxWHHMN3eYjw/F5DVCfA+3vHn9KU43o+w dRFA== X-Forwarded-Encrypted: i=1; AFNElJ8TJANrp9/0el9huDWd/AQsrKnQfUOsm6ZA3k4x11qmkH90hMjlzRNYUhO+wjnhU++zA2kNlpIepMUVMKU=@vger.kernel.org X-Gm-Message-State: AOJu0YxC4kXeUIvbqfVGNFEOcjO003h6/WwEXdo4LIJsAgCHsiwNZCxt 4Bs6GsyNGmmLRmd/cSfoXal0o/kkytLvMd78+562KQghlwRzlHK9lvdApwXpkF4YNc5/GbnT8tT s47VPHv4hfKBAoo+MK8yBZ4QeX29H0LEWJE4odTdCTje/IpyHldEFAABjJLiugLx4+Dc= X-Gm-Gg: Acq92OHHuLelBi7yJ05n8QI7b40AAU6fvIX8tJjrkmwE6HXkN50XhZ24KVCa+tMUlYd B9fs/hR+A5Wt7SbW1Y1fbi4GFuXhMZsJoq0m8bR7rJ3F5/2YtXn+SKH8UgxiVl3pD+6b0RDOBZ8 YZ8zU1ezn0Kuu79iNCNXmlu82jOg3BjosGhulbV00vs+sXKACF3AYIx6/yc0ZUxBan+NWqD1/wJ lAYoiP6b4EkzXpAmzl8uJOB2joiztT7E3A567FARaboD4O7RmMdnkuQ5i7Qp6vqOADWTVdrxQcz 3pN+WavXWhbMFH3aAP83FlOaqP8oSjPxvYsW3rqqmWqrzm50s2jCmsWbHeh/vGmYs1YSoGUg57p o9KyYPVQQEG1tdGm76mIXYX5nLObHvHABj73470qP+qDnmfC6+KwonSaQ7AVB X-Received: by 2002:ac8:5fd4:0:b0:50d:b164:5e40 with SMTP id d75a77b69052e-516d43cc4c8mr37574331cf.37.1779441175317; Fri, 22 May 2026 02:12:55 -0700 (PDT) X-Received: by 2002:ac8:5fd4:0:b0:50d:b164:5e40 with SMTP id d75a77b69052e-516d43cc4c8mr37574121cf.37.1779441174890; Fri, 22 May 2026 02:12:54 -0700 (PDT) Received: from brgl-qcom.local ([2a01:cb1d:dc:7e00:2fa:6280:a48f:fb37]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-490428d4cefsm11953415e9.14.2026.05.22.02.12.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 02:12:54 -0700 (PDT) From: Bartosz Golaszewski Date: Fri, 22 May 2026 11:12:37 +0200 Subject: [PATCH 2/2] gpio: shared: fix lockdep false positive by removing unneeded lock 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: <20260522-gpio-shared-deadlock-v1-2-76bca088f8c0@oss.qualcomm.com> References: <20260522-gpio-shared-deadlock-v1-0-76bca088f8c0@oss.qualcomm.com> In-Reply-To: <20260522-gpio-shared-deadlock-v1-0-76bca088f8c0@oss.qualcomm.com> To: Linus Walleij , Bartosz Golaszewski Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, Bartosz Golaszewski , stable@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1511; i=bartosz.golaszewski@oss.qualcomm.com; h=from:subject:message-id; bh=ri6+7Mshndp9CACThu5Gvsc42fp7xD2GlBt6c+BQ99E=; b=owEBbQKS/ZANAwAKAQWdLsv/NoTDAcsmYgBqEB4MQ6AmKBk6QFHXbXtDeQb5jc8HuNdTWUKy0 iW1+s72tHGJAjMEAAEKAB0WIQSR5RMt5bVGHXuiZfwFnS7L/zaEwwUCahAeDAAKCRAFnS7L/zaE ww/mEAC6K8uyY1ppER78tPcR+azjIeIs/QCFIRNegYsQFOGExdC066I9g/3VoGRpe9z5wgSz8R5 Qi0Dj92NE2MTQyRquyFBVlx+q1A5GaMiEnbX7bxU/4+0n0FOGWFwvsoH3I4JH4B5ybePQAH/kbS lINxRcHqvnBDSx4UE1VyJlUYmhIk8HkrycOvi4jbOXKgLsp5NaMeiNDaoT3tTp86IXUFJylqk/N 14dqX0JME9l+Ia/ORmM8AEzyDlVCqkCHLtmwvuL4lMfS3bvVJQ4+SQEqzPifjzfZCYS2z73395Y wVB7QojY9wtQsaJ/EZcs+bYikR7u09Ev0Bk2XwaWZfSPUpwmjWPA1hVQEyKGiKnfEtJ8g8B2NeF t89yMRwdPRnpT2Gu3T8MhfIrDrCQ1kapfYozQTIiDMJPWXg7u8v44VYkUYVLN/nNzIkGvLPl3+R 34LVlyrSdm0rK0aSRdt09/2C3TyaKcBqLgDfFxAJVuNvi9Lxq8xqNSFg1KhBTJJxXNM2tZy+WDi EbODq1osOk1nF4ne9gjVLMlRJ+nSVTHeFaIorzyYpcdKsUjxtEHZgGz03/NoDsuYkLgI+Q68u8p of++X6VKvRx0eXnbU4cAfAXGcpcxyTPPXfm493WKU+5S7+klnJd9vYlq1xnrKxHeKwbLfhj8XX1 KLKS+QRbChK7h4g== X-Developer-Key: i=bartosz.golaszewski@oss.qualcomm.com; a=openpgp; fpr=169DEB6C0BC3C46013D2C79F11A72EA01471D772 X-Authority-Analysis: v=2.4 cv=aIXAb79m c=1 sm=1 tr=0 ts=6a101e17 cx=c_pps a=WeENfcodrlLV9YRTxbY/uA==:117 a=xqWC_Br6kY4A:10 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=lLOHQsxOTyeWscW5USwA:9 a=QEXdDO2ut3YA:10 a=kacYvNCVWA4VmyqE58fU:22 X-Proofpoint-GUID: etZWF9lI2KqvL6DbbF1sFHnixqPSyauL X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIyMDA5MSBTYWx0ZWRfXx8/qa2SC6L16 7RW77D0Rma+GVgsCbB9nPO74I4Urm5PMyu1q5OuUhiXFqTTO/OHOGmAXKyT1iRWiuCjZl40K1fJ neHVmpXJ9g6VvEZF0Wb/yK3L1TdiDP7oYD+G3tOFBcTvjH9v6cQYBggZjnn4ee8wpKa46VJtUK0 dW7+Q4Uef0DL09Fhb8YAMVbNupJZYMGbLj63u9U204Z2r2VlQcq27LKnaR2hr1sV9sFeH4nyqv2 Uj2oAzvuP7pSuHYCD0+acbkmOYR0fxZds7GgeELUtXrZPSUjtUYV9wZNCkrIy7Vv7gTkY0Y6Qs3 LuAUdRL5DTRs33SgHkV82eJ5wymdizZX3bthv7W4KYZ+yrbqr5WHiVuW6DWV/eXUckpceIsrl/L memE8BZfuT+iAfF1nG/QL2b18vC95oNjQAec/G/UDqq51doI/9nfXHVXemiVranqRy+kLJSbXaN fD4YGrW1S2196vSwyvQ== X-Proofpoint-ORIG-GUID: etZWF9lI2KqvL6DbbF1sFHnixqPSyauL 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-05-22_02,2026-05-18_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 malwarescore=0 lowpriorityscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 spamscore=0 suspectscore=0 bulkscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605220091 By the time gpio_device_teardown_shared() is called, the parent device is gone from the global list of GPIO devices and all outstanding SRCU read-side critical sections have completed. That means that no concurrent gpio_find_and_request() can call gpio_shared_add_proxy_lookup() for this device at this time. There's also no risk of the parent device being re-bound to the driver before the unbinding completes (including the child devices). Lockdep produces a false-positive report about a possible circular dependency as it doesn't know the ordering guarantee. Not taking the ref->lock in gpio_device_teardown_shared() silences it and is safe to do. Cc: stable@vger.kernel.org Fixes: ea513dd3c066 ("gpio: shared: make locking more fine-grained") Signed-off-by: Bartosz Golaszewski --- drivers/gpio/gpiolib-shared.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/gpio/gpiolib-shared.c b/drivers/gpio/gpiolib-shared.c index 087b64c06c9f42b698abe5741e63102538beb488..de72776fb154f1f2ec97a3e186d= c96366f3cee8b 100644 --- a/drivers/gpio/gpiolib-shared.c +++ b/drivers/gpio/gpiolib-shared.c @@ -605,8 +605,6 @@ void gpio_device_teardown_shared(struct gpio_device *gd= ev) gpiod_free_commit(&gdev->descs[entry->offset]); =20 list_for_each_entry(ref, &entry->refs, list) { - guard(mutex)(&ref->lock); - if (ref->lookup) { gpiod_remove_lookup_table(ref->lookup); kfree(ref->lookup->table[0].key); --=20 2.47.3