Commit 30e63ef2 authored by Sebastian Ott's avatar Sebastian Ott Committed by Martin Schwidefsky
Browse files

s390/airq: recognize directed interrupts



Add an extra parameter for airq handlers to recognize
floating vs. directed interrupts.

Signed-off-by: default avatarSebastian Ott <sebott@linux.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 0a9fddfa
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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 */
+1 −1
Original line number Diff line number Diff line
@@ -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();
+1 −1
Original line number Diff line number Diff line
@@ -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;
+1 −1
Original line number Diff line number Diff line
@@ -95,7 +95,7 @@ static irqreturn_t do_airq_interrupt(int irq, void *dummy)
	rcu_read_lock();
	hlist_for_each_entry_rcu(airq, head, list)
		if ((*airq->lsi_ptr & airq->lsi_mask) != 0)
			airq->handler(airq);
			airq->handler(airq, !tpi_info->directed_irq);
	rcu_read_unlock();

	return IRQ_HANDLED;
+1 −1
Original line number Diff line number Diff line
@@ -51,7 +51,7 @@ struct tpi_info {
	struct subchannel_id schid;
	u32 intparm;
	u32 adapter_IO:1;
	u32 :1;
	u32 directed_irq:1;
	u32 isc:3;
	u32 :27;
	u32 type:3;
Loading