提交 934f585e 编写于 作者: J Julien Grall 提交者: Konrad Rzeszutek Wilk

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 a8636c0b 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: NStefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: NJulien Grall <julien.grall@linaro.org>
Signed-off-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
上级 4ea9b9ac
...@@ -167,6 +167,8 @@ static void xen_irq_info_common_init(struct irq_info *info, ...@@ -167,6 +167,8 @@ static void xen_irq_info_common_init(struct irq_info *info,
info->cpu = cpu; info->cpu = cpu;
evtchn_to_irq[evtchn] = irq; evtchn_to_irq[evtchn] = irq;
irq_clear_status_flags(irq, IRQ_NOREQUEST|IRQ_NOAUTOEN);
} }
static void xen_irq_info_evtchn_init(unsigned irq, static void xen_irq_info_evtchn_init(unsigned irq,
...@@ -874,7 +876,6 @@ int bind_evtchn_to_irq(unsigned int evtchn) ...@@ -874,7 +876,6 @@ int bind_evtchn_to_irq(unsigned int evtchn)
struct irq_info *info = info_for_irq(irq); struct irq_info *info = info_for_irq(irq);
WARN_ON(info == NULL || info->type != IRQT_EVTCHN); WARN_ON(info == NULL || info->type != IRQT_EVTCHN);
} }
irq_clear_status_flags(irq, IRQ_NOREQUEST|IRQ_NOAUTOEN);
out: out:
mutex_unlock(&irq_mapping_update_lock); mutex_unlock(&irq_mapping_update_lock);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册