lkml.org 
[lkml]   [2017]   [Sep]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[patch 11/52] genirq/irqdomain: Add force reactivation flag to irq domains
Allow irqdomains to tell the core code, that after early activation the
interrupt needs to be reactivated at request_irq() time.

This allows reservation of vectors at early activation time and actual
vector assignment at request_irq() time.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
include/linux/msi.h | 5 +++++
kernel/irq/msi.c | 2 ++
2 files changed, 7 insertions(+)

Index: b/include/linux/msi.h
===================================================================
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -283,6 +283,11 @@ enum {
MSI_FLAG_PCI_MSIX = (1 << 3),
/* Needs early activate, required for PCI */
MSI_FLAG_ACTIVATE_EARLY = (1 << 4),
+ /*
+ * Must reactivate when irq is started even when
+ * MSI_FLAG_ACTIVATE_EARLY has been set.
+ */
+ MSI_FLAG_MUST_REACTIVATE = (1 << 5),
};

int msi_domain_set_affinity(struct irq_data *data, const struct cpumask *mask,
Index: b/kernel/irq/msi.c
===================================================================
--- a/kernel/irq/msi.c
+++ b/kernel/irq/msi.c
@@ -403,6 +403,8 @@ int msi_domain_alloc_irqs(struct irq_dom
ret = irq_domain_activate_irq(irq_data, true);
if (ret)
goto cleanup;
+ if (info->flags & MSI_FLAG_MUST_REACTIVATE)
+ irqd_clr_activated(irq_data);
}
}
return 0;

\
 
 \ /
  Last update: 2017-09-13 23:47    [W:0.586 / U:4.676 seconds]
©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site