hulk inclusion category: feature bugzilla: https://gitee.com/openeuler/kernel/issues/I8ZUFD
--------------------------------
The mtd_device_parse_register() and mtd_device_unregister() APIs are in the kabi trustlist. The involved structures are 'struct mtd_info', 'struct mtd_part_parser_data', and 'struct mtd_partition'.
These structures may still be changed. To prevent KABI incompatibility caused by CVE fixes in the future, these structures are reserved.
mtd_info: Important structure with a size of 1408 bytes. In the 2 slab objects, four KABI slots can be reserved for future expansion.
mtd_partition: Important structure with a size of 48 bytes. In 1 cache line space, two KABI slots can be reserved for future expansion.
mtd_part_parser_data: The size is 8 bytes. Three KABI slots can be reserved for future expansion.
Signed-off-by: ZhaoLong Wang wangzhaolong1@huawei.com --- include/linux/mtd/mtd.h | 5 +++++ include/linux/mtd/partitions.h | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h index 914a9f974baa..7083a1da7be1 100644 --- a/include/linux/mtd/mtd.h +++ b/include/linux/mtd/mtd.h @@ -13,6 +13,7 @@ #include <linux/device.h> #include <linux/of.h> #include <linux/nvmem-provider.h> +#include <linux/kabi.h>
#include <mtd/mtd-abi.h>
@@ -398,6 +399,10 @@ struct mtd_info {
struct mtd_part part; struct mtd_master master; + KABI_RESERVE(1) + KABI_RESERVE(2) + KABI_RESERVE(3) + KABI_RESERVE(4) };
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 b74a539ec581..9a3a944d6400 100644 --- a/include/linux/mtd/partitions.h +++ b/include/linux/mtd/partitions.h @@ -10,7 +10,7 @@ #define MTD_PARTITIONS_H
#include <linux/types.h> - +#include <linux/kabi.h>
/* * Partition definition structure: @@ -51,6 +51,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(1) + KABI_RESERVE(2) };
#define MTDPART_OFS_RETAIN (-3) @@ -68,6 +70,9 @@ struct device_node; */ struct mtd_part_parser_data { unsigned long origin; + KABI_RESERVE(1) + KABI_RESERVE(2) + KABI_RESERVE(3) };