From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f48.google.com (mail-pj1-f48.google.com [209.85.216.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DAFAB3FCB3A for ; Wed, 10 Jun 2026 11:14:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.48 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781090078; cv=none; b=V8j3gBJE+KE5uDF2NHuIQhvbA57G693xJXMW5S5JqNT8GQ/Gn6DxpCYohs74EpMq5yUnivwuzTAds9WLAyA51p54gvKf280e3dJr8CkHfKxBhSZxtyFIyxJglUCgvhJrj8F+GMwlb9oBkCU75h586pBGBBH8dWu9reJNhBbSb7k= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781090078; c=relaxed/simple; bh=edNjPZvNGgV/TAba/LoI7Zr5eA2ft8y38rbQZsxUv84=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=dPmhg8Ma2PPiv1sXOLg2iDkHTuCIul9LaB537PkLQoJJ/NV0CpTgVhOrWV5YpYdsn6GYT5CLxzWR+4SfJBYa+FQ+Z6bKs9Uze3pw8dS70fg7QKGdXJkwSIr1x0/g4SqPkKtW2HHmnIA3ShPjLscKnLNKEUgpa1UEIcYzFPPTSs4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=dzwz+Tqj; arc=none smtp.client-ip=209.85.216.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="dzwz+Tqj" Received: by mail-pj1-f48.google.com with SMTP id 98e67ed59e1d1-36ba6f6e7b2so592079a91.0 for ; Wed, 10 Jun 2026 04:14:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781090072; x=1781694872; darn=vger.kernel.org; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:from:to:cc:subject:date:message-id:reply-to; bh=+KFuTkGz4FgCWOjB+12k8btYg7YkEbBLBXFIfu+vFA8=; b=dzwz+Tqj3DnJihe1D9i2Io4XElCE9QxsGYaMI7OHYHVqg527daTv0WIJloHRPlC7xm SgrFnpFuHcvzooPU1D6rEhC5kvuqMpZqu/bx5FHS+ZrN//Bnz2B3i7rqv46Rx34fALN1 lVGL/4dCqOwmj2LWC5PTZu6vW+IEWxW5k/0EbZgJ1sBtbXxIn9Xq8YGu2/p1lv7vqO1/ JKAb6K4RrjYpO7grlMqskHJsv0TE7xIkId+oArinwOvcWlY8G8sXHImWdY8UKkuR4ZBg Za0iQsA/uGtN9i+Y6fL9iFVUq1hIZ9Okp+L7j+T2lFizHFvGjmGr+fE3vxd91/ac4xnx Bi7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781090072; x=1781694872; h=cc:to: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=+KFuTkGz4FgCWOjB+12k8btYg7YkEbBLBXFIfu+vFA8=; b=rX0CuYSDgT/k5LI4jYx5H4sD47q8uyIK+Dmgi5718NaxVV9udkYYrN42FTDTj+74l0 /Yo+KUXYw0i3zvtxrYgS0X/fjsVsYe2leqIQ5jLUT39JZKMtf8gDk7vd1LWVG/LJDsHp xO/B+tNzZlKmiANH6O603ZLCmaOAXOWacgmfnEiU2kf1YF+2IGZOORkKxN+ByBk/6nMl 1OvnyspLkRiwTJFc9PwH7VQiZtftMnUZ1P+9VeZsnFMQaTC15TyAHSDt3EbmyZH6A488 OL2ntEIAswz8MHJqX7sCbF6op3yYv6HzoLZqc65TMm3GAFuRadyzoCFEbg1YV66sCV6p 225A== X-Gm-Message-State: AOJu0Yw30zawPkzZlNiXEx7bI7tNV6eSZ8tssgYtAPPaYcNLBiCtfMM3 yWcsoIbk1zzohtkTUDD08/Yi/bMy/j+A6D9vK1UAZLR89gnIrIFo4Wmp X-Gm-Gg: Acq92OHVP7JBHMAih20N7T6UGF1Leq1ru7rX7YQX4K0iPYhRjZYPpiWtAmhNBGjroCO 0Mz3FywdS5Q8DamI5IjC6c5YbdMjZm413okM7bA7rmEtsuJzobrXiIcwsPDNvPhrrdDi5IN+qBT /q5EFyy5MmRfBvrnpm5BNerEYr3RitJ+Y5Hex6uGww0EIWNQ1b1TVQygPrKoaKQTOBpGkG/zww5 74fmEwO7cKToVsUlWgdw1/oQ8M16eLOFiuAhjg35lWFh2VOGF9XipLQ7ZecXY1IolNv5jTqbMjl V4IfQfzKTLYkXy9slChDs6pRkSE11/FrdEmhBm0dzI+QTNvn44YvmO9FuDKYzfGj8Bki08Jzaco MkkAC2r64tCbmn49a8Wz/AIHsTv0vqjYEieU01iCDfxZg3v6UqQ95wJUMLBisalqToS1E0bM+WK WiOAbRPn97IbJSHov5RX1DNTlDcHRvezDDeMGrmbKMSWA= X-Received: by 2002:a17:90b:584b:b0:36b:9798:4f6c with SMTP id 98e67ed59e1d1-375223408eamr3576537a91.7.1781090071961; Wed, 10 Jun 2026 04:14:31 -0700 (PDT) Received: from [192.168.1.3] ([2401:4900:881c:31ad:7fa5:d959:91e7:2240]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36f711e7b53sm22737162a91.14.2026.06.10.04.14.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 10 Jun 2026 04:14:31 -0700 (PDT) From: Bhargav Joshi Date: Wed, 10 Jun 2026 16:44:15 +0530 Subject: [PATCH v2] irqchip: crossbar: Fix data race in allocate_gic_irq 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: 7bit Message-Id: <20260610-irq-spinlock-fix-v2-1-a6824a74a8dd@gmail.com> X-B4-Tracking: v=1; b=H4sIAAAAAAAC/32NwQ6CMBBEf4Xs2TVtMSie+A/DoZQtrALFFomG8 O8WvHt8k5k3CwTyTAGuyQKeZg7shgjqkIBp9dAQch0ZlFCZyKRA9k8MIw+dMw+0/EZpclFfKiO sTCHORk8x3pW38sfhVd3JTJtna7QcJuc/++cst94f/SxRYmaVOpPOrU5PRdNr7o7G9VCu6/oF8 dBrVcIAAAA= X-Change-ID: 20260610-irq-spinlock-fix-1c90d8bc0f13 To: Thomas Gleixner , Tony Lindgren , Jason Cooper , Marc Zyngier Cc: linux-kernel@vger.kernel.org, goledhruva@gmail.com, m-chawdhry@ti.com, daniel.baluta@gmail.com, simona.toaca@nxp.com, j.bhargav.u@gmail.com X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1781090067; l=1596; i=j.bhargav.u@gmail.com; h=from:subject:message-id; bh=edNjPZvNGgV/TAba/LoI7Zr5eA2ft8y38rbQZsxUv84=; b=0J6ByxHQff4wAEQ7GcP3zNYSgb3ROkLjcv2LuGhFccQR9Wt+pQFxMCNxnwe4DTiVpLcJyY9C/ /5RAl45oqqOCrIj7aa6B8ieXAylxn63Skt5/aa1353SsYSfrofomI+p X-Developer-Key: i=j.bhargav.u@gmail.com; a=ed25519; pk=IqNDwUZKECEA+n8wXctFLBbYL9NhFstZNbOznm/nX1k= In allocate_gic_irq(), if irq_domain_alloc_irqs_parent() fails, the error path resets cb->irq_map[i] to IRQ_FREE. It modifies cb->irq_map[] without holding cb->lock. modifying without lock could cause data race. Fix this by acquiring raw_spin_lock around cb->irq_map[] modification. Fixes: 783d31863fb8 ("irqchip: crossbar: Convert dra7 crossbar to stacked domains") Signed-off-by: Bhargav Joshi --- This bug was flagged by the Sashiko AI bot during the review process for the DT schema conversion of ti,irq-crossbar binding. https://lore.kernel.org/linux-devicetree/20260605210647.CCC881F00893@smtp.kernel.org/ --- Changes in v2: - Fixed typo in spin_unlock - Link to v1: https://patch.msgid.link/20260610-irq-spinlock-fix-v1-1-6f227ea9fa34@gmail.com --- drivers/irqchip/irq-crossbar.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/irqchip/irq-crossbar.c b/drivers/irqchip/irq-crossbar.c index cd1134101ace..3d8bb37c9141 100644 --- a/drivers/irqchip/irq-crossbar.c +++ b/drivers/irqchip/irq-crossbar.c @@ -100,8 +100,11 @@ static int allocate_gic_irq(struct irq_domain *domain, unsigned virq, fwspec.param[2] = IRQ_TYPE_LEVEL_HIGH; err = irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec); - if (err) + if (err) { + raw_spin_lock(&cb->lock); cb->irq_map[i] = IRQ_FREE; + raw_spin_unlock(&cb->lock); + } else cb->write(i, hwirq); --- base-commit: 2d3090a8aeb596a26935db0955d46c9a5db5c6ce change-id: 20260610-irq-spinlock-fix-1c90d8bc0f13 Best regards, -- Bhargav