Home Home > GIT Browse > SLE12-SP5-AZURE
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Wagner <dwagner@suse.de>2019-08-19 19:10:57 +0200
committerMichal Suchanek <msuchanek@suse.de>2019-08-21 18:53:28 +0200
commit26b564915801d7725468eb8acf2e4fb1c3bee0e6 (patch)
tree644db1aabe91914872e6a376d84a4a7eb04cecd2
parent08f02649b5d62fe7253623657e23a4ed664e2591 (diff)
qla2xxx: kABI fixes for v10.01.00.18-k (bcs#1082635 bcs#1141340
bcs#1143706).
-rw-r--r--patches.kabi/qla2xxx-kABI-fixes-for-v10.01.00.18-k.patch160
-rw-r--r--series.conf2
2 files changed, 162 insertions, 0 deletions
diff --git a/patches.kabi/qla2xxx-kABI-fixes-for-v10.01.00.18-k.patch b/patches.kabi/qla2xxx-kABI-fixes-for-v10.01.00.18-k.patch
new file mode 100644
index 0000000000..4d5e26c937
--- /dev/null
+++ b/patches.kabi/qla2xxx-kABI-fixes-for-v10.01.00.18-k.patch
@@ -0,0 +1,160 @@
+From: Daniel Wagner <dwagner@suse.de>
+Date: Thu, 15 Aug 2019 08:50:13 +0200
+Subject: [PATCH] qla2xxx: kABI fixes for v10.01.00.18-k
+References: bcs#1082635 bcs#1141340 bcs#1143706
+Patch-Mainline: never, SLE15 SP1 specific kABI fix.
+
+That patch series breaks kABI again, so fix it up.
+
+Signed-off-by: Daniel Wagner <dwagner@suse.de>
+---
+ drivers/nvme/host/fc.c | 2 ++
+ drivers/scsi/qla2xxx/qla_def.h | 22 +++++++++++++++++++---
+ drivers/scsi/qla2xxx/qla_nvme.h | 5 +++++
+ drivers/scsi/qla2xxx/qla_target.h | 21 +++++++++++++--------
+ 4 files changed, 39 insertions(+), 11 deletions(-)
+
+--- a/drivers/nvme/host/fc.c
++++ b/drivers/nvme/host/fc.c
+@@ -26,7 +26,9 @@
+ #include "fabrics.h"
+ #include <linux/nvme-fc-driver.h>
+ #include <linux/nvme-fc.h>
++#ifndef __GENKSYMS__
+ #include <scsi/scsi_transport_fc.h>
++#endif
+
+ /* *************************** Data Structures/Defines ****************** */
+
+--- a/drivers/scsi/qla2xxx/qla_def.h
++++ b/drivers/scsi/qla2xxx/qla_def.h
+@@ -531,12 +531,9 @@ typedef struct srb {
+ uint8_t cmd_type;
+ uint8_t pad[3];
+ atomic_t ref_count;
+- struct kref cmd_kref; /* need to migrate ref_count over to this */
+- void *priv;
+ wait_queue_head_t nvme_ls_waitq;
+ struct fc_port *fcport;
+ struct scsi_qla_host *vha;
+- unsigned int start_timer:1;
+ uint32_t handle;
+ uint16_t flags;
+ uint16_t type;
+@@ -548,7 +545,11 @@ typedef struct srb {
+ u32 gen2; /* scratch */
+ int rc;
+ int retry_count;
++#ifdef __GENKSYMS__
++ struct completion comp;
++#else
+ struct completion *comp;
++#endif
+ union {
+ struct srb_iocb iocb_cmd;
+ struct bsg_job *bsg_job;
+@@ -556,7 +557,12 @@ typedef struct srb {
+ } u;
+ void (*done)(void *, int);
+ void (*free)(void *);
++#ifndef __GENKSYMS__
++ struct kref cmd_kref; /* need to migrate ref_count over to this */
++ void *priv;
++ unsigned int start_timer:1;
+ void (*put_fn)(struct kref *kref);
++#endif
+ } srb_t;
+
+ #define GET_CMD_SP(sp) (sp->u.scmd.cmd)
+@@ -2267,10 +2273,14 @@ typedef enum {
+ FCT_BROADCAST,
+ FCT_INITIATOR,
+ FCT_TARGET,
++#ifdef __GENKSYMS__
++ FCT_NVME
++#else
+ FCT_NVME_INITIATOR = 0x10,
+ FCT_NVME_TARGET = 0x20,
+ FCT_NVME_DISCOVERY = 0x40,
+ FCT_NVME = 0xf0,
++#endif
+ } fc_port_type_t;
+
+ enum qla_sess_deletion {
+@@ -2372,6 +2382,9 @@ typedef struct fc_port {
+ unsigned int id_changed:1;
+ unsigned int scan_needed:1;
+
++#ifdef __GENKSYMS__
++ struct work_struct nvme_del_work;
++#endif
+ struct completion nvme_del_done;
+ uint32_t nvme_prli_service_param;
+ #define NVME_PRLI_SP_CONF BIT_7
+@@ -4411,6 +4424,9 @@ typedef struct scsi_qla_host {
+
+ struct nvme_fc_local_port *nvme_local_port;
+ struct completion nvme_del_done;
++#ifdef __GENKSYMS__
++ struct list_head nvme_rport_list;
++#endif
+
+ uint16_t fcoe_vlan_id;
+ uint16_t fcoe_fcf_idx;
+--- a/drivers/scsi/qla2xxx/qla_nvme.h
++++ b/drivers/scsi/qla2xxx/qla_nvme.h
+@@ -33,10 +33,15 @@ struct nvme_private {
+ struct work_struct ls_work;
+ struct work_struct abort_work;
+ int comp_status;
++#ifndef __GENKSYMS__
+ spinlock_t cmd_lock;
++#endif
+ };
+
+ struct qla_nvme_rport {
++#ifdef __GENKSYMS__
++ struct list_head list;
++#endif
+ struct fc_port *fcport;
+ };
+
+--- a/drivers/scsi/qla2xxx/qla_target.h
++++ b/drivers/scsi/qla2xxx/qla_target.h
+@@ -889,14 +889,12 @@ struct qla_tgt_cmd {
+ unsigned int term_exchg:1;
+ unsigned int cmd_sent_to_fw:1;
+ unsigned int cmd_in_wq:1;
+-
+- /*
+- * This variable may be set from outside the LIO and I/O completion
+- * callback functions. Do not declare this member variable as a
+- * bitfield to avoid a read-modify-write operation when this variable
+- * is set.
+- */
+- unsigned int aborted;
++#ifdef __GENKSYMS__
++ unsigned int aborted:1;
++ unsigned int data_work:1;
++ unsigned int data_work_free:1;
++ unsigned int released:1;
++#endif
+
+ struct scatterlist *sg; /* cmd data buffer SG vector */
+ int sg_cnt; /* SG segments count */
+@@ -939,6 +937,15 @@ struct qla_tgt_cmd {
+ uint64_t jiffies_at_free;
+
+ enum trace_flags trc_flags;
++#ifndef __GENKSYMS__
++ /*
++ * This variable may be set from outside the LIO and I/O completion
++ * callback functions. Do not declare this member variable as a
++ * bitfield to avoid a read-modify-write operation when this variable
++ * is set.
++ */
++ unsigned int aborted;
++#endif
+ };
+
+ struct qla_tgt_sess_work_param {
diff --git a/series.conf b/series.conf
index 647de9851c..917552c5d8 100644
--- a/series.conf
+++ b/series.conf
@@ -49698,6 +49698,8 @@
patches.kabi/KVM-Fix-kABI.patch
+ patches.kabi/qla2xxx-kABI-fixes-for-v10.01.00.18-k.patch
+
########################################################
# You'd better have a good reason for adding a patch
# below here.