hulk inclusion category: feature bugzilla: https://gitee.com/openeuler/kernel/issues/I8ZUL1
--------------------------------
Reserve space for structure fc_fdmi_attr_entry/fs_fdmi_attrs/ libfc_cmd_priv/fcoe_percpu_s/iscsi_task/iscsi_cmd/iscsi_conn/ iscsi_session/iscsi_host/scsi_cmnd/scsi_device/scsi_exec_args/ scsi_device_handler/scsi_driver/scsi_eh_save/scsi_host_template/ Scsi_Host.
Signed-off-by: Li Lingfeng lilingfeng3@huawei.com --- include/scsi/fc/fc_ms.h | 5 +++++ include/scsi/libfc.h | 3 +++ include/scsi/libfcoe.h | 3 +++ include/scsi/libiscsi.h | 16 ++++++++++++++++ include/scsi/scsi_cmnd.h | 5 +++++ include/scsi/scsi_device.h | 9 +++++++++ include/scsi/scsi_dh.h | 3 +++ include/scsi/scsi_driver.h | 3 +++ include/scsi/scsi_eh.h | 3 +++ include/scsi/scsi_host.h | 11 +++++++++++ 10 files changed, 61 insertions(+)
diff --git a/include/scsi/fc/fc_ms.h b/include/scsi/fc/fc_ms.h index 56a5d2b5a624..d1f89b37c049 100644 --- a/include/scsi/fc/fc_ms.h +++ b/include/scsi/fc/fc_ms.h @@ -9,6 +9,7 @@ #define _FC_MS_H_
#include <linux/types.h> +#include <linux/kabi.h>
/* * Fibre Channel Services - Management Service (MS) @@ -158,6 +159,8 @@ struct fc_fdmi_port_name { struct fc_fdmi_attr_entry { __be16 type; __be16 len; + KABI_RESERVE(1) + KABI_RESERVE(2) __u8 value[]; } __attribute__((__packed__));
@@ -166,6 +169,8 @@ struct fc_fdmi_attr_entry { */ struct fs_fdmi_attrs { __be32 numattrs; + KABI_RESERVE(1) + KABI_RESERVE(2) struct fc_fdmi_attr_entry attr[]; } __attribute__((__packed__));
diff --git a/include/scsi/libfc.h b/include/scsi/libfc.h index eca6fd42d7f7..67bdc0fb7482 100644 --- a/include/scsi/libfc.h +++ b/include/scsi/libfc.h @@ -12,6 +12,7 @@ #include <linux/if.h> #include <linux/percpu.h> #include <linux/refcount.h> +#include <linux/kabi.h>
#include <scsi/scsi_transport.h> #include <scsi/scsi_transport_fc.h> @@ -358,6 +359,8 @@ struct libfc_cmd_priv { struct fc_fcp_pkt *fsp; u32 resid_len; u8 status; + KABI_RESERVE(1) + KABI_RESERVE(2) };
/* diff --git a/include/scsi/libfcoe.h b/include/scsi/libfcoe.h index 8300ef1a982e..27945a8dc51c 100644 --- a/include/scsi/libfcoe.h +++ b/include/scsi/libfcoe.h @@ -16,6 +16,7 @@ #include <linux/workqueue.h> #include <linux/local_lock.h> #include <linux/random.h> +#include <linux/kabi.h> #include <scsi/fc/fc_fcoe.h> #include <scsi/libfc.h> #include <scsi/fcoe_sysfs.h> @@ -329,6 +330,8 @@ struct fcoe_percpu_s { struct page *crc_eof_page; int crc_eof_offset; local_lock_t lock; + KABI_RESERVE(1) + KABI_RESERVE(2) };
/** diff --git a/include/scsi/libiscsi.h b/include/scsi/libiscsi.h index 7282555adfd5..3af59c9d3551 100644 --- a/include/scsi/libiscsi.h +++ b/include/scsi/libiscsi.h @@ -17,6 +17,7 @@ #include <linux/workqueue.h> #include <linux/kfifo.h> #include <linux/refcount.h> +#include <linux/kabi.h> #include <scsi/iscsi_proto.h> #include <scsi/iscsi_if.h> #include <scsi/scsi_cmnd.h> @@ -133,6 +134,9 @@ struct iscsi_task { refcount_t refcount; struct list_head running; /* running cmd list */ void *dd_data; /* driver/transport data */ + KABI_RESERVE(1) + KABI_RESERVE(2) + KABI_RESERVE(3) };
static inline int iscsi_task_has_unsol_data(struct iscsi_task *task) @@ -156,6 +160,8 @@ static inline bool iscsi_task_is_completed(struct iscsi_task *task) struct iscsi_cmd { struct iscsi_task *task; int age; + KABI_RESERVE(1) + KABI_RESERVE(2) };
static inline struct iscsi_cmd *iscsi_cmd(struct scsi_cmnd *cmd) @@ -256,6 +262,10 @@ struct iscsi_conn { /* custom statistics */ uint32_t eh_abort_cnt; uint32_t fmr_unalign_cnt; + KABI_RESERVE(1) + KABI_RESERVE(2) + KABI_RESERVE(3) + KABI_RESERVE(4) };
struct iscsi_pool { @@ -363,6 +373,10 @@ struct iscsi_session { struct iscsi_task **cmds; /* Original Cmds arr */ struct iscsi_pool cmdpool; /* PDU's pool */ void *dd_data; /* LLD private data */ + KABI_RESERVE(1) + KABI_RESERVE(2) + KABI_RESERVE(3) + KABI_RESERVE(4) };
enum { @@ -383,6 +397,8 @@ struct iscsi_host { int state;
struct workqueue_struct *workq; + KABI_RESERVE(1) + KABI_RESERVE(2) };
/* diff --git a/include/scsi/scsi_cmnd.h b/include/scsi/scsi_cmnd.h index 526def14e7fb..10ad8fab1339 100644 --- a/include/scsi/scsi_cmnd.h +++ b/include/scsi/scsi_cmnd.h @@ -9,6 +9,7 @@ #include <linux/types.h> #include <linux/timer.h> #include <linux/scatterlist.h> +#include <linux/kabi.h> #include <scsi/scsi_device.h>
struct Scsi_Host; @@ -141,6 +142,10 @@ struct scsi_cmnd { * to be at an address < 16Mb). */
int result; /* Status code from lower level driver */ + KABI_RESERVE(1) + KABI_RESERVE(2) + KABI_RESERVE(3) + KABI_RESERVE(4) };
/* Variant of blk_mq_rq_from_pdu() that verifies the type of its argument. */ diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h index 8fa1153f37cb..c630bccf4443 100644 --- a/include/scsi/scsi_device.h +++ b/include/scsi/scsi_device.h @@ -9,6 +9,7 @@ #include <scsi/scsi.h> #include <linux/atomic.h> #include <linux/sbitmap.h> +#include <linux/kabi.h>
struct bsg_device; struct device; @@ -284,6 +285,12 @@ struct scsi_device { struct mutex state_mutex; enum scsi_device_state sdev_state; struct task_struct *quiesced_by; + KABI_RESERVE(1) + KABI_RESERVE(2) + KABI_RESERVE(3) + KABI_RESERVE(4) + KABI_RESERVE(5) + KABI_RESERVE(6) unsigned long sdev_data[]; } __attribute__((aligned(sizeof(unsigned long))));
@@ -498,6 +505,8 @@ struct scsi_exec_args { blk_mq_req_flags_t req_flags; /* BLK_MQ_REQ flags */ int scmd_flags; /* SCMD flags */ int *resid; /* residual length */ + KABI_RESERVE(1) + KABI_RESERVE(2) };
int scsi_execute_cmd(struct scsi_device *sdev, const unsigned char *cmd, diff --git a/include/scsi/scsi_dh.h b/include/scsi/scsi_dh.h index 4df943c1b90b..25ad2d4f401c 100644 --- a/include/scsi/scsi_dh.h +++ b/include/scsi/scsi_dh.h @@ -11,6 +11,7 @@ */
#include <scsi/scsi_device.h> +#include <linux/kabi.h>
enum { SCSI_DH_OK = 0, @@ -60,6 +61,8 @@ struct scsi_device_handler { blk_status_t (*prep_fn)(struct scsi_device *, struct request *); int (*set_params)(struct scsi_device *, const char *); void (*rescan)(struct scsi_device *); + KABI_RESERVE(1) + KABI_RESERVE(2) };
#ifdef CONFIG_SCSI_DH diff --git a/include/scsi/scsi_driver.h b/include/scsi/scsi_driver.h index 4ce1988b2ba0..2cae0a3f7be6 100644 --- a/include/scsi/scsi_driver.h +++ b/include/scsi/scsi_driver.h @@ -4,6 +4,7 @@
#include <linux/blk_types.h> #include <linux/device.h> +#include <linux/kabi.h> #include <scsi/scsi_cmnd.h>
struct module; @@ -18,6 +19,8 @@ struct scsi_driver { int (*done)(struct scsi_cmnd *); int (*eh_action)(struct scsi_cmnd *, int); void (*eh_reset)(struct scsi_cmnd *); + KABI_RESERVE(1) + KABI_RESERVE(2) }; #define to_scsi_driver(drv) \ container_of((drv), struct scsi_driver, gendrv) diff --git a/include/scsi/scsi_eh.h b/include/scsi/scsi_eh.h index 1ae08e81339f..029f543a9244 100644 --- a/include/scsi/scsi_eh.h +++ b/include/scsi/scsi_eh.h @@ -3,6 +3,7 @@ #define _SCSI_SCSI_EH_H
#include <linux/scatterlist.h> +#include <linux/kabi.h>
#include <scsi/scsi_cmnd.h> #include <scsi/scsi_common.h> @@ -41,6 +42,8 @@ struct scsi_eh_save { unsigned char cmnd[32]; struct scsi_data_buffer sdb; struct scatterlist sense_sgl; + KABI_RESERVE(1) + KABI_RESERVE(2) };
extern void scsi_eh_prep_cmnd(struct scsi_cmnd *scmd, diff --git a/include/scsi/scsi_host.h b/include/scsi/scsi_host.h index 4c2dc8150c6d..56825d6af2fc 100644 --- a/include/scsi/scsi_host.h +++ b/include/scsi/scsi_host.h @@ -9,6 +9,7 @@ #include <linux/mutex.h> #include <linux/seq_file.h> #include <linux/blk-mq.h> +#include <linux/kabi.h> #include <scsi/scsi.h>
struct block_device; @@ -497,6 +498,10 @@ struct scsi_host_template {
/* Delay for runtime autosuspend */ int rpm_autosuspend_delay; + KABI_RESERVE(1) + KABI_RESERVE(2) + KABI_RESERVE(3) + KABI_RESERVE(4) };
/* @@ -710,6 +715,12 @@ struct Scsi_Host { */ struct device *dma_dev;
+ KABI_RESERVE(1) + KABI_RESERVE(2) + KABI_RESERVE(3) + KABI_RESERVE(4) + KABI_RESERVE(5) + KABI_RESERVE(6) /* * We should ensure that this is aligned, both for better performance * and also because some compilers (m68k) don't automatically force