diff --git a/include/scsi/libfc.h b/include/scsi/libfc.h index eca6fd42d7f73afcf74a83a112f9336a8b7c1683..c042d761d701833f9723ff3386a10acde935aa04 100644 --- a/include/scsi/libfc.h +++ b/include/scsi/libfc.h @@ -12,6 +12,7 @@ #include #include #include +#include #include #include @@ -358,6 +359,9 @@ 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 8300ef1a982e8ea4e48f5f9bc8bbbed856b217f0..b2d11acaa68de7ef5f05a5813907001fac9152ab 100644 --- a/include/scsi/libfcoe.h +++ b/include/scsi/libfcoe.h @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include @@ -329,6 +330,9 @@ 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 7282555adfd57aceaca1761a802eba42dcdf38d5..d253b82e973e43e08721bfaab14ef2b9503d1000 100644 --- a/include/scsi/libiscsi.h +++ b/include/scsi/libiscsi.h @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include @@ -133,6 +134,12 @@ 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) + KABI_RESERVE(4) + KABI_RESERVE(5) }; static inline int iscsi_task_has_unsol_data(struct iscsi_task *task) @@ -156,6 +163,9 @@ 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 +266,17 @@ 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) + KABI_RESERVE(5) + KABI_RESERVE(6) + KABI_RESERVE(7) + KABI_RESERVE(8) + KABI_RESERVE(9) + KABI_RESERVE(10) }; struct iscsi_pool { @@ -363,6 +384,15 @@ 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) + KABI_RESERVE(5) + KABI_RESERVE(6) + KABI_RESERVE(7) + KABI_RESERVE(8) }; enum { @@ -383,6 +413,10 @@ struct iscsi_host { int state; struct workqueue_struct *workq; + + KABI_RESERVE(1) + KABI_RESERVE(2) + KABI_RESERVE(3) }; /* diff --git a/include/scsi/scsi_cmnd.h b/include/scsi/scsi_cmnd.h index 526def14e7fb755913b58be7ec97e5629941929f..cc7a5fe2a3147a89c2d8349b0ebcf66fd59c709d 100644 --- a/include/scsi/scsi_cmnd.h +++ b/include/scsi/scsi_cmnd.h @@ -9,6 +9,7 @@ #include #include #include +#include #include struct Scsi_Host; @@ -141,6 +142,9 @@ struct scsi_cmnd { * to be at an address < 16Mb). */ int result; /* Status code from lower level driver */ + + KABI_RESERVE(1) + KABI_RESERVE(2) }; /* 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 8fa1153f37cbfb5080684b2230b2244a76023bf9..7aa42c89fc54ee3227d27cfe46e67c35510209ee 100644 --- a/include/scsi/scsi_device.h +++ b/include/scsi/scsi_device.h @@ -9,6 +9,7 @@ #include #include #include +#include struct bsg_device; struct device; @@ -284,6 +285,15 @@ 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) + KABI_RESERVE(7) + KABI_RESERVE(8) unsigned long sdev_data[]; } __attribute__((aligned(sizeof(unsigned long)))); @@ -370,6 +380,17 @@ struct scsi_target { char scsi_level; enum scsi_target_state state; void *hostdata; /* available to low-level driver */ + + KABI_RESERVE(1) + KABI_RESERVE(2) + KABI_RESERVE(3) + KABI_RESERVE(4) + KABI_RESERVE(5) + KABI_RESERVE(6) + KABI_RESERVE(7) + KABI_RESERVE(8) + KABI_RESERVE(9) + unsigned long starget_data[]; /* for the transport */ /* starget_data must be the last element!!!! */ } __attribute__((aligned(sizeof(unsigned long)))); @@ -498,6 +519,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) }; 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 4df943c1b90b333ebea77493706e5908fa3f745a..1e6bc082efd8fb899238a38dc324f6d4a8bc2a39 100644 --- a/include/scsi/scsi_dh.h +++ b/include/scsi/scsi_dh.h @@ -11,6 +11,7 @@ */ #include +#include enum { SCSI_DH_OK = 0, @@ -60,6 +61,9 @@ 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 4ce1988b2ba01c6a92a09f998346ea4c0ea29b19..7cd5cc59cfe1e61c0b0480b8252249aba5408ed4 100644 --- a/include/scsi/scsi_driver.h +++ b/include/scsi/scsi_driver.h @@ -4,6 +4,7 @@ #include #include +#include #include struct module; @@ -18,6 +19,9 @@ 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 1ae08e81339fac2a6da230a1abc60abb6fbdbaa6..1f3b333f43b05e1c7286c84d1f2a250521b481b4 100644 --- a/include/scsi/scsi_eh.h +++ b/include/scsi/scsi_eh.h @@ -3,6 +3,7 @@ #define _SCSI_SCSI_EH_H #include +#include #include #include @@ -41,6 +42,9 @@ 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 4c2dc8150c6d71c4c83c1cb3894ffdaf69ff75e7..579fd601b004f8f9b7d63802b828d3f5f9d6755b 100644 --- a/include/scsi/scsi_host.h +++ b/include/scsi/scsi_host.h @@ -9,6 +9,7 @@ #include #include #include +#include #include struct block_device; @@ -497,6 +498,11 @@ 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 +716,15 @@ 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) + KABI_RESERVE(7) + KABI_RESERVE(8) + KABI_RESERVE(9) /* * We should ensure that this is aligned, both for better performance * and also because some compilers (m68k) don't automatically force