Blob Blame History Raw
From: Petr Tesarik <ptesarik@suse.com>
Subject: kABI: mask changes made by use of DMA memory for adapter interrupts
Patch-mainline: never, kabi
References: jsc#SLE-6197 FATE#327012 bsc#1140559 LTC#173150

Upstream commit b50623e5db802e41736f3305cb54c03bc7f0e30a added a new
field to struct iv_irq. This struct is never embedded and should not be
allocated outside of airq_iv_create(), so it is safe to add masked
fields at the end of the struct.

The same upstream commit also changes some symvers by including
linux/dma-mapping.h from arch/s390/include/asm/airq.h. This provides
full definition of a few dma-related structs that were previously
incomplete.

Signed-off-by: Petr Tesarik <ptesarik@suse.com>
---
 arch/s390/include/asm/airq.h |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

--- a/arch/s390/include/asm/airq.h
+++ b/arch/s390/include/asm/airq.h
@@ -10,7 +10,9 @@
 #define _ASM_S390_AIRQ_H
 
 #include <linux/bit_spinlock.h>
+#ifndef __GENKSYMS__
 #include <linux/dma-mapping.h>
+#endif
 
 struct airq_struct {
 	struct hlist_node list;		/* Handler queueing. */
@@ -29,7 +31,6 @@ void unregister_adapter_interrupt(struct
 /* Adapter interrupt bit vector */
 struct airq_iv {
 	unsigned long *vector;	/* Adapter interrupt bit vector */
-	dma_addr_t vector_dma; /* Adapter interrupt bit vector dma */
 	unsigned long *avail;	/* Allocation bit mask for the bit vector */
 	unsigned long *bitlock;	/* Lock bit mask for the bit vector */
 	unsigned long *ptr;	/* Pointer associated with each bit */
@@ -38,6 +39,9 @@ struct airq_iv {
 	unsigned long end;	/* Number of highest allocated bit + 1 */
 	unsigned long flags;	/* Allocation flags */
 	spinlock_t lock;	/* Lock to protect alloc & free */
+#ifndef __GENKSYMS__
+	dma_addr_t vector_dma; /* Adapter interrupt bit vector dma */
+#endif
 };
 
 #define AIRQ_IV_ALLOC		1	/* Use an allocation bit mask */