From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 EEFB44C6EE5; Sat, 28 Feb 2026 17:34:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772300094; cv=none; b=Km98v7fG90sHWtWtjnvwvxlS0aFqQs08JK9DsGYFhXycYs+IaPIr92MbsvLTH+2ZwkhnE8LTMqVTm9ogvC/a7dMi9vo2rYpt4pvIY6XVxk99zCZa04x2msghZpNQ1+D76KkXPi+4oM0pKprgd95aVlCNqtgG4w9nHJ6/+muZsUU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772300094; c=relaxed/simple; bh=qmhSjwrAXFUSiHBCb2qH3lHoG/iFuO65+VBFT9ezRaI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QNJr928OZxBP9V/8M4REfXYkNp9kxhC8Man8VYYXAqDfO5TcOZdNN/m2TESIYbosnDeVqlANsACj4NG9hzw8LlpS9RI6aB49MM1crBHnYfXVynq/YSP6XEcGv7iuBrNyYsIr9O/WccTuGxP7NmeWmsLJd3whmYNFCnBPPn7Z+q8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=shOwYhfM; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="shOwYhfM" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 444DEC116D0; Sat, 28 Feb 2026 17:34:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1772300093; bh=qmhSjwrAXFUSiHBCb2qH3lHoG/iFuO65+VBFT9ezRaI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=shOwYhfMsdInbH0TCgKHGRy6D4fZJBurHSspKO2bUNIcYQDQx4myijh2pejKHtDkT JNU99iseN9PUhhjMAN0O4SiTOasBysSAYV/tsuzY4L5zul7+7lvvDk839RNq+XzYuD +NFPPEgSusTTJj/QEsvhHBDFpvoumgh+bvrhxYJ8SdAjxK7Cwjaotf7ohmlpoB0mfa /8zJMbBHeKcPkattk5cLGJIJCLYz/VUcXs/9GaEMaOfHkc0OdqV4aMy8LQ9rYsUAet 4ozkt8nN+A40DWPP0mE3z+eAlevx1EA7HdiWCIE3VAIvJiIZlrJNZxMQVUoTGHGuVb vu5RvPLtDVEWA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Sebastian Andrzej Siewior , Thomas Gleixner , Sasha Levin Subject: [PATCH 6.19 109/844] mailbox: bcm-ferxrm-mailbox: Use default primary handler Date: Sat, 28 Feb 2026 12:20:22 -0500 Message-ID: <20260228173244.1509663-110-sashal@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260228173244.1509663-1-sashal@kernel.org> References: <20260228173244.1509663-1-sashal@kernel.org> Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit From: Sebastian Andrzej Siewior [ Upstream commit 03843d95a4a4e0ba22ad4fcda65ccf21822b104c ] request_threaded_irq() is invoked with a primary and a secondary handler and no flags are passed. The primary handler is the same as irq_default_primary_handler() so there is no need to have an identical copy. The lack of the IRQF_ONESHOT flag can be dangerous because the interrupt source is not masked while the threaded handler is active. This means, especially on LEVEL typed interrupt lines, the interrupt can fire again before the threaded handler had a chance to run. Use the default primary interrupt handler by specifying NULL and set IRQF_ONESHOT so the interrupt source is masked until the secondary handler is done. Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Thomas Gleixner Link: https://patch.msgid.link/20260128095540.863589-5-bigeasy@linutronix.de Signed-off-by: Sasha Levin --- drivers/mailbox/bcm-flexrm-mailbox.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/drivers/mailbox/bcm-flexrm-mailbox.c b/drivers/mailbox/bcm-flexrm-mailbox.c index 41f79e51d9e5a..4255fefc3a5a0 100644 --- a/drivers/mailbox/bcm-flexrm-mailbox.c +++ b/drivers/mailbox/bcm-flexrm-mailbox.c @@ -1173,14 +1173,6 @@ static int flexrm_debugfs_stats_show(struct seq_file *file, void *offset) /* ====== FlexRM interrupt handler ===== */ -static irqreturn_t flexrm_irq_event(int irq, void *dev_id) -{ - /* We only have MSI for completions so just wakeup IRQ thread */ - /* Ring related errors will be informed via completion descriptors */ - - return IRQ_WAKE_THREAD; -} - static irqreturn_t flexrm_irq_thread(int irq, void *dev_id) { flexrm_process_completions(dev_id); @@ -1271,10 +1263,8 @@ static int flexrm_startup(struct mbox_chan *chan) ret = -ENODEV; goto fail_free_cmpl_memory; } - ret = request_threaded_irq(ring->irq, - flexrm_irq_event, - flexrm_irq_thread, - 0, dev_name(ring->mbox->dev), ring); + ret = request_threaded_irq(ring->irq, NULL, flexrm_irq_thread, + IRQF_ONESHOT, dev_name(ring->mbox->dev), ring); if (ret) { dev_err(ring->mbox->dev, "failed to request ring%d IRQ\n", ring->num); -- 2.51.0