Home Home > GIT Browse > SLE15-SP1
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetr Tesarik <ptesarik@suse.cz>2019-07-19 11:31:07 +0200
committerPetr Tesarik <ptesarik@suse.cz>2019-07-19 14:09:50 +0200
commitf33c33608dd6c2418da26fe515aa8dca17edd18f (patch)
tree346f38141c84e4fbeef90c8a198336ddc9d25c8a
parentef4acb5ab7681c72abd7ffdafb286285dc7ca0f3 (diff)
kABI: mask changes made by use of DMA memory for adapter
interrupts (jsc#SLE-6197 FATE#327012 bsc#1140559 LTC#173150).
-rw-r--r--patches.kabi/s390-airq-use-dma-memory-for-adapter-interrupts50
-rw-r--r--series.conf1
2 files changed, 51 insertions, 0 deletions
diff --git a/patches.kabi/s390-airq-use-dma-memory-for-adapter-interrupts b/patches.kabi/s390-airq-use-dma-memory-for-adapter-interrupts
new file mode 100644
index 0000000000..993a99d7b7
--- /dev/null
+++ b/patches.kabi/s390-airq-use-dma-memory-for-adapter-interrupts
@@ -0,0 +1,50 @@
+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 */
diff --git a/series.conf b/series.conf
index 7b87d1d582..4624a0938e 100644
--- a/series.conf
+++ b/series.conf
@@ -48751,6 +48751,7 @@
patches.kabi/scsi-cxgbi-kabi-fix-handle-completion-etc
patches.kabi/s390-mm-force-swiotlb-for-protected-virtualization
patches.kabi/s390-cio-add-basic-protected-virtualization-support
+ patches.kabi/s390-airq-use-dma-memory-for-adapter-interrupts
########################################################
# You'd better have a good reason for adding a patch