From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 66C1FE98DEF for ; Mon, 23 Feb 2026 07:28:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References :Message-Id:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=EievHyEEfc+ZB9sgh0Kt3vK9ZMOHKaJHuHGtcF08CgI=; b=RckgE1RzC69Y5pXD8WvMa3HsIn QhL+RJwSjpRlgvALgxgTo8H4obEu2HRllflicSP71zSTOOSC7hWNyjRatvrYLGvYU4slUYmyW4YPs XJOYeNlr44ils02WkB4Vuf7nYCevHwToIUACfr7bWaDpdYK6Tdjo3+b56Fjm6hwMX7GDHxDRD6yp8 vjQ0nw+VjEXVKuaM43SySBo+Yh9D1ZPBp01lH6tqxd+rD/R2ojoaUr/jQeWkNb6Q7ajDUhmqFiWs7 SvlstxbxwxCYfJAr5RayBa7AMd7JwY1ItOUPBjRWJo15kjszNThH/PLOFKs43LN0hmSw+m586fY2y qmFc2ZAA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vuQMQ-0000000HMv1-1M0X; Mon, 23 Feb 2026 07:28:06 +0000 Received: from mx0b-0031df01.pphosted.com ([205.220.180.131]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1vuQMM-0000000HMnS-0Vo0 for linux-mediatek@lists.infradead.org; Mon, 23 Feb 2026 07:28:03 +0000 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 61MIF4FM2508185 for ; Mon, 23 Feb 2026 07:28:01 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= EievHyEEfc+ZB9sgh0Kt3vK9ZMOHKaJHuHGtcF08CgI=; b=OR0kQOaV8mPN3yp4 O4ooXQ7AMGaHD/vk0t/uniHvc39ZF0bY6yiA6wRIgVnd2zwJmllKwH3nmURftTsR uRwNUWNzXJfjcBuSn89FBRiGhezEOAu8mK/OqUxVcj2jUvYHEK8Pe1WR8DZgAVgU v8fkhvAiCSOAsv07CTnGUpakv65K27hZ7OnJOGXCEYopS/QA3HFpnFTX3AK2dheg lEMRXRjPu3Q7GNK0ijrV9Nx6jFhWIWseomXEojpOGB/a6tiuk8J6YLbmzSw6wfLU gkL6XIel1ooBiXNQVu0rStqwPjcUZuBaEceEUqO1/gGjxd/hJlhc84MkaknPP7+K CiTQyA== 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 4cf5vj3rg2-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 23 Feb 2026 07:28:01 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-8c71500f274so455223985a.1 for ; Sun, 22 Feb 2026 23:28:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1771831680; x=1772436480; darn=lists.infradead.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=EievHyEEfc+ZB9sgh0Kt3vK9ZMOHKaJHuHGtcF08CgI=; b=UwY+q8N7hnlp+4TwiCQqmS0hxE9QDsKK2Xfa5FD5bD6AllLJAB4WJxppkFWrvfR6bZ SDnF321HRsdbigaaNVLi/xYckZ+5Qyv46pxtiC8lbfPJ0vEErlCdbZSLuci2hBIo3U9Q Fe7M94nFjRkSQ7ctEVvEuFY3xPfHrspywrUO1aFlx2mvLE7gKlzoWk5DVJtHQWahCU/u oY9DUBdq6e3WunzOGuPH2OCwcIYpSGZ6qMIuAtPSCWX225zbHMTO5k0flekNIFqzvwru tGK60tpE8J4gPCYDgZ3CPMVO3ankddD/HaJwq3JhcQ53+oYYuMwj6dhbf+N3kTBL4P3W PHgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771831680; x=1772436480; 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=EievHyEEfc+ZB9sgh0Kt3vK9ZMOHKaJHuHGtcF08CgI=; b=hTaDUwea0CmBbhZZzGaNL2pg9ptmfzOJcaL/pct8bVDjhIhwem2lUKFBIWNOxQ/Bjn TQD0u/yIejXY8O2T+9o3mNaeqWXaJjdcOPErYQ3L2MKKFjVYlFjnYN1TatUmh4TSb7Q7 ZVFCFqvUyhP8T9NKEcBVUML9RHNXfgSYfE3B6r/ro2cEQse8X7t8Y7QG78mvJQvO3X2a x7YSJF7gOE8AEpx8qeAqh1uPIzkqbOLdyvV0995xNayy7y40h8THb44UE8nCQUw9ciRE zFX335D9nCqe83/JlxLVW+Vk3PTKO7qE5XDC2MhrEXct7sA4HxM7v5mM4tKsDE8YhKxv YwYQ== X-Forwarded-Encrypted: i=1; AJvYcCX8BcRzaKu/m91GwVZ1+aWCB6W3Fs52zjr+gCmtxqd/tUbIl8C4EPYYZ7axuK7K2rTbcmrtBtCoCYg0/LE0nA==@lists.infradead.org X-Gm-Message-State: AOJu0YyBGD/qlHf7gyVfKUaeurXYPT1VodpJUsR8qS4nrulyaS+rw1LZ yJm6rTxKbN1WOd60p03gyua7Q46pRxztXeBlC0zYjj5r7PfumkmhnyowQ/usHkt+6FY/2iIFues L+E5VgQH69uJ2bB2NmeWG2y0bc+fUA6FwLjc7NSlV5gGx0UKxlLj5vx/IpqKZO/N/QiPLtUec1c g= X-Gm-Gg: AZuq6aJTZK9W07Eqedgb20eJF00fENp8c5F2MsyYLwgoTgelE3aGx2YNOt/Ni4/UInJ wYLN+TOg1Fl8nG/jDTnAvU0CvjwycGZ6wbNvHonzW9tzHJ4E9p2Y5mn0ATpXwT7SW93fD7tYm3X jdkiyJlATMlynvW0RC9pumkgPcq3j3C9pRmrtGsvKgurxwjxSWwvV3kpefh8Rn9YPATrq1AByaz H4rk8T9kvJQSpju6XF1uhZiyQKSPUVGCK32Sp87rTzAxbTH8y9GmNADiy6CFBcoJkLT/1ZDkU6x sv6EPdMSpjrY+3VDAlOV95p4ubIg6n5pCj9RwC2r73OcILHjt8au9MPIBl9BwVvSVnpXpv73QJG E1rWGEV85cs8m/IFZ9eI9A//AVuNrNd8nBoCeutBhgeaASg== X-Received: by 2002:a05:620a:4085:b0:8c6:ac29:70ff with SMTP id af79cd13be357-8cb8ca65e96mr953128985a.52.1771831680576; Sun, 22 Feb 2026 23:28:00 -0800 (PST) X-Received: by 2002:a05:620a:4085:b0:8c6:ac29:70ff with SMTP id af79cd13be357-8cb8ca65e96mr953126785a.52.1771831680071; Sun, 22 Feb 2026 23:28:00 -0800 (PST) Received: from [127.0.1.1] ([178.197.223.140]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43970bf9ff5sm18550286f8f.4.2026.02.22.23.27.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 22 Feb 2026 23:27:59 -0800 (PST) From: Krzysztof Kozlowski Date: Mon, 23 Feb 2026 08:27:36 +0100 Subject: [PATCH 8/9] mfd: ezx-pcap: Avoid rescheduling after destroying workqueue MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260223-workqueue-devm-v1-8-10b3a6087586@oss.qualcomm.com> References: <20260223-workqueue-devm-v1-0-10b3a6087586@oss.qualcomm.com> In-Reply-To: <20260223-workqueue-devm-v1-0-10b3a6087586@oss.qualcomm.com> To: Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Jonathan Corbet , Shuah Khan , Tejun Heo , Lai Jiangshan , Tobias Schrammm , Sebastian Reichel , Andy Shevchenko , Dan Carpenter , Krzysztof Kozlowski , Lee Jones , Dzmitry Sankouski , Matthias Brugger , AngeloGioacchino Del Regno , Benson Leung , Tzung-Bi Shih Cc: driver-core@lists.linux.dev, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, Sebastian Reichel , linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, chrome-platform@lists.linux.dev, Krzysztof Kozlowski X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2013; i=krzysztof.kozlowski@oss.qualcomm.com; h=from:subject:message-id; bh=NdggOG5IZsY7LXa79Nq7AL/G3ae8FCgqBbMs7M+Uv2w=; b=owEBbQKS/ZANAwAKAcE3ZuaGi4PXAcsmYgBpnAFtqPjY1qKyahTuUblrNnMhZfW/1VNWITp6i +IhXm5LfTeJAjMEAAEKAB0WIQTd0mIoPREbIztuuKjBN2bmhouD1wUCaZwBbQAKCRDBN2bmhouD 15FIEACAA9XT78ap89BEm6isO1fI6/YX3bggCblWINXzvuzlJGfwB3B0VnAFlTD6+y1zI1shA7J Eiiyd/S8i/yKNwjPmqMBhZrjNVdSEs8HdfTN0rvmHhgNqSi8Yyoq1gFJ3HtKmnFyA0qHpsvUpq3 +VQQwHfPysAby0QYLjXKUwyRzOo41GW/vhM/sItWsdQRCPnEzG+O6ogAT4WiWGcX+Wmwk62STPC ief7WiwnKfWJXzieUqsRZVGqZd7mXQsNUrfcIBv0DINdyn0j8odj6D6xo4jgf49thmMDr5CAefC yG5p8y1WdKdh+hD1ddFb65TmYSFU9HO2AIzdLNTly7bNQ/GcQlQ97HomBZKTClUGuzTJhLmuv/2 mwB/7U4KZr9+/VWT+spMEVHe2wGqrOzEKaxbaEIvN8DqgrgFvl1x1qp5/O6Z8UODnFLukCFY707 gdcJRcK1CKnClIWcJ6w72wS1ItFXBTVBgstbzQ33MCr3IzqNDgTDQRi8lyJXourEeL8wOjXajGb qd6HYIqo1vKR5qtCH9fYdNXPAwCavd26qPmcpDaOH3omR1dHCo60MJi+A0c51ZTYkHNd02g77Zd 835Pl1A8pEm9U/0tyUb/tGHKgz/oaVXIm7/AZuCOdlDJdniUZ8/PBzIMWpPeXMeLh7flqzKBr0S 3fbO7I7VZezSo0A== X-Developer-Key: i=krzysztof.kozlowski@oss.qualcomm.com; a=openpgp; fpr=9BD07E0E0C51F8D59677B7541B93437D3B41629B X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjIzMDA2NCBTYWx0ZWRfX84HwOATg2Pzb EvoLgKdj3PYzfEoJK7U0kYyBInGS4fVYHLS3vzdHNV3sH9Aa0gDJ6CiV3JGns/4luGp9Hgp3jY9 m4Pg+aSb1Qd2+OUquUkD8La/DHVIocXJ75n4Sj2enJl5QmhJVN7NdcweXK1OZux7DxuYBKbWMAc yLPTQFaVnm+iJKBdv8W8//z8QRH+FpfrMUKbJoNSzklmo9zJUegqq5965bZfwvAldYWnA1mS9Ib B4T/VqpQ22aO3ENppeVUZCOYesCZOxQ8kb6Fam3plbot52LIlcsKhfMA5JuXUyBLF4RypOc/0ls 3w2fUhMKLEPtnCj01AQPJyrKoOWB/ldlf2If6VlAfbnayRWkHs1cmz2zkAIdri3zP2Zy0MGQWj3 hI+QHLWC7N3QZQqFNoUShOX11BHQq0p/uD3TbYF+zDLJi91VHfZuU6PfyABWelri3hffBRQbEaJ C7Vn61oNugA1uwYI3OQ== X-Authority-Analysis: v=2.4 cv=T5KBjvKQ c=1 sm=1 tr=0 ts=699c0181 cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=6nO30s3o7FuWeffXwhKHTA==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=Iaj16dx_8Jk8doGcJVoA:9 a=QEXdDO2ut3YA:10 a=NFOGd7dJGGMPyQGDc5-O:22 X-Proofpoint-GUID: ywr20S1vmw74KFSJFVwUdxCriZXO2zAs X-Proofpoint-ORIG-GUID: ywr20S1vmw74KFSJFVwUdxCriZXO2zAs 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_01,2026-02-20_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 spamscore=0 malwarescore=0 priorityscore=1501 clxscore=1015 phishscore=0 lowpriorityscore=0 adultscore=0 impostorscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2602230064 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260222_232802_340983_A39884CE X-CRM114-Status: GOOD ( 16.10 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org Driver allocates workqueue and then registers additional interrupt handler with devm interface. This means that device removal will not use a reversed order, but first destroy workqueue and then, via devm release handlers, free the interrupt. The interrupt handler registered with devm does not directly use/schedule work items on the workqueue and the remove() function correctly removes other IRQs handlers, however the code mixing devm and non-devm interfaces is difficult to analyze and read. Make the code flow much more obvious by using devm interface for allocating the workqueue, so it will be freed with the rest of devm resources. Signed-off-by: Krzysztof Kozlowski --- Depends on devm_create_singlethread_workqueue() from earlier patches. --- drivers/mfd/ezx-pcap.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/mfd/ezx-pcap.c b/drivers/mfd/ezx-pcap.c index b929559d84ae..a06fc3447104 100644 --- a/drivers/mfd/ezx-pcap.c +++ b/drivers/mfd/ezx-pcap.c @@ -375,8 +375,6 @@ static void ezx_pcap_remove(struct spi_device *spi) /* cleanup irqchip */ for (i = pcap->irq_base; i < (pcap->irq_base + PCAP_NIRQS); i++) irq_set_chip_and_handler(i, NULL, NULL); - - destroy_workqueue(pcap->workqueue); } static int ezx_pcap_probe(struct spi_device *spi) @@ -411,7 +409,7 @@ static int ezx_pcap_probe(struct spi_device *spi) /* setup irq */ pcap->irq_base = pdata->irq_base; - pcap->workqueue = create_singlethread_workqueue("pcapd"); + pcap->workqueue = devm_create_singlethread_workqueue(&spi->dev, "pcapd"); if (!pcap->workqueue) return -ENOMEM; @@ -463,9 +461,7 @@ static int ezx_pcap_probe(struct spi_device *spi) free_irqchip: for (i = pcap->irq_base; i < (pcap->irq_base + PCAP_NIRQS); i++) irq_set_chip_and_handler(i, NULL, NULL); -/* destroy_workqueue: */ - destroy_workqueue(pcap->workqueue); -ret: + return ret; } -- 2.51.0