aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorSebastian Ott <sebott@linux.ibm.com>2018-10-28 11:51:56 +0100
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2019-04-29 10:47:01 +0200
commit30e63ef2ef43f014bf2039bd57cc917780d6a44b (patch)
tree9cdcede18e3b4465dd20f4baf5e9d9e01c4bea52 /arch
parents390/sclp: detect DIRQ facility (diff)
downloadlinux-dev-30e63ef2ef43f014bf2039bd57cc917780d6a44b.tar.xz
linux-dev-30e63ef2ef43f014bf2039bd57cc917780d6a44b.zip
s390/airq: recognize directed interrupts
Add an extra parameter for airq handlers to recognize floating vs. directed interrupts. Signed-off-by: Sebastian Ott <sebott@linux.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/s390/include/asm/airq.h2
-rw-r--r--arch/s390/kvm/interrupt.c2
-rw-r--r--arch/s390/pci/pci_irq.c2
3 files changed, 3 insertions, 3 deletions
diff --git a/arch/s390/include/asm/airq.h b/arch/s390/include/asm/airq.h
index fcf539efb32f..91e78df365c7 100644
--- a/arch/s390/include/asm/airq.h
+++ b/arch/s390/include/asm/airq.h
@@ -14,7 +14,7 @@
struct airq_struct {
struct hlist_node list; /* Handler queueing. */
- void (*handler)(struct airq_struct *); /* Thin-interrupt handler */
+ void (*handler)(struct airq_struct *airq, bool floating);
u8 *lsi_ptr; /* Local-Summary-Indicator pointer */
u8 lsi_mask; /* Local-Summary-Indicator mask */
u8 isc; /* Interrupt-subclass */
diff --git a/arch/s390/kvm/interrupt.c b/arch/s390/kvm/interrupt.c
index 82162867f378..37503ae62486 100644
--- a/arch/s390/kvm/interrupt.c
+++ b/arch/s390/kvm/interrupt.c
@@ -3194,7 +3194,7 @@ out:
}
EXPORT_SYMBOL_GPL(kvm_s390_gisc_unregister);
-static void gib_alert_irq_handler(struct airq_struct *airq)
+static void gib_alert_irq_handler(struct airq_struct *airq, bool floating)
{
inc_irq_stat(IRQIO_GAL);
process_gib_alert_list();
diff --git a/arch/s390/pci/pci_irq.c b/arch/s390/pci/pci_irq.c
index 3b129cd35b6e..55e22e392376 100644
--- a/arch/s390/pci/pci_irq.c
+++ b/arch/s390/pci/pci_irq.c
@@ -56,7 +56,7 @@ static struct irq_chip zpci_irq_chip = {
.irq_mask = pci_msi_mask_irq,
};
-static void zpci_irq_handler(struct airq_struct *airq)
+static void zpci_irq_handler(struct airq_struct *airq, bool floating)
{
unsigned long si, ai;
struct airq_iv *aibv;