s390: convert interrupt handling to use generic hardirq
authorMartin Schwidefsky <schwidefsky@de.ibm.com>
Thu, 27 Jun 2013 07:01:09 +0000 (09:01 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Thu, 22 Aug 2013 10:20:04 +0000 (12:20 +0200)
commit1f44a225777e40fd9a945b09f958052c47494e1e
treec33f67424d4cb06f481883b25e75390eccd15ca7
parent5d0d8f43535bc4e19406ecf158340ccc4027a477
s390: convert interrupt handling to use generic hardirq

With the introduction of PCI it became apparent that s390 should
convert to generic hardirqs as too many drivers do not have the
correct dependency for GENERIC_HARDIRQS. On the architecture
level s390 does not have irq lines. It has external interrupts,
I/O interrupts and adapter interrupts. This patch hard-codes all
external interrupts as irq #1, all I/O interrupts as irq #2 and
all adapter interrupts as irq #3. The additional information from
the lowcore associated with the interrupt is stored in the
pt_regs of the interrupt frame, where the interrupt handler can
pick it up. For PCI/MSI interrupts the adapter interrupt handler
scans the relevant bit fields and calls generic_handle_irq with
the virtual irq number for the MSI interrupt.

Reviewed-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
15 files changed:
arch/s390/Kconfig
arch/s390/include/asm/hardirq.h
arch/s390/include/asm/hw_irq.h
arch/s390/include/asm/irq.h
arch/s390/include/asm/pci.h
arch/s390/include/asm/serial.h [new file with mode: 0644]
arch/s390/kernel/entry.S
arch/s390/kernel/entry64.S
arch/s390/kernel/irq.c
arch/s390/pci/Makefile
arch/s390/pci/pci.c
arch/s390/pci/pci_msi.c [deleted file]
drivers/s390/cio/airq.c
drivers/s390/cio/cio.c
drivers/s390/cio/cio.h