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 */