* [GIT PULL] IRQ fix
@ 2024-04-28 8:05 Ingo Molnar
2024-04-28 19:28 ` pr-tracker-bot
0 siblings, 1 reply; 36+ messages in thread
From: Ingo Molnar @ 2024-04-28 8:05 UTC (permalink / raw)
To: Linus Torvalds
Cc: linux-kernel, Thomas Gleixner, Peter Zijlstra, Andrew Morton,
Borislav Petkov, Marc Zyngier
Linus,
Please pull the latest irq/urgent Git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-urgent-2024-04-28
# HEAD: c26591afd33adce296c022e3480dea4282b7ef91 irqchip/gic-v3-its: Prevent double free on error
Fix a double free bug in the init error path of the
GICv3 irqchip driver.
Thanks,
Ingo
------------------>
Guanrui Huang (1):
irqchip/gic-v3-its: Prevent double free on error
drivers/irqchip/irq-gic-v3-its.c | 9 ++-------
1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
index 2a537cbfcb07..5f7d3db3afd8 100644
--- a/drivers/irqchip/irq-gic-v3-its.c
+++ b/drivers/irqchip/irq-gic-v3-its.c
@@ -4567,13 +4567,8 @@ static int its_vpe_irq_domain_alloc(struct irq_domain *domain, unsigned int virq
irqd_set_resend_when_in_progress(irq_get_irq_data(virq + i));
}
- if (err) {
- if (i > 0)
- its_vpe_irq_domain_free(domain, virq, i);
-
- its_lpi_free(bitmap, base, nr_ids);
- its_free_prop_table(vprop_page);
- }
+ if (err)
+ its_vpe_irq_domain_free(domain, virq, i);
return err;
}
^ permalink raw reply related [flat|nested] 36+ messages in thread
* Re: [GIT PULL] IRQ fix
2024-04-28 8:05 [GIT PULL] IRQ fix Ingo Molnar
@ 2024-04-28 19:28 ` pr-tracker-bot
0 siblings, 0 replies; 36+ messages in thread
From: pr-tracker-bot @ 2024-04-28 19:28 UTC (permalink / raw)
To: Ingo Molnar
Cc: Linus Torvalds, linux-kernel, Thomas Gleixner, Peter Zijlstra,
Andrew Morton, Borislav Petkov, Marc Zyngier
The pull request you sent on Sun, 28 Apr 2024 10:05:31 +0200:
> git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-urgent-2024-04-28
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/8d62e9bf287588c839b67e567c8b2b548e849b00
Thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html
^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [GIT PULL] IRQ fix
2024-05-05 9:06 Ingo Molnar
@ 2024-05-05 19:43 ` pr-tracker-bot
0 siblings, 0 replies; 36+ messages in thread
From: pr-tracker-bot @ 2024-05-05 19:43 UTC (permalink / raw)
To: Ingo Molnar
Cc: Linus Torvalds, linux-kernel, Thomas Gleixner, Peter Zijlstra,
Andrew Morton, Borislav Petkov, Marc Zyngier
The pull request you sent on Sun, 5 May 2024 11:06:28 +0200:
> git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-urgent-2024-05-05
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/80f8b450bfc12b1087ca67c84071d3524bedc080
Thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html
^ permalink raw reply [flat|nested] 36+ messages in thread
* [GIT PULL] IRQ fix
@ 2024-05-05 9:06 Ingo Molnar
2024-05-05 19:43 ` pr-tracker-bot
0 siblings, 1 reply; 36+ messages in thread
From: Ingo Molnar @ 2024-05-05 9:06 UTC (permalink / raw)
To: Linus Torvalds
Cc: linux-kernel, Thomas Gleixner, Peter Zijlstra, Andrew Morton,
Borislav Petkov, Marc Zyngier
Linus,
Please pull the latest irq/urgent Git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-urgent-2024-05-05
# HEAD: 1dd1eff161bd55968d3d46bc36def62d71fb4785 softirq: Fix suspicious RCU usage in __do_softirq()
Fix suspicious RCU usage in __do_softirq().
Thanks,
Ingo
------------------>
Zqiang (1):
softirq: Fix suspicious RCU usage in __do_softirq()
kernel/softirq.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/kernel/softirq.c b/kernel/softirq.c
index b315b21fb28c..02582017759a 100644
--- a/kernel/softirq.c
+++ b/kernel/softirq.c
@@ -508,7 +508,7 @@ static inline bool lockdep_softirq_start(void) { return false; }
static inline void lockdep_softirq_end(bool in_hardirq) { }
#endif
-asmlinkage __visible void __softirq_entry __do_softirq(void)
+static void handle_softirqs(bool ksirqd)
{
unsigned long end = jiffies + MAX_SOFTIRQ_TIME;
unsigned long old_flags = current->flags;
@@ -563,8 +563,7 @@ asmlinkage __visible void __softirq_entry __do_softirq(void)
pending >>= softirq_bit;
}
- if (!IS_ENABLED(CONFIG_PREEMPT_RT) &&
- __this_cpu_read(ksoftirqd) == current)
+ if (!IS_ENABLED(CONFIG_PREEMPT_RT) && ksirqd)
rcu_softirq_qs();
local_irq_disable();
@@ -584,6 +583,11 @@ asmlinkage __visible void __softirq_entry __do_softirq(void)
current_restore_flags(old_flags, PF_MEMALLOC);
}
+asmlinkage __visible void __softirq_entry __do_softirq(void)
+{
+ handle_softirqs(false);
+}
+
/**
* irq_enter_rcu - Enter an interrupt context with RCU watching
*/
@@ -921,7 +925,7 @@ static void run_ksoftirqd(unsigned int cpu)
* We can safely run softirq on inline stack, as we are not deep
* in the task stack here.
*/
- __do_softirq();
+ handle_softirqs(true);
ksoftirqd_run_end();
cond_resched();
return;
^ permalink raw reply related [flat|nested] 36+ messages in thread
* Re: [GIT PULL] IRQ fix
2024-04-14 7:54 Ingo Molnar
@ 2024-04-14 18:48 ` pr-tracker-bot
0 siblings, 0 replies; 36+ messages in thread
From: pr-tracker-bot @ 2024-04-14 18:48 UTC (permalink / raw)
To: Ingo Molnar
Cc: Linus Torvalds, linux-kernel, Thomas Gleixner, Peter Zijlstra,
Andrew Morton, Borislav Petkov, Marc Zyngier
The pull request you sent on Sun, 14 Apr 2024 09:54:27 +0200:
> git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-urgent-2024-04-14
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/c28275e7434e8e7c3e7cd366ad03b9aac55f8b67
Thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html
^ permalink raw reply [flat|nested] 36+ messages in thread
* [GIT PULL] IRQ fix
@ 2024-04-14 7:54 Ingo Molnar
2024-04-14 18:48 ` pr-tracker-bot
0 siblings, 1 reply; 36+ messages in thread
From: Ingo Molnar @ 2024-04-14 7:54 UTC (permalink / raw)
To: Linus Torvalds
Cc: linux-kernel, Thomas Gleixner, Peter Zijlstra, Andrew Morton,
Borislav Petkov, Marc Zyngier
Linus,
Please pull the latest irq/urgent Git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-urgent-2024-04-14
# HEAD: 80e9963fb3b5509dfcabe9652d56bf4b35542055 irqchip/gic-v3-its: Fix VSYNC referencing an unmapped VPE on GIC v4.1
Fix a bug in the GIC irqchip driver.
Thanks,
Ingo
------------------>
Nianyao Tang (1):
irqchip/gic-v3-its: Fix VSYNC referencing an unmapped VPE on GIC v4.1
drivers/irqchip/irq-gic-v3-its.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [GIT PULL] IRQ fix
2024-03-18 9:40 Ingo Molnar
@ 2024-03-18 16:48 ` pr-tracker-bot
0 siblings, 0 replies; 36+ messages in thread
From: pr-tracker-bot @ 2024-03-18 16:48 UTC (permalink / raw)
To: Ingo Molnar
Cc: Linus Torvalds, linux-kernel, Thomas Gleixner, Peter Zijlstra,
Andrew Morton, Borislav Petkov
The pull request you sent on Mon, 18 Mar 2024 10:40:29 +0100:
> git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-urgent-2024-03-17
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/4ae3dc83b047d51485cce1a72be277a110d77c91
Thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html
^ permalink raw reply [flat|nested] 36+ messages in thread
* [GIT PULL] IRQ fix
@ 2024-03-18 9:40 Ingo Molnar
2024-03-18 16:48 ` pr-tracker-bot
0 siblings, 1 reply; 36+ messages in thread
From: Ingo Molnar @ 2024-03-18 9:40 UTC (permalink / raw)
To: Linus Torvalds
Cc: linux-kernel, Thomas Gleixner, Peter Zijlstra, Andrew Morton,
Borislav Petkov
Linus,
Please pull the latest irq/urgent git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-urgent-2024-03-17
# HEAD: ca5b0b717b75d0f86f7f5dfe18369781bec742ad irqchip/riscv-intc: Fix use of AIA interrupts 32-63 on riscv32
A RISC-V irqchip driver fix.
Thanks,
Ingo
------------------>
Samuel Holland (1):
irqchip/riscv-intc: Fix use of AIA interrupts 32-63 on riscv32
drivers/irqchip/irq-riscv-intc.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/drivers/irqchip/irq-riscv-intc.c b/drivers/irqchip/irq-riscv-intc.c
index f87aeab460eb..9e71c4428814 100644
--- a/drivers/irqchip/irq-riscv-intc.c
+++ b/drivers/irqchip/irq-riscv-intc.c
@@ -149,8 +149,9 @@ static int riscv_intc_domain_alloc(struct irq_domain *domain,
* Only allow hwirq for which we have corresponding standard or
* custom interrupt enable register.
*/
- if ((hwirq >= riscv_intc_nr_irqs && hwirq < riscv_intc_custom_base) ||
- (hwirq >= riscv_intc_custom_base + riscv_intc_custom_nr_irqs))
+ if (hwirq >= riscv_intc_nr_irqs &&
+ (hwirq < riscv_intc_custom_base ||
+ hwirq >= riscv_intc_custom_base + riscv_intc_custom_nr_irqs))
return -EINVAL;
for (i = 0; i < nr_irqs; i++) {
@@ -183,10 +184,12 @@ static int __init riscv_intc_init_common(struct fwnode_handle *fn, struct irq_ch
return -ENXIO;
}
- if (riscv_isa_extension_available(NULL, SxAIA))
+ if (riscv_isa_extension_available(NULL, SxAIA)) {
+ riscv_intc_nr_irqs = 64;
rc = set_handle_irq(&riscv_intc_aia_irq);
- else
+ } else {
rc = set_handle_irq(&riscv_intc_irq);
+ }
if (rc) {
pr_err("failed to set irq handler\n");
return rc;
@@ -195,7 +198,7 @@ static int __init riscv_intc_init_common(struct fwnode_handle *fn, struct irq_ch
riscv_set_intc_hwnode_fn(riscv_intc_hwnode);
pr_info("%d local interrupts mapped%s\n",
- riscv_isa_extension_available(NULL, SxAIA) ? 64 : riscv_intc_nr_irqs,
+ riscv_intc_nr_irqs,
riscv_isa_extension_available(NULL, SxAIA) ? " using AIA" : "");
if (riscv_intc_custom_nr_irqs)
pr_info("%d custom local interrupts mapped\n", riscv_intc_custom_nr_irqs);
^ permalink raw reply related [flat|nested] 36+ messages in thread
* Re: [GIT PULL] IRQ fix
2023-10-28 13:17 Ingo Molnar
@ 2023-10-28 18:17 ` pr-tracker-bot
0 siblings, 0 replies; 36+ messages in thread
From: pr-tracker-bot @ 2023-10-28 18:17 UTC (permalink / raw)
To: Ingo Molnar
Cc: Linus Torvalds, linux-kernel, Thomas Gleixner, Peter Zijlstra,
Andrew Morton, Borislav Petkov, Marc Zyngier
The pull request you sent on Sat, 28 Oct 2023 15:17:56 +0200:
> git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-urgent-2023-10-28
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/e663ab6bb56fa8f048cf8725aba577e56f7b2644
Thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html
^ permalink raw reply [flat|nested] 36+ messages in thread
* [GIT PULL] IRQ fix
@ 2023-10-28 13:17 Ingo Molnar
2023-10-28 18:17 ` pr-tracker-bot
0 siblings, 1 reply; 36+ messages in thread
From: Ingo Molnar @ 2023-10-28 13:17 UTC (permalink / raw)
To: Linus Torvalds
Cc: linux-kernel, Thomas Gleixner, Peter Zijlstra, Andrew Morton,
Borislav Petkov, Marc Zyngier
Linus,
Please pull the latest irq/urgent git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-urgent-2023-10-28
# HEAD: f199bf5bf84c19a4f488a39d7d694ab10787de35 irqchip/gic-v3-its: Don't override quirk settings with default values
Restore unintentionally lost quirk settings in the GIC irqchip driver,
which broke certain devices.
Thanks,
Ingo
------------------>
Marc Zyngier (1):
irqchip/gic-v3-its: Don't override quirk settings with default values
drivers/irqchip/irq-gic-v3-its.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
index 75a2dd550625..a8c89df1a997 100644
--- a/drivers/irqchip/irq-gic-v3-its.c
+++ b/drivers/irqchip/irq-gic-v3-its.c
@@ -5112,8 +5112,6 @@ static int __init its_probe_one(struct its_node *its)
}
its->cmd_base = (void *)page_address(page);
its->cmd_write = its->cmd_base;
- its->get_msi_base = its_irq_get_msi_base;
- its->msi_domain_flags = IRQ_DOMAIN_FLAG_ISOLATED_MSI;
err = its_alloc_tables(its);
if (err)
@@ -5362,6 +5360,8 @@ static struct its_node __init *its_node_init(struct resource *res,
its->typer = gic_read_typer(its_base + GITS_TYPER);
its->base = its_base;
its->phys_base = res->start;
+ its->get_msi_base = its_irq_get_msi_base;
+ its->msi_domain_flags = IRQ_DOMAIN_FLAG_ISOLATED_MSI;
its->numa_node = numa_node;
its->fwnode_handle = handle;
^ permalink raw reply related [flat|nested] 36+ messages in thread
* Re: [GIT PULL] IRQ fix
2021-05-15 7:44 Ingo Molnar
@ 2021-05-15 17:55 ` pr-tracker-bot
0 siblings, 0 replies; 36+ messages in thread
From: pr-tracker-bot @ 2021-05-15 17:55 UTC (permalink / raw)
To: Ingo Molnar
Cc: Linus Torvalds, linux-kernel, Thomas Gleixner, Peter Zijlstra,
Andrew Morton, Borislav Petkov
The pull request you sent on Sat, 15 May 2021 09:44:13 +0200:
> git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-urgent-2021-05-15
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/077fc64407457d504882a7ba8c3348df4dea8042
Thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html
^ permalink raw reply [flat|nested] 36+ messages in thread
* [GIT PULL] IRQ fix
@ 2021-05-15 7:44 Ingo Molnar
2021-05-15 17:55 ` pr-tracker-bot
0 siblings, 1 reply; 36+ messages in thread
From: Ingo Molnar @ 2021-05-15 7:44 UTC (permalink / raw)
To: Linus Torvalds
Cc: linux-kernel, Thomas Gleixner, Peter Zijlstra, Andrew Morton,
Borislav Petkov
Linus,
Please pull the latest irq/urgent git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-urgent-2021-05-15
# HEAD: 0d3ae948741ac6d80e39ab27b45297367ee477de sh: Remove unused variable
Fix build warning on SH.
Thanks,
Ingo
------------------>
Eric Dumazet (1):
sh: Remove unused variable
arch/sh/kernel/traps.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/arch/sh/kernel/traps.c b/arch/sh/kernel/traps.c
index f5beecdac693..e76b22157099 100644
--- a/arch/sh/kernel/traps.c
+++ b/arch/sh/kernel/traps.c
@@ -180,7 +180,6 @@ static inline void arch_ftrace_nmi_exit(void) { }
BUILD_TRAP_HANDLER(nmi)
{
- unsigned int cpu = smp_processor_id();
TRAP_HANDLER_DECL;
arch_ftrace_nmi_enter();
^ permalink raw reply related [flat|nested] 36+ messages in thread
* Re: [GIT PULL] IRQ fix
2020-01-18 17:19 Ingo Molnar
@ 2020-01-18 21:05 ` pr-tracker-bot
0 siblings, 0 replies; 36+ messages in thread
From: pr-tracker-bot @ 2020-01-18 21:05 UTC (permalink / raw)
To: Ingo Molnar
Cc: Linus Torvalds, linux-kernel, Thomas Gleixner, Peter Zijlstra,
Andrew Morton
The pull request you sent on Sat, 18 Jan 2020 18:19:43 +0100:
> git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-urgent-for-linus
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/a1c6f87efc0ad67797bc81071b6e6291896d7460
Thank you!
--
Deet-doot-dot, I am a bot.
https://korg.wiki.kernel.org/userdoc/prtracker
^ permalink raw reply [flat|nested] 36+ messages in thread
* [GIT PULL] IRQ fix
@ 2020-01-18 17:19 Ingo Molnar
2020-01-18 21:05 ` pr-tracker-bot
0 siblings, 1 reply; 36+ messages in thread
From: Ingo Molnar @ 2020-01-18 17:19 UTC (permalink / raw)
To: Linus Torvalds
Cc: linux-kernel, Thomas Gleixner, Peter Zijlstra, Andrew Morton
Linus,
Please pull the latest irq-urgent-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-urgent-for-linus
# HEAD: 1fd224e35c1493e9f5d4d932c175616cccce8df9 irqchip/ingenic: Get rid of the legacy IRQ domain
Fix a recent regression in the Ingenic SoCs irqchip driver that floods
the syslog.
Thanks,
Ingo
------------------>
Paul Cercueil (1):
irqchip/ingenic: Get rid of the legacy IRQ domain
drivers/irqchip/irq-ingenic.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/irqchip/irq-ingenic.c b/drivers/irqchip/irq-ingenic.c
index 01d18b39069e..c5589ee0dfb3 100644
--- a/drivers/irqchip/irq-ingenic.c
+++ b/drivers/irqchip/irq-ingenic.c
@@ -17,7 +17,6 @@
#include <linux/delay.h>
#include <asm/io.h>
-#include <asm/mach-jz4740/irq.h>
struct ingenic_intc_data {
void __iomem *base;
@@ -50,7 +49,7 @@ static irqreturn_t intc_cascade(int irq, void *data)
while (pending) {
int bit = __fls(pending);
- irq = irq_find_mapping(domain, bit + (i * 32));
+ irq = irq_linear_revmap(domain, bit + (i * 32));
generic_handle_irq(irq);
pending &= ~BIT(bit);
}
@@ -97,8 +96,7 @@ static int __init ingenic_intc_of_init(struct device_node *node,
goto out_unmap_irq;
}
- domain = irq_domain_add_legacy(node, num_chips * 32,
- JZ4740_IRQ_BASE, 0,
+ domain = irq_domain_add_linear(node, num_chips * 32,
&irq_generic_chip_ops, NULL);
if (!domain) {
err = -ENOMEM;
^ permalink raw reply related [flat|nested] 36+ messages in thread
* Re: [GIT PULL] IRQ fix
2019-09-12 8:35 Ingo Molnar
@ 2019-09-12 10:15 ` pr-tracker-bot
0 siblings, 0 replies; 36+ messages in thread
From: pr-tracker-bot @ 2019-09-12 10:15 UTC (permalink / raw)
To: Ingo Molnar
Cc: Linus Torvalds, linux-kernel, Thomas Gleixner, Peter Zijlstra,
Andrew Morton
The pull request you sent on Thu, 12 Sep 2019 10:35:03 +0200:
> git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-urgent-for-linus
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/95779fe8506d4f750f1e66e958b6b3c405182d7a
Thank you!
--
Deet-doot-dot, I am a bot.
https://korg.wiki.kernel.org/userdoc/prtracker
^ permalink raw reply [flat|nested] 36+ messages in thread
* [GIT PULL] IRQ fix
@ 2019-09-12 8:35 Ingo Molnar
2019-09-12 10:15 ` pr-tracker-bot
0 siblings, 1 reply; 36+ messages in thread
From: Ingo Molnar @ 2019-09-12 8:35 UTC (permalink / raw)
To: Linus Torvalds
Cc: linux-kernel, Thomas Gleixner, Peter Zijlstra, Andrew Morton
Linus,
Please pull the latest irq-urgent-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-urgent-for-linus
# HEAD: eddf3e9c7c7e4d0707c68d1bb22cc6ec8aef7d4a genirq: Prevent NULL pointer dereference in resend_irqs()
Fix a race in the IRQ resend mechanism, which can result in a NULL
dereference crash.
Thanks,
Ingo
------------------>
Yunfeng Ye (1):
genirq: Prevent NULL pointer dereference in resend_irqs()
kernel/irq/resend.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/kernel/irq/resend.c b/kernel/irq/resend.c
index 95414ad3506a..98c04ca5fa43 100644
--- a/kernel/irq/resend.c
+++ b/kernel/irq/resend.c
@@ -36,6 +36,8 @@ static void resend_irqs(unsigned long arg)
irq = find_first_bit(irqs_resend, nr_irqs);
clear_bit(irq, irqs_resend);
desc = irq_to_desc(irq);
+ if (!desc)
+ continue;
local_irq_disable();
desc->handle_irq(desc);
local_irq_enable();
^ permalink raw reply related [flat|nested] 36+ messages in thread
* [GIT PULL] IRQ fix
@ 2017-11-05 14:37 Ingo Molnar
0 siblings, 0 replies; 36+ messages in thread
From: Ingo Molnar @ 2017-11-05 14:37 UTC (permalink / raw)
To: Linus Torvalds
Cc: linux-kernel, Thomas Gleixner, Peter Zijlstra, Andrew Morton
Linus,
Please pull the latest irq-urgent-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-urgent-for-linus
# HEAD: c9bb86338a6bb91e4d32db04feb6b8d423e04d06 irqchip/irq-mvebu-gicp: Add missing spin_lock init
An irqchip driver init fix.
Thanks,
Ingo
------------------>
Antoine Tenart (1):
irqchip/irq-mvebu-gicp: Add missing spin_lock init
drivers/irqchip/irq-mvebu-gicp.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/irqchip/irq-mvebu-gicp.c b/drivers/irqchip/irq-mvebu-gicp.c
index b283fc90be1e..17a4a7b6cdbb 100644
--- a/drivers/irqchip/irq-mvebu-gicp.c
+++ b/drivers/irqchip/irq-mvebu-gicp.c
@@ -194,6 +194,7 @@ static int mvebu_gicp_probe(struct platform_device *pdev)
return -ENOMEM;
gicp->dev = &pdev->dev;
+ spin_lock_init(&gicp->spi_lock);
gicp->res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!gicp->res)
^ permalink raw reply related [flat|nested] 36+ messages in thread
* [GIT PULL] IRQ fix
@ 2017-03-07 20:24 Ingo Molnar
0 siblings, 0 replies; 36+ messages in thread
From: Ingo Molnar @ 2017-03-07 20:24 UTC (permalink / raw)
To: Linus Torvalds
Cc: linux-kernel, Thomas Gleixner, Peter Zijlstra, Andrew Morton
Linus,
Please pull the latest irq-urgent-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-urgent-for-linus
# HEAD: b28ace12661fbcfd90959c1e84ff5a85113a82a1 irqchip/crossbar: Fix incorrect type of local variables
Fix an ARM TI DRA7XX SoC irqchip driver local variables type bug/warning.
Thanks,
Ingo
------------------>
Franck Demathieu (1):
irqchip/crossbar: Fix incorrect type of local variables
drivers/irqchip/irq-crossbar.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/irqchip/irq-crossbar.c b/drivers/irqchip/irq-crossbar.c
index 1eef56a89b1f..05bbf171df37 100644
--- a/drivers/irqchip/irq-crossbar.c
+++ b/drivers/irqchip/irq-crossbar.c
@@ -198,7 +198,8 @@ static const struct irq_domain_ops crossbar_domain_ops = {
static int __init crossbar_of_init(struct device_node *node)
{
- int i, size, max = 0, reserved = 0, entry;
+ int i, size, reserved = 0;
+ u32 max = 0, entry;
const __be32 *irqsr;
int ret = -ENOMEM;
^ permalink raw reply related [flat|nested] 36+ messages in thread
* [GIT PULL] IRQ fix
@ 2016-12-23 22:46 Ingo Molnar
0 siblings, 0 replies; 36+ messages in thread
From: Ingo Molnar @ 2016-12-23 22:46 UTC (permalink / raw)
To: Linus Torvalds
Cc: linux-kernel, Thomas Gleixner, Peter Zijlstra, Andrew Morton
Linus,
Please pull the latest irq-urgent-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-urgent-for-linus
# HEAD: f357563f958df06cd9ea9e614cdba30578bb08b1 irqchip/st: Mark st_irq_syscfg_resume() __maybe_unused
A build warning fix with certain .config's.
Thanks,
Ingo
------------------>
Jérémy Lefaure (1):
irqchip/st: Mark st_irq_syscfg_resume() __maybe_unused
drivers/irqchip/irq-st.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/irqchip/irq-st.c b/drivers/irqchip/irq-st.c
index 9af48a85c16f..5e0e250db0be 100644
--- a/drivers/irqchip/irq-st.c
+++ b/drivers/irqchip/irq-st.c
@@ -180,7 +180,7 @@ static int st_irq_syscfg_probe(struct platform_device *pdev)
return st_irq_syscfg_enable(pdev);
}
-static int st_irq_syscfg_resume(struct device *dev)
+static int __maybe_unused st_irq_syscfg_resume(struct device *dev)
{
struct st_irq_syscfg *ddata = dev_get_drvdata(dev);
^ permalink raw reply related [flat|nested] 36+ messages in thread
* [GIT PULL] IRQ fix
@ 2016-11-14 7:59 Ingo Molnar
0 siblings, 0 replies; 36+ messages in thread
From: Ingo Molnar @ 2016-11-14 7:59 UTC (permalink / raw)
To: Linus Torvalds
Cc: linux-kernel, Thomas Gleixner, Peter Zijlstra, Andrew Morton
Linus,
Please pull the latest irq-urgent-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-urgent-for-linus
# HEAD: 7ee7e87dfb158e79019ea1d5ea1b0e6f2bc93ee4 genirq: Use irq type from irqdata instead of irqdesc
This fixes a genirq regression that resulted in the Intel/Broxton pinctrl/GPIO
driver (and possibly others) spewing warnings.
Thanks,
Ingo
------------------>
Thomas Gleixner (1):
genirq: Use irq type from irqdata instead of irqdesc
kernel/irq/manage.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index 9c4d30483264..6b669593e7eb 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -1341,12 +1341,12 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new)
} else if (new->flags & IRQF_TRIGGER_MASK) {
unsigned int nmsk = new->flags & IRQF_TRIGGER_MASK;
- unsigned int omsk = irq_settings_get_trigger_mask(desc);
+ unsigned int omsk = irqd_get_trigger_type(&desc->irq_data);
if (nmsk != omsk)
/* hope the handler works with current trigger mode */
pr_warn("irq %d uses trigger mode %u; requested %u\n",
- irq, nmsk, omsk);
+ irq, omsk, nmsk);
}
*old_ptr = new;
^ permalink raw reply related [flat|nested] 36+ messages in thread
* [GIT PULL] irq fix
@ 2016-10-28 8:33 Ingo Molnar
0 siblings, 0 replies; 36+ messages in thread
From: Ingo Molnar @ 2016-10-28 8:33 UTC (permalink / raw)
To: Linus Torvalds
Cc: linux-kernel, Thomas Gleixner, Peter Zijlstra, Andrew Morton
Linus,
Please pull the latest irq-urgent-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-urgent-for-linus
# HEAD: 62c61514191bfe5731b43619b9b1bf4b423beeb0 doc: Add missing parameter for msi_setup
A DocBook fix.
Thanks,
Ingo
------------------>
Stephen Hemminger (1):
doc: Add missing parameter for msi_setup
drivers/pci/msi.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index bfdd0744b686..ad70507cfb56 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -610,6 +610,7 @@ static int msi_verify_entries(struct pci_dev *dev)
* msi_capability_init - configure device's MSI capability structure
* @dev: pointer to the pci_dev data structure of MSI device function
* @nvec: number of interrupts to allocate
+ * @affinity: flag to indicate cpu irq affinity mask should be set
*
* Setup the MSI capability structure of the device with the requested
* number of interrupts. A return value of zero indicates the successful
@@ -752,6 +753,7 @@ static void msix_program_entries(struct pci_dev *dev,
* @dev: pointer to the pci_dev data structure of MSI-X device function
* @entries: pointer to an array of struct msix_entry entries
* @nvec: number of @entries
+ * @affinity: flag to indicate cpu irq affinity mask should be set
*
* Setup the MSI-X capability structure of device function with a
* single MSI-X irq. A return of zero indicates the successful setup of
^ permalink raw reply related [flat|nested] 36+ messages in thread
* [GIT PULL] IRQ fix
@ 2016-08-12 19:22 Ingo Molnar
0 siblings, 0 replies; 36+ messages in thread
From: Ingo Molnar @ 2016-08-12 19:22 UTC (permalink / raw)
To: Linus Torvalds
Cc: linux-kernel, Thomas Gleixner, Peter Zijlstra, Andrew Morton
Linus,
Please pull the latest irq-urgent-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-urgent-for-linus
# HEAD: f3b0946d629c8bfbd3e5f038e30cb9c711a35f10 genirq/msi: Make sure PCI MSIs are activated early
A fix for an MSI regression.
Thanks,
Ingo
------------------>
Marc Zyngier (1):
genirq/msi: Make sure PCI MSIs are activated early
drivers/pci/msi.c | 2 ++
include/linux/msi.h | 2 ++
kernel/irq/msi.c | 11 +++++++++++
3 files changed, 15 insertions(+)
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index a02981efdad5..eafa6138a6b8 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -1411,6 +1411,8 @@ struct irq_domain *pci_msi_create_irq_domain(struct fwnode_handle *fwnode,
if (info->flags & MSI_FLAG_USE_DEF_CHIP_OPS)
pci_msi_domain_update_chip_ops(info);
+ info->flags |= MSI_FLAG_ACTIVATE_EARLY;
+
domain = msi_create_irq_domain(fwnode, info, parent);
if (!domain)
return NULL;
diff --git a/include/linux/msi.h b/include/linux/msi.h
index 4f0bfe5912b2..e8c81fbd5f9c 100644
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -270,6 +270,8 @@ enum {
MSI_FLAG_MULTI_PCI_MSI = (1 << 2),
/* Support PCI MSIX interrupts */
MSI_FLAG_PCI_MSIX = (1 << 3),
+ /* Needs early activate, required for PCI */
+ MSI_FLAG_ACTIVATE_EARLY = (1 << 4),
};
int msi_domain_set_affinity(struct irq_data *data, const struct cpumask *mask,
diff --git a/kernel/irq/msi.c b/kernel/irq/msi.c
index 54999350162c..19e9dfbe97fa 100644
--- a/kernel/irq/msi.c
+++ b/kernel/irq/msi.c
@@ -359,6 +359,17 @@ int msi_domain_alloc_irqs(struct irq_domain *domain, struct device *dev,
else
dev_dbg(dev, "irq [%d-%d] for MSI\n",
virq, virq + desc->nvec_used - 1);
+ /*
+ * This flag is set by the PCI layer as we need to activate
+ * the MSI entries before the PCI layer enables MSI in the
+ * card. Otherwise the card latches a random msi message.
+ */
+ if (info->flags & MSI_FLAG_ACTIVATE_EARLY) {
+ struct irq_data *irq_data;
+
+ irq_data = irq_domain_get_irq_data(domain, desc->irq);
+ irq_domain_activate_irq(irq_data);
+ }
}
return 0;
^ permalink raw reply related [flat|nested] 36+ messages in thread
* [GIT PULL] irq fix
@ 2016-01-08 12:42 Ingo Molnar
0 siblings, 0 replies; 36+ messages in thread
From: Ingo Molnar @ 2016-01-08 12:42 UTC (permalink / raw)
To: Linus Torvalds
Cc: linux-kernel, Thomas Gleixner, Peter Zijlstra, Andrew Morton
Linus,
Please pull the latest irq-urgent-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-urgent-for-linus
# HEAD: abc7e40c81d113ef4bacb556f0a77ca63ac81d85 genirq: Prevent chip buslock deadlock
Fixes a core IRQ subsystem deadlock.
Thanks,
Ingo
------------------>
Thomas Gleixner (1):
genirq: Prevent chip buslock deadlock
kernel/irq/manage.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index 0eebaeef317b..6ead200370da 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -1434,6 +1434,7 @@ static struct irqaction *__free_irq(unsigned int irq, void *dev_id)
if (!desc)
return NULL;
+ chip_bus_lock(desc);
raw_spin_lock_irqsave(&desc->lock, flags);
/*
@@ -1447,7 +1448,7 @@ static struct irqaction *__free_irq(unsigned int irq, void *dev_id)
if (!action) {
WARN(1, "Trying to free already-free IRQ %d\n", irq);
raw_spin_unlock_irqrestore(&desc->lock, flags);
-
+ chip_bus_sync_unlock(desc);
return NULL;
}
@@ -1475,6 +1476,7 @@ static struct irqaction *__free_irq(unsigned int irq, void *dev_id)
#endif
raw_spin_unlock_irqrestore(&desc->lock, flags);
+ chip_bus_sync_unlock(desc);
unregister_handler_proc(irq, action);
@@ -1553,9 +1555,7 @@ void free_irq(unsigned int irq, void *dev_id)
desc->affinity_notify = NULL;
#endif
- chip_bus_lock(desc);
kfree(__free_irq(irq, dev_id));
- chip_bus_sync_unlock(desc);
}
EXPORT_SYMBOL(free_irq);
^ permalink raw reply related [flat|nested] 36+ messages in thread
* [GIT PULL] irq fix
@ 2015-05-15 7:13 Ingo Molnar
0 siblings, 0 replies; 36+ messages in thread
From: Ingo Molnar @ 2015-05-15 7:13 UTC (permalink / raw)
To: Linus Torvalds
Cc: linux-kernel, Thomas Gleixner, Peter Zijlstra, Andrew Morton
Linus,
Please pull the latest irq-urgent-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-urgent-for-linus
# HEAD: 9cf82e72ec449b4516843377ac7a20abe300c64f irqchip: tegra: Set the proper base address in irq chip data
An irqchip driver memory corruption fix.
Thanks,
Ingo
------------------>
Lucas Stach (1):
irqchip: tegra: Set the proper base address in irq chip data
drivers/irqchip/irq-tegra.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/irqchip/irq-tegra.c b/drivers/irqchip/irq-tegra.c
index 51c485d9a877..f67bbd80433e 100644
--- a/drivers/irqchip/irq-tegra.c
+++ b/drivers/irqchip/irq-tegra.c
@@ -264,7 +264,7 @@ static int tegra_ictlr_domain_alloc(struct irq_domain *domain,
irq_domain_set_hwirq_and_chip(domain, virq + i, hwirq + i,
&tegra_ictlr_chip,
- &info->base[ictlr]);
+ info->base[ictlr]);
}
parent_args = *args;
^ permalink raw reply related [flat|nested] 36+ messages in thread
* [GIT PULL] irq fix
@ 2014-04-16 12:59 Ingo Molnar
0 siblings, 0 replies; 36+ messages in thread
From: Ingo Molnar @ 2014-04-16 12:59 UTC (permalink / raw)
To: Linus Torvalds
Cc: linux-kernel, Thomas Gleixner, Peter Zijlstra, Andrew Morton
Linus,
Please pull the latest irq-urgent-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-urgent-for-linus
# HEAD: f6da9fe45c3074b909084ae9da5f55034ebffeb4 irqchip: vic: Properly chain the cascaded IRQs
ARM VIC (Vectored Irq Controller) irqchip driver fix.
Thanks,
Ingo
------------------>
Linus Walleij (1):
irqchip: vic: Properly chain the cascaded IRQs
drivers/irqchip/irq-vic.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/irqchip/irq-vic.c b/drivers/irqchip/irq-vic.c
index 37dab0b..7d35287 100644
--- a/drivers/irqchip/irq-vic.c
+++ b/drivers/irqchip/irq-vic.c
@@ -24,6 +24,7 @@
#include <linux/list.h>
#include <linux/io.h>
#include <linux/irq.h>
+#include <linux/irqchip/chained_irq.h>
#include <linux/irqdomain.h>
#include <linux/of.h>
#include <linux/of_address.h>
@@ -228,12 +229,17 @@ static int handle_one_vic(struct vic_device *vic, struct pt_regs *regs)
static void vic_handle_irq_cascaded(unsigned int irq, struct irq_desc *desc)
{
u32 stat, hwirq;
+ struct irq_chip *host_chip = irq_desc_get_chip(desc);
struct vic_device *vic = irq_desc_get_handler_data(desc);
+ chained_irq_enter(host_chip, desc);
+
while ((stat = readl_relaxed(vic->base + VIC_IRQ_STATUS))) {
hwirq = ffs(stat) - 1;
generic_handle_irq(irq_find_mapping(vic->domain, hwirq));
}
+
+ chained_irq_exit(host_chip, desc);
}
/*
^ permalink raw reply related [flat|nested] 36+ messages in thread
* [GIT PULL] irq fix
@ 2013-10-04 7:51 Ingo Molnar
0 siblings, 0 replies; 36+ messages in thread
From: Ingo Molnar @ 2013-10-04 7:51 UTC (permalink / raw)
To: Linus Torvalds
Cc: linux-kernel, Thomas Gleixner, Frédéric Weisbecker,
Peter Zijlstra, Andrew Morton
Linus,
Please pull the latest irq-urgent-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-urgent-for-linus
HEAD: 0d119fb57614fe947aa9048f61d680bbede64170 Merge branch 'irq/urgent-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks into irq/urgent
Frederic's minimal fix for hardirq/softirq nesting crashes.
Thanks,
Ingo
------------------>
Frederic Weisbecker (1):
irq: Force hardirq exit's softirq processing on its own stack
kernel/softirq.c | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/kernel/softirq.c b/kernel/softirq.c
index 53cc09c..d7d498d 100644
--- a/kernel/softirq.c
+++ b/kernel/softirq.c
@@ -328,10 +328,19 @@ void irq_enter(void)
static inline void invoke_softirq(void)
{
- if (!force_irqthreads)
- __do_softirq();
- else
+ if (!force_irqthreads) {
+ /*
+ * We can safely execute softirq on the current stack if
+ * it is the irq stack, because it should be near empty
+ * at this stage. But we have no way to know if the arch
+ * calls irq_exit() on the irq stack. So call softirq
+ * in its own stack to prevent from any overrun on top
+ * of a potentially deep task stack.
+ */
+ do_softirq();
+ } else {
wakeup_softirqd();
+ }
}
static inline void tick_irq_exit(void)
^ permalink raw reply related [flat|nested] 36+ messages in thread
* [GIT PULL] irq fix
@ 2012-08-03 16:37 Ingo Molnar
0 siblings, 0 replies; 36+ messages in thread
From: Ingo Molnar @ 2012-08-03 16:37 UTC (permalink / raw)
To: Linus Torvalds
Cc: linux-kernel, Thomas Gleixner, Peter Zijlstra, Andrew Morton
Linus,
Please pull the latest irq-urgent-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-urgent-for-linus
HEAD: dc9b229a58dc0dfed34272ff26c6d5fd17c674e0 genirq: Allow irq chips to mark themself oneshot safe
Thanks,
Ingo
------------------>
Thomas Gleixner (1):
genirq: Allow irq chips to mark themself oneshot safe
include/linux/irq.h | 1 +
kernel/irq/manage.c | 15 ++++++++++++++-
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/include/linux/irq.h b/include/linux/irq.h
index 553fb66..216b0ba 100644
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -349,6 +349,7 @@ enum {
IRQCHIP_MASK_ON_SUSPEND = (1 << 2),
IRQCHIP_ONOFFLINE_ENABLED = (1 << 3),
IRQCHIP_SKIP_SET_WAKE = (1 << 4),
+ IRQCHIP_ONESHOT_SAFE = (1 << 5),
};
/* This include will go away once we isolated irq_desc usage to core code */
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index 8c54823..2e326d1 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -960,6 +960,18 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new)
}
/*
+ * Drivers are often written to work w/o knowledge about the
+ * underlying irq chip implementation, so a request for a
+ * threaded irq without a primary hard irq context handler
+ * requires the ONESHOT flag to be set. Some irq chips like
+ * MSI based interrupts are per se one shot safe. Check the
+ * chip flags, so we can avoid the unmask dance at the end of
+ * the threaded handler for those.
+ */
+ if (desc->irq_data.chip->flags & IRQCHIP_ONESHOT_SAFE)
+ new->flags &= ~IRQF_ONESHOT;
+
+ /*
* The following block of code has to be executed atomically
*/
raw_spin_lock_irqsave(&desc->lock, flags);
@@ -1033,7 +1045,8 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new)
*/
new->thread_mask = 1 << ffz(thread_mask);
- } else if (new->handler == irq_default_primary_handler) {
+ } else if (new->handler == irq_default_primary_handler &&
+ !(desc->irq_data.chip->flags & IRQCHIP_ONESHOT_SAFE)) {
/*
* The interrupt was requested with handler = NULL, so
* we use the default primary handler for it. But it
^ permalink raw reply related [flat|nested] 36+ messages in thread
* [GIT PULL] irq fix
@ 2011-12-05 19:03 Ingo Molnar
0 siblings, 0 replies; 36+ messages in thread
From: Ingo Molnar @ 2011-12-05 19:03 UTC (permalink / raw)
To: Linus Torvalds
Cc: linux-kernel, Thomas Gleixner, Peter Zijlstra, Andrew Morton
Linus,
Please pull the latest irq-urgent-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq-urgent-for-linus
Thanks,
Ingo
------------------>
Ido Yariv (1):
genirq: Fix race condition when stopping the irq thread
kernel/irq/manage.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index 0e2b179..1da999f 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -623,8 +623,9 @@ static irqreturn_t irq_nested_primary_handler(int irq, void *dev_id)
static int irq_wait_for_interrupt(struct irqaction *action)
{
+ set_current_state(TASK_INTERRUPTIBLE);
+
while (!kthread_should_stop()) {
- set_current_state(TASK_INTERRUPTIBLE);
if (test_and_clear_bit(IRQTF_RUNTHREAD,
&action->thread_flags)) {
@@ -632,7 +633,9 @@ static int irq_wait_for_interrupt(struct irqaction *action)
return 0;
}
schedule();
+ set_current_state(TASK_INTERRUPTIBLE);
}
+ __set_current_state(TASK_RUNNING);
return -1;
}
^ permalink raw reply related [flat|nested] 36+ messages in thread
* [GIT PULL] irq fix
@ 2011-06-13 9:51 Ingo Molnar
0 siblings, 0 replies; 36+ messages in thread
From: Ingo Molnar @ 2011-06-13 9:51 UTC (permalink / raw)
To: Linus Torvalds
Cc: linux-kernel, Thomas Gleixner, Peter Zijlstra, Andrew Morton
Linus,
Please pull the latest irq-urgent-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git irq-urgent-for-linus
Thanks,
Ingo
------------------>
Jesper Juhl (1):
genirq: Prevent potential NULL dereference in irq_set_irq_wake()
kernel/irq/manage.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index d64bafb..0a7840ae 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -491,6 +491,9 @@ int irq_set_irq_wake(unsigned int irq, unsigned int on)
struct irq_desc *desc = irq_get_desc_buslock(irq, &flags);
int ret = 0;
+ if (!desc)
+ return -EINVAL;
+
/* wakeup-capable irqs can be shared between drivers that
* don't need to have the same sleep mode behaviors.
*/
^ permalink raw reply related [flat|nested] 36+ messages in thread
* [GIT PULL] irq fix
@ 2011-05-03 11:48 Ingo Molnar
0 siblings, 0 replies; 36+ messages in thread
From: Ingo Molnar @ 2011-05-03 11:48 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, Thomas Gleixner, Andrew Morton
Linus,
Please pull the latest irq-fixes-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git irq-fixes-for-linus
Thanks,
Ingo
------------------>
Geert Uytterhoeven (1):
genirq: Fix typo CONFIG_GENIRC_IRQ_SHOW_LEVEL
kernel/irq/proc.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/kernel/irq/proc.c b/kernel/irq/proc.c
index dd201bd..834899f 100644
--- a/kernel/irq/proc.c
+++ b/kernel/irq/proc.c
@@ -419,7 +419,7 @@ int show_interrupts(struct seq_file *p, void *v)
} else {
seq_printf(p, " %8s", "None");
}
-#ifdef CONFIG_GENIRC_IRQ_SHOW_LEVEL
+#ifdef CONFIG_GENERIC_IRQ_SHOW_LEVEL
seq_printf(p, " %-8s", irqd_is_level_type(&desc->irq_data) ? "Level" : "Edge");
#endif
if (desc->name)
^ permalink raw reply related [flat|nested] 36+ messages in thread
* [GIT PULL] irq fix
@ 2011-04-22 13:33 Ingo Molnar
0 siblings, 0 replies; 36+ messages in thread
From: Ingo Molnar @ 2011-04-22 13:33 UTC (permalink / raw)
To: Linus Torvalds
Cc: linux-kernel, Thomas Gleixner, Peter Zijlstra, Andrew Morton
Linus,
Please pull the latest irq-fixes-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git irq-fixes-for-linus
Thanks,
Ingo
------------------>
Thomas Gleixner (1):
xtensa: Fixup irq conversion fallout and nmi_count
arch/xtensa/kernel/irq.c | 18 ++++++------------
1 files changed, 6 insertions(+), 12 deletions(-)
diff --git a/arch/xtensa/kernel/irq.c b/arch/xtensa/kernel/irq.c
index d77089d..4340ee0 100644
--- a/arch/xtensa/kernel/irq.c
+++ b/arch/xtensa/kernel/irq.c
@@ -64,47 +64,41 @@ asmlinkage void do_IRQ(int irq, struct pt_regs *regs)
int arch_show_interrupts(struct seq_file *p, int prec)
{
- int j;
-
- seq_printf(p, "%*s: ", prec, "NMI");
- for_each_online_cpu(j)
- seq_printf(p, "%10u ", nmi_count(j));
- seq_putc(p, '\n');
seq_printf(p, "%*s: ", prec, "ERR");
seq_printf(p, "%10u\n", atomic_read(&irq_err_count));
return 0;
}
-static void xtensa_irq_mask(struct irq_chip *d)
+static void xtensa_irq_mask(struct irq_data *d)
{
cached_irq_mask &= ~(1 << d->irq);
set_sr (cached_irq_mask, INTENABLE);
}
-static void xtensa_irq_unmask(struct irq_chip *d)
+static void xtensa_irq_unmask(struct irq_data *d)
{
cached_irq_mask |= 1 << d->irq;
set_sr (cached_irq_mask, INTENABLE);
}
-static void xtensa_irq_enable(struct irq_chip *d)
+static void xtensa_irq_enable(struct irq_data *d)
{
variant_irq_enable(d->irq);
xtensa_irq_unmask(d->irq);
}
-static void xtensa_irq_disable(struct irq_chip *d)
+static void xtensa_irq_disable(struct irq_data *d)
{
xtensa_irq_mask(d->irq);
variant_irq_disable(d->irq);
}
-static void xtensa_irq_ack(struct irq_chip *d)
+static void xtensa_irq_ack(struct irq_data *d)
{
set_sr(1 << d->irq, INTCLEAR);
}
-static int xtensa_irq_retrigger(struct irq_chip *d)
+static int xtensa_irq_retrigger(struct irq_data *d)
{
set_sr (1 << d->irq, INTSET);
return 1;
^ permalink raw reply related [flat|nested] 36+ messages in thread
* [GIT PULL] irq fix
@ 2011-04-07 17:46 Ingo Molnar
0 siblings, 0 replies; 36+ messages in thread
From: Ingo Molnar @ 2011-04-07 17:46 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, Thomas Gleixner, Andrew Morton
Linus,
Please pull the latest irq-fixes-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git irq-fixes-for-linus
Thanks,
Ingo
------------------>
Xiaotian Feng (1):
genirq: Fix cpumask leak in __setup_irq()
kernel/irq/manage.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index 12a80fd..07c1611 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -1051,6 +1051,7 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new)
register_irq_proc(irq, desc);
new->dir = NULL;
register_handler_proc(irq, new);
+ free_cpumask_var(mask);
return 0;
^ permalink raw reply related [flat|nested] 36+ messages in thread
* [GIT PULL] irq fix
@ 2011-02-03 17:14 Ingo Molnar
0 siblings, 0 replies; 36+ messages in thread
From: Ingo Molnar @ 2011-02-03 17:14 UTC (permalink / raw)
To: Linus Torvalds
Cc: linux-kernel, Thomas Gleixner, Peter Zijlstra, Andrew Morton
Linus,
Please pull the latest irq-fixes-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git irq-fixes-for-linus
Thanks,
Ingo
------------------>
Thomas Gleixner (1):
genirq: Prevent irq storm on migration
kernel/irq/migration.c | 14 +++++++++++---
1 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/kernel/irq/migration.c b/kernel/irq/migration.c
index 1d25419..441fd62 100644
--- a/kernel/irq/migration.c
+++ b/kernel/irq/migration.c
@@ -56,6 +56,7 @@ void move_masked_irq(int irq)
void move_native_irq(int irq)
{
struct irq_desc *desc = irq_to_desc(irq);
+ bool masked;
if (likely(!(desc->status & IRQ_MOVE_PENDING)))
return;
@@ -63,8 +64,15 @@ void move_native_irq(int irq)
if (unlikely(desc->status & IRQ_DISABLED))
return;
- desc->irq_data.chip->irq_mask(&desc->irq_data);
+ /*
+ * Be careful vs. already masked interrupts. If this is a
+ * threaded interrupt with ONESHOT set, we can end up with an
+ * interrupt storm.
+ */
+ masked = desc->status & IRQ_MASKED;
+ if (!masked)
+ desc->irq_data.chip->irq_mask(&desc->irq_data);
move_masked_irq(irq);
- desc->irq_data.chip->irq_unmask(&desc->irq_data);
+ if (!masked)
+ desc->irq_data.chip->irq_unmask(&desc->irq_data);
}
-
^ permalink raw reply related [flat|nested] 36+ messages in thread
* [GIT PULL] irq fix
@ 2010-12-08 8:05 Ingo Molnar
0 siblings, 0 replies; 36+ messages in thread
From: Ingo Molnar @ 2010-12-08 8:05 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, Thomas Gleixner, Andrew Morton
Linus,
Please pull the latest irq-fixes-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git irq-fixes-for-linus
Thanks,
Ingo
------------------>
Kenji Kaneshige (1):
genirq: Fix incorrect proc spurious output
kernel/irq/proc.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/kernel/irq/proc.c b/kernel/irq/proc.c
index 01b1d3a..6c8a2a9 100644
--- a/kernel/irq/proc.c
+++ b/kernel/irq/proc.c
@@ -214,7 +214,7 @@ static int irq_spurious_proc_show(struct seq_file *m, void *v)
static int irq_spurious_proc_open(struct inode *inode, struct file *file)
{
- return single_open(file, irq_spurious_proc_show, NULL);
+ return single_open(file, irq_spurious_proc_show, PDE(inode)->data);
}
static const struct file_operations irq_spurious_proc_fops = {
^ permalink raw reply related [flat|nested] 36+ messages in thread
* [GIT PULL] irq fix
@ 2009-11-10 17:50 Ingo Molnar
0 siblings, 0 replies; 36+ messages in thread
From: Ingo Molnar @ 2009-11-10 17:50 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, Thomas Gleixner, Andrew Morton
Linus,
Please pull the latest irq-fixes-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git irq-fixes-for-linus
Thanks,
Ingo
------------------>
Yong Zhang (1):
genirq: try_one_irq() must be called with irq disabled
kernel/irq/spurious.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/kernel/irq/spurious.c b/kernel/irq/spurious.c
index 114e704..bd7273e 100644
--- a/kernel/irq/spurious.c
+++ b/kernel/irq/spurious.c
@@ -121,7 +121,9 @@ static void poll_all_shared_irqs(void)
if (!(status & IRQ_SPURIOUS_DISABLED))
continue;
+ local_irq_disable();
try_one_irq(i, desc);
+ local_irq_enable();
}
}
^ permalink raw reply related [flat|nested] 36+ messages in thread
* [GIT PULL] irq fix
@ 2009-08-10 18:15 Ingo Molnar
0 siblings, 0 replies; 36+ messages in thread
From: Ingo Molnar @ 2009-08-10 18:15 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, Thomas Gleixner
Linus,
Please pull the latest irq-fixes-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git irq-fixes-for-linus
Thanks,
Ingo
------------------>
Yinghai Lu (1):
x86/irq: Fix move_irq_desc() for nodes without ram
kernel/irq/numa_migrate.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/kernel/irq/numa_migrate.c b/kernel/irq/numa_migrate.c
index 2f69bee..3fd3019 100644
--- a/kernel/irq/numa_migrate.c
+++ b/kernel/irq/numa_migrate.c
@@ -107,8 +107,8 @@ out_unlock:
struct irq_desc *move_irq_desc(struct irq_desc *desc, int node)
{
- /* those all static, do move them */
- if (desc->irq < NR_IRQS_LEGACY)
+ /* those static or target node is -1, do not move them */
+ if (desc->irq < NR_IRQS_LEGACY || node == -1)
return desc;
if (desc->node != node)
^ permalink raw reply related [flat|nested] 36+ messages in thread
end of thread, other threads:[~2024-05-05 19:43 UTC | newest]
Thread overview: 36+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-28 8:05 [GIT PULL] IRQ fix Ingo Molnar
2024-04-28 19:28 ` pr-tracker-bot
-- strict thread matches above, loose matches on Subject: below --
2024-05-05 9:06 Ingo Molnar
2024-05-05 19:43 ` pr-tracker-bot
2024-04-14 7:54 Ingo Molnar
2024-04-14 18:48 ` pr-tracker-bot
2024-03-18 9:40 Ingo Molnar
2024-03-18 16:48 ` pr-tracker-bot
2023-10-28 13:17 Ingo Molnar
2023-10-28 18:17 ` pr-tracker-bot
2021-05-15 7:44 Ingo Molnar
2021-05-15 17:55 ` pr-tracker-bot
2020-01-18 17:19 Ingo Molnar
2020-01-18 21:05 ` pr-tracker-bot
2019-09-12 8:35 Ingo Molnar
2019-09-12 10:15 ` pr-tracker-bot
2017-11-05 14:37 Ingo Molnar
2017-03-07 20:24 Ingo Molnar
2016-12-23 22:46 Ingo Molnar
2016-11-14 7:59 Ingo Molnar
2016-10-28 8:33 [GIT PULL] irq fix Ingo Molnar
2016-08-12 19:22 [GIT PULL] IRQ fix Ingo Molnar
2016-01-08 12:42 [GIT PULL] irq fix Ingo Molnar
2015-05-15 7:13 Ingo Molnar
2014-04-16 12:59 Ingo Molnar
2013-10-04 7:51 Ingo Molnar
2012-08-03 16:37 Ingo Molnar
2011-12-05 19:03 Ingo Molnar
2011-06-13 9:51 Ingo Molnar
2011-05-03 11:48 Ingo Molnar
2011-04-22 13:33 Ingo Molnar
2011-04-07 17:46 Ingo Molnar
2011-02-03 17:14 Ingo Molnar
2010-12-08 8:05 Ingo Molnar
2009-11-10 17:50 Ingo Molnar
2009-08-10 18:15 Ingo Molnar
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.