Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull IRQ fixes from Ingo Molnar: "Mostly irqchip driver fixes, but also an irq core crash fix and a build fix" * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: irqchip/mxs: Add missing set_handle_irq() irqchip/atmel-aic: Fix wrong bit operation for IRQ priority irqchip/gic-v3-its: Recompute the number of pages on page size change base: Export platform_msi_domain_[alloc,free]_irqs of: MSI: Simplify irqdomain lookup irqdomain: Allow domain lookup with DOMAIN_BUS_WIRED token irqchip: Fix dependencies for archs w/o HAS_IOMEM irqchip/s3c24xx: Mark init_eint as __maybe_unused genirq: Validate action before dereferencing it in handle_irq_event_percpu()
This commit is contained in:
@@ -138,7 +138,8 @@ irqreturn_t handle_irq_event_percpu(struct irq_desc *desc)
|
||||
unsigned int flags = 0, irq = desc->irq_data.irq;
|
||||
struct irqaction *action = desc->action;
|
||||
|
||||
do {
|
||||
/* action might have become NULL since we dropped the lock */
|
||||
while (action) {
|
||||
irqreturn_t res;
|
||||
|
||||
trace_irq_handler_entry(irq, action);
|
||||
@@ -173,7 +174,7 @@ irqreturn_t handle_irq_event_percpu(struct irq_desc *desc)
|
||||
|
||||
retval |= res;
|
||||
action = action->next;
|
||||
} while (action);
|
||||
}
|
||||
|
||||
add_interrupt_randomness(irq, flags);
|
||||
|
||||
|
@@ -575,10 +575,15 @@ unsigned int irq_create_fwspec_mapping(struct irq_fwspec *fwspec)
|
||||
unsigned int type = IRQ_TYPE_NONE;
|
||||
int virq;
|
||||
|
||||
if (fwspec->fwnode)
|
||||
domain = irq_find_matching_fwnode(fwspec->fwnode, DOMAIN_BUS_ANY);
|
||||
else
|
||||
if (fwspec->fwnode) {
|
||||
domain = irq_find_matching_fwnode(fwspec->fwnode,
|
||||
DOMAIN_BUS_WIRED);
|
||||
if (!domain)
|
||||
domain = irq_find_matching_fwnode(fwspec->fwnode,
|
||||
DOMAIN_BUS_ANY);
|
||||
} else {
|
||||
domain = irq_default_domain;
|
||||
}
|
||||
|
||||
if (!domain) {
|
||||
pr_warn("no irq domain found for %s !\n",
|
||||
|
Reference in New Issue
Block a user