Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'irq-urgent-2024-03-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull irq fix from Ingo Molnar:
"A RISC-V irqchip driver fix"

* tag 'irq-urgent-2024-03-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
irqchip/riscv-intc: Fix use of AIA interrupts 32-63 on riscv32

+8 -5
+8 -5
drivers/irqchip/irq-riscv-intc.c
··· 149 149 * Only allow hwirq for which we have corresponding standard or 150 150 * custom interrupt enable register. 151 151 */ 152 - if ((hwirq >= riscv_intc_nr_irqs && hwirq < riscv_intc_custom_base) || 153 - (hwirq >= riscv_intc_custom_base + riscv_intc_custom_nr_irqs)) 152 + if (hwirq >= riscv_intc_nr_irqs && 153 + (hwirq < riscv_intc_custom_base || 154 + hwirq >= riscv_intc_custom_base + riscv_intc_custom_nr_irqs)) 154 155 return -EINVAL; 155 156 156 157 for (i = 0; i < nr_irqs; i++) { ··· 184 183 return -ENXIO; 185 184 } 186 185 187 - if (riscv_isa_extension_available(NULL, SxAIA)) 186 + if (riscv_isa_extension_available(NULL, SxAIA)) { 187 + riscv_intc_nr_irqs = 64; 188 188 rc = set_handle_irq(&riscv_intc_aia_irq); 189 - else 189 + } else { 190 190 rc = set_handle_irq(&riscv_intc_irq); 191 + } 191 192 if (rc) { 192 193 pr_err("failed to set irq handler\n"); 193 194 return rc; ··· 198 195 riscv_set_intc_hwnode_fn(riscv_intc_hwnode); 199 196 200 197 pr_info("%d local interrupts mapped%s\n", 201 - riscv_isa_extension_available(NULL, SxAIA) ? 64 : riscv_intc_nr_irqs, 198 + riscv_intc_nr_irqs, 202 199 riscv_isa_extension_available(NULL, SxAIA) ? " using AIA" : ""); 203 200 if (riscv_intc_custom_nr_irqs) 204 201 pr_info("%d custom local interrupts mapped\n", riscv_intc_custom_nr_irqs);