diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c index 186f1fee753403f7b0e0feac76cc7bfd4f20f373..7b3d3634c17353396656e9ebcd3a2756a1791147 100644 --- a/drivers/char/ipmi/ipmi_msghandler.c +++ b/drivers/char/ipmi/ipmi_msghandler.c @@ -36,6 +36,7 @@ #include #include #include +#include #define IPMI_DRIVER_VERSION "39.2" @@ -203,6 +204,8 @@ struct ipmi_user { /* Free must run in process context for RCU cleanup. */ struct work_struct remove_work; + KABI_RESERVE(0); + KABI_RESERVE(1); }; static struct workqueue_struct *remove_work_wq; @@ -603,6 +606,10 @@ struct ipmi_smi { * parameters passed by "low" level IPMI code. */ int run_to_completion; + KABI_RESERVE(0); + KABI_RESERVE(1); + KABI_RESERVE(2); + KABI_RESERVE(3); }; #define to_si_intf_from_dev(device) container_of(device, struct ipmi_smi, dev) diff --git a/include/linux/ipmi.h b/include/linux/ipmi.h index a1c9c0d48ebf65248f161a5e39ee065d4e929910..103b6056e31cdfa804ffb7e08f35d7111b6c273d 100644 --- a/include/linux/ipmi.h +++ b/include/linux/ipmi.h @@ -19,6 +19,7 @@ #include #include #include /* For acpi_handle */ +#include struct module; struct device; @@ -70,6 +71,8 @@ struct ipmi_recv_msg { * the size or existence of this, since it may change. */ unsigned char msg_data[IPMI_MAX_MSG_LENGTH]; + KABI_RESERVE(0); + KABI_RESERVE(1); }; #define INIT_IPMI_RECV_MSG(done_handler) \ diff --git a/include/linux/ipmi_smi.h b/include/linux/ipmi_smi.h index 5d69820d8b027e1076cf8705d282b43b0c2a9733..e92d92e77569e67cc74e20b2b725b8e6ca64367f 100644 --- a/include/linux/ipmi_smi.h +++ b/include/linux/ipmi_smi.h @@ -19,6 +19,7 @@ #include #include #include +#include struct device; @@ -123,6 +124,8 @@ struct ipmi_smi_msg { * (presumably to free it). */ void (*done)(struct ipmi_smi_msg *msg); + KABI_RESERVE(0); + KABI_RESERVE(1); }; #define INIT_IPMI_SMI_MSG(done_handler) \ @@ -218,6 +221,8 @@ struct ipmi_smi_handlers { * block. */ void (*set_maintenance_mode)(void *send_info, bool enable); + KABI_RESERVE(0); + KABI_RESERVE(1); }; struct ipmi_device_id { diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h index 7b12eebc5586dcc7cec786001fe7011f675ee9eb..92aba75a82afbd5cbd6673f6679306722e8fd87d 100644 --- a/include/linux/mmc/card.h +++ b/include/linux/mmc/card.h @@ -9,6 +9,7 @@ #include #include +#include struct mmc_cid { unsigned int manfid; @@ -126,6 +127,8 @@ struct mmc_ext_csd { u8 device_life_time_est_typ_b; /* 269 */ unsigned int feature_support; + KABI_RESERVE(0); + KABI_RESERVE(1); #define MMC_DISCARD_FEATURE BIT(0) /* CMD38 feature */ }; @@ -341,6 +344,9 @@ struct mmc_card { unsigned int nr_parts; struct workqueue_struct *complete_wq; /* Private workqueue */ + KABI_RESERVE(0); + KABI_RESERVE(1); + KABI_RESERVE(2); }; static inline bool mmc_large_sector(struct mmc_card *card) diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h index 62a6847a3b6f00efab0c9129806ebd75e18a0af0..4d4c76109e862f4fe54607d8fd56e3cc5fbce65e 100644 --- a/include/linux/mmc/host.h +++ b/include/linux/mmc/host.h @@ -16,6 +16,7 @@ #include #include #include +#include struct mmc_ios { unsigned int clock; /* clock rate */ @@ -78,6 +79,8 @@ struct mmc_ios { #define MMC_SET_DRIVER_TYPE_D 3 bool enhanced_strobe; /* hs400es selection */ + KABI_RESERVE(0); + KABI_RESERVE(1); }; struct mmc_clk_phase { @@ -218,6 +221,8 @@ struct mmc_host_ops { /* Initialize an SD express card, mandatory for MMC_CAP2_SD_EXP. */ int (*init_sd_express)(struct mmc_host *host, struct mmc_ios *ios); + KABI_RESERVE(0); + KABI_RESERVE(1); }; struct mmc_cqe_ops { @@ -528,6 +533,9 @@ struct mmc_host { bool hsq_enabled; u32 err_stats[MMC_ERR_MAX]; + KABI_RESERVE(0); + KABI_RESERVE(1); + KABI_RESERVE(2); unsigned long private[] ____cacheline_aligned; }; diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h index 914a9f974baaae5010d473d0e5d8c6e79f88e191..fb708fe83c721d0ece97064dfc28092231ad9c42 100644 --- a/include/linux/mtd/mtd.h +++ b/include/linux/mtd/mtd.h @@ -13,6 +13,7 @@ #include #include #include +#include #include @@ -77,6 +78,8 @@ struct mtd_oob_ops { uint8_t *datbuf; uint8_t *oobbuf; struct mtd_req_stats *stats; + KABI_RESERVE(0); + KABI_RESERVE(1); }; /** @@ -215,6 +218,8 @@ struct mtd_part { u64 offset; u64 size; u32 flags; + KABI_RESERVE(0); + KABI_RESERVE(1); }; /** @@ -233,6 +238,8 @@ struct mtd_master { struct mutex partitions_lock; struct mutex chrdev_lock; unsigned int suspended : 1; + KABI_RESERVE(0); + KABI_RESERVE(1); }; struct mtd_info { @@ -398,6 +405,10 @@ struct mtd_info { struct mtd_part part; struct mtd_master master; + KABI_RESERVE(0); + KABI_RESERVE(1); + KABI_RESERVE(2); + KABI_RESERVE(3); }; static inline struct mtd_info *mtd_get_master(struct mtd_info *mtd) diff --git a/include/linux/mtd/partitions.h b/include/linux/mtd/partitions.h index b74a539ec58190b5231e3dd013087cee7613bbc9..62a534103ce2032bea1d451d15702ff3ba348784 100644 --- a/include/linux/mtd/partitions.h +++ b/include/linux/mtd/partitions.h @@ -10,6 +10,7 @@ #define MTD_PARTITIONS_H #include +#include /* @@ -51,6 +52,8 @@ struct mtd_partition { uint32_t mask_flags; /* master MTD flags to mask out for this partition */ uint32_t add_flags; /* flags to add to the partition */ struct device_node *of_node; + KABI_RESERVE(0); + KABI_RESERVE(1); }; #define MTDPART_OFS_RETAIN (-3) diff --git a/include/linux/tty.h b/include/linux/tty.h index f002d0f25db75346a16dd808d4b35cf24e851510..811a046029713208a0cc2f919492eb7bd36ed8e2 100644 --- a/include/linux/tty.h +++ b/include/linux/tty.h @@ -15,6 +15,7 @@ #include #include #include +#include /* @@ -248,6 +249,12 @@ struct tty_struct { #define N_TTY_BUF_SIZE 4096 struct work_struct SAK_work; + KABI_RESERVE(0); + KABI_RESERVE(1); + KABI_RESERVE(2); + KABI_RESERVE(3); + KABI_RESERVE(4); + KABI_RESERVE(5); } __randomize_layout; /* Each of a tty's open files has private_data pointing to tty_file_private */ diff --git a/include/linux/tty_buffer.h b/include/linux/tty_buffer.h index 31125e3be3c55e4e65dd62d91fd13e96a91e6c27..897bd7565d1d06ce51cdff06571b16d38dfdbb34 100644 --- a/include/linux/tty_buffer.h +++ b/include/linux/tty_buffer.h @@ -6,6 +6,7 @@ #include #include #include +#include struct tty_buffer { union { @@ -18,6 +19,8 @@ struct tty_buffer { unsigned int lookahead; /* Lazy update on recv, can become less than "read" */ unsigned int read; bool flags; + KABI_RESERVE(0); + KABI_RESERVE(1); /* Data points here */ u8 data[] __aligned(sizeof(unsigned long)); }; @@ -42,6 +45,8 @@ struct tty_bufhead { atomic_t mem_used; /* In-use buffers excluding free list */ int mem_limit; struct tty_buffer *tail; /* Active buffer */ + KABI_RESERVE(0); + KABI_RESERVE(1); }; /* diff --git a/include/linux/tty_driver.h b/include/linux/tty_driver.h index 18beff0cec1abb444bb1be7706785aadeb18035f..b1192a6decc1b0026307c6841eaf7d05f5ebf0c8 100644 --- a/include/linux/tty_driver.h +++ b/include/linux/tty_driver.h @@ -10,6 +10,7 @@ #include #include #include +#include struct tty_struct; struct tty_driver; @@ -391,6 +392,8 @@ struct tty_operations { void (*poll_put_char)(struct tty_driver *driver, int line, char ch); #endif int (*proc_show)(struct seq_file *m, void *driver); + KABI_RESERVE(0); + KABI_RESERVE(1); } __randomize_layout; /** diff --git a/include/linux/tty_ldisc.h b/include/linux/tty_ldisc.h index af01e89074b2d3fb55c6def86ed5e5966e9a80ff..d81fedc7c66866a8362161bf1a2278d019ceb0b2 100644 --- a/include/linux/tty_ldisc.h +++ b/include/linux/tty_ldisc.h @@ -10,6 +10,7 @@ struct tty_struct; #include #include #include +#include /* * the semaphore definition @@ -264,6 +265,8 @@ struct tty_ldisc_ops { const u8 *fp, size_t count); struct module *owner; + KABI_RESERVE(0); + KABI_RESERVE(1); }; struct tty_ldisc { diff --git a/include/linux/tty_port.h b/include/linux/tty_port.h index 6b367eb17979a20436e856311d211859db101c1c..7b0777ef3e778684385b9ca54cf2b57e83de9269 100644 --- a/include/linux/tty_port.h +++ b/include/linux/tty_port.h @@ -7,6 +7,7 @@ #include #include #include +#include struct attribute_group; struct tty_driver; @@ -121,6 +122,8 @@ struct tty_port { int drain_delay; struct kref kref; void *client_data; + KABI_RESERVE(0); + KABI_RESERVE(1); }; /* tty_port::iflags bits -- use atomic bit ops */