mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-27 05:55:18 +07:00
1f44a22577
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>
29 lines
655 B
C
29 lines
655 B
C
/*
|
|
* S390 version
|
|
* Copyright IBM Corp. 1999, 2000
|
|
* Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com),
|
|
* Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com)
|
|
*
|
|
* Derived from "include/asm-i386/hardirq.h"
|
|
*/
|
|
|
|
#ifndef __ASM_HARDIRQ_H
|
|
#define __ASM_HARDIRQ_H
|
|
|
|
#include <asm/lowcore.h>
|
|
|
|
#define local_softirq_pending() (S390_lowcore.softirq_pending)
|
|
|
|
#define __ARCH_IRQ_STAT
|
|
#define __ARCH_HAS_DO_SOFTIRQ
|
|
#define __ARCH_IRQ_EXIT_IRQS_DISABLED
|
|
|
|
#define HARDIRQ_BITS 8
|
|
|
|
static inline void ack_bad_irq(unsigned int irq)
|
|
{
|
|
printk(KERN_CRIT "unexpected IRQ trap at vector %02x\n", irq);
|
|
}
|
|
|
|
#endif /* __ASM_HARDIRQ_H */
|