From nobody Sat Feb 7 07:26:00 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 3E5D434D4E4 for ; Wed, 28 Jan 2026 09:55:48 +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=1769594150; cv=none; b=OXKZ64iv0JClPLGNf5X5n4Fg6gDzmDvF6Lfg85NIjAZm+ahdhK8A4NjRF7wI4+60Qht6vNwKXVHh1MSDHsfB/H69Q3jluoeFRzVw78Gj6HKfbE8a0kcJ5QQQtH3lmU8jZ3K5JX4oGBxkYSMWRmMYbhMsGVWJ7xjYgBMti2ILfik= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769594150; c=relaxed/simple; bh=0T9YK4QomM3Dxh1mFq3uLRSslv3jN/qUBwVPAGAXrcQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ScxI5zloOWJGQ+Bvsmaj41VSIhbQwm1PhFQ7fHOsULombLPfUVRFppLVLpiApKu36fK5Jy0UrxKVXAY10c3MBivzm9GJgbI3qXesupIfKfmsUjnQxKv4hmLC5cyzJaKyynSGoh1CSI8RHLyPTMZGrT4DshAu/DbvAKwASGRckSY= 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=LBPelqJ2; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=qAjwIFS3; 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="LBPelqJ2"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="qAjwIFS3" From: Sebastian Andrzej Siewior DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1769594147; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5CblLaGRlYRdZTje1I1cOH83wRmRSkpl00w4rAJW+2c=; b=LBPelqJ2GAJ4BzYpe5PwQ4Kf17R10YbImjpGF21o/5uqJEolVK2aDU1nhnqrZBRK74VL2q Z4ao9hOG6MIxFk9a3AGd6MxZRWTstEwgybEkZyEEO8QtnUqxf1tq/Z5RZz8RHM/BdxRrh/ IfM23H7ZhWDgwZ9zYWMxm0o9nGuPGM7/r8petr7vKtXiQf1Tusex6eZx2s73DFYq2Y0hgh VTrpLr81/JXSBkxb0aTGQjNqZSoAekSLl4vwYuwNyk7OLsCbngx1J3iLPiH5JxDLZo6DVW nv/MPWVbZe1EyPl2I0u+b9054TS3TXv7gj+tXXA62jsSAoat18zA6bychf16HA== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1769594147; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=5CblLaGRlYRdZTje1I1cOH83wRmRSkpl00w4rAJW+2c=; b=qAjwIFS33z0XPrRbGB4HzRLlCS32vZVmWt6qL3MKLu+IQ2gyfTqTB30xqcnggq74vpWW0O qo361zBfNW8HxKBQ== To: linux-kernel@vger.kernel.org Cc: "Thomas Gleixner" , Sebastian Andrzej Siewior Subject: [PATCH v2 01/20] genirq: Set IRQF_COND_ONESHOT in devm_request_irq(). Date: Wed, 28 Jan 2026 10:55:21 +0100 Message-ID: <20260128095540.863589-2-bigeasy@linutronix.de> In-Reply-To: <20260128095540.863589-1-bigeasy@linutronix.de> References: <20260128095540.863589-1-bigeasy@linutronix.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The flag IRQF_COND_ONESHOT was already force-added to request_irq() because the ACPI SCI interrupt handler is using the ONESHOT and it breaks all shared handler. devm_request_irq() needs the same change since some users, such as int0002_vgpio, are using this function instead. Add IRQF_COND_ONESHOT to flags passed to devm_request_irq(). Fixes: c37927a203fa2 ("genirq: Set IRQF_COND_ONESHOT in request_irq()") Signed-off-by: Sebastian Andrzej Siewior --- include/linux/interrupt.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h index 266f2b39213a0..b2bb878abd113 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h @@ -228,7 +228,7 @@ static inline int __must_check devm_request_irq(struct device *dev, unsigned int irq, irq_handler_t handl= er, unsigned long irqflags, const char *devname, void *dev_id) { - return devm_request_threaded_irq(dev, irq, handler, NULL, irqflags, + return devm_request_threaded_irq(dev, irq, handler, NULL, irqflags | IRQF= _COND_ONESHOT, devname, dev_id); } =20 --=20 2.51.0 From nobody Sat Feb 7 07:26:00 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 B7D433EBF04; Wed, 28 Jan 2026 09:55:54 +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=1769594156; cv=none; b=KgQ0E8FyBPrQWRE/b8eeKImtS10rfPsDbIYuLEhm+emK/yFSgeT1bSljf6klQXhS9xKGGEgwwbsaHlxlHlMq95vZ3zzz6F417rcq1W7ej9/GSwUv14kOJymboOsYDSGqt3JeNwgm6YbuwkOufGL44DwlkPf9oQ+xvqguN2dqNiA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769594156; c=relaxed/simple; bh=rgEPlC4N64Mp2mf5hrKOg4yrH302rYcfEu69I4Y7gOE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=drYSIvO44+M19BoncDzghhgFgwYblndA9BO06UGFFOnjUQW0Nu778HCoDJbUHgX35bgS48VAIIb/UJwqN7S3cqgZJq58aWc97sPkhU6HJXdm4SMJV7IdmCj7DPOETMyvBV240ttrp0E0c1Q+quLNDoQMML6JmBA9Hg722yJpE9U= 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=kFaPK/Hj; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=oNwoLif/; 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="kFaPK/Hj"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="oNwoLif/" From: Sebastian Andrzej Siewior DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1769594153; h=from:from: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=uZEjcjI/p3xt64Ub6+8ChPpxBCTDkLiKdD7lfuW8y9Y=; b=kFaPK/Hj3ycuMtyPfB9TXmrN/sRo3N2rFNCzL0zL3m/f7/Ur6x9wA/XQeMe62sBDIeDnwZ lsiNoK7zA2nR9EKQSf2xqQYhp0/8BatTaqh6Bc5n3isyfYev3F0+jfexnr7/nCCwPh7/e0 /78QbHT10Cn5egnaN1l57maan7HO5ArwzJNqBzyYcOhl5+JYgbqqECz3vSUM8CPJWsvb6i uW7dESjQmnkH9N+ngiUxVAKXS/HRgtpV2XQWiYd/BwZCWfyW65HHjJIF+knNNksGArPijt IcuCUbhPh5boX2PArJl2U6BlHbg17olAZ8fa3ZmPxsO6sSfv5Eiv1L7x8kChnQ== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1769594153; h=from:from: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=uZEjcjI/p3xt64Ub6+8ChPpxBCTDkLiKdD7lfuW8y9Y=; b=oNwoLif/FZ7Iyetq7wKvwCh2IkIkUFUw+ELa30HXXv5Y5QCc/7Lwjx1wItDRzjZqU7hQYE QxUxV7G4CTlFJLCA== To: linux-kernel@vger.kernel.org Cc: "Thomas Gleixner" , Sebastian Andrzej Siewior , "Borah, Chaitanya Kumar" , Hans de Goede , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= , Hans de Goede , platform-driver-x86@vger.kernel.org Subject: [PATCH v2 02/20] platform/x86: int0002: Remove IRQF_ONESHOT from request_irq() Date: Wed, 28 Jan 2026 10:55:22 +0100 Message-ID: <20260128095540.863589-3-bigeasy@linutronix.de> In-Reply-To: <20260128095540.863589-1-bigeasy@linutronix.de> References: <20260128095540.863589-1-bigeasy@linutronix.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Passing IRQF_ONESHOT ensures that the interrupt source is masked until the secondary (threaded) handler is done. If only a primary handler is used then the flag makes no sense because the interrupt can not fire (again) while its handler is running. The flag also disallows force-threading of the primary handler and the irq-core will warn about this. The flag was added to match the flag on the shared handler which uses a threaded handler and therefore IRQF_ONESHOT. This is no longer needed because devm_request_irq() now passes IRQF_COND_ONESHOT for this case. Revert adding IRQF_ONESHOT to irqflags. Reported-by: Borah, Chaitanya Kumar Closes: https://lore.kernel.org/all/555f1c56-0f74-41bf-8bd2-6217e0aab0c6@in= tel.com Fixes: 8f812373d1958 ("platform/x86: intel: int0002_vgpio: Pass IRQF_ONESHO= T to request_irq()") Reviewed-by: Hans de Goede Acked-by: Ilpo J=C3=A4rvinen Signed-off-by: Sebastian Andrzej Siewior --- Cc: Hans de Goede Cc: Ilpo J=C3=A4rvinen Cc: platform-driver-x86@vger.kernel.org --- drivers/platform/x86/intel/int0002_vgpio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/platform/x86/intel/int0002_vgpio.c b/drivers/platform/= x86/intel/int0002_vgpio.c index 6f5629dc3f8db..562e880256436 100644 --- a/drivers/platform/x86/intel/int0002_vgpio.c +++ b/drivers/platform/x86/intel/int0002_vgpio.c @@ -206,8 +206,8 @@ static int int0002_probe(struct platform_device *pdev) * FIXME: augment this if we managed to pull handling of shared * IRQs into gpiolib. */ - ret =3D devm_request_irq(dev, irq, int0002_irq, - IRQF_ONESHOT | IRQF_SHARED, "INT0002", chip); + ret =3D devm_request_irq(dev, irq, int0002_irq, IRQF_SHARED, "INT0002", + chip); if (ret) { dev_err(dev, "Error requesting IRQ %d: %d\n", irq, ret); return ret; --=20 2.51.0 From nobody Sat Feb 7 07:26:00 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 4BB1A34DB4C for ; Wed, 28 Jan 2026 09:55:57 +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=1769594159; cv=none; b=NiU0a8hTQGHPnx8b/Jwz7OixnU2wGX4AfWU7SK+zPzsf01Un2ahn5KnSN9eq/6vf8JC6YStSJ3EKrdVicFY8wrDyZGOjZ5XzurtByNURZIftZHehsEpki3N2dFA38egr64IGTrAkoMr55x6E8l0NtyfM1swE/9gTzY8dfUNzN+E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769594159; c=relaxed/simple; bh=a8PmjOimE/57zI/f5ieyRUYuPN5myeNHEN+leOoS/c4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=B0ayrlQx3lOkPRucWgs+Fjr5nVq4OxFvHoBTMfU4O5yUpWj9dciVqZV1FTqtfIgruBu1H+U4dUPvrAPMolLZw3Q1ViBvzzzsB02fpzAzTip61bimMtjN8vU0vbd+q9mMwbXAc5+Q3AF+n2i+F5dAOSm3p08xDoRZnmDE5plm7JA= 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=0EWZpln4; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=bo0pv0LT; 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="0EWZpln4"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="bo0pv0LT" From: Sebastian Andrzej Siewior DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1769594155; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=zni2r7zu/AvwTPfuVhIq9YilbCGCckmhbNu3MIHICGc=; b=0EWZpln4s4OC4PaBWzPRQSOm6OKYoR4E8gD539RM2isa/0C+LELWfy7hyoex284I8Wivxy EBtcqP3ebp7STcj4kn3Ps65ke2qapXOLQQJwYHWP5BIOtNIYOpNyWg0OIYizuXBMgGujsA D4OMM0rMFkTVY1cHJcm8RvGkc2tGP2jNgWvGWCkz9FzPjXJGgfYBZM0ed91eZuPb6v2ID7 fF2NaiXL37gSDBOQ1yU3XLUChUSBqQa9WURPotfeWuOztojzQbpBDBCdmZzjBWOAJ14GLt EFBckd5O6jVRwZ536K1fr6r2rxAuU/61YJIY2mQH/qgxIyA/r9rFtEI1Vvj4mg== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1769594155; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=zni2r7zu/AvwTPfuVhIq9YilbCGCckmhbNu3MIHICGc=; b=bo0pv0LTUtjK5HcL3yxulX9wkN0230jI57qMa8V3IiJC2MPakFh9C9dsHNmbbxiyPu592n Fs7vUcS8KrCGAaDA== To: linux-kernel@vger.kernel.org Cc: "Thomas Gleixner" , Sebastian Andrzej Siewior , Joerg Roedel , Suravee Suthikulpanit , iommu@lists.linux.dev Subject: [PATCH v2 03/20] iommu/amd: Use core's primary handler and set IRQF_ONESHOT Date: Wed, 28 Jan 2026 10:55:23 +0100 Message-ID: <20260128095540.863589-4-bigeasy@linutronix.de> In-Reply-To: <20260128095540.863589-1-bigeasy@linutronix.de> References: <20260128095540.863589-1-bigeasy@linutronix.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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 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. Fixes: 72fe00f01f9a3 ("x86/amd-iommu: Use threaded interupt handler") Signed-off-by: Sebastian Andrzej Siewior --- Cc: Joerg Roedel Cc: Suravee Suthikulpanit Cc: iommu@lists.linux.dev --- drivers/iommu/amd/amd_iommu.h | 1 - drivers/iommu/amd/init.c | 12 ++++-------- drivers/iommu/amd/iommu.c | 5 ----- 3 files changed, 4 insertions(+), 14 deletions(-) diff --git a/drivers/iommu/amd/amd_iommu.h b/drivers/iommu/amd/amd_iommu.h index b742ef1adb352..df1c238dc8885 100644 --- a/drivers/iommu/amd/amd_iommu.h +++ b/drivers/iommu/amd/amd_iommu.h @@ -15,7 +15,6 @@ irqreturn_t amd_iommu_int_thread(int irq, void *data); irqreturn_t amd_iommu_int_thread_evtlog(int irq, void *data); irqreturn_t amd_iommu_int_thread_pprlog(int irq, void *data); irqreturn_t amd_iommu_int_thread_galog(int irq, void *data); -irqreturn_t amd_iommu_int_handler(int irq, void *data); void amd_iommu_restart_log(struct amd_iommu *iommu, const char *evt_type, u8 cntrl_intr, u8 cntrl_log, u32 status_run_mask, u32 status_overflow_mask); diff --git a/drivers/iommu/amd/init.c b/drivers/iommu/amd/init.c index 384c90b4f90a0..62a7a718acf8f 100644 --- a/drivers/iommu/amd/init.c +++ b/drivers/iommu/amd/init.c @@ -2356,12 +2356,8 @@ static int iommu_setup_msi(struct amd_iommu *iommu) if (r) return r; =20 - r =3D request_threaded_irq(iommu->dev->irq, - amd_iommu_int_handler, - amd_iommu_int_thread, - 0, "AMD-Vi", - iommu); - + r =3D request_threaded_irq(iommu->dev->irq, NULL, amd_iommu_int_thread, + IRQF_ONESHOT, "AMD-Vi", iommu); if (r) { pci_disable_msi(iommu->dev); return r; @@ -2535,8 +2531,8 @@ static int __iommu_setup_intcapxt(struct amd_iommu *i= ommu, const char *devname, return irq; } =20 - ret =3D request_threaded_irq(irq, amd_iommu_int_handler, - thread_fn, 0, devname, iommu); + ret =3D request_threaded_irq(irq, NULL, thread_fn, IRQF_ONESHOT, devname, + iommu); if (ret) { irq_domain_free_irqs(irq, 1); irq_domain_remove(domain); diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c index 7c12be1b247f4..0f9045ce93af1 100644 --- a/drivers/iommu/amd/iommu.c +++ b/drivers/iommu/amd/iommu.c @@ -1151,11 +1151,6 @@ irqreturn_t amd_iommu_int_thread(int irq, void *data) return IRQ_HANDLED; } =20 -irqreturn_t amd_iommu_int_handler(int irq, void *data) -{ - return IRQ_WAKE_THREAD; -} - /*************************************************************************= *** * * IOMMU command queuing functions --=20 2.51.0 From nobody Sat Feb 7 07:26:00 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 2DEA134DB7B for ; Wed, 28 Jan 2026 09:55:59 +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=1769594161; cv=none; b=iCsAq6gMyT4eOlq0vI3VN4SzrakaW8IVZJfDc4sN04PTpKboRsMeXfwh7NirDuElESXneGTWjrdbx3nbMrzn48jJwAAdTDaZAie/SsQ+qYhg18j08GZRQgypXvvAFtPysKtSuAhGZfK62c5XAdOwmwFT5aDyshWjsoOAgI2GWO8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769594161; c=relaxed/simple; bh=yfATDPyMLX+uZK2zELAA2dhtgtAncPVGNpngvqJ6X5c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WkQ5AHx2gXmE0kd5sDtv1/nZIHeTI8tOaSfKKNtle3YCypWS+G3Zv3vuWP+1eQIHWJfp8zLEsDV+L6z3tqQF+W2R7Td/RDo5sSzv3TenKdpjVLYjNUv2WjQRJyk21ShfqZgw/+pF9cDecn5FbMUo/JgHenYkxE5WpobNly8bKzs= 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=VGCHbWBv; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=voC2LShX; 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="VGCHbWBv"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="voC2LShX" From: Sebastian Andrzej Siewior DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1769594158; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=yVLlTuYd15Wnn+arM3sk8Ckt4tR3I9d+Xqe5g1pMH/E=; b=VGCHbWBvBNEppkqCzz2phXn5DE7BGzVXvzJAuOLGZSHTauyKzgcHPMbwy9Uay+/q0b9zSg wxvKqgbNR13VNoXWmQvfB+0Mm3ok6ULgkhqD8ZdfOrxInv3D6ScuHADDCXqPYrikdm6lOp oJ15vWWl1tCr1+wrrlhYApp8v96tsPGdYgK5/k6nWuFxaiM4ALb/VH1+Qp8GkbjO0Vhy/Z P3nZmj34cz9WYnI/d6sHdCcbkHYasjXa2hJ2pTRJyx1aXV/wQ8okYhUn/FG9/Uc4ERTjZP sTE3R/nNb6jdSYB2aqsqQCkUmDB7NdaBzXdFPJybto7lmDQhELbVE79x4zcXqQ== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1769594158; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=yVLlTuYd15Wnn+arM3sk8Ckt4tR3I9d+Xqe5g1pMH/E=; b=voC2LShXIE+uzaZ15IAFxX/+rPTA8/M7RukjkwrmaZlacO7fr6TvnwIT0HGYx2aCEJFl5a /RXyzE8k0LxNEECQ== To: linux-kernel@vger.kernel.org Cc: "Thomas Gleixner" , Sebastian Andrzej Siewior , Jassi Brar Subject: [PATCH v2 04/20] mailbox: bcm-ferxrm-mailbox: Use default primary handler Date: Wed, 28 Jan 2026 10:55:24 +0100 Message-ID: <20260128095540.863589-5-bigeasy@linutronix.de> In-Reply-To: <20260128095540.863589-1-bigeasy@linutronix.de> References: <20260128095540.863589-1-bigeasy@linutronix.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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 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 --- Cc: Jassi Brar --- 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-fle= xrm-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) =20 /* =3D=3D=3D=3D=3D=3D FlexRM interrupt handler =3D=3D=3D=3D=3D */ =20 -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 =3D -ENODEV; goto fail_free_cmpl_memory; } - ret =3D request_threaded_irq(ring->irq, - flexrm_irq_event, - flexrm_irq_thread, - 0, dev_name(ring->mbox->dev), ring); + ret =3D 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); --=20 2.51.0 From nobody Sat Feb 7 07:26:00 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 2DE0B34DB68 for ; Wed, 28 Jan 2026 09:56:00 +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=1769594161; cv=none; b=dloYCH2jTQAMDBSQdP3VmnB7qqaQb2xINKMsLI6bHzuv/RCijbeZ7KlWbLRDaeXUYDqlzrVHoCRPf2ookQ6SfM5oJ7f1KZBP0mTr8EXVZmjC86QdmNxCLj+tfN6jraexB6O89HeLQ24xLKcg8hebzHRDdxm06nUKfyLt7IlUjvo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769594161; c=relaxed/simple; bh=klwWmp3YWybsi0WSvIXjvxHZMctdvHY0y/7pIwrNlZ4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TQGudHpdRjIcBCp4Zb+07zOIUxT0oS6H6/UD+X9/shUJ6Z9bRLib8kWft5z9LhF/FKro3hdoOk23SA3B6hhC1QddKRFMimLanufPGwrpOlxprJBcHCD+5+O1zjwnkRhrHD17b1c0DIekpfuJb/5QqCPdsNSmY8uFItsJQiE/yiw= 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=gZhLyDmU; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=Sy+8hJO5; 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="gZhLyDmU"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="Sy+8hJO5" From: Sebastian Andrzej Siewior DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1769594158; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=IKkhJFSlDPDWBwrmIbzE9ozrrgoANZfOeT947Sp++R0=; b=gZhLyDmUiwiJU/sYXX7aZEe1CsXZvv97eKfANU75x8MqzuTeuw/D7uyIMeJi3mQO3Upi33 A7TxyKjKbLnegA9CxXipXICM8rU8AhM9LY+9RaGY2eycdwruEZuAW3tI+cWfmUVHIKwvOf CSYNlzMpT6NH2XWB5OlS6lWVqje5fC48xfY0TnZfH8IApIFOJ/mzlveNGmjtYne6T3acDk KzAo1o/1e4qU4gvhd265h4CiaSiRa57IJQ3lJoIsDqnqBGIDQ7rN5OOtj/x9ajizbAIEyv JLSrEffsOKArmwGJjyyhMbmAXfY3LdPgK8WhPi6msJgxNrTze/zHFrVFspKVyg== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1769594158; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=IKkhJFSlDPDWBwrmIbzE9ozrrgoANZfOeT947Sp++R0=; b=Sy+8hJO5EOsJkAdaw7z2pz2wRBoyvXuXJsblQKNMT22NnKn80IrltvmEoVeCqyETUPw/Aw mRmi/3rd3mIediBg== To: linux-kernel@vger.kernel.org Cc: "Thomas Gleixner" , Sebastian Andrzej Siewior , Ioana Ciornei , linuxppc-dev@lists.ozlabs.org Subject: [PATCH v2 05/20] bus: fsl-mc: Use default primary handler Date: Wed, 28 Jan 2026 10:55:25 +0100 Message-ID: <20260128095540.863589-6-bigeasy@linutronix.de> In-Reply-To: <20260128095540.863589-1-bigeasy@linutronix.de> References: <20260128095540.863589-1-bigeasy@linutronix.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" There is no added value in dprc_irq0_handler() compared to irq_default_primary_handler(). Use the default primary interrupt handler by specifying NULL. Reviewed-by: Ioana Ciornei Signed-off-by: Sebastian Andrzej Siewior --- Cc: Ioana Ciornei Cc: linuxppc-dev@lists.ozlabs.org --- drivers/bus/fsl-mc/dprc-driver.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/drivers/bus/fsl-mc/dprc-driver.c b/drivers/bus/fsl-mc/dprc-dri= ver.c index c63a7e688db6a..db67442addad2 100644 --- a/drivers/bus/fsl-mc/dprc-driver.c +++ b/drivers/bus/fsl-mc/dprc-driver.c @@ -380,17 +380,6 @@ int dprc_scan_container(struct fsl_mc_device *mc_bus_d= ev, } EXPORT_SYMBOL_GPL(dprc_scan_container); =20 -/** - * dprc_irq0_handler - Regular ISR for DPRC interrupt 0 - * - * @irq_num: IRQ number of the interrupt being handled - * @arg: Pointer to device structure - */ -static irqreturn_t dprc_irq0_handler(int irq_num, void *arg) -{ - return IRQ_WAKE_THREAD; -} - /** * dprc_irq0_handler_thread - Handler thread function for DPRC interrupt 0 * @@ -527,7 +516,7 @@ static int register_dprc_irq_handler(struct fsl_mc_devi= ce *mc_dev) */ error =3D devm_request_threaded_irq(&mc_dev->dev, irq->virq, - dprc_irq0_handler, + NULL, dprc_irq0_handler_thread, IRQF_NO_SUSPEND | IRQF_ONESHOT, dev_name(&mc_dev->dev), --=20 2.51.0 From nobody Sat Feb 7 07:26:00 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 4427B34D93C; Wed, 28 Jan 2026 09:56:00 +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=1769594161; cv=none; b=Tw/a5TQJ6a1r1bFbYgp/G16usdIBGi3bq1hF9IqJkAz0HiVgZI7gdeayjWePaKhua2XK+fAeGXrwelK8Ciy9Was8eCC6vj74BFraDe0j1rsPVl47a3z/vJ3QWzmgXvoFZ8zOH2XP/qm7rDQSMh6MWZtPbKX1shMSuQDDm+J+hz8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769594161; c=relaxed/simple; bh=yk1FIvyoEPqAhkl2kx8p28tmn8zn2oKyb6WJYkA9S5o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=neNRR0qW9/M7DIlKKVs94htckoDxFSWC7TpQOpe7xuEGU4vX1qS6NLpvLdf5KDilABVzs+mPWuuyLbVmREBVNVzLhlPvmzD5R6iXSZOJaow/HQc9wfJCd7H/Ak5HfiRDKHhOjizYV3trTMmC/fJrfHyW2bs9B27mvbiC8o5oJew= 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=TxnPgQqS; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=mrXzxxt0; 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="TxnPgQqS"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="mrXzxxt0" From: Sebastian Andrzej Siewior DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1769594159; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=vGFJMl/POgeIcIQDzxkyyJOUi9lJfcsim0vwE3YsQR4=; b=TxnPgQqSTTn+rJ2WUCqR7N3+WJBA4py4P43Q/Tybyda7vMOvfkNFhKr1V9oPz42ejAd36x 2hKAaoKNXJsYfw6X6T8tP8cU2MhYtdP+GPQwVdLz0UKXdhgeAQAkM/yQSQo4On4fHYTtYA SST8yILLFCbJg6bGHT6xYfTEV32/flco8zLEgWmtSH7xZ3p2nhMadD4z2LeJoJzfF6yqOb Fr3jBDeU9axYkeSfcNRi0rv0YHOTJ9LNC4f9Nn7y6vOyUWszMNwMw1kMI00DTwkTsTUHHh nwETpMxIivtX9V6jHzinNtNjJxCeFhJ4/Sweh9s9Vqtrqp94rBP42sZNTQm/pg== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1769594159; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=vGFJMl/POgeIcIQDzxkyyJOUi9lJfcsim0vwE3YsQR4=; b=mrXzxxt0i2k1TS7oIa61AYNPY5GLxhF7IgFZbEctXGQGxOhUvmq+nD2lWc09CfAsBqXS2n v29H52CiRI1cSQCg== To: linux-kernel@vger.kernel.org Cc: "Thomas Gleixner" , Sebastian Andrzej Siewior , Marcel Holtmann , Luiz Augusto von Dentz , linux-bluetooth@vger.kernel.org Subject: [PATCH v2 06/20] Bluetooth: btintel_pcie: Use IRQF_ONESHOT and default primary handler Date: Wed, 28 Jan 2026 10:55:26 +0100 Message-ID: <20260128095540.863589-7-bigeasy@linutronix.de> In-Reply-To: <20260128095540.863589-1-bigeasy@linutronix.de> References: <20260128095540.863589-1-bigeasy@linutronix.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" There is no added value in btintel_pcie_msix_isr() compared to irq_default_primary_handler(). Using a threaded interrupt without a dedicated primary handler mandates the IRQF_ONESHOT flag to mask the interrupt source while the threaded handler is active. Otherwise 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. Fixes: c2b636b3f788d ("Bluetooth: btintel_pcie: Add support for PCIe transp= ort") Signed-off-by: Sebastian Andrzej Siewior --- Cc: Marcel Holtmann Cc: Luiz Augusto von Dentz Cc: linux-bluetooth@vger.kernel.org --- drivers/bluetooth/btintel_pcie.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/drivers/bluetooth/btintel_pcie.c b/drivers/bluetooth/btintel_p= cie.c index 2936b535479f2..704767b334b98 100644 --- a/drivers/bluetooth/btintel_pcie.c +++ b/drivers/bluetooth/btintel_pcie.c @@ -1431,11 +1431,6 @@ static void btintel_pcie_msix_rx_handle(struct btint= el_pcie_data *data) } } =20 -static irqreturn_t btintel_pcie_msix_isr(int irq, void *data) -{ - return IRQ_WAKE_THREAD; -} - static inline bool btintel_pcie_is_rxq_empty(struct btintel_pcie_data *dat= a) { return data->ia.cr_hia[BTINTEL_PCIE_RXQ_NUM] =3D=3D data->ia.cr_tia[BTINT= EL_PCIE_RXQ_NUM]; @@ -1537,9 +1532,9 @@ static int btintel_pcie_setup_irq(struct btintel_pcie= _data *data) =20 err =3D devm_request_threaded_irq(&data->pdev->dev, msix_entry->vector, - btintel_pcie_msix_isr, + NULL, btintel_pcie_irq_msix_handler, - IRQF_SHARED, + IRQF_ONESHOT | IRQF_SHARED, KBUILD_MODNAME, msix_entry); if (err) { --=20 2.51.0 From nobody Sat Feb 7 07:26:00 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 688D734DB4F; Wed, 28 Jan 2026 09:56:01 +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=1769594163; cv=none; b=tz2xPbtiXfZ3v1ERYk+WMteoAWW37pgp9kgKgMfmESpLdIZVa7XeL69onmputJLOeKuw+/WuZGBRkcwHVo9/kdO0tADA5v/OeL0gqhEv2058j/fo77AMdH0fsOuapPOddR6rEIEzC1OKiaFdl56iMz1GSwwVhidEHqWkLXSpds4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769594163; c=relaxed/simple; bh=kAYhzYUCG6EZznpIaohCcnuhrLdzkqfcRINK9xYw4jg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Vr+2u/buj3Ycm46gQtLW5+uysPIA1vHPLyZSZaF6Ivg4rtXK+fspuCN8vW+QgXdWm3v0F40JdJJvP4JvVhIRchpCVfBYCLkk5D2z7f9oKgfWGHIx/qpz3wWJfQF2CmjrZ9vai437sS0IlH6uOjRrzaegH7sNSIaR54LsSurXK7s= 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=DQv24yyP; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=Vz5fFTB5; 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="DQv24yyP"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="Vz5fFTB5" From: Sebastian Andrzej Siewior DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1769594159; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7E9srkZlzV0RaeI0Fc1FXkJoZJJK+GqLTBxgkhDhRlI=; b=DQv24yyP1W94j/w2nNfH1auBtPpgzHdH8ZJRxdfKvJWCRPKIDem15dHQHmbiULAGsg1XT9 AroX320Kx2U4Qvy5YK+Dd2io1IzujVytvz4ee/tDad6F3Ln5a6Go/2GnVIcN/HAHixVo8B I3c+4qqLNqWz1vMyIV6RYzshBkNN3e1mYYLZFkqalIWtNssHCfYaoqBKWqeOVajZDIiWWa +lgd6iHBWcFo1G8H8d9z+o0j7jK+fe5rhlJ3GocYgVmH/FiuqYl02qXDjtZZY5ZRHnvp5D ycu/QvkVwP902k71YwOBHy+7Gxoi+j6cCuHc5NOLOLyDB0nhFqjJpPNM7/bcqQ== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1769594159; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7E9srkZlzV0RaeI0Fc1FXkJoZJJK+GqLTBxgkhDhRlI=; b=Vz5fFTB5QFJuPcwecysb8hVUn/Tch3fQI5HeIfzwp5e2U5I8wCk6KoZULbsta/k529fDb6 ioddQdldPQAdSGBQ== To: linux-kernel@vger.kernel.org Cc: "Thomas Gleixner" , Sebastian Andrzej Siewior , Ram Vegesna , "James E.J. Bottomley" , "Martin K. Petersen" , linux-scsi@vger.kernel.org, target-devel@vger.kernel.org Subject: [PATCH v2 07/20] scsi: efct: Use IRQF_ONESHOT and default primary handler Date: Wed, 28 Jan 2026 10:55:27 +0100 Message-ID: <20260128095540.863589-8-bigeasy@linutronix.de> In-Reply-To: <20260128095540.863589-1-bigeasy@linutronix.de> References: <20260128095540.863589-1-bigeasy@linutronix.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" There is no added value in efct_intr_msix() compared to irq_default_primary_handler(). Using a threaded interrupt without a dedicated primary handler mandates the IRQF_ONESHOT flag to mask the interrupt source while the threaded handler is active. Otherwise 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. Fixes: 4df84e8466242 ("scsi: elx: efct: Driver initialization routines") Signed-off-by: Sebastian Andrzej Siewior --- Cc: Ram Vegesna Cc: James E.J. Bottomley Cc: Martin K. Petersen Cc: linux-scsi@vger.kernel.org Cc: target-devel@vger.kernel.org --- drivers/scsi/elx/efct/efct_driver.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/drivers/scsi/elx/efct/efct_driver.c b/drivers/scsi/elx/efct/ef= ct_driver.c index 1bd42f7db1773..528399f725d42 100644 --- a/drivers/scsi/elx/efct/efct_driver.c +++ b/drivers/scsi/elx/efct/efct_driver.c @@ -415,12 +415,6 @@ efct_intr_thread(int irq, void *handle) return IRQ_HANDLED; } =20 -static irqreturn_t -efct_intr_msix(int irq, void *handle) -{ - return IRQ_WAKE_THREAD; -} - static int efct_setup_msix(struct efct *efct, u32 num_intrs) { @@ -450,7 +444,7 @@ efct_setup_msix(struct efct *efct, u32 num_intrs) intr_ctx->index =3D i; =20 rc =3D request_threaded_irq(pci_irq_vector(efct->pci, i), - efct_intr_msix, efct_intr_thread, 0, + NULL, efct_intr_thread, IRQF_ONESHOT, EFCT_DRIVER_NAME, intr_ctx); if (rc) { dev_err(&efct->pci->dev, --=20 2.51.0 From nobody Sat Feb 7 07:26:00 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 D0DC734DB52 for ; Wed, 28 Jan 2026 09:56:01 +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=1769594163; cv=none; b=nn0Lcaq3PBBU7WMGXp2E7KnkGasVxrL3E0gxAKwpNBcN1F5G4Y9ofigZldC9UCorSR3ZZ/47aq4yFl+6rUsX3MeKBxXwrr43axp2lgcMwWwYxKlFQzzzKBEuvolSuj+CjrE6duv1vtFM/FBd03ni/gzn7LD4caq99zYyaJFTGik= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769594163; c=relaxed/simple; bh=MX9Z89c+qIvHtci5SLWYzvDHq2pNH9J1DJyEZxqTBHU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=M8zYae2eRGkaj3rnz6dJ3dpyGyN1OsxpovrYj8idBOzQLye/zUQFU1x/YhwwpdbsVJYafa1f1h89S5arshkdyKC/0laXkBFMQ5JQj+AECukoiQ7rznIE6nJKMCayp2bhABB9Cd++3/PM1MjltxA+yZf2GZ0vh8XwS9QYOB++njw= 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=LXHm6WBX; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=HnNCpmrf; 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="LXHm6WBX"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="HnNCpmrf" From: Sebastian Andrzej Siewior DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1769594160; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=0aZDalOgS8NpQjE/IJRmLE79ou1FJAk2mHyWP980i80=; b=LXHm6WBX3s9HSTJAXauINmjIAMguh9aTJb9iZRskoZhcOGrL6wOpymos0/qVMazJcpDzAT 9FPOPWUONCUCPO1SUE5JujoH7FWpmSNreqrhPAYE/BbHBre5PQtWF4KtFaHzvzLjja7bA6 Df086nyLjmd3WcmjEMYTd7CaDdA0SQ+bQH3PdiCoi7lKNAfN5nXdxIIrSA6v8Gfl9q71cz +Q6UlmHImxOfIzyl2CgEFXENrpT7vt7sKAFsJ0LsmvljrupsjjW7+cAsiCsDITsXFMCIDh LGPzOC0cnQfy31xqW7TbgEl9BtxfuvihzQoL1l/ftbVH8ERFAoGL2vA3ysVowA== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1769594160; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=0aZDalOgS8NpQjE/IJRmLE79ou1FJAk2mHyWP980i80=; b=HnNCpmrf6IkhLERrTvKHehr2cK8ORyERltmrV/MUhWAhe2+q6hQJh2KgOIyqFDcC+wFUxA HqAwK0VSaP8JbCDg== To: linux-kernel@vger.kernel.org Cc: "Thomas Gleixner" , Sebastian Andrzej Siewior , Sudeep Holla , Linus Walleij , Liviu Dudau , Lorenzo Pieralisi , linux-arm-kernel@lists.infradead.org Subject: [PATCH v2 08/20] ARM: versatile: Remove IRQF_ONESHOT Date: Wed, 28 Jan 2026 10:55:28 +0100 Message-ID: <20260128095540.863589-9-bigeasy@linutronix.de> In-Reply-To: <20260128095540.863589-1-bigeasy@linutronix.de> References: <20260128095540.863589-1-bigeasy@linutronix.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Passing IRQF_ONESHOT ensures that the interrupt source is masked until the secondary (threaded) handler is done. If only a primary handler is used then the flag makes no sense because the interrupt can not fire (again) while its handler is running. Revert adding IRQF_ONESHOT to irqflags. Acked-by: Sudeep Holla Acked-by: Linus Walleij Signed-off-by: Sebastian Andrzej Siewior --- Cc: Linus Walleij Cc: Liviu Dudau Cc: Sudeep Holla Cc: Lorenzo Pieralisi Cc: linux-arm-kernel@lists.infradead.org --- arch/arm/mach-versatile/spc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-versatile/spc.c b/arch/arm/mach-versatile/spc.c index 812db32448fcd..2d27777a00d33 100644 --- a/arch/arm/mach-versatile/spc.c +++ b/arch/arm/mach-versatile/spc.c @@ -459,8 +459,8 @@ int __init ve_spc_init(void __iomem *baseaddr, u32 a15_= clusid, int irq) =20 readl_relaxed(info->baseaddr + PWC_STATUS); =20 - ret =3D request_irq(irq, ve_spc_irq_handler, IRQF_TRIGGER_HIGH - | IRQF_ONESHOT, "vexpress-spc", info); + ret =3D request_irq(irq, ve_spc_irq_handler, IRQF_TRIGGER_HIGH, + "vexpress-spc", info); if (ret) { pr_err(SPCLOG "IRQ %d request failed\n", irq); kfree(info); --=20 2.51.0 From nobody Sat Feb 7 07:26:00 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 406C034E741; Wed, 28 Jan 2026 09:56:02 +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=1769594163; cv=none; b=NF0wJTZMTpFRAQsFlqm27Xps3KZ4QgkZtamdYaLs39qje5F9wjCnUTdoNr2Vv4uVnep7wr0yLZObWJ++gZNK+bhL43VqbmhX4mu/nklljqIaxgvvJjhREsVL8TCHW8+4IjuhctGwa+/XQuOoEV/dE3h4E/JXlAc2C3C6hyjUEzU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769594163; c=relaxed/simple; bh=mg4KK6kRphfn0fp0eq2b27K11ZtfAbz9mfXPYOWdMJg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GxEE/KBW6kNvFeBsTe0L3WrcklH1mGDV/EQ0AAupQ5rjmpDwXAJ/cPhUyvmM64vPIGQeEomgeCozeymsZhFshz8hzwzRRGN5yQasMJ4rlsxVguTneDN3MqjkZqLPe1mrDMfx/OtFvUITzeo2ovZbNPDm7ubF05IDnHoWiCApjK4= 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=0TXBfhz9; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=5mRIb1Wq; 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="0TXBfhz9"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="5mRIb1Wq" From: Sebastian Andrzej Siewior DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1769594160; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fUN1HTRsfp/pT32vkRCQTzRlDbGshc9all+/znGUtLY=; b=0TXBfhz9zrNGuPKGssPHl+AurLb7FeANVOozo6sJyW1CW2dMdAL6lEmpcar7l2+ZKC4J10 xGilhusFxZrbptaY5y/jdW5NQtj95taZAasr0++PEfHErJUQkprsYhEMYMxKXWqOEGyqZO ZoUDvOm5kOffAT4YdfeSuAsGfPgkCnVxEDT/v8cZmiW3Y/qK+1CMQXTFdG/fKX2Mc9a+gz L6jlBPMbzKHiJXOeTbgLRvAQpTvu7xYNC6+kEf3oOb44zK0aoGNKvfi3Sw3P5B3m9A5xNo h+wVtSx5gugXKrtW/xKMoEP4K8Fu4A1bZvKLVK2ynPY4UGa8EczBaWoTC1YRDg== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1769594160; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fUN1HTRsfp/pT32vkRCQTzRlDbGshc9all+/znGUtLY=; b=5mRIb1WqdtF/x+E2+5oEtz0uK6dcEQT41+86vGH+HUV6hIjrFhDD3b6F7t6bXOvxSfQryC LKTzprTpCHoLMhDg== To: linux-kernel@vger.kernel.org Cc: "Thomas Gleixner" , Sebastian Andrzej Siewior , Jarkko Sakkinen , Peter Huewe , Jason Gunthorpe , linux-integrity@vger.kernel.org Subject: [PATCH v2 09/20] char: tpm: cr50: Remove IRQF_ONESHOT Date: Wed, 28 Jan 2026 10:55:29 +0100 Message-ID: <20260128095540.863589-10-bigeasy@linutronix.de> In-Reply-To: <20260128095540.863589-1-bigeasy@linutronix.de> References: <20260128095540.863589-1-bigeasy@linutronix.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Passing IRQF_ONESHOT ensures that the interrupt source is masked until the secondary (threaded) handler is done. If only a primary handler is used then the flag makes no sense because the interrupt can not fire (again) while its handler is running. The flag also disallows force-threading of the primary handler and the irq-core will warn about this. Remove IRQF_ONESHOT from irqflags. Reviewed-by: Jarkko Sakkinen Signed-off-by: Sebastian Andrzej Siewior --- Cc: Peter Huewe Cc: Jarkko Sakkinen Cc: Jason Gunthorpe Cc: linux-integrity@vger.kernel.org --- drivers/char/tpm/tpm_tis_i2c_cr50.c | 3 +-- drivers/char/tpm/tpm_tis_spi_cr50.c | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/char/tpm/tpm_tis_i2c_cr50.c b/drivers/char/tpm/tpm_tis= _i2c_cr50.c index fc6891a0b6936..b48cacacc0664 100644 --- a/drivers/char/tpm/tpm_tis_i2c_cr50.c +++ b/drivers/char/tpm/tpm_tis_i2c_cr50.c @@ -749,8 +749,7 @@ static int tpm_cr50_i2c_probe(struct i2c_client *client) =20 if (client->irq > 0) { rc =3D devm_request_irq(dev, client->irq, tpm_cr50_i2c_int_handler, - IRQF_TRIGGER_FALLING | IRQF_ONESHOT | - IRQF_NO_AUTOEN, + IRQF_TRIGGER_FALLING | IRQF_NO_AUTOEN, dev->driver->name, chip); if (rc < 0) { dev_err(dev, "Failed to probe IRQ %d\n", client->irq); diff --git a/drivers/char/tpm/tpm_tis_spi_cr50.c b/drivers/char/tpm/tpm_tis= _spi_cr50.c index f4937280e9406..32920b4cecfb4 100644 --- a/drivers/char/tpm/tpm_tis_spi_cr50.c +++ b/drivers/char/tpm/tpm_tis_spi_cr50.c @@ -287,7 +287,7 @@ int cr50_spi_probe(struct spi_device *spi) if (spi->irq > 0) { ret =3D devm_request_irq(&spi->dev, spi->irq, cr50_spi_irq_handler, - IRQF_TRIGGER_RISING | IRQF_ONESHOT, + IRQF_TRIGGER_RISING, "cr50_spi", cr50_phy); if (ret < 0) { if (ret =3D=3D -EPROBE_DEFER) --=20 2.51.0 From nobody Sat Feb 7 07:26:00 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 7A2E134E75D; Wed, 28 Jan 2026 09:56:02 +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=1769594165; cv=none; b=AWU9SsV1mE62M+2JCMRozDcBCsbeTi03AvzVBkPhywK/GDuiWFe1lBMmukl2enUimxmH6p6vYskNKYfvt5mA/Gh0K3VK3U/OdEjowkjrB0QG9ARxG5Tjufzlbe7tPCytNuxepcP7ocVa5ytYHYhWmqMJsOxqDdQ+nxaypXliBok= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769594165; c=relaxed/simple; bh=+dmA6tjuDu9OMuyzVE/wA3893pFIfNi5oQusiuwyL2Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YAsVYs+rdlzemkaFyqJ5FRrAbhioyOwNCR3H9vIOZcWX6Jbhx4DRQwcH1xY7ez4MqjV/cZe2FdW57qaAeM/6JlNq9fVp3Q6QcYqeIsb8LGzIAShef2Ni26eA7ZDNA1Wsy4IwKyLiSAPcNl5liTd39DqO6HNIFNmo6qsBbxf8asc= 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=KMRIrF+S; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=HFhEHKSA; 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="KMRIrF+S"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="HFhEHKSA" From: Sebastian Andrzej Siewior DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1769594161; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=bWVHZIGCYNx3Kr7sCnWB+l/A1gDUo1+sunucnDVnC1c=; b=KMRIrF+SKvojWAjYY8KrsVcmzcb+V7/3ETTTLrSA1Wu5CG8TSepe1ZzCPRTqoi0VQ6wkyo 22QibW5MBWc1/TMwWAdXXwe6uAYMqKB/0Uz8MtCJ4oSCl7N2XN/t/W5XiB1D6oit+mOc4H vk2v16GfUYOzBPLzEVsLCZgzal9+8qk/Lp/XXDD11KeFGQOWiK70bXCardoY+Yd2FmaG9l 9wEumIfRRUPXh51sMlOdCjIgQXHoLL9CtiQuV6aHjdc2bP4sU28CBTRrYw6d1++fBjhm8G hptIG1SyYm0qjv2tPSQSgXxnj8WH5x//P2tzwvaXlZmV2qGm352GQoxT9FozJg== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1769594161; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=bWVHZIGCYNx3Kr7sCnWB+l/A1gDUo1+sunucnDVnC1c=; b=HFhEHKSAI/WM6TuTRKlUvEqL8k/eBky+TVDDYsuPc33f4B5Gif9lMHfXON6sh7FCgXq2y8 1+vinG5I8vEAA7Bw== To: linux-kernel@vger.kernel.org Cc: "Thomas Gleixner" , Sebastian Andrzej Siewior , Dinh Nguyen , Borislav Petkov , Tony Luck , linux-edac@vger.kernel.org Subject: [PATCH v2 10/20] EDAC/altera: Remove IRQF_ONESHOT Date: Wed, 28 Jan 2026 10:55:30 +0100 Message-ID: <20260128095540.863589-11-bigeasy@linutronix.de> In-Reply-To: <20260128095540.863589-1-bigeasy@linutronix.de> References: <20260128095540.863589-1-bigeasy@linutronix.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Passing IRQF_ONESHOT ensures that the interrupt source is masked until the secondary (threaded) handler is done. If only a primary handler is used then the flag makes no sense because the interrupt can not fire (again) while its handler is running. The flag also disallows force-threading of the primary handler and the irq-core will warn about this. Remove IRQF_ONESHOT from irqflags. Fixes: a29d64a45eed1 ("EDAC, altera: Add IRQ Flags to disable IRQ while han= dling") Signed-off-by: Sebastian Andrzej Siewior --- Cc: Dinh Nguyen Cc: Borislav Petkov Cc: Tony Luck Cc: linux-edac@vger.kernel.org --- drivers/edac/altera_edac.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/drivers/edac/altera_edac.c b/drivers/edac/altera_edac.c index 0c5b94e64ea15..4edd2088c2db6 100644 --- a/drivers/edac/altera_edac.c +++ b/drivers/edac/altera_edac.c @@ -1563,8 +1563,7 @@ static int altr_portb_setup(struct altr_edac_device_d= ev *device) goto err_release_group_1; } rc =3D devm_request_irq(&altdev->ddev, altdev->sb_irq, - prv->ecc_irq_handler, - IRQF_ONESHOT | IRQF_TRIGGER_HIGH, + prv->ecc_irq_handler, IRQF_TRIGGER_HIGH, ecc_name, altdev); if (rc) { edac_printk(KERN_ERR, EDAC_DEVICE, "PortB SBERR IRQ error\n"); @@ -1587,8 +1586,7 @@ static int altr_portb_setup(struct altr_edac_device_d= ev *device) goto err_release_group_1; } rc =3D devm_request_irq(&altdev->ddev, altdev->db_irq, - prv->ecc_irq_handler, - IRQF_ONESHOT | IRQF_TRIGGER_HIGH, + prv->ecc_irq_handler, IRQF_TRIGGER_HIGH, ecc_name, altdev); if (rc) { edac_printk(KERN_ERR, EDAC_DEVICE, "PortB DBERR IRQ error\n"); @@ -1970,8 +1968,7 @@ static int altr_edac_a10_device_add(struct altr_arria= 10_edac *edac, goto err_release_group1; } rc =3D devm_request_irq(edac->dev, altdev->sb_irq, prv->ecc_irq_handler, - IRQF_ONESHOT | IRQF_TRIGGER_HIGH, - ecc_name, altdev); + IRQF_TRIGGER_HIGH, ecc_name, altdev); if (rc) { edac_printk(KERN_ERR, EDAC_DEVICE, "No SBERR IRQ resource\n"); goto err_release_group1; @@ -1993,7 +1990,7 @@ static int altr_edac_a10_device_add(struct altr_arria= 10_edac *edac, goto err_release_group1; } rc =3D devm_request_irq(edac->dev, altdev->db_irq, prv->ecc_irq_handler, - IRQF_ONESHOT | IRQF_TRIGGER_HIGH, + IRQF_TRIGGER_HIGH, ecc_name, altdev); if (rc) { edac_printk(KERN_ERR, EDAC_DEVICE, "No DBERR IRQ resource\n"); --=20 2.51.0 From nobody Sat Feb 7 07:26:00 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 47F77221DB5; Wed, 28 Jan 2026 09:56:03 +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=1769594165; cv=none; b=kHoWUmEyEyesdC0vnWXwVGiWHW/C0izPMmuiJp/GKFjFkCCe37eYz2FqVCD1oSh8u4Z36XV6YRVC+SUWaqAffnseKtknO5dypkDjAtr0d9dKyPjgMve3riPw8Hsucjbb+KHgRlwI610FtQthPrjTsC5I8hHtbuwkvS/XfvXF3t8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769594165; c=relaxed/simple; bh=VVQR9NpTdo4q2Cx953f9219u6RnrKgHsvrgQl94zgqs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tqf4FIa4H/PYrmKLOhbAqeW3/QcU+U1Bo3VV9LGkeq8XGoH2QFRcp/9ZsqcSnvBsJtx3Ftv8X2GDQiSl0aLG4i82V7507YYxEs2UXDhcy6iOMkgX/jpp3LGMTT05sWMR0SA11bHt6kRYySQK3tA5Hcid4V/C1GJvDK3eEY6LN/M= 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=Zbbc/6N0; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=wU2nMqII; 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="Zbbc/6N0"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="wU2nMqII" From: Sebastian Andrzej Siewior DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1769594161; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=rNcxc6Bq8GztnTvIUU2YUvPzAfrY+gHe0eaodLb2kXc=; b=Zbbc/6N0iPU6WezyxybeNQfqavPtaJsx0zBed31+JUaE0gQgAbZ9JRyqlTL7M0ioRR0zDg f+yZEaDqJ3x1Cvd5mryo3eUnx4PC8GooLB/1jOp0elvkIo4dMYAOK2YUS6Vm6R2vMKc3pN DHphjI0DTAcg8Aw7EgIxzf8LoFime3lYCgR33U9zp8srPkGveigC2Ag4Elz7M2LNboSC1O 4RXpcPNU9q0AnAFdHfYpoMZ1FRWwpteP+5gZFhWbEqmhUfxvW+2bBpelW3sGrCkhweVPNI pu+eP7NSwsbwdAYzIktATL++k3S++XGNOq9l2so3Vb3+AqE3fLB7+h0PO3b0OA== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1769594161; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=rNcxc6Bq8GztnTvIUU2YUvPzAfrY+gHe0eaodLb2kXc=; b=wU2nMqII3zMB133xbB3BubgGcMEUrtg3W2mIKC3ScJqAhkaQNuBi8P9EDtz3diPutYMKW3 gG2hCZZ/guLB8IAw== To: linux-kernel@vger.kernel.org Cc: "Thomas Gleixner" , Sebastian Andrzej Siewior , Greg Kroah-Hartman , Heikki Krogerus , linux-usb@vger.kernel.org Subject: [PATCH v2 11/20] usb: typec: fusb302: Remove IRQF_ONESHOT Date: Wed, 28 Jan 2026 10:55:31 +0100 Message-ID: <20260128095540.863589-12-bigeasy@linutronix.de> In-Reply-To: <20260128095540.863589-1-bigeasy@linutronix.de> References: <20260128095540.863589-1-bigeasy@linutronix.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Passing IRQF_ONESHOT ensures that the interrupt source is masked until the secondary (threaded) handler is done. If only a primary handler is used then the flag makes no sense because the interrupt can not fire (again) while its handler is running. The flag also disallows force-threading of the primary handler and the irq-core will warn about this. Remove IRQF_ONESHOT from irqflags. Fixes: 309b6341d5570 ("usb: typec: fusb302: Revert incorrect threaded irq f= ix") Acked-by: Greg Kroah-Hartman Acked-by: Heikki Krogerus Signed-off-by: Sebastian Andrzej Siewior --- Cc: Heikki Krogerus Cc: Greg Kroah-Hartman Cc: linux-usb@vger.kernel.org --- drivers/usb/typec/tcpm/fusb302.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/usb/typec/tcpm/fusb302.c b/drivers/usb/typec/tcpm/fusb= 302.c index 870a71f953f6c..19ff8217818e7 100644 --- a/drivers/usb/typec/tcpm/fusb302.c +++ b/drivers/usb/typec/tcpm/fusb302.c @@ -1756,8 +1756,7 @@ static int fusb302_probe(struct i2c_client *client) } =20 ret =3D request_irq(chip->gpio_int_n_irq, fusb302_irq_intn, - IRQF_ONESHOT | IRQF_TRIGGER_LOW, - "fsc_interrupt_int_n", chip); + IRQF_TRIGGER_LOW, "fsc_interrupt_int_n", chip); if (ret < 0) { dev_err(dev, "cannot request IRQ for GPIO Int_N, ret=3D%d", ret); goto tcpm_unregister_port; --=20 2.51.0 From nobody Sat Feb 7 07:26:00 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 4995434EEE6; Wed, 28 Jan 2026 09:56:03 +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=1769594165; cv=none; b=noEogXPSF5jivcTEryjNmQdjIocI4NaffkiRjY/eLaDixfE6tTwTHRUNnIkom2sht0oYHzzlKfymsR3kaHgzWvNRJre15wZugy+fu3uM4wT9vemKBrhtEaER4epUOyC/It186jikmiaD0NrjJJZMoeKNrZz+JQBfgJAFYQjSQ2A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769594165; c=relaxed/simple; bh=MV4zJVUPG0TIFSORt9w0lvMQpDktiQKvvR2tzf2EVf0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kHYfq2fUlNnKWZl8v1WMYRKFUGbksFjlnzS/VFgkumoKgOH3QqalL3hKaGZa8e9TU4rOGmrw4NkfCPvpSv7f9Hq5mj05DkQePJj4mE2ET6DXr8kSlmEgXMsUyipjg6igC25tZ2dgn97Fv8V4VOUeiysOWxxySLrT8C/mqvHaOKE= 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=j4+T0TQ8; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=viqeemaI; 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="j4+T0TQ8"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="viqeemaI" From: Sebastian Andrzej Siewior DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1769594161; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=SoKuQzz4G4oLOsx25HsiRvaTcp8ursPrum/xBovvjB0=; b=j4+T0TQ8lW523WIn7s+fI9XJqr/CcU5uvc8oB7c9QV9aqJQXp6va3K3zVDFks9mO8q1nrD IPneTxbqU3gGdZBGh4eA91PQTRILNFoPuUIE4hnfVn3IUcmyuuWejlMBKHLVsvn9KgKJTY YatitFONlGl82CrOOLK7sM2N9WlzwPJ6wBSRBLj7kt5ISwspaX7YH3/zvI/fqEmgZoExpo xsIYBxM+aV17p1OYBLOVryKrdaDvay4F+XOYBemcZoliLVUXnoFkfCkCnGVVEB9dk//pRc meC90TO67we4DAuIq4OCz/XBDJT/34tKuwFUCgUJVaUt+TtrU/kxQG6Ia3hCKA== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1769594161; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=SoKuQzz4G4oLOsx25HsiRvaTcp8ursPrum/xBovvjB0=; b=viqeemaInEUhQsuSncms6muvPmMDkjbulMK6W+g97Kd+7UqvoRvS/cvq+wzZ7ZUITxFPeO taBAp1KyQMorzTDQ== To: linux-kernel@vger.kernel.org Cc: "Thomas Gleixner" , Sebastian Andrzej Siewior , Xianwei Zhao , Yiting Deng , Alexandre Belloni , linux-amlogic@lists.infradead.org, linux-rtc@vger.kernel.org Subject: [PATCH v2 12/20] rtc: amlogic-a4: Remove IRQF_ONESHOT Date: Wed, 28 Jan 2026 10:55:32 +0100 Message-ID: <20260128095540.863589-13-bigeasy@linutronix.de> In-Reply-To: <20260128095540.863589-1-bigeasy@linutronix.de> References: <20260128095540.863589-1-bigeasy@linutronix.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Passing IRQF_ONESHOT ensures that the interrupt source is masked until the secondary (threaded) handler is done. If only a primary handler is used then the flag makes no sense because the interrupt can not fire (again) while its handler is running. The flag also disallows force-threading of the primary handler and the irq-core will warn about this. Remove IRQF_ONESHOT from irqflags. Fixes: c89ac9182ee29 ("rtc: support for the Amlogic on-chip RTC") Reviewed-by: Xianwei Zhao Signed-off-by: Sebastian Andrzej Siewior --- Cc: Yiting Deng Cc: Xianwei Zhao Cc: Alexandre Belloni Cc: linux-amlogic@lists.infradead.org Cc: linux-rtc@vger.kernel.org --- drivers/rtc/rtc-amlogic-a4.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/rtc/rtc-amlogic-a4.c b/drivers/rtc/rtc-amlogic-a4.c index 123fb372fc9fe..50938c35af36a 100644 --- a/drivers/rtc/rtc-amlogic-a4.c +++ b/drivers/rtc/rtc-amlogic-a4.c @@ -369,7 +369,7 @@ static int aml_rtc_probe(struct platform_device *pdev) return PTR_ERR(rtc->rtc_dev); =20 ret =3D devm_request_irq(dev, rtc->irq, aml_rtc_handler, - IRQF_ONESHOT, "aml-rtc alarm", rtc); + 0, "aml-rtc alarm", rtc); if (ret) { dev_err_probe(dev, ret, "IRQ%d request failed, ret =3D %d\n", rtc->irq, ret); --=20 2.51.0 From nobody Sat Feb 7 07:26:00 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 DC91334EF0D; Wed, 28 Jan 2026 09:56:03 +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=1769594166; cv=none; b=mZnQASv82P9yP9zEVz4XJ4CkycUPHLKrnBGDaQPT6y5+TZitrd7Bhc5i89BsMaGvQP+6lZqdZLHis8YOK9n7nQ0JJeV+iw6i2N37nLvuSSrn3DvxJU+R5wEYuqOqXFnInPl+H/1LRWZcVMxlT0hU9c2z1ze1Dk0hj+sBUyHsOiY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769594166; c=relaxed/simple; bh=Tv9VtT/tuyIkVlqTZedEc7eEI3ttMxjU9nyE/1eczKA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CHRuWLRBBfsuTmbRIGKnDIxvtY/v1owesTtkIdupHaCqAF0h0KUAaUWSsPPGBGW6/UwNQbfglloNjfBPtXKq61KVCqDCXa8dVqzdi8nsfP22s37VBjnXldw+5UYyKpuHtIP0OwZXVRq9ha8WU3usN+EkDfppFlh7T4VBjbg8M1E= 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=QrsW2B9m; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=Q9zEE5Ok; 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="QrsW2B9m"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="Q9zEE5Ok" From: Sebastian Andrzej Siewior DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1769594162; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=y1CkU/HVc2ibILKVdI+xG85Mza9wEmLT+9RFRhOmAis=; b=QrsW2B9mzvVSeDxdgZ58k37uaTiRsEIcoBAj/3gtSMNU7mee/7YgMKb7tLtC2+9pt+ZsCp /Qlw7YGtu+D8w9zI/jfeR02K7jkwCwMNWveGSoXd/HJOxdI03H2J/JQnRpe04zb6hVmOLU 6ASRhGEHkhKPaTQohUyYsml+d/vho4+pvTGLFB4mQzQVPIPUPCaLO+RLz6zjpV63cEsMTQ xPtSg7nTryjHvNtvH0FHABPelcg74vSzXfNc+gj5f4lI7wc1/pPrrp58ajIcLLJOSztS03 WgEci4Jq4kCqDrMLhEueefUgThJw36YmrOP+31eZ8FgG1BJYks7C45Sn47bQgQ== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1769594162; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=y1CkU/HVc2ibILKVdI+xG85Mza9wEmLT+9RFRhOmAis=; b=Q9zEE5OkRXme6lpHRO+aeYBAG308JfFrDu40HCchk0mHzXsOfjeI4oWDURKNazVljzm7TQ 2JIz0EXhWlqaWlAg== To: linux-kernel@vger.kernel.org Cc: "Thomas Gleixner" , Sebastian Andrzej Siewior , Amit Kucheria , Thara Gopinath , "Rafael J. Wysocki" , Daniel Lezcano , Zhang Rui , Lukasz Luba , linux-pm@vger.kernel.org, linux-arm-msm@vger.kernel.org Subject: [PATCH v2 13/20] thermal/qcom/lmh: Replace IRQF_ONESHOT with IRQF_NO_THREAD Date: Wed, 28 Jan 2026 10:55:33 +0100 Message-ID: <20260128095540.863589-14-bigeasy@linutronix.de> In-Reply-To: <20260128095540.863589-1-bigeasy@linutronix.de> References: <20260128095540.863589-1-bigeasy@linutronix.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Passing IRQF_ONESHOT ensures that the interrupt source is masked until the secondary (threaded) handler is done. If only a primary handler is used then the flag makes no sense because the interrupt can not fire (again) while its handler is running. The flag also disallows force-threading of the primary handler and the irq-core will warn about this. The intention here was probably not allowing forced-threading. Replace IRQF_ONESHOT with IRQF_NO_THREAD. Signed-off-by: Sebastian Andrzej Siewior --- Cc: Amit Kucheria Cc: Thara Gopinath Cc: Rafael J. Wysocki Cc: Daniel Lezcano Cc: Zhang Rui Cc: Lukasz Luba Cc: linux-pm@vger.kernel.org Cc: linux-arm-msm@vger.kernel.org --- drivers/thermal/qcom/lmh.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/thermal/qcom/lmh.c b/drivers/thermal/qcom/lmh.c index ddadcfada5136..3d072b7a4a6dd 100644 --- a/drivers/thermal/qcom/lmh.c +++ b/drivers/thermal/qcom/lmh.c @@ -220,7 +220,7 @@ static int lmh_probe(struct platform_device *pdev) /* Disable the irq and let cpufreq enable it when ready to handle the int= errupt */ irq_set_status_flags(lmh_data->irq, IRQ_NOAUTOEN); ret =3D devm_request_irq(dev, lmh_data->irq, lmh_handle_irq, - IRQF_ONESHOT | IRQF_NO_SUSPEND, + IRQF_NO_THREAD | IRQF_NO_SUSPEND, "lmh-irq", lmh_data); if (ret) { dev_err(dev, "Error %d registering irq %x\n", ret, lmh_data->irq); --=20 2.51.0 From nobody Sat Feb 7 07:26:00 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 9F5F634F24B; Wed, 28 Jan 2026 09:56:04 +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=1769594167; cv=none; b=mcCvzCIERbZ2IPjqM/7OZeAgXLyBFhgKOEdcOsqzG22sMrQy/xdsc6Bbtqig9hyKPtRhqTOsVRq52UMFEA9OfupHRSUz6A/9B4mfUjZRjIeY3CEl7A2VQoPunC2dExYSWkNjMeaZe3KFf+i39EQDBXhCceM4I9XNqTb9mVQzMiU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769594167; c=relaxed/simple; bh=NhhXrFK1K8rrvFD9LU+XjJEJWOQEKbr2bMPl1LOz9FM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=awbJEs7/GEX8c56uRKCfWRt6CV0AGDPlNb4cBwaVlRuLoU3CKzcmT8jL2G6TKVJmnRHFROumtzYQavcO40NoxLrk3J+vICv468doDMdGSqL/ObyzbiSgTpb63nG2T6znbPMrqk7tgy2sOy4bgcajqUOsA+nFUQ8FcLsMmil4wdI= 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=eJdzLYiT; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=qqmnRDX1; 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="eJdzLYiT"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="qqmnRDX1" From: Sebastian Andrzej Siewior DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1769594162; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Rx9PaGhN8XCDO/Lj9TkDnHhjpxVfK1xRGoM2y5dZLgE=; b=eJdzLYiTOtn+behbDASDvueRmFhJUiXAo+sbMvKy9PSpe32UA3IbaBdr/H7TAKt4s3eWQJ 1mkWb4hdMRlei4dr0axaMIynjo+I0gBnEqAV3TGy/cjBrUULLY2ZRS69zNNuKt3Jr1cfr3 5Ra8A9w0R+jHBIi2z36oQQHU9VTdYbdV9E1c5XhvSUXnZh46O0dNAl1OeYF7t5dZUUqXjx 5dnIq3GL2QQ9E6eDPJHKVuafdgH9AnA7qsVHvjNd0U1UwZanv13NHRToDMst/ExUJA3EYh 21D+AMz6KZ60lTUfrrFi0b7s9ntEETBPWWmDI6ue5iSR07R92uOD45ycSrmY1g== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1769594162; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Rx9PaGhN8XCDO/Lj9TkDnHhjpxVfK1xRGoM2y5dZLgE=; b=qqmnRDX1e3Qb4lsgp8mVBqAc1EG132V9zjFZs7OsjSY4PWQweBYfL+HNzwKopevros2T4C UxBPiSEg/MDzVTBQ== To: linux-kernel@vger.kernel.org Cc: "Thomas Gleixner" , Sebastian Andrzej Siewior , Jonathan Cameron , Will Deacon , Mark Rutland , linux-cxl@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v2 14/20] perf/cxlpmu: Replace IRQF_ONESHOT with IRQF_NO_THREAD Date: Wed, 28 Jan 2026 10:55:34 +0100 Message-ID: <20260128095540.863589-15-bigeasy@linutronix.de> In-Reply-To: <20260128095540.863589-1-bigeasy@linutronix.de> References: <20260128095540.863589-1-bigeasy@linutronix.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Passing IRQF_ONESHOT ensures that the interrupt source is masked until the secondary (threaded) handler is done. If only a primary handler is used then the flag makes no sense because the interrupt can not fire (again) while its handler is running. The flag also disallows force-threading of the primary handler and the irq-core will warn about this. The intention here was probably not allowing forced-threading. Replace IRQF_ONESHOT with IRQF_NO_THREAD. Reviewed-by: Jonathan Cameron Signed-off-by: Sebastian Andrzej Siewior --- Cc: Jonathan Cameron Cc: Will Deacon Cc: Mark Rutland Cc: linux-cxl@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org --- drivers/perf/cxl_pmu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/perf/cxl_pmu.c b/drivers/perf/cxl_pmu.c index d094030220bf2..68a54d97d2a8a 100644 --- a/drivers/perf/cxl_pmu.c +++ b/drivers/perf/cxl_pmu.c @@ -877,7 +877,7 @@ static int cxl_pmu_probe(struct device *dev) if (!irq_name) return -ENOMEM; =20 - rc =3D devm_request_irq(dev, irq, cxl_pmu_irq, IRQF_SHARED | IRQF_ONESHOT, + rc =3D devm_request_irq(dev, irq, cxl_pmu_irq, IRQF_SHARED | IRQF_NO_THRE= AD, irq_name, info); if (rc) return rc; --=20 2.51.0 From nobody Sat Feb 7 07:26:00 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 9F85634F24D for ; Wed, 28 Jan 2026 09:56:04 +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=1769594167; cv=none; b=G6t5iAhd23JKpJ7etq1qo/VROrR2UezwMb3hZn6L0aCEuCXRwG7lSWjyhysWtgwd9h11RSTYhYY6zk5QzXlokHwijXa5lYK3JBNd4hDO9WUU3sITe4HUUSEeConyaIKpZFdkpT1uual1bI09pY1J0izZ1VMwOLTVj47D4er8vhY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769594167; c=relaxed/simple; bh=4ReMl82RqipyTUSEdc7YEI1timhoJg+iviW3wSo7Lps=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tzUJUV4sb+QJXYezSFMEuIDGdCaSYjsxQv0BoqaP/gEWgzHt/fKszwkWM6lUSj34xtq+QbOTvbWPOmw42RFulOlulXYaT8YJgF72PY9nUGJ3ASEShS2F8ltJcRhxza4KPvfPnPwKNu+Ah4OnQF/G3u42akeqwUtGKx/kW3hLh8I= 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=z54dZ4p0; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=C9QQo2sb; 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="z54dZ4p0"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="C9QQo2sb" From: Sebastian Andrzej Siewior DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1769594162; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=UjVnojV1go+ZhPEqkbYPb3kyNLwRxEkLwFz7kKFGU4M=; b=z54dZ4p07rsUzj6BmhrhG7EGh21JuSNvw3LHICD8VNZB/LGKgLczLuRF26E+KDmO3AbuXM qiaW/XyKUF/c803K4q9QmxLEqAGkf32OVqcwIsLC7Zjr+FTc/P/mMoaO25VWGERFr9qCg9 VLTlXXTgdrLa+1XsCpMohj9gdjetCPs0cZcnI8qEBBxy/mP/UotAYywXIPHEOCP/NTJNLu uT5HhxjLkT9MkBg5KB+BlFtia76UrZ/Xsp3i7eL1mE0Lv81wZ/uqxwx2LU045IhpAihixj xLNPIkDmNcGZRNQPQ68H4hvF6pGnRVlJbqivjmw8MBqMHku0HUExRDieqW5zqg== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1769594162; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=UjVnojV1go+ZhPEqkbYPb3kyNLwRxEkLwFz7kKFGU4M=; b=C9QQo2sbQPG0k1UWIP9QHQQYpmG02QiULfX8Ni3tyyVK4Aqwr9DXkQ7fdLI4mbWO+bsusK 18Ynm/lCb/aHKICQ== To: linux-kernel@vger.kernel.org Cc: "Thomas Gleixner" , Sebastian Andrzej Siewior , Charles Keepax , Lee Jones , Andy Shevchenko , patches@opensource.cirrus.com, Mark Brown Subject: [PATCH v2 15/20] mfd: wm8350-core: Use IRQF_ONESHOT Date: Wed, 28 Jan 2026 10:55:35 +0100 Message-ID: <20260128095540.863589-16-bigeasy@linutronix.de> In-Reply-To: <20260128095540.863589-1-bigeasy@linutronix.de> References: <20260128095540.863589-1-bigeasy@linutronix.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Using a threaded interrupt without a dedicated primary handler mandates the IRQF_ONESHOT flag to mask the interrupt source while the threaded handler is active. Otherwise the interrupt can fire again before the threaded handler had a chance to run. Mark explained that this should not happen with this hardware since it is a slow irqchip which is behind an I2C/ SPI bus but the IRQ-core will refuse to accept such a handler. Set IRQF_ONESHOT so the interrupt source is masked until the secondary handler is done. Fixes: 1c6c69525b40e ("genirq: Reject bogus threaded irq requests") Reviewed-by: Charles Keepax Signed-off-by: Sebastian Andrzej Siewior Reviewed-by: Andy Shevchenko --- Cc: Lee Jones Cc: Andy Shevchenko Cc: patches@opensource.cirrus.com Cc: Mark Brown --- include/linux/mfd/wm8350/core.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/mfd/wm8350/core.h b/include/linux/mfd/wm8350/cor= e.h index 5f70d3b5d1b1a..097ef4dfcdac8 100644 --- a/include/linux/mfd/wm8350/core.h +++ b/include/linux/mfd/wm8350/core.h @@ -667,7 +667,7 @@ static inline int wm8350_register_irq(struct wm8350 *wm= 8350, int irq, return -ENODEV; =20 return request_threaded_irq(irq + wm8350->irq_base, NULL, - handler, flags, name, data); + handler, flags | IRQF_ONESHOT, name, data); } =20 static inline void wm8350_free_irq(struct wm8350 *wm8350, int irq, void *d= ata) --=20 2.51.0 From nobody Sat Feb 7 07:26:00 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 AF22E34F250; Wed, 28 Jan 2026 09:56:04 +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=1769594167; cv=none; b=pEatAAUQipwRrLc1oUa0O16W9BtbNO3VJfRqkkBtwJNyeK7cQmgoLYuF+BaYi3+akHSfWmU91+mVXuyVIEBMFQNlLQU7uT5LmlozFpIEcWrav8McmFpIv+1CIkmPSCEDxh2IZZqifJRV0pT9Vc3Q6DNHEWkamzrK7eoqixtZnGo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769594167; c=relaxed/simple; bh=phux7thwKtdZtkvXcZ2DoPmH1TZxv8ZEzey1TPcAu3c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=kb0HX0MIhQmhSSB9ACzCKnpGk/LBiupJziTeIDVTzG9ZHMIq3/Nzz4mv4Y54lu+IzibNDn72uFFya2766oeLpksT1wubx5aiR2j8ZiqCDzoTLdk0ghIyfwX0qSTmvzsU1pDffNvSMez/u9vqzQSqYsgkKAo1ZrNPSx8oYQPmj7s= 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=zNayfIEJ; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=ekQ8KL/s; 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="zNayfIEJ"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="ekQ8KL/s" From: Sebastian Andrzej Siewior DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1769594163; h=from:from: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=Ja9nqRg1OSWpmOUqkXhxSrU++h130vgylolwaiBkV1M=; b=zNayfIEJ6xW2SFTVIOCfMFJWX57nz4zk3722jRTmpuQhmOYoxgTurKqgo4c0H/ypopXHPO x8C71WHlxVig0KCBX/+ffmDRZrR06RFTRPjpNW/ZksOwexLSaPF7P3qkpewFfdxnIXXHku TZU5lxm6za9JH7BibnCfuIpJ5YdT20G02Wl1tfYCd2F/doEv3DFNbXv5iHVlbkAzyaMlSD AqO+zA9jef/AeXyr+brrl8c7f6iy1oQLLu3hU5iyKjEs1ntMhtBQdz4L5rGI3qHPvpFMp0 68klIkohsxgSErtb9cccTNzRlBgzQlc+1vud6NHXWlITuvvO1uxegoXkTlsJJw== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1769594163; h=from:from: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=Ja9nqRg1OSWpmOUqkXhxSrU++h130vgylolwaiBkV1M=; b=ekQ8KL/sHRC/JmBS5p4dfPTJSrJFG9walTf76o7ldEwTSw+Hr0xFZiqHQhQzg8DTSf68Id p2Fx7IyCnqTkpuAg== To: linux-kernel@vger.kernel.org Cc: "Thomas Gleixner" , Sebastian Andrzej Siewior , Jonathan Cameron , David Lechner , =?UTF-8?q?Nuno=20S=C3=A1?= , Andy Shevchenko , Lars-Peter Clausen , Michael Hennerich , linux-iio@vger.kernel.org Subject: [PATCH v2 16/20] iio: Use IRQF_NO_THREAD Date: Wed, 28 Jan 2026 10:55:36 +0100 Message-ID: <20260128095540.863589-17-bigeasy@linutronix.de> In-Reply-To: <20260128095540.863589-1-bigeasy@linutronix.de> References: <20260128095540.863589-1-bigeasy@linutronix.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The interrupt handler iio_trigger_generic_data_rdy_poll() will invoke other interrupt handler and this supposed to happen from within the hardirq. Use IRQF_NO_THREAD to forbid forced-threading. Signed-off-by: Sebastian Andrzej Siewior Reviewed-by: Andy Shevchenko --- Cc: Jonathan Cameron Cc: David Lechner Cc: Nuno S=C3=A1 Cc: Andy Shevchenko Cc: Lars-Peter Clausen Cc: Michael Hennerich Cc: linux-iio@vger.kernel.org --- drivers/iio/accel/bma180.c | 5 +++-- drivers/iio/adc/ad7766.c | 2 +- drivers/iio/gyro/itg3200_buffer.c | 8 +++----- drivers/iio/light/si1145.c | 2 +- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/drivers/iio/accel/bma180.c b/drivers/iio/accel/bma180.c index 8925f5279e627..7bc6761f51354 100644 --- a/drivers/iio/accel/bma180.c +++ b/drivers/iio/accel/bma180.c @@ -986,8 +986,9 @@ static int bma180_probe(struct i2c_client *client) } =20 ret =3D devm_request_irq(dev, client->irq, - iio_trigger_generic_data_rdy_poll, IRQF_TRIGGER_RISING, - "bma180_event", data->trig); + iio_trigger_generic_data_rdy_poll, + IRQF_TRIGGER_RISING | IRQF_NO_THREAD, + "bma180_event", data->trig); if (ret) { dev_err(dev, "unable to request IRQ\n"); goto err_trigger_free; diff --git a/drivers/iio/adc/ad7766.c b/drivers/iio/adc/ad7766.c index 4d570383ef025..1e6bfe8765ab3 100644 --- a/drivers/iio/adc/ad7766.c +++ b/drivers/iio/adc/ad7766.c @@ -261,7 +261,7 @@ static int ad7766_probe(struct spi_device *spi) * don't enable the interrupt to avoid extra load on the system */ ret =3D devm_request_irq(&spi->dev, spi->irq, ad7766_irq, - IRQF_TRIGGER_FALLING | IRQF_NO_AUTOEN, + IRQF_TRIGGER_FALLING | IRQF_NO_AUTOEN | IRQF_NO_THREAD, dev_name(&spi->dev), ad7766->trig); if (ret < 0) diff --git a/drivers/iio/gyro/itg3200_buffer.c b/drivers/iio/gyro/itg3200_b= uffer.c index a624400a239cb..cf97adfa97274 100644 --- a/drivers/iio/gyro/itg3200_buffer.c +++ b/drivers/iio/gyro/itg3200_buffer.c @@ -118,11 +118,9 @@ int itg3200_probe_trigger(struct iio_dev *indio_dev) if (!st->trig) return -ENOMEM; =20 - ret =3D request_irq(st->i2c->irq, - &iio_trigger_generic_data_rdy_poll, - IRQF_TRIGGER_RISING, - "itg3200_data_rdy", - st->trig); + ret =3D request_irq(st->i2c->irq, &iio_trigger_generic_data_rdy_poll, + IRQF_TRIGGER_RISING | IRQF_NO_THREAD, + "itg3200_data_rdy", st->trig); if (ret) goto error_free_trig; =20 diff --git a/drivers/iio/light/si1145.c b/drivers/iio/light/si1145.c index f8eb251eca8dc..ef0abc4499b74 100644 --- a/drivers/iio/light/si1145.c +++ b/drivers/iio/light/si1145.c @@ -1248,7 +1248,7 @@ static int si1145_probe_trigger(struct iio_dev *indio= _dev) =20 ret =3D devm_request_irq(&client->dev, client->irq, iio_trigger_generic_data_rdy_poll, - IRQF_TRIGGER_FALLING, + IRQF_TRIGGER_FALLING | IRQF_NO_THREAD, "si1145_irq", trig); if (ret < 0) { --=20 2.51.0 From nobody Sat Feb 7 07:26:00 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 9C01434DB4E; Wed, 28 Jan 2026 09:56:05 +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=1769594169; cv=none; b=K/gBD9iIYIepLvdUjOwYmYTF1Myn/QISSmtSAD9H7z0Bz0fTXfx9S0NkQAIKMkkDIIlsk8X5ARyamGZVCC3kOhyGKZDbcWB4Ldv1SUpJFmT8ZRQATEDDMQ+wEi/C0PF6nSlXaALAuUEX9S81i2oen7K0O+LiA+ZG1+x4feKUPcU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769594169; c=relaxed/simple; bh=tN18CMCmgx8USLEY2ZssO283/07WFCeGSige6eliaKU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=UTBSwn49NziOxgnZoCaEQ5apd4d9y3CjrGzpT0xkr6WynU3ykCzAzG7sTlD3vLcnAGAqwj7AKTsNGSuHcn3sugSbKlUOQ+8U3PpeSu7bIsGAvdqgA/y0idZLVrxwElmn9oEOzHXkeHn/PLUgeqZqAFYnRkMj52t/NBxmypEceoI= 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=APGDBp0F; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=sIU6tFYV; 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="APGDBp0F"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="sIU6tFYV" From: Sebastian Andrzej Siewior DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1769594163; h=from:from: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=Pi3WzHbsaRUWqkk7n9RAAPJIWl9CTCMgd8j56a+oU+4=; b=APGDBp0F3aZ5ff7ebF4jNL3+xZGQhisVYYAcrKi01IUrmc1z3Vk9FSBejVpWKFkLI54OF6 LqanMRP5DrycWL8lGnJq3RQx03e507DuzfC4iNUEkTJ4m0Rg4aVGpJ3Kdlb9933U3flTeq /G3dcW4aj/Pm2jeQFsg9HqCG+ljbGSySCtvZJRFhCttfZfP55O51SiWH2HYrZSOj6fLdXg 56HMkb+hrnYVRC8DEj7uGvDYoos9Pfx7RczzknZNHBJEW9/sNPZNZI6LNj0wW/YCyufQN3 me4+xehl9H6+XvChVjSFKLBkgTCMHspeDQgk8ayJtPdL7BIeho50iS16xglRRg== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1769594163; h=from:from: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=Pi3WzHbsaRUWqkk7n9RAAPJIWl9CTCMgd8j56a+oU+4=; b=sIU6tFYVbDClMPK2Nm1RQrJKmBrDD6cSbiJIjkIgHBndEL3eNonq8tAJzS2ad+Z7dSENQy 6LHy2EFtQgxx0sDw== To: linux-kernel@vger.kernel.org Cc: "Thomas Gleixner" , Sebastian Andrzej Siewior , Andy Shevchenko , Marcus Folkesson , Lars-Peter Clausen , Michael Hennerich , Puranjay Mohan , Jonathan Cameron , David Lechner , =?UTF-8?q?Nuno=20S=C3=A1?= , Andy Shevchenko , Marcelo Schmitt , Kent Gustavsson , Gustavo Silva , Nishant Malpani , linux-iio@vger.kernel.org Subject: [PATCH v2 17/20] iio: Replace IRQF_ONESHOT with IRQF_NO_THREAD Date: Wed, 28 Jan 2026 10:55:37 +0100 Message-ID: <20260128095540.863589-18-bigeasy@linutronix.de> In-Reply-To: <20260128095540.863589-1-bigeasy@linutronix.de> References: <20260128095540.863589-1-bigeasy@linutronix.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Passing IRQF_ONESHOT ensures that the interrupt source is masked until the secondary (threaded) handler is done. If only a primary handler is used then the flag makes no sense because the interrupt can not fire (again) while its handler is running. The flag also disallows force-threading of the primary handler and the irq-core will warn about this. The intention here was probably not allowing forced-threading for handlers such as iio_trigger_generic_data_rdy_poll() will intends to invoke hard-interrupt handlers. Replace IRQF_ONESHOT with IRQF_NO_THREAD. Reviewed-by: Andy Shevchenko Reviewed-by: Marcus Folkesson Signed-off-by: Sebastian Andrzej Siewior --- Cc: Lars-Peter Clausen Cc: Michael Hennerich Cc: Puranjay Mohan Cc: Jonathan Cameron Cc: David Lechner Cc: Nuno S=C3=A1 Cc: Andy Shevchenko Cc: Marcelo Schmitt Cc: Marcus Folkesson Cc: Kent Gustavsson Cc: Gustavo Silva Cc: Nishant Malpani Cc: linux-iio@vger.kernel.org --- drivers/iio/accel/adxl355_core.c | 5 ++--- drivers/iio/accel/adxl372.c | 9 ++++----- drivers/iio/accel/mxc4005.c | 11 ++++------- drivers/iio/accel/stk8ba50.c | 11 ++++------- drivers/iio/adc/ad4170-4.c | 2 +- drivers/iio/adc/ad7768-1.c | 5 ++--- drivers/iio/adc/ad7779.c | 2 +- drivers/iio/adc/mcp3911.c | 2 +- drivers/iio/adc/ti-ads131e08.c | 2 +- drivers/iio/chemical/ens160_core.c | 9 +++------ drivers/iio/gyro/adxrs290.c | 2 +- drivers/iio/health/afe4403.c | 9 ++++----- drivers/iio/health/afe4404.c | 9 ++++----- drivers/iio/magnetometer/bmc150_magn.c | 9 +++------ drivers/iio/pressure/dlhl60d.c | 7 +++---- drivers/iio/temperature/tmp006.c | 10 ++++------ 16 files changed, 42 insertions(+), 62 deletions(-) diff --git a/drivers/iio/accel/adxl355_core.c b/drivers/iio/accel/adxl355_c= ore.c index 5fc7f814b9077..1c1d64d5cbcb2 100644 --- a/drivers/iio/accel/adxl355_core.c +++ b/drivers/iio/accel/adxl355_core.c @@ -768,9 +768,8 @@ static int adxl355_probe_trigger(struct iio_dev *indio_= dev, int irq) data->dready_trig->ops =3D &adxl355_trigger_ops; iio_trigger_set_drvdata(data->dready_trig, indio_dev); =20 - ret =3D devm_request_irq(data->dev, irq, - &iio_trigger_generic_data_rdy_poll, - IRQF_ONESHOT, "adxl355_irq", data->dready_trig); + ret =3D devm_request_irq(data->dev, irq, &iio_trigger_generic_data_rdy_po= ll, + IRQF_NO_THREAD, "adxl355_irq", data->dready_trig); if (ret) return dev_err_probe(data->dev, ret, "request irq %d failed\n", irq); diff --git a/drivers/iio/accel/adxl372.c b/drivers/iio/accel/adxl372.c index 46d518a2a0291..2f6aa52aeba51 100644 --- a/drivers/iio/accel/adxl372.c +++ b/drivers/iio/accel/adxl372.c @@ -1247,11 +1247,10 @@ int adxl372_probe(struct device *dev, struct regmap= *regmap, =20 indio_dev->trig =3D iio_trigger_get(st->dready_trig); =20 - ret =3D devm_request_threaded_irq(dev, st->irq, - iio_trigger_generic_data_rdy_poll, - NULL, - IRQF_TRIGGER_RISING | IRQF_ONESHOT, - indio_dev->name, st->dready_trig); + ret =3D devm_request_irq(dev, st->irq, + iio_trigger_generic_data_rdy_poll, + IRQF_TRIGGER_RISING | IRQF_NO_THREAD, + indio_dev->name, st->dready_trig); if (ret < 0) return ret; } diff --git a/drivers/iio/accel/mxc4005.c b/drivers/iio/accel/mxc4005.c index ac973d871c8bb..a2c3cf13d0981 100644 --- a/drivers/iio/accel/mxc4005.c +++ b/drivers/iio/accel/mxc4005.c @@ -486,13 +486,10 @@ static int mxc4005_probe(struct i2c_client *client) if (!data->dready_trig) return -ENOMEM; =20 - ret =3D devm_request_threaded_irq(&client->dev, client->irq, - iio_trigger_generic_data_rdy_poll, - NULL, - IRQF_TRIGGER_FALLING | - IRQF_ONESHOT, - "mxc4005_event", - data->dready_trig); + ret =3D devm_request_irq(&client->dev, client->irq, + iio_trigger_generic_data_rdy_poll, + IRQF_TRIGGER_FALLING | IRQF_NO_THREAD, + "mxc4005_event", data->dready_trig); if (ret) { dev_err(&client->dev, "failed to init threaded irq\n"); diff --git a/drivers/iio/accel/stk8ba50.c b/drivers/iio/accel/stk8ba50.c index 384f1fbcbcb37..a9ff2a273fe1c 100644 --- a/drivers/iio/accel/stk8ba50.c +++ b/drivers/iio/accel/stk8ba50.c @@ -428,13 +428,10 @@ static int stk8ba50_probe(struct i2c_client *client) } =20 if (client->irq > 0) { - ret =3D devm_request_threaded_irq(&client->dev, client->irq, - stk8ba50_data_rdy_trig_poll, - NULL, - IRQF_TRIGGER_RISING | - IRQF_ONESHOT, - "stk8ba50_event", - indio_dev); + ret =3D devm_request_irq(&client->dev, client->irq, + stk8ba50_data_rdy_trig_poll, + IRQF_TRIGGER_RISING | IRQF_NO_THREAD, + "stk8ba50_event", indio_dev); if (ret < 0) { dev_err(&client->dev, "request irq %d failed\n", client->irq); diff --git a/drivers/iio/adc/ad4170-4.c b/drivers/iio/adc/ad4170-4.c index efaed92191f1b..82205bfae531e 100644 --- a/drivers/iio/adc/ad4170-4.c +++ b/drivers/iio/adc/ad4170-4.c @@ -2973,7 +2973,7 @@ static int ad4170_probe(struct spi_device *spi) =20 if (spi->irq) { ret =3D devm_request_irq(dev, spi->irq, &ad4170_irq_handler, - IRQF_ONESHOT, indio_dev->name, indio_dev); + IRQF_NO_THREAD, indio_dev->name, indio_dev); if (ret) return ret; =20 diff --git a/drivers/iio/adc/ad7768-1.c b/drivers/iio/adc/ad7768-1.c index d96802b7847a6..84ce23c8e5782 100644 --- a/drivers/iio/adc/ad7768-1.c +++ b/drivers/iio/adc/ad7768-1.c @@ -1394,9 +1394,8 @@ static int ad7768_probe(struct spi_device *spi) if (ret) return ret; =20 - ret =3D devm_request_irq(&spi->dev, spi->irq, - &ad7768_interrupt, - IRQF_TRIGGER_RISING | IRQF_ONESHOT, + ret =3D devm_request_irq(&spi->dev, spi->irq, &ad7768_interrupt, + IRQF_TRIGGER_RISING | IRQF_NO_THREAD, indio_dev->name, indio_dev); if (ret) return ret; diff --git a/drivers/iio/adc/ad7779.c b/drivers/iio/adc/ad7779.c index aac5049c9a07b..695cc79e78da5 100644 --- a/drivers/iio/adc/ad7779.c +++ b/drivers/iio/adc/ad7779.c @@ -840,7 +840,7 @@ static int ad7779_setup_without_backend(struct ad7779_s= tate *st, struct iio_dev iio_trigger_set_drvdata(st->trig, st); =20 ret =3D devm_request_irq(dev, st->spi->irq, iio_trigger_generic_data_rdy_= poll, - IRQF_ONESHOT | IRQF_NO_AUTOEN, indio_dev->name, + IRQF_NO_THREAD | IRQF_NO_AUTOEN, indio_dev->name, st->trig); if (ret) return dev_err_probe(dev, ret, "request IRQ %d failed\n", diff --git a/drivers/iio/adc/mcp3911.c b/drivers/iio/adc/mcp3911.c index a6f21791c6859..ddc3721f3f688 100644 --- a/drivers/iio/adc/mcp3911.c +++ b/drivers/iio/adc/mcp3911.c @@ -815,7 +815,7 @@ static int mcp3911_probe(struct spi_device *spi) * don't enable the interrupt to avoid extra load on the system. */ ret =3D devm_request_irq(dev, spi->irq, &iio_trigger_generic_data_rdy_po= ll, - IRQF_NO_AUTOEN | IRQF_ONESHOT, + IRQF_NO_AUTOEN | IRQF_NO_THREAD, indio_dev->name, adc->trig); if (ret) return ret; diff --git a/drivers/iio/adc/ti-ads131e08.c b/drivers/iio/adc/ti-ads131e08.c index c9a20024d6b11..a585621b0bc30 100644 --- a/drivers/iio/adc/ti-ads131e08.c +++ b/drivers/iio/adc/ti-ads131e08.c @@ -827,7 +827,7 @@ static int ads131e08_probe(struct spi_device *spi) if (spi->irq) { ret =3D devm_request_irq(&spi->dev, spi->irq, ads131e08_interrupt, - IRQF_TRIGGER_FALLING | IRQF_ONESHOT, + IRQF_TRIGGER_FALLING | IRQF_NO_THREAD, spi->dev.driver->name, indio_dev); if (ret) return dev_err_probe(&spi->dev, ret, diff --git a/drivers/iio/chemical/ens160_core.c b/drivers/iio/chemical/ens1= 60_core.c index 86bde4a91bf7e..bbc96c4c62838 100644 --- a/drivers/iio/chemical/ens160_core.c +++ b/drivers/iio/chemical/ens160_core.c @@ -316,12 +316,9 @@ static int ens160_setup_trigger(struct iio_dev *indio_= dev, int irq) =20 indio_dev->trig =3D iio_trigger_get(trig); =20 - ret =3D devm_request_threaded_irq(dev, irq, - iio_trigger_generic_data_rdy_poll, - NULL, - IRQF_ONESHOT, - indio_dev->name, - indio_dev->trig); + ret =3D devm_request_irq(dev, irq, iio_trigger_generic_data_rdy_poll, + IRQF_NO_THREAD, indio_dev->name, + indio_dev->trig); if (ret) return dev_err_probe(dev, ret, "failed to request irq\n"); =20 diff --git a/drivers/iio/gyro/adxrs290.c b/drivers/iio/gyro/adxrs290.c index 8fcb41f45baac..3efe385ebedc4 100644 --- a/drivers/iio/gyro/adxrs290.c +++ b/drivers/iio/gyro/adxrs290.c @@ -597,7 +597,7 @@ static int adxrs290_probe_trigger(struct iio_dev *indio= _dev) =20 ret =3D devm_request_irq(&st->spi->dev, st->spi->irq, &iio_trigger_generic_data_rdy_poll, - IRQF_ONESHOT, "adxrs290_irq", st->dready_trig); + IRQF_NO_THREAD, "adxrs290_irq", st->dready_trig); if (ret < 0) return dev_err_probe(&st->spi->dev, ret, "request irq %d failed\n", st->spi->irq); diff --git a/drivers/iio/health/afe4403.c b/drivers/iio/health/afe4403.c index 0e5a512e3bb8f..d358f4d5e5da8 100644 --- a/drivers/iio/health/afe4403.c +++ b/drivers/iio/health/afe4403.c @@ -540,11 +540,10 @@ static int afe4403_probe(struct spi_device *spi) return ret; } =20 - ret =3D devm_request_threaded_irq(dev, afe->irq, - iio_trigger_generic_data_rdy_poll, - NULL, IRQF_ONESHOT, - AFE4403_DRIVER_NAME, - afe->trig); + ret =3D devm_request_irq(dev, afe->irq, + iio_trigger_generic_data_rdy_poll, + IRQF_NO_THREAD, AFE4403_DRIVER_NAME, + afe->trig); if (ret) { dev_err(dev, "Unable to request IRQ\n"); return ret; diff --git a/drivers/iio/health/afe4404.c b/drivers/iio/health/afe4404.c index 768d794e574b9..032da52a96d0e 100644 --- a/drivers/iio/health/afe4404.c +++ b/drivers/iio/health/afe4404.c @@ -547,11 +547,10 @@ static int afe4404_probe(struct i2c_client *client) return ret; } =20 - ret =3D devm_request_threaded_irq(dev, afe->irq, - iio_trigger_generic_data_rdy_poll, - NULL, IRQF_ONESHOT, - AFE4404_DRIVER_NAME, - afe->trig); + ret =3D devm_request_irq(dev, afe->irq, + iio_trigger_generic_data_rdy_poll, + IRQF_NO_THREAD, AFE4404_DRIVER_NAME, + afe->trig); if (ret) { dev_err(dev, "Unable to request IRQ\n"); return ret; diff --git a/drivers/iio/magnetometer/bmc150_magn.c b/drivers/iio/magnetome= ter/bmc150_magn.c index 6a73f6e2f1f06..a022e1805dff7 100644 --- a/drivers/iio/magnetometer/bmc150_magn.c +++ b/drivers/iio/magnetometer/bmc150_magn.c @@ -906,12 +906,9 @@ int bmc150_magn_probe(struct device *dev, struct regma= p *regmap, goto err_poweroff; } =20 - ret =3D request_threaded_irq(irq, - iio_trigger_generic_data_rdy_poll, - NULL, - IRQF_TRIGGER_RISING | IRQF_ONESHOT, - "bmc150_magn_event", - data->dready_trig); + ret =3D request_irq(irq, iio_trigger_generic_data_rdy_poll, + IRQF_TRIGGER_RISING | IRQF_NO_THREAD, + "bmc150_magn_event", data->dready_trig); if (ret < 0) { dev_err(dev, "request irq %d failed\n", irq); goto err_trigger_unregister; diff --git a/drivers/iio/pressure/dlhl60d.c b/drivers/iio/pressure/dlhl60d.c index 8bad7162fec64..46feb27fe632f 100644 --- a/drivers/iio/pressure/dlhl60d.c +++ b/drivers/iio/pressure/dlhl60d.c @@ -306,10 +306,9 @@ static int dlh_probe(struct i2c_client *client) indio_dev->num_channels =3D ARRAY_SIZE(dlh_channels); =20 if (client->irq > 0) { - ret =3D devm_request_threaded_irq(&client->dev, client->irq, - dlh_interrupt, NULL, - IRQF_TRIGGER_RISING | IRQF_ONESHOT, - st->info->name, indio_dev); + ret =3D devm_request_irq(&client->dev, client->irq, dlh_interrupt, + IRQF_TRIGGER_RISING | IRQF_NO_THREAD, + st->info->name, indio_dev); if (ret) { dev_err(&client->dev, "failed to allocate threaded irq"); return ret; diff --git a/drivers/iio/temperature/tmp006.c b/drivers/iio/temperature/tmp= 006.c index 10bd3f221929d..d8d8c8936d177 100644 --- a/drivers/iio/temperature/tmp006.c +++ b/drivers/iio/temperature/tmp006.c @@ -356,12 +356,10 @@ static int tmp006_probe(struct i2c_client *client) =20 indio_dev->trig =3D iio_trigger_get(data->drdy_trig); =20 - ret =3D devm_request_threaded_irq(&client->dev, client->irq, - iio_trigger_generic_data_rdy_poll, - NULL, - IRQF_ONESHOT, - "tmp006_irq", - data->drdy_trig); + ret =3D devm_request_irq(&client->dev, client->irq, + iio_trigger_generic_data_rdy_poll, + IRQF_NO_THREAD, "tmp006_irq", + data->drdy_trig); if (ret < 0) return ret; } --=20 2.51.0 From nobody Sat Feb 7 07:26:00 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 71E5E34F483; Wed, 28 Jan 2026 09:56:05 +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=1769594170; cv=none; b=S1NTgMtZF6O8AXE+WZ2jZW4FJZgpWDlvQXNrXpuV0TgY7mMBR+h5lAlW40pURP+YswlnpwwbP/jZUIL73WMR8pDfPRtr7KTNP3rDZPK3j1x8csvLc8HxcGK2TM/fSSpcMIlYVKq7enMbKPQYC04+rGhMSWK6PH34J9f7o/BTboQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769594170; c=relaxed/simple; bh=qVa0VoHLsuewyeObssCoPaoYm5WLwXw+JK5rcjkrCVk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Ofj9g/m/+FWLGFZgUGCRvBbjdytxcUdaB13g9wOhYvUzSDuo42x605lEAWhfYeUNpxHwjparNExwicNZrDh/F05Yahb8TQtXPxRz3GFgc+EZRmQ0Ot1LsR1d3kJMdzTqqnD3dIK+C4djQjQ817Nhyvpwppig0grwaOdamgESfv0= 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=Edh1bVPt; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=5ulMJqDd; 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="Edh1bVPt"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="5ulMJqDd" From: Sebastian Andrzej Siewior DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1769594164; h=from:from: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=Qq3AN5OW9updjcbObsRppzVautQaGYNsBWlroen7/jQ=; b=Edh1bVPtoc3BX1CaQvqfPBGfw1SBJcqDe/s155YiR0c+sqfWGLE4X69JD+UdbuWfNcQyVm SmGXY5JEFHUOgO6bc8MoVrOWls5j/sZ9k4gcyQsAxTj9n57SyPCJbrrs8tpRLsNmTGVPEF CfSPZctwZOn2iIM9GmuRJNSdP+puzln51DWC5FhKW5/NKUxqvEM8vTD2RtRRwxvduvOU2Z o84xFgNH1jowrilwL2bbbHIrVs2tW3Cx6yLgjiFE8EKPbAEfUbIYVZyPCt4HZl0ssasgqg hoWUrg9NR5vfh3KyR4IPiX/LEZNerNYDyC3ufoMKM0ZqdLIzgujkb/+Z9GpiWA== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1769594164; h=from:from: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=Qq3AN5OW9updjcbObsRppzVautQaGYNsBWlroen7/jQ=; b=5ulMJqDdWITiHRtMpV2TGwPqEdIg5i7XB/4Znbw7IyYZFUadmPcP3QZU+g1KctEAYZBnv5 gDPHeZ7HG/qGKGCQ== To: linux-kernel@vger.kernel.org Cc: "Thomas Gleixner" , Sebastian Andrzej Siewior , Geert Uytterhoeven , Jonathan Cameron , David Lechner , =?UTF-8?q?Nuno=20S=C3=A1?= , Andy Shevchenko , linux-iio@vger.kernel.org Subject: [PATCH v2 18/20] iio: magnetometer: Remove IRQF_ONESHOT Date: Wed, 28 Jan 2026 10:55:38 +0100 Message-ID: <20260128095540.863589-19-bigeasy@linutronix.de> In-Reply-To: <20260128095540.863589-1-bigeasy@linutronix.de> References: <20260128095540.863589-1-bigeasy@linutronix.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Passing IRQF_ONESHOT ensures that the interrupt source is masked until the secondary (threaded) handler is done. If only a primary handler is used then the flag makes no sense because the interrupt can not fire (again) while its handler is running. The flag also disallows force-threading of the primary handler and the irq-core will warn about this. The force-threading functionality is required on PREEMPT_RT because the handler is using locks with can sleep on PREEMPT_RT. Remove IRQF_ONESHOT from irqflags. Tested-by: Geert Uytterhoeven Signed-off-by: Sebastian Andrzej Siewior Reviewed-by: Andy Shevchenko --- Cc: Jonathan Cameron Cc: David Lechner Cc: Nuno S=C3=A1 Cc: Andy Shevchenko Cc: linux-iio@vger.kernel.org --- drivers/iio/magnetometer/ak8975.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/iio/magnetometer/ak8975.c b/drivers/iio/magnetometer/a= k8975.c index 3fd0171e5d69b..d30315ad85ded 100644 --- a/drivers/iio/magnetometer/ak8975.c +++ b/drivers/iio/magnetometer/ak8975.c @@ -581,7 +581,7 @@ static int ak8975_setup_irq(struct ak8975_data *data) irq =3D gpiod_to_irq(data->eoc_gpiod); =20 rc =3D devm_request_irq(&client->dev, irq, ak8975_irq_handler, - IRQF_TRIGGER_RISING | IRQF_ONESHOT, + IRQF_TRIGGER_RISING, dev_name(&client->dev), data); if (rc < 0) { dev_err(&client->dev, "irq %d request failed: %d\n", irq, rc); --=20 2.51.0 From nobody Sat Feb 7 07:26:00 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 3BA2334E75A; Wed, 28 Jan 2026 09:56: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=1769594170; cv=none; b=l5aWyFssWQV5njkLvaoL0oSdaTvdFiPbyVXDogDJ2E8jSL4mt/KFj6ph8gGBH2w9WS/CDi2IpnIvcLNa7yM7PoILcx4Th67V+iZb/Yy65/RMj5XijYbg7Fb0smg5paPjSFGOxqvQ0zYlEx/3hLW0xjBC+SbWNn2p7r9WXwYAXP4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769594170; c=relaxed/simple; bh=fjwDBjXn9ktigdyc5frdA4SAb1wMfTbk3w5QpgfJe+c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=IRCwblrc4Sx7whJZn05bhx9CTfkFg+B3cH2x6z6Q3eLWpxb3uZocjh1h2j9dffKMYM3WDTarar/nrrbpfMklshfaNsjmPeJ3K/RlQl271grlnsyeBGU4b2YP/6ziuJroMXYEMQj6qyJF+Fc1BiYG1qOUipQJxFcukfrvi9cv6nM= 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=h9NSiq1Y; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=fYk6bI/s; 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="h9NSiq1Y"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="fYk6bI/s" From: Sebastian Andrzej Siewior DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1769594164; h=from:from: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=Zn/om1QLQ5QnjRFzFZkdVQxs6a/meF8KP+yq1DIgPkw=; b=h9NSiq1Y+TSLOZo8Kw5QJYAa4R7gT6BLlKpqFORRnpt08QxUOfx+t8gX0zRvRaJUXnK4uC crPWoMuCwCfHyTrb25LNweOULye2JVcScChwAAqWheXtCurdsjVZJBnuIBlGvyot+sOfiM xqnFSmnNOehrz/T/8uviv2lnVK2XFxXb18LCv+5XNE/AXck8ur3cJu9xnj+b1I93hxow3y dCg+6t1ypKZFQp+unNSQZBicGwpJ3wviKoBTLRHGnjCsMULGTC34Q3YbJRm8D74MK3J+oV j0aKD01sC4tsKRZ8wMmOoB4EdX/ri6ImZzkkn8UOvOr2WYYgMOBPbWUB6DVy0Q== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1769594164; h=from:from: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=Zn/om1QLQ5QnjRFzFZkdVQxs6a/meF8KP+yq1DIgPkw=; b=fYk6bI/sKvIwK+k3GOz8E3NNRe7Xi7ejF5r5OwuVeJ3XJV4pqgC2kjfOQl13YzYY9Lj/96 kv15zD8VILQmPDCw== To: linux-kernel@vger.kernel.org Cc: "Thomas Gleixner" , Sebastian Andrzej Siewior , Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , David Lechner , =?UTF-8?q?Nuno=20S=C3=A1?= , Andy Shevchenko , linux-iio@vger.kernel.org Subject: [PATCH v2 19/20] iio: adc: ad7766: Use iio_trigger_generic_data_rdy_poll() Date: Wed, 28 Jan 2026 10:55:39 +0100 Message-ID: <20260128095540.863589-20-bigeasy@linutronix.de> In-Reply-To: <20260128095540.863589-1-bigeasy@linutronix.de> References: <20260128095540.863589-1-bigeasy@linutronix.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" ad7766_irq() is identical to iio_trigger_generic_data_rdy_poll(). Use iio_trigger_generic_data_rdy_poll() instead of ad7766_irq(). Signed-off-by: Sebastian Andrzej Siewior Reviewed-by: Andy Shevchenko --- Cc: Lars-Peter Clausen Cc: Michael Hennerich Cc: Jonathan Cameron Cc: David Lechner Cc: "Nuno S=C3=A1" Cc: Andy Shevchenko Cc: linux-iio@vger.kernel.org --- drivers/iio/adc/ad7766.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/drivers/iio/adc/ad7766.c b/drivers/iio/adc/ad7766.c index 1e6bfe8765ab3..9e4a66477d2d0 100644 --- a/drivers/iio/adc/ad7766.c +++ b/drivers/iio/adc/ad7766.c @@ -184,12 +184,6 @@ static const struct iio_info ad7766_info =3D { .read_raw =3D &ad7766_read_raw, }; =20 -static irqreturn_t ad7766_irq(int irq, void *private) -{ - iio_trigger_poll(private); - return IRQ_HANDLED; -} - static int ad7766_set_trigger_state(struct iio_trigger *trig, bool enable) { struct ad7766 *ad7766 =3D iio_trigger_get_drvdata(trig); @@ -260,7 +254,7 @@ static int ad7766_probe(struct spi_device *spi) * Some platforms might not allow the option to power it down so * don't enable the interrupt to avoid extra load on the system */ - ret =3D devm_request_irq(&spi->dev, spi->irq, ad7766_irq, + ret =3D devm_request_irq(&spi->dev, spi->irq, iio_trigger_generic_data_r= dy_poll, IRQF_TRIGGER_FALLING | IRQF_NO_AUTOEN | IRQF_NO_THREAD, dev_name(&spi->dev), ad7766->trig); --=20 2.51.0 From nobody Sat Feb 7 07:26:00 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 3CBF634F49A; Wed, 28 Jan 2026 09:56: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=1769594169; cv=none; b=C5msWSq5p6xOUDHIVY1bSlYwV66DYXv4t6SG2jL3Crx80O+wSIDoy/2qUr7AygqoeFKtl7crSWWtl8rSo/wxOWlJ+SruDSQeSxa5wuSjcAHtpoRMpZFpIJP7wO9NLBHAWYxIbNoakVnUx9IGrlvbVfyV0G3+Avhm9jE/O4rFqI8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769594169; c=relaxed/simple; bh=Sxgt1KJZwm+0LsoMaBdBds+HbVIA13lZJew214tUmWo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SWK6AyRHtq61hQ3NLYGnBIjJ8u23xwm1FYldaon01xwP7RnZN0NGc8ijsv5Qy/7i+082jOgjIO5lOqVMEF6MRchtoXod9Vl3DDkaD0g0XP9ATjVAvCkBQfa7Y2dqVolYrm8ZMVp+1Gm21cgL426AM7kyZe2JrUq2n2aWGw2yyus= 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=fRg3JWTX; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b=3QfYe/mj; 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="fRg3JWTX"; dkim=permerror (0-bit key) header.d=linutronix.de header.i=@linutronix.de header.b="3QfYe/mj" From: Sebastian Andrzej Siewior DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1769594164; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=cyy16Axha9XsqNfK5K2jjl1PNjDbe2eng+HYnF3zS9A=; b=fRg3JWTX2RPm9XJC2N573zhv35cdQDkrEFSn6/35qDAPsRrVqW1CHg/dFk3h7Cd+dR2Sso 8b5OfxPveHQOEt8O4q1oyPzQSg+2kOlzHm33XRF9le7Mo23g8jzFTu38C7qmB0Cie33rFq kOeDSkkukwNQot825CeRnSnqFfzj8T2gihrAYSoKIdv37w1iwE+PZ20zVLQLgPk9AJGqkc ncAdlrW2U1VMwqWJED75FSETNmQ+8DU/rUJ3/FN9PWFtCB1CNcCZiq+JM8v1SPNPuhUcOY C7+l52WTI/BQKOxnlCEAkw/S48FMZGIelRqMPgSjve0LZMkcen5iu0ddDtE0sg== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1769594164; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=cyy16Axha9XsqNfK5K2jjl1PNjDbe2eng+HYnF3zS9A=; b=3QfYe/mjImJUVTq2VsFaRzqMDSQKffMI86SYHxlwd8DM9ZO+nCZmYDorbq36GBQgZ8y5bW 8Chberx3Sfe7fMDQ== To: linux-kernel@vger.kernel.org Cc: "Thomas Gleixner" , Sebastian Andrzej Siewior , Martin Tuma , Mauro Carvalho Chehab , linux-media@vger.kernel.org Subject: [PATCH v2 20/20] media: pci: mg4b: Use IRQF_NO_THREAD Date: Wed, 28 Jan 2026 10:55:40 +0100 Message-ID: <20260128095540.863589-21-bigeasy@linutronix.de> In-Reply-To: <20260128095540.863589-1-bigeasy@linutronix.de> References: <20260128095540.863589-1-bigeasy@linutronix.de> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The interrupt handler iio_trigger_generic_data_rdy_poll() will invoke other interrupt handler and this supposed to happen from within the hardirq. Use IRQF_NO_THREAD to forbid forced-threading. Fixes: 0ab13674a9bd1 ("media: pci: mgb4: Added Digiteq Automotive MGB4 driv= er") Signed-off-by: Sebastian Andrzej Siewior Tested-by: Martin T=C5=AFma --- Cc: Martin Tuma Cc: Mauro Carvalho Chehab Cc: linux-media@vger.kernel.org --- drivers/media/pci/mgb4/mgb4_trigger.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/media/pci/mgb4/mgb4_trigger.c b/drivers/media/pci/mgb4= /mgb4_trigger.c index 4f9a35904b418..70cad324df608 100644 --- a/drivers/media/pci/mgb4/mgb4_trigger.c +++ b/drivers/media/pci/mgb4/mgb4_trigger.c @@ -115,7 +115,7 @@ static int probe_trigger(struct iio_dev *indio_dev, int= irq) if (!st->trig) return -ENOMEM; =20 - ret =3D request_irq(irq, &iio_trigger_generic_data_rdy_poll, 0, + ret =3D request_irq(irq, &iio_trigger_generic_data_rdy_poll, IRQF_NO_THRE= AD, "mgb4-trigger", st->trig); if (ret) goto error_free_trig; --=20 2.51.0