From nobody Mon Sep 28 17:49:50 2026 Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) (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 E79592FD69D; Wed, 19 Aug 2026 19:47:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=193.142.43.55 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787168828; cv=none; b=iRQMqQI51WWSttqgjzUUKnAXSLAMuthMHm/N/wUAx4+K9W3II7cbhlSdg7rIVfaF7St7SO2zIPYOg+kBeS3wF9qi/PDfyxn17w+SqToSfVnFIsPbmTgwN16VGEEK6tRL8mWDiE1zIwfHDTF/MITfMQ71tSVUFFIq9oXtM6XaigM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787168828; c=relaxed/simple; bh=wivyrrbS2bpIhjqoQkgxfuLa/aNSuidLjrD3fdh2URA=; h=Date:From:To:Subject:Cc:In-Reply-To:References:MIME-Version: Message-ID:Content-Type; b=gfczQAtVyv3Cfmd/txAi1PYwV9oEBbzWgCSJyivVMslc5Xo1mKcXIxbhR2U4emCodNulfswzUe2A9BgrCYv88r30Yk+6sN3k368ThuvpzKQACNOQok42EpNw1bbBOu41NLpDIx1sVhWJbG3BOG3v4cLoxrq2Xe0IypPLwaNxGpc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de; spf=pass smtp.mailfrom=linutronix.de; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=VbbZDYQl; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=NEGoXcYm; arc=none smtp.client-ip=193.142.43.55 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linutronix.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linutronix.de Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="VbbZDYQl"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="NEGoXcYm" Date: Wed, 19 Aug 2026 19:47:03 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1787168825; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=SzRyHX+GdxSZJn6muUPltV0bWtWh21SQ2lc+IcS+l5Y=; b=VbbZDYQlX+m58t9b04GjzL3iy2jOpT8HrExBxzLNiiKAQddD8O6ZFPyjjvaBs/QvbfdvRB lHKHY99KNfq1YYZFV4pNxrDMN9V+0ZQW6lsXv9g9/TKoRgFYgrlbd85pwUDUQtOS86cIbF 0QgX1OX7AMQwl4jS38w3qrGBR1ZIbtMNRsw0x/gXTQctiL4e8af4+TvV1MY45qqdpCH4wY k7i7rLjbwHtOTqddwAIEKXK+M5sctWULsGpkvKUDvx3U7h6/+tj84ydcKQbBPSNOrefd7X Iu0PeBDAuyHzFr3FBhRr3XkauaU7904bzrE+KwDlRqPCm/4jipO/Mgocx8Irxg== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1787168825; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=SzRyHX+GdxSZJn6muUPltV0bWtWh21SQ2lc+IcS+l5Y=; b=NEGoXcYmsFDtKasSUjV6qhJuW4HJJJ40u+ljdWFPKc5kVIGEIfXpzjz/ZEgjB2hyUjkbG/ Rhx4qOyw41lNQfDQ== From: "tip-bot2 for Ryan Chen" Sender: tip-bot2@linutronix.de Reply-to: linux-kernel@vger.kernel.org To: linux-tip-commits@vger.kernel.org Subject: [tip: irq/urgent] irqchip/ast2700-intc: Avoid allocating in the irq_domain activate() callback Cc: Andrew Jeffery , Ryan Chen , Thomas Gleixner , x86@kernel.org, linux-kernel@vger.kernel.org, maz@kernel.org In-Reply-To: <20260819-fix-ast2700-intc-atomic-alloc-v1-1-d92a02e2a239@aspeedtech.com> References: <20260819-fix-ast2700-intc-atomic-alloc-v1-1-d92a02e2a239@aspeedtech.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-ID: <178716882312.1542179.7487556448373366552.tip-bot2@tip-bot2> Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails Precedence: bulk Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable The following commit has been merged into the irq/urgent branch of tip: Commit-ID: b76eee9c2157223aa4aac42ceebb563288e078aa Gitweb: https://git.kernel.org/tip/b76eee9c2157223aa4aac42ceebb56328= 8e078aa Author: Ryan Chen AuthorDate: Wed, 19 Aug 2026 09:09:19 +08:00 Committer: Thomas Gleixner CommitterDate: Wed, 19 Aug 2026 21:45:30 +02:00 irqchip/ast2700-intc: Avoid allocating in the irq_domain activate() callback The interrupt core calls the irq_domain_activate() callback from __setup_irq() with desc->lock held and interrupts disabled. Both aspeed_intc1_irq_domain_activate() and aspeed_intc0_resolve_route() test a compatible string with fwnode_device_is_compatible(). fwnode_device_is_compatible() invokes fwnode_property_match_string(), which allocates with GFP_KERNEL. That's obviously not possible with interrupts disabled and a raw spinlock held. Both call sites are only ever handed OF nodes, so use of_device_is_compatible() instead: it walks the property in place and does not allocate. Fixes: 07825e41519a ("irqchip/ast2700-intc: Add AST2700-A2 support") Reported-by: Andrew Jeffery Signed-off-by: Ryan Chen Signed-off-by: Thomas Gleixner Tested-by: Andrew Jeffery Link: https://patch.msgid.link/20260819-fix-ast2700-intc-atomic-alloc-v1-1-= d92a02e2a239@aspeedtech.com --- drivers/irqchip/irq-ast2700-intc0.c | 2 +- drivers/irqchip/irq-ast2700-intc1.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/irqchip/irq-ast2700-intc0.c b/drivers/irqchip/irq-ast2= 700-intc0.c index 14b8b88..c85b98a 100644 --- a/drivers/irqchip/irq-ast2700-intc0.c +++ b/drivers/irqchip/irq-ast2700-intc0.c @@ -312,7 +312,7 @@ int aspeed_intc0_resolve_route(const struct irq_domain = *c0domain, size_t nc1outs return -ENOENT; =20 if (!IS_ENABLED(CONFIG_ASPEED_AST2700_INTC_TEST) && - !fwnode_device_is_compatible(c0domain->fwnode, "aspeed,ast2700-intc0"= )) + !of_device_is_compatible(to_of_node(c0domain->fwnode), "aspeed,ast270= 0-intc0")) return -ENODEV; =20 intc0 =3D c0domain->host_data; diff --git a/drivers/irqchip/irq-ast2700-intc1.c b/drivers/irqchip/irq-ast2= 700-intc1.c index 59e8f0d..df6acba 100644 --- a/drivers/irqchip/irq-ast2700-intc1.c +++ b/drivers/irqchip/irq-ast2700-intc1.c @@ -157,7 +157,8 @@ static int aspeed_intc1_irq_domain_activate(struct irq_= domain *domain, intc1->ranges.nranges, intc1->ranges.ranges, &resolved); if (rc < 0) { - if (!fwnode_device_is_compatible(intc1->upstream->fwnode, "riscv,aplic")= ) { + if (!of_device_is_compatible(to_of_node(intc1->upstream->fwnode), + "riscv,aplic")) { dev_warn(intc1->dev, "Failed to resolve interrupt route for hwirq %lu in domain %s\n", data->hwirq, domain->name);