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 F036EC61DA4 for ; Thu, 9 Feb 2023 13:31:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=bt70xlfYz8+Fj7wXYyNAgXlZq/UWToYr7yh3B+YZigU=; b=zQKm1HnQui9UaC 92q0lvNUjQF/Vrvrqey4Ghq5FlK+7gfLT32PXZU6EWYlV/mRayRTlR7wzAeEjC4rVtxvAdyAS6ud4 i6h/Mz3Npe7hibxZ+lJ2HTANMGmEqIpD0Z13vj5hvqZ1HMNfKeVukGRP3JuQ6H615NvYpZMamTe2t kzS59672DMb0adibFv2KOb05XVEBwT8mWrJpeXjB5TABiQy6PXUeYunDTM8kusu2TMeaFSqmIm/7F M3qfnsH2lDiKbLyvTZx02Wwbz7XiWo7xxV+2mrhpZ5bRLfIqjtS9yOAmuj9UUx7ILD2Oack2g6xJw TqIMn79MoYhGbxWd0AcA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pQ70q-001gcb-9Y; Thu, 09 Feb 2023 13:30:56 +0000 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pQ70e-001gOl-UE for linux-arm-kernel@lists.infradead.org; Thu, 09 Feb 2023 13:30:47 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id DD77F61A81; Thu, 9 Feb 2023 13:30:43 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B2546C4339C; Thu, 9 Feb 2023 13:30:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1675949442; bh=JfSDAiRhoTMhnjXtvFRPr7fYgqO70+KfU+dj+kphkG8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pdMs14cSNmFrPzA9kK8m+8Y4VUS/4pCWc/BTqJSikcy0h8q4w3abkl8S2QM4rVA6c yCXrrNF1MkYxPqpkXWjYt7bYmCEyv9qEgaK+EBkmWk/xRcn8/N5K8/lGopIIuOHkQZ Jhor4MahieHrw9hgJ287K9145a+lG49ueI7c7zkaPHFYT4W3b30pJG/HEpuJbyunCZ DlbiFr5Djvk/xRNr8E6hN+kijYgXRy1Xe2QgF08mEfHmjcD+eisbqjKvPbSvhB+r7v mYq9Cvubouid79vY5o0EW0bwtOk5maoDgHxzcE0A/M/oDcOfMiNEa5239cuxUyumX3 hcihvWk8wphfw== Received: from johan by xi.lan with local (Exim 4.94.2) (envelope-from ) id 1pQ71G-0001Kj-7k; Thu, 09 Feb 2023 14:31:22 +0100 From: Johan Hovold To: Marc Zyngier , Thomas Gleixner Cc: x86@kernel.org, platform-driver-x86@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mips@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold , stable@vger.kernel.org, Hsin-Yi Wang , Mark-PK Tsai Subject: [PATCH v5 02/19] irqdomain: Fix disassociation race Date: Thu, 9 Feb 2023 14:23:06 +0100 Message-Id: <20230209132323.4599-3-johan+linaro@kernel.org> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230209132323.4599-1-johan+linaro@kernel.org> References: <20230209132323.4599-1-johan+linaro@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230209_053045_049418_673E7888 X-CRM114-Status: GOOD ( 13.10 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org The global irq_domain_mutex is held when mapping interrupts from non-hierarchical domains but currently not when disposing them. This specifically means that updates of the domain mapcount is racy (currently only used for statistics in debugfs). Make sure to hold the global irq_domain_mutex also when disposing mappings from non-hierarchical domains. Fixes: 9dc6be3d4193 ("genirq/irqdomain: Add map counter") Cc: stable@vger.kernel.org # 4.13 Tested-by: Hsin-Yi Wang Tested-by: Mark-PK Tsai Signed-off-by: Johan Hovold --- kernel/irq/irqdomain.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/kernel/irq/irqdomain.c b/kernel/irq/irqdomain.c index 561689a3f050..981cd636275e 100644 --- a/kernel/irq/irqdomain.c +++ b/kernel/irq/irqdomain.c @@ -538,6 +538,9 @@ static void irq_domain_disassociate(struct irq_domain *domain, unsigned int irq) return; hwirq = irq_data->hwirq; + + mutex_lock(&irq_domain_mutex); + irq_set_status_flags(irq, IRQ_NOREQUEST); /* remove chip and handler */ @@ -557,6 +560,8 @@ static void irq_domain_disassociate(struct irq_domain *domain, unsigned int irq) /* Clear reverse map for this hwirq */ irq_domain_clear_mapping(domain, hwirq); + + mutex_unlock(&irq_domain_mutex); } static int irq_domain_associate_locked(struct irq_domain *domain, unsigned int virq, -- 2.39.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel