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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3AEA1C433EF for ; Sun, 5 Jun 2022 13:54:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344367AbiFENyg (ORCPT ); Sun, 5 Jun 2022 09:54:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37690 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239680AbiFENyZ (ORCPT ); Sun, 5 Jun 2022 09:54:25 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 40A07A1BA; Sun, 5 Jun 2022 06:54:02 -0700 (PDT) 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 ams.source.kernel.org (Postfix) with ESMTPS id 7E8F3B80D6B; Sun, 5 Jun 2022 13:54:01 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9649DC34115; Sun, 5 Jun 2022 13:53:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1654437240; bh=4qMC9CoFFzyDXCOkYG5Quuebl4JSXLc6N91kOk/wLXU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bKwwTZlUm5Gx1RalX023voQw4u9dOKuTji0EI4D3lV8A5Wj4zi3v2nKcYvmx4hv8x U+Wn0SWw5a+lzLtDoQ8CJN4NeTUe8cQybzSORv5sF5UyXVfQeWFdBqiM0BYaGtNhnc KRq7D2VXMIYMHHfDFTC/DdJkg7ZJm9NG80JcqnIQaFeGWwDXmkH0USI8zlrltz6nUp 3mDmcissfXm08yA5THxUbTXRaxXhnhy4Quys3BNGB835xpW5rcuGLSGvlXwPEJCFsA Vxm+iMJhJK+IcKt/JdZOH0d9vVZRE3X5HTaJP1KXba1pjHUSD8KejF5QkeOj2Miwt/ mY7xtAQOtxrTg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Sebastian Andrzej Siewior , Thomas Gleixner , Sasha Levin Subject: [PATCH MANUALSEL 5.17 2/6] genirq/irq_sim: Make the irq_work always run in hard irq context Date: Sun, 5 Jun 2022 09:53:33 -0400 Message-Id: <20220605135341.61427-2-sashal@kernel.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220605135341.61427-1-sashal@kernel.org> References: <20220605135341.61427-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Sebastian Andrzej Siewior [ Upstream commit 21673fcb2532dcd189905ff5a5389eb7dcd0e57a ] The IRQ simulator uses irq_work to trigger an interrupt. Without the IRQ_WORK_HARD_IRQ flag the irq_work will be performed in thread context on PREEMPT_RT. This causes locking errors later in handle_simple_irq() which expects to be invoked with disabled interrupts. Triggering individual interrupts in hardirq context should not lead to unexpected high latencies since this is also what the hardware controller does. Also it is used as a simulator so... Use IRQ_WORK_INIT_HARD() to carry out the irq_work in hardirq context on PREEMPT_RT. Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Thomas Gleixner Link: https://lore.kernel.org/r/YnuZBoEVMGwKkLm+@linutronix.de Signed-off-by: Sasha Levin --- kernel/irq/irq_sim.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/irq/irq_sim.c b/kernel/irq/irq_sim.c index 0cd02efa3a74..dd76323ea3fd 100644 --- a/kernel/irq/irq_sim.c +++ b/kernel/irq/irq_sim.c @@ -181,7 +181,7 @@ struct irq_domain *irq_domain_create_sim(struct fwnode_handle *fwnode, goto err_free_bitmap; work_ctx->irq_count = num_irqs; - init_irq_work(&work_ctx->work, irq_sim_handle_irq); + work_ctx->work = IRQ_WORK_INIT_HARD(irq_sim_handle_irq); return work_ctx->domain; -- 2.35.1