Skip to content

Commit 934f585

Browse files
Julien Grallkonradwilk
authored andcommitted
xen: clear IRQ_NOAUTOEN and IRQ_NOREQUEST
Reset the IRQ_NOAUTOEN and IRQ_NOREQUEST flags that are enabled by default on ARM. If IRQ_NOAUTOEN is set, __setup_irq doesn't call irq_startup, that is responsible for calling irq_unmask at startup time. As a result event channels remain masked. The clear is already made in bind_evtchn_to_irq with commit a8636c0 but was missing on all others bind_*_to_irq. Move the clear in xen_irq_info_common_init. On x86, IRQ_NOAUTOEN and IRQ_NOREQUEST are cleared by default, so this commit doesn't impact this architecture. Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Signed-off-by: Julien Grall <julien.grall@linaro.org> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
1 parent 4ea9b9a commit 934f585

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

drivers/xen/events.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,8 @@ static void xen_irq_info_common_init(struct irq_info *info,
167167
info->cpu = cpu;
168168

169169
evtchn_to_irq[evtchn] = irq;
170+
171+
irq_clear_status_flags(irq, IRQ_NOREQUEST|IRQ_NOAUTOEN);
170172
}
171173

172174
static void xen_irq_info_evtchn_init(unsigned irq,
@@ -874,7 +876,6 @@ int bind_evtchn_to_irq(unsigned int evtchn)
874876
struct irq_info *info = info_for_irq(irq);
875877
WARN_ON(info == NULL || info->type != IRQT_EVTCHN);
876878
}
877-
irq_clear_status_flags(irq, IRQ_NOREQUEST|IRQ_NOAUTOEN);
878879

879880
out:
880881
mutex_unlock(&irq_mapping_update_lock);

0 commit comments

Comments
 (0)