From a55f0b18183b60e76b54d63e98e7ab4ab369584c Mon Sep 17 00:00:00 2001 From: Guixin Liu Date: Mon, 26 Aug 2024 15:13:22 +0800 Subject: [PATCH] deepin: KABI: reserve some space for kABI from Anolis Reserve some space for kABI. Link: https://gitee.com/anolis/cloud-kernel/pulls/3764 Signed-off-by: Guixin Liu Signed-off-by: WangYuli --- arch/arm64/include/asm/kvm_host.h | 2 + arch/arm64/include/asm/probes.h | 4 ++ arch/x86/include/asm/kprobes.h | 3 ++ arch/x86/include/asm/kvm_host.h | 2 + block/blk-cgroup.h | 14 +++++++ block/blk-mq.h | 4 ++ block/elevator.h | 10 +++++ drivers/block/brd.c | 3 ++ drivers/pci/controller/dwc/pcie-designware.h | 6 +++ drivers/ptp/ptp_private.h | 5 +++ fs/eventfd.c | 3 ++ fs/mount.h | 3 ++ fs/ubifs/debug.h | 5 +++ fs/ubifs/ubifs.h | 12 ++++++ include/acpi/acpi_bus.h | 2 + include/drm/drm_atomic.h | 4 ++ include/drm/drm_client.h | 2 + include/drm/drm_connector.h | 24 +++++++++++ include/drm/drm_crtc.h | 4 ++ include/drm/drm_modeset_helper_vtables.h | 2 + include/drm/drm_modeset_lock.h | 2 + include/drm/drm_plane.h | 2 + include/drm/drm_writeback.h | 13 ++++++ include/drm/ttm/ttm_resource.h | 3 ++ include/linux/backing-dev-defs.h | 11 +++++ include/linux/binfmts.h | 3 ++ include/linux/bio.h | 10 +++++ include/linux/blk-integrity.h | 3 ++ include/linux/blk-mq.h | 23 +++++++++++ include/linux/blk_types.h | 11 +++++ include/linux/blkdev.h | 28 +++++++++++++ include/linux/bpf-cgroup-defs.h | 4 ++ include/linux/bpf.h | 39 ++++++++++++++++++ include/linux/bpf_local_storage.h | 2 + include/linux/bpf_verifier.h | 10 +++++ include/linux/cgroup-defs.h | 2 + include/linux/coredump.h | 2 + include/linux/cpuidle.h | 18 +++++++++ include/linux/cred.h | 4 ++ include/linux/crypto.h | 2 + include/linux/dcache.h | 1 + include/linux/delayacct.h | 7 ++++ include/linux/device.h | 10 ++++- include/linux/device/bus.h | 3 ++ include/linux/dma-fence.h | 2 + include/linux/dma-map-ops.h | 1 + include/linux/energy_model.h | 5 +++ include/linux/ethtool.h | 16 ++++++++ include/linux/exportfs.h | 4 ++ include/linux/fb.h | 2 + include/linux/filelock.h | 4 ++ include/linux/filter.h | 3 ++ include/linux/fs.h | 20 ++++++++++ include/linux/ftrace.h | 1 + include/linux/fwnode.h | 4 ++ include/linux/hrtimer.h | 11 +++++ include/linux/if_macvlan.h | 3 ++ include/linux/inetdevice.h | 2 + include/linux/interrupt.h | 2 + include/linux/iommu.h | 4 ++ include/linux/ioport.h | 1 + include/linux/irq.h | 12 ++++++ include/linux/irq_work.h | 5 +++ include/linux/irqdesc.h | 5 +++ include/linux/irqdomain.h | 6 +++ include/linux/kernfs.h | 11 +++++ include/linux/key-type.h | 3 ++ include/linux/key.h | 1 + include/linux/kobject.h | 11 +++-- include/linux/kprobes.h | 2 + include/linux/kvm_host.h | 6 +++ include/linux/list_lru.h | 3 ++ include/linux/memcontrol.h | 2 + include/linux/mempolicy.h | 1 + include/linux/mempool.h | 1 + include/linux/memremap.h | 4 ++ include/linux/mm.h | 1 + include/linux/mm_types.h | 4 ++ include/linux/mmzone.h | 17 +++++--- include/linux/module.h | 5 +++ include/linux/mount.h | 3 ++ include/linux/msi.h | 3 ++ include/linux/net.h | 4 ++ include/linux/netdevice.h | 31 +++++++++++++- include/linux/netfilter/nf_conntrack_common.h | 3 ++ include/linux/netfilter/x_tables.h | 3 ++ include/linux/ns_common.h | 3 ++ include/linux/nsproxy.h | 5 +++ include/linux/of.h | 7 ++++ include/linux/pagemap.h | 1 + include/linux/pci-epc.h | 4 ++ include/linux/pci-epf.h | 6 +++ include/linux/pci.h | 9 +++++ include/linux/perf_event.h | 14 +++++++ include/linux/posix-clock.h | 14 +++++++ include/linux/posix-timers.h | 6 +++ include/linux/psi_types.h | 3 ++ include/linux/ptp_clock_kernel.h | 1 + include/linux/quota.h | 12 ++++++ include/linux/rcu_segcblist.h | 6 +++ include/linux/rmap.h | 3 ++ include/linux/sbitmap.h | 2 + include/linux/sched.h | 32 +++++++++++++++ include/linux/sched/signal.h | 1 + include/linux/sched/topology.h | 11 +++++ include/linux/sched/user.h | 3 ++ include/linux/shrinker.h | 3 ++ include/linux/skbuff.h | 9 +++++ include/linux/srcutree.h | 9 +++++ include/linux/stat.h | 5 ++- include/linux/stop_machine.h | 2 + include/linux/sunrpc/svc.h | 6 +++ include/linux/swap.h | 5 +++ include/linux/sysfs.h | 2 + include/linux/task_io_accounting.h | 9 +++++ include/linux/tcp.h | 11 +++++ include/linux/timer.h | 6 +++ include/linux/trace_events.h | 2 + include/linux/tracepoint-defs.h | 1 + include/linux/tty_port.h | 6 +++ include/linux/user_namespace.h | 5 +++ include/linux/watchdog.h | 6 +++ include/linux/workqueue.h | 11 +++++ include/linux/writeback.h | 3 ++ include/linux/xattr.h | 2 + include/net/devlink.h | 9 +++++ include/net/dst_ops.h | 1 + include/net/flow.h | 5 +++ include/net/flow_dissector.h | 3 ++ include/net/flow_offload.h | 5 +++ include/net/genetlink.h | 7 ++++ include/net/if_inet6.h | 17 ++++++++ include/net/neighbour.h | 11 +++++ include/net/netdev_rx_queue.h | 9 +++++ include/net/netfilter/nf_conntrack_ecache.h | 1 + include/net/netns/ipv6.h | 2 + include/net/netns/nftables.h | 1 + include/net/netns/sctp.h | 3 ++ include/net/netns/smc.h | 33 +++++++++++++++ include/net/netns/unix.h | 3 ++ include/net/nexthop.h | 7 ++++ include/net/page_pool/types.h | 5 +++ include/net/sch_generic.h | 8 ++++ include/net/snmp.h | 2 + include/net/sock.h | 2 + include/net/sock_reuseport.h | 3 ++ include/net/tcp.h | 3 ++ include/net/tls.h | 17 ++++++++ include/net/xdp.h | 2 + include/net/xfrm.h | 2 + include/net/xsk_buff_pool.h | 4 ++ include/scsi/scsi_cmnd.h | 5 +++ include/scsi/scsi_device.h | 14 +++++++ include/scsi/scsi_host.h | 12 ++++++ kernel/audit.h | 3 +- kernel/bpf/devmap.c | 2 + kernel/locking/rtmutex_common.h | 2 + kernel/module/sysfs.c | 2 + kernel/sched/cpuacct.c | 7 ++++ kernel/sched/cpudeadline.h | 5 +++ kernel/sched/fair.c | 6 +++ kernel/sched/sched.h | 40 +++++++++++++++++++ kernel/workqueue.c | 6 +++ kernel/workqueue_internal.h | 5 +++ mm/internal.h | 3 ++ mm/ksm.c | 3 ++ mm/memcontrol.c | 3 ++ net/devlink/devl_internal.h | 4 ++ net/ipv4/route.c | 3 ++ net/ipv6/route.c | 3 ++ 170 files changed, 1084 insertions(+), 14 deletions(-) diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h index df73e452d2cc0..a695608286e09 100644 --- a/arch/arm64/include/asm/kvm_host.h +++ b/arch/arm64/include/asm/kvm_host.h @@ -278,6 +278,8 @@ struct kvm_arch { * the associated pKVM instance in the hypervisor. */ struct kvm_protected_vm pkvm; + + DEEPIN_KABI_RESERVE(1) }; struct kvm_vcpu_fault_info { diff --git a/arch/arm64/include/asm/probes.h b/arch/arm64/include/asm/probes.h index 006946745352e..adc97e225d4bf 100644 --- a/arch/arm64/include/asm/probes.h +++ b/arch/arm64/include/asm/probes.h @@ -8,6 +8,7 @@ #define _ARM_PROBES_H #include +#include typedef u32 probe_opcode_t; typedef void (probes_handler_t) (u32 opcode, long addr, struct pt_regs *); @@ -24,6 +25,9 @@ struct arch_probe_insn { typedef u32 kprobe_opcode_t; struct arch_specific_insn { struct arch_probe_insn api; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; #endif diff --git a/arch/x86/include/asm/kprobes.h b/arch/x86/include/asm/kprobes.h index a2e9317aad495..2dd682b0211ae 100644 --- a/arch/x86/include/asm/kprobes.h +++ b/arch/x86/include/asm/kprobes.h @@ -80,6 +80,9 @@ struct arch_specific_insn { void (*emulate_op)(struct kprobe *p, struct pt_regs *regs); /* Number of bytes of text poked */ int tp_len; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; struct arch_optimized_insn { diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h index e0e0bc1a03762..d71b77fb49618 100644 --- a/arch/x86/include/asm/kvm_host.h +++ b/arch/x86/include/asm/kvm_host.h @@ -1463,6 +1463,8 @@ struct kvm_arch { */ #define SPLIT_DESC_CACHE_MIN_NR_OBJECTS (SPTE_ENT_PER_PAGE + 1) struct kvm_mmu_memory_cache split_desc_cache; + + DEEPIN_KABI_RESERVE(1) }; struct kvm_vm_stat { diff --git a/block/blk-cgroup.h b/block/blk-cgroup.h index 5b0bdc268ade9..5297f10dc27e0 100644 --- a/block/blk-cgroup.h +++ b/block/blk-cgroup.h @@ -49,6 +49,10 @@ struct blkg_iostat_set { int lqueued; /* queued in llist */ struct blkg_iostat cur; struct blkg_iostat last; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) }; /* association between a blk cgroup and a request queue */ @@ -88,6 +92,8 @@ struct blkcg_gq { int last_use; struct rcu_head rcu_head; + + DEEPIN_KABI_RESERVE(1) }; struct blkcg { @@ -114,6 +120,11 @@ struct blkcg { #ifdef CONFIG_CGROUP_WRITEBACK struct list_head cgwb_list; #endif + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; static inline struct blkcg *css_to_blkcg(struct cgroup_subsys_state *css) @@ -183,6 +194,9 @@ struct blkcg_policy { blkcg_pol_free_pd_fn *pd_free_fn; blkcg_pol_reset_pd_stats_fn *pd_reset_stats_fn; blkcg_pol_stat_pd_fn *pd_stat_fn; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; extern struct blkcg blkcg_root; diff --git a/block/blk-mq.h b/block/blk-mq.h index cf9f21772ddc8..9a76f46672b90 100644 --- a/block/blk-mq.h +++ b/block/blk-mq.h @@ -158,6 +158,10 @@ struct blk_mq_alloc_data { /* input & output parameter */ struct blk_mq_ctx *ctx; struct blk_mq_hw_ctx *hctx; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) }; struct blk_mq_tags *blk_mq_init_tags(unsigned int nr_tags, diff --git a/block/elevator.h b/block/elevator.h index 7ca3d7b6ed828..7ec383a8400d0 100644 --- a/block/elevator.h +++ b/block/elevator.h @@ -48,6 +48,11 @@ struct elevator_mq_ops { struct request *(*next_request)(struct request_queue *, struct request *); void (*init_icq)(struct io_cq *); void (*exit_icq)(struct io_cq *); + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; #define ELV_NAME_MAX (16) @@ -84,6 +89,11 @@ struct elevator_type /* managed by elevator core */ char icq_cache_name[ELV_NAME_MAX + 6]; /* elvname + "_io_cq" */ struct list_head list; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; static inline bool elevator_tryget(struct elevator_type *e) diff --git a/drivers/block/brd.c b/drivers/block/brd.c index d816d1512531e..b21e223ebe077 100644 --- a/drivers/block/brd.c +++ b/drivers/block/brd.c @@ -44,6 +44,9 @@ struct brd_device { */ struct xarray brd_pages; u64 brd_nr_pages; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; /* diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/controller/dwc/pcie-designware.h index ef0b2efa9f93e..f2e11d0f1264b 100644 --- a/drivers/pci/controller/dwc/pcie-designware.h +++ b/drivers/pci/controller/dwc/pcie-designware.h @@ -341,6 +341,8 @@ struct dw_pcie_ep_ops { * driver. */ unsigned int (*func_conf_select)(struct dw_pcie_ep *ep, u8 func_no); + + DEEPIN_KABI_RESERVE(1) }; struct dw_pcie_ep_func { @@ -364,6 +366,8 @@ struct dw_pcie_ep { void __iomem *msi_mem; phys_addr_t msi_mem_phys; struct pci_epf_bar *epf_bar[PCI_STD_NUM_BARS]; + + DEEPIN_KABI_RESERVE(1) }; struct dw_pcie_ops { @@ -378,6 +382,8 @@ struct dw_pcie_ops { enum dw_pcie_ltssm (*get_ltssm)(struct dw_pcie *pcie); int (*start_link)(struct dw_pcie *pcie); void (*stop_link)(struct dw_pcie *pcie); + + DEEPIN_KABI_RESERVE(1) }; struct dw_pcie { diff --git a/drivers/ptp/ptp_private.h b/drivers/ptp/ptp_private.h index b8d4f61f14be4..8f708e82bee4c 100644 --- a/drivers/ptp/ptp_private.h +++ b/drivers/ptp/ptp_private.h @@ -53,6 +53,11 @@ struct ptp_clock { struct mutex n_vclocks_mux; /* protect concurrent n_vclocks access */ bool is_virtual_clock; bool has_cycles; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; #define info_to_vclock(d) container_of((d), struct ptp_vclock, info) diff --git a/fs/eventfd.c b/fs/eventfd.c index 33a918f9566c3..8f5818c682ba0 100644 --- a/fs/eventfd.c +++ b/fs/eventfd.c @@ -41,6 +41,9 @@ struct eventfd_ctx { __u64 count; unsigned int flags; int id; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; __u64 eventfd_signal_mask(struct eventfd_ctx *ctx, __u64 n, __poll_t mask) diff --git a/fs/mount.h b/fs/mount.h index 130c07c2f8d25..ef31cc7c26b30 100644 --- a/fs/mount.h +++ b/fs/mount.h @@ -4,6 +4,7 @@ #include #include #include +#include struct mnt_namespace { struct ns_common ns; @@ -77,6 +78,8 @@ struct mount { int mnt_expiry_mark; /* true if marked for expiry */ struct hlist_head mnt_pins; struct hlist_head mnt_stuck_children; + + DEEPIN_KABI_RESERVE(1) } __randomize_layout; #define MNT_NS_INTERNAL ERR_PTR(-EINVAL) /* distinct from any mnt_namespace */ diff --git a/fs/ubifs/debug.h b/fs/ubifs/debug.h index ed966108da806..1eae38fb9929c 100644 --- a/fs/ubifs/debug.h +++ b/fs/ubifs/debug.h @@ -11,6 +11,8 @@ #ifndef __UBIFS_DEBUG_H__ #define __UBIFS_DEBUG_H__ +#include + /* Checking helper functions */ typedef int (*dbg_leaf_callback)(struct ubifs_info *c, struct ubifs_zbranch *zbr, void *priv); @@ -115,6 +117,9 @@ struct ubifs_debug_info { struct dentry *dfs_chk_fs; struct dentry *dfs_tst_rcvry; struct dentry *dfs_ro_error; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; /** diff --git a/fs/ubifs/ubifs.h b/fs/ubifs/ubifs.h index ebb3ad6b5e7e6..269e7ffb55b9e 100644 --- a/fs/ubifs/ubifs.h +++ b/fs/ubifs/ubifs.h @@ -428,6 +428,9 @@ struct ubifs_inode { pgoff_t read_in_a_row; int data_len; void *data; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; /** @@ -1522,6 +1525,15 @@ struct ubifs_info { struct ubifs_debug_info *dbg; struct ubifs_stats_info *stats; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) + DEEPIN_KABI_RESERVE(5) + DEEPIN_KABI_RESERVE(6) + DEEPIN_KABI_RESERVE(7) + DEEPIN_KABI_RESERVE(8) }; extern struct list_head ubifs_infos; diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h index d9c20ae23b632..58ba28e97f56a 100644 --- a/include/acpi/acpi_bus.h +++ b/include/acpi/acpi_bus.h @@ -282,6 +282,8 @@ struct acpi_device_power { struct acpi_device_power_flags flags; struct acpi_device_power_state states[ACPI_D_STATE_COUNT]; /* Power states (D0-D3Cold) */ u8 state_for_enumeration; /* Deepest power state for enumeration */ + + DEEPIN_KABI_RESERVE(1) }; struct acpi_dep_data { diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h index 9a022caacf936..a7ca3dd291ae3 100644 --- a/include/drm/drm_atomic.h +++ b/include/drm/drm_atomic.h @@ -239,6 +239,8 @@ struct drm_private_state_funcs { */ void (*atomic_print_state)(struct drm_printer *p, const struct drm_private_state *state); + + DEEPIN_KABI_RESERVE(1) }; /** @@ -338,6 +340,8 @@ struct drm_private_state { * @obj: backpointer to the private object */ struct drm_private_obj *obj; + + DEEPIN_KABI_RESERVE(1) }; struct __drm_private_objs_state { diff --git a/include/drm/drm_client.h b/include/drm/drm_client.h index c0a14b40c039f..0f869a9a68d0f 100644 --- a/include/drm/drm_client.h +++ b/include/drm/drm_client.h @@ -153,6 +153,8 @@ struct drm_client_buffer { * @fb: DRM framebuffer */ struct drm_framebuffer *fb; + + DEEPIN_KABI_RESERVE(1) }; struct drm_client_buffer * diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h index 7ff9bb42267f9..618bca58c7dc9 100644 --- a/include/drm/drm_connector.h +++ b/include/drm/drm_connector.h @@ -321,6 +321,9 @@ struct drm_hdmi_info { /** @dsc_cap: DSC capabilities of the sink */ struct drm_hdmi_dsc_cap dsc_cap; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; /** @@ -383,6 +386,8 @@ enum drm_panel_orientation { struct drm_monitor_range_info { u16 min_vfreq; u16 max_vfreq; + + DEEPIN_KABI_RESERVE(1) }; /** @@ -824,6 +829,9 @@ struct drm_display_info { * Defaults to CEC_PHYS_ADDR_INVALID (0xffff). */ u16 source_physical_address; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; int drm_display_info_set_bus_formats(struct drm_display_info *info, @@ -1343,6 +1351,9 @@ struct drm_connector_funcs { * Allows connectors to create connector-specific debugfs files. */ void (*debugfs_init)(struct drm_connector *connector, struct dentry *root); + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; /** @@ -1887,6 +1898,19 @@ struct drm_connector { /** @hdr_sink_metadata: HDR Metadata Information read from sink */ struct hdr_sink_metadata hdr_sink_metadata; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) + DEEPIN_KABI_RESERVE(5) + DEEPIN_KABI_RESERVE(6) + DEEPIN_KABI_RESERVE(7) + DEEPIN_KABI_RESERVE(8) + DEEPIN_KABI_RESERVE(9) + DEEPIN_KABI_RESERVE(10) + DEEPIN_KABI_RESERVE(11) + DEEPIN_KABI_RESERVE(12) }; #define obj_to_connector(x) container_of(x, struct drm_connector, base) diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h index 8b48a1974da31..f6da2f5cab6e2 100644 --- a/include/drm/drm_crtc.h +++ b/include/drm/drm_crtc.h @@ -385,6 +385,8 @@ struct drm_crtc_state { /** @state: backpointer to global drm_atomic_state */ struct drm_atomic_state *state; + + DEEPIN_KABI_RESERVE(1) }; /** @@ -1175,6 +1177,8 @@ struct drm_crtc { * Initialized via drm_self_refresh_helper_init(). */ struct drm_self_refresh_data *self_refresh_data; + + DEEPIN_KABI_RESERVE(1) }; /** diff --git a/include/drm/drm_modeset_helper_vtables.h b/include/drm/drm_modeset_helper_vtables.h index 159213786e6e1..24d793bad9225 100644 --- a/include/drm/drm_modeset_helper_vtables.h +++ b/include/drm/drm_modeset_helper_vtables.h @@ -1509,6 +1509,8 @@ struct drm_mode_config_helper_funcs { * This hook is optional. */ int (*atomic_commit_setup)(struct drm_atomic_state *state); + + DEEPIN_KABI_RESERVE(1) }; #endif diff --git a/include/drm/drm_modeset_lock.h b/include/drm/drm_modeset_lock.h index ec4f543c3d950..431a12de553ab 100644 --- a/include/drm/drm_modeset_lock.h +++ b/include/drm/drm_modeset_lock.h @@ -72,6 +72,8 @@ struct drm_modeset_acquire_ctx { /* Perform interruptible waits on this context. */ bool interruptible; + + DEEPIN_KABI_RESERVE(1) }; /** diff --git a/include/drm/drm_plane.h b/include/drm/drm_plane.h index c6565a6f9324c..03e2f9dd708d4 100644 --- a/include/drm/drm_plane.h +++ b/include/drm/drm_plane.h @@ -772,6 +772,8 @@ struct drm_plane { * @hotspot_y_property: property to set mouse hotspot y offset. */ struct drm_property *hotspot_y_property; + + DEEPIN_KABI_RESERVE(1) }; #define obj_to_plane(x) container_of(x, struct drm_plane, base) diff --git a/include/drm/drm_writeback.h b/include/drm/drm_writeback.h index 17e576c80169a..87432f5c25f93 100644 --- a/include/drm/drm_writeback.h +++ b/include/drm/drm_writeback.h @@ -84,6 +84,19 @@ struct drm_writeback_connector { * The name of the connector's fence timeline. */ char timeline_name[32]; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) + DEEPIN_KABI_RESERVE(5) + DEEPIN_KABI_RESERVE(6) + DEEPIN_KABI_RESERVE(7) + DEEPIN_KABI_RESERVE(8) + DEEPIN_KABI_RESERVE(9) + DEEPIN_KABI_RESERVE(10) + DEEPIN_KABI_RESERVE(11) + DEEPIN_KABI_RESERVE(12) }; /** diff --git a/include/drm/ttm/ttm_resource.h b/include/drm/ttm/ttm_resource.h index 78a226eba953c..e5ca041cac8b6 100644 --- a/include/drm/ttm/ttm_resource.h +++ b/include/drm/ttm/ttm_resource.h @@ -174,6 +174,9 @@ struct ttm_resource_manager { * bdev->lru_lock. */ uint64_t usage; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; /** diff --git a/include/linux/backing-dev-defs.h b/include/linux/backing-dev-defs.h index 2ad261082bba5..36dcf39de5abf 100644 --- a/include/linux/backing-dev-defs.h +++ b/include/linux/backing-dev-defs.h @@ -13,6 +13,7 @@ #include #include #include +#include struct page; struct device; @@ -158,6 +159,11 @@ struct bdi_writeback { struct rcu_head rcu; }; #endif + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; struct backing_dev_info { @@ -201,6 +207,11 @@ struct backing_dev_info { #ifdef CONFIG_DEBUG_FS struct dentry *debug_dir; #endif + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; struct wb_lock_cookie { diff --git a/include/linux/binfmts.h b/include/linux/binfmts.h index af9056d78fadf..9a874554fae5a 100644 --- a/include/linux/binfmts.h +++ b/include/linux/binfmts.h @@ -64,6 +64,9 @@ struct linux_binprm { struct rlimit rlim_stack; /* Saved RLIMIT_STACK used during exec. */ char buf[BINPRM_BUF_SIZE]; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) } __randomize_layout; #define BINPRM_FLAGS_ENFORCE_NONDUMP_BIT 0 diff --git a/include/linux/bio.h b/include/linux/bio.h index b893418c3cc02..4c6068d232f07 100644 --- a/include/linux/bio.h +++ b/include/linux/bio.h @@ -9,6 +9,7 @@ /* struct bio, bio_vec and BIO_* flags are defined in blk_types.h */ #include #include +#include #define BIO_MAX_VECS 256U #define BIO_MAX_INLINE_VECS UIO_MAXIOV @@ -347,6 +348,10 @@ struct bio_integrity_payload { struct work_struct bip_work; /* I/O completion */ struct bio_vec *bip_vec; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + struct bio_vec bip_inline_vecs[];/* embedded bvec array */ }; @@ -706,6 +711,11 @@ struct bio_set { * Hot un-plug notifier for the per-cpu cache, if used */ struct hlist_node cpuhp_dead; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; static inline bool bioset_initialized(struct bio_set *bs) diff --git a/include/linux/blk-integrity.h b/include/linux/blk-integrity.h index f7cc8080672cc..11af0aad0f692 100644 --- a/include/linux/blk-integrity.h +++ b/include/linux/blk-integrity.h @@ -33,6 +33,9 @@ struct blk_integrity_profile { integrity_prepare_fn *prepare_fn; integrity_complete_fn *complete_fn; const char *name; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; #ifdef CONFIG_BLK_DEV_INTEGRITY diff --git a/include/linux/blk-mq.h b/include/linux/blk-mq.h index 958ed7e89b301..b2dea0d8aa7bc 100644 --- a/include/linux/blk-mq.h +++ b/include/linux/blk-mq.h @@ -8,6 +8,7 @@ #include #include #include +#include struct blk_mq_tags; struct blk_flush_queue; @@ -429,6 +430,11 @@ struct blk_mq_hw_ctx { * q->unused_hctx_list. */ struct list_head hctx_list; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; /** @@ -515,6 +521,11 @@ struct blk_mq_tag_set { struct mutex tag_list_lock; struct list_head tag_list; struct srcu_struct *srcu; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; /** @@ -526,6 +537,8 @@ struct blk_mq_tag_set { struct blk_mq_queue_data { struct request *rq; bool last; + + DEEPIN_KABI_RESERVE(1) }; typedef bool (busy_tag_iter_fn)(struct request *, void *); @@ -645,6 +658,11 @@ struct blk_mq_ops { */ void (*show_rq)(struct seq_file *m, struct request *rq); #endif + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; enum { @@ -749,6 +767,11 @@ struct blk_mq_tags { * request pool */ spinlock_t lock; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; static inline struct request *blk_mq_tag_to_rq(struct blk_mq_tags *tags, diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h index 92c8997b19381..3e688e9348b42 100644 --- a/include/linux/blk_types.h +++ b/include/linux/blk_types.h @@ -8,6 +8,7 @@ #include #include +#include #include #include @@ -75,6 +76,11 @@ struct block_device { * path */ struct device bd_device; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) } __randomize_layout; #define bdev_whole(_bdev) \ @@ -316,6 +322,11 @@ struct bio { struct bio_set *bi_pool; + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) + /* * We can inline a number of vecs at the end of the bio, to avoid * double allocations for a small number of bio_vecs. This member diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index ef35e9a9878c6..4170cb4744ca7 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -110,6 +110,9 @@ struct blk_integrity { unsigned char tuple_size; unsigned char interval_exp; unsigned char tag_size; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; typedef unsigned int __bitwise blk_mode_t; @@ -207,6 +210,11 @@ struct gendisk { * devices that do not have multiple independent access ranges. */ struct blk_independent_access_ranges *ia_ranges; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; static inline bool disk_live(struct gendisk *disk) @@ -337,6 +345,11 @@ struct queue_limits { * due to possible offsets. */ unsigned int dma_alignment; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; typedef int (*report_zones_cb)(struct blk_zone *zone, unsigned int idx, @@ -536,6 +549,11 @@ struct request_queue { struct mutex debugfs_mutex; bool mq_sysfs_init_done; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; /* Keep blk_queue_flag_name[] in sync with the definitions below */ @@ -986,6 +1004,11 @@ struct blk_plug { bool has_elevator; struct list_head cb_list; /* md requires an unplug callback */ + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; struct blk_plug_cb; @@ -1418,6 +1441,11 @@ struct block_device_operations { * driver. */ int (*alternative_gpt_sector)(struct gendisk *disk, sector_t *sector); + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; #ifdef CONFIG_COMPAT diff --git a/include/linux/bpf-cgroup-defs.h b/include/linux/bpf-cgroup-defs.h index 7b121bd780eb7..00af10300a314 100644 --- a/include/linux/bpf-cgroup-defs.h +++ b/include/linux/bpf-cgroup-defs.h @@ -7,6 +7,7 @@ #include #include #include +#include struct bpf_prog_array; @@ -70,6 +71,9 @@ struct cgroup_bpf { /* cgroup_bpf is released using a work queue */ struct work_struct release_work; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; #else /* CONFIG_CGROUP_BPF */ diff --git a/include/linux/bpf.h b/include/linux/bpf.h index 17de12a98f858..3285fe117ae62 100644 --- a/include/linux/bpf.h +++ b/include/linux/bpf.h @@ -172,6 +172,11 @@ struct bpf_map_ops { /* bpf_iter info used to open a seq_file */ const struct bpf_iter_seq_info *iter_seq_info; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; enum { @@ -300,6 +305,11 @@ struct bpf_map { bool free_after_rcu_gp; atomic64_t sleepable_refcnt; s64 __percpu *elem_count; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; static inline const char *btf_field_type_name(enum btf_field_type type) @@ -918,6 +928,9 @@ struct bpf_insn_access_aux { }; }; struct bpf_verifier_log *log; /* for verbose logs */ + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; static inline void @@ -1024,6 +1037,9 @@ struct btf_func_model { u8 nr_args; u8 arg_size[MAX_BPF_FUNC_ARGS]; u8 arg_flags[MAX_BPF_FUNC_ARGS]; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; /* Restore arguments before returning from trampoline to let original function @@ -1124,6 +1140,8 @@ struct bpf_ksym { struct list_head lnode; struct latch_tree_node tnode; bool prog; + + DEEPIN_KABI_RESERVE(1) }; enum bpf_tramp_prog_type { @@ -1144,6 +1162,8 @@ struct bpf_tramp_image { struct rcu_head rcu; struct work_struct work; }; + + DEEPIN_KABI_RESERVE(1) }; struct bpf_trampoline { @@ -1172,6 +1192,9 @@ struct bpf_trampoline { /* Executable image of trampoline */ struct bpf_tramp_image *cur_image; struct module *mod; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; struct bpf_attach_target_info { @@ -1489,6 +1512,11 @@ struct bpf_prog_aux { struct work_struct work; struct rcu_head rcu; }; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; struct bpf_prog { @@ -1523,6 +1551,11 @@ struct bpf_prog { DECLARE_FLEX_ARRAY(struct sock_filter, insns); DECLARE_FLEX_ARRAY(struct bpf_insn, insnsi); }; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; struct bpf_array_aux { @@ -1567,6 +1600,8 @@ struct bpf_link_ops { struct bpf_link_info *info); int (*update_map)(struct bpf_link *link, struct bpf_map *new_map, struct bpf_map *old_map); + + DEEPIN_KABI_RESERVE(1) }; struct bpf_tramp_link { @@ -2257,6 +2292,10 @@ struct bpf_iter_aux_info { enum bpf_iter_task_type type; u32 pid; } task; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) }; typedef int (*bpf_iter_attach_target_t)(struct bpf_prog *prog, diff --git a/include/linux/bpf_local_storage.h b/include/linux/bpf_local_storage.h index 173ec7f43ed1e..39ca84156d2aa 100644 --- a/include/linux/bpf_local_storage.h +++ b/include/linux/bpf_local_storage.h @@ -94,6 +94,8 @@ struct bpf_local_storage { */ struct rcu_head rcu; raw_spinlock_t lock; /* Protect adding/removing from the "list" */ + + DEEPIN_KABI_RESERVE(1) }; /* U16_MAX is much more than enough for sk local storage diff --git a/include/linux/bpf_verifier.h b/include/linux/bpf_verifier.h index 32e89758176be..8620234033dd3 100644 --- a/include/linux/bpf_verifier.h +++ b/include/linux/bpf_verifier.h @@ -317,6 +317,8 @@ struct bpf_func_state { struct bpf_reference_state *refs; int allocated_stack; struct bpf_stack_state *stack; + + DEEPIN_KABI_RESERVE(1) }; struct bpf_idx_pair { @@ -522,6 +524,9 @@ struct bpf_insn_aux_data { * accepts callback function as a parameter. */ bool calls_callback; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; #define MAX_USED_MAPS 64 /* max number of maps accessed by one eBPF program */ @@ -673,6 +678,11 @@ struct bpf_verifier_env { * e.g., in reg_type_str() to generate reg_type string */ char tmp_str_buf[TMP_STR_BUF_LEN]; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; __printf(2, 0) void bpf_verifier_vlog(struct bpf_verifier_log *log, diff --git a/include/linux/cgroup-defs.h b/include/linux/cgroup-defs.h index 4585b6a9ca172..01af79ee33f08 100644 --- a/include/linux/cgroup-defs.h +++ b/include/linux/cgroup-defs.h @@ -850,6 +850,8 @@ struct sock_cgroup_data { #ifdef CONFIG_CGROUP_NET_PRIO u16 prioidx; /* v1 */ #endif + + DEEPIN_KABI_RESERVE(1) }; static inline u16 sock_cgroup_prioidx(const struct sock_cgroup_data *skcd) diff --git a/include/linux/coredump.h b/include/linux/coredump.h index d3eba43601508..0383c63456434 100644 --- a/include/linux/coredump.h +++ b/include/linux/coredump.h @@ -28,6 +28,8 @@ struct coredump_params { int vma_count; size_t vma_data_size; struct core_vma_metadata *vma_meta; + + DEEPIN_KABI_RESERVE(1) }; /* diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h index 3183aeb7f5b42..3734d16442cf4 100644 --- a/include/linux/cpuidle.h +++ b/include/linux/cpuidle.h @@ -44,6 +44,11 @@ struct cpuidle_state_usage { unsigned long long s2idle_usage; unsigned long long s2idle_time; /* in US */ #endif + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; struct cpuidle_state { @@ -74,6 +79,11 @@ struct cpuidle_state { int (*enter_s2idle)(struct cpuidle_device *dev, struct cpuidle_driver *drv, int index); + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; /* Idle State Flags */ @@ -111,6 +121,11 @@ struct cpuidle_device { cpumask_t coupled_cpus; struct cpuidle_coupled *coupled; #endif + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; DECLARE_PER_CPU(struct cpuidle_device *, cpuidle_devices); @@ -165,6 +180,9 @@ struct cpuidle_driver { /* preferred governor to switch at register time */ const char *governor; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; #ifdef CONFIG_CPU_IDLE diff --git a/include/linux/cred.h b/include/linux/cred.h index bc3f3d2174ad1..b32d726e1785a 100644 --- a/include/linux/cred.h +++ b/include/linux/cred.h @@ -153,6 +153,10 @@ struct cred { DEEPIN_KABI_RESERVE(2) DEEPIN_KABI_RESERVE(3) DEEPIN_KABI_RESERVE(4) + DEEPIN_KABI_RESERVE(5) + DEEPIN_KABI_RESERVE(6) + DEEPIN_KABI_RESERVE(7) + DEEPIN_KABI_RESERVE(8) } __randomize_layout; extern void __put_cred(struct cred *); diff --git a/include/linux/crypto.h b/include/linux/crypto.h index 31f6fee0c36c6..654149f47b1fa 100644 --- a/include/linux/crypto.h +++ b/include/linux/crypto.h @@ -430,6 +430,8 @@ struct crypto_tfm { struct crypto_alg *__crt_alg; + DEEPIN_KABI_RESERVE(1) + void *__crt_ctx[] CRYPTO_MINALIGN_ATTR; }; diff --git a/include/linux/dcache.h b/include/linux/dcache.h index 09620f054c9bd..fd7f76454f021 100644 --- a/include/linux/dcache.h +++ b/include/linux/dcache.h @@ -148,6 +148,7 @@ struct dentry_operations { DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) } ____cacheline_aligned; /* diff --git a/include/linux/delayacct.h b/include/linux/delayacct.h index 6639f48dac365..66cf86bfd9a33 100644 --- a/include/linux/delayacct.h +++ b/include/linux/delayacct.h @@ -55,6 +55,13 @@ struct task_delay_info { u32 compact_count; /* total count of memory compact */ u32 wpcopy_count; /* total count of write-protect copy */ u32 irq_count; /* total count of IRQ/SOFTIRQ */ + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) + DEEPIN_KABI_RESERVE(5) + DEEPIN_KABI_RESERVE(6) }; #endif diff --git a/include/linux/device.h b/include/linux/device.h index 3bbf63bb7470f..02b378ddaf355 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -806,6 +806,7 @@ struct device { #ifdef CONFIG_DMA_OPS_BYPASS bool dma_ops_bypass : 1; #endif + DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) DEEPIN_KABI_RESERVE(3) @@ -814,7 +815,14 @@ struct device { DEEPIN_KABI_RESERVE(6) DEEPIN_KABI_RESERVE(7) DEEPIN_KABI_RESERVE(8) - + DEEPIN_KABI_RESERVE(9) + DEEPIN_KABI_RESERVE(10) + DEEPIN_KABI_RESERVE(11) + DEEPIN_KABI_RESERVE(12) + DEEPIN_KABI_RESERVE(13) + DEEPIN_KABI_RESERVE(14) + DEEPIN_KABI_RESERVE(15) + DEEPIN_KABI_RESERVE(16) }; /** diff --git a/include/linux/device/bus.h b/include/linux/device/bus.h index ae10c43227543..0925267316911 100644 --- a/include/linux/device/bus.h +++ b/include/linux/device/bus.h @@ -107,6 +107,9 @@ struct bus_type { const struct iommu_ops *iommu_ops; bool need_parent_lock; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; int __must_check bus_register(const struct bus_type *bus); diff --git a/include/linux/dma-fence.h b/include/linux/dma-fence.h index b3772edca2e6e..50ca1776b8ec9 100644 --- a/include/linux/dma-fence.h +++ b/include/linux/dma-fence.h @@ -277,6 +277,8 @@ struct dma_fence_ops { * This callback is optional. */ void (*set_deadline)(struct dma_fence *fence, ktime_t deadline); + + DEEPIN_KABI_RESERVE(1) }; void dma_fence_init(struct dma_fence *fence, const struct dma_fence_ops *ops, diff --git a/include/linux/dma-map-ops.h b/include/linux/dma-map-ops.h index 94ff0a926318a..ee3ea0dc9a732 100644 --- a/include/linux/dma-map-ops.h +++ b/include/linux/dma-map-ops.h @@ -83,6 +83,7 @@ struct dma_map_ops { size_t (*max_mapping_size)(struct device *dev); size_t (*opt_mapping_size)(void); unsigned long (*get_merge_boundary)(struct device *dev); + DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) DEEPIN_KABI_RESERVE(3) diff --git a/include/linux/energy_model.h b/include/linux/energy_model.h index 88d91e0874718..a65b8a2cbf21d 100644 --- a/include/linux/energy_model.h +++ b/include/linux/energy_model.h @@ -24,6 +24,8 @@ struct em_perf_state { unsigned long power; unsigned long cost; unsigned long flags; + + DEEPIN_KABI_RESERVE(1) }; /* @@ -56,6 +58,9 @@ struct em_perf_domain { struct em_perf_state *table; int nr_perf_states; unsigned long flags; + + DEEPIN_KABI_RESERVE(1) + unsigned long cpus[]; }; diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h index 6226ff7ce8b79..8331110cfc971 100644 --- a/include/linux/ethtool.h +++ b/include/linux/ethtool.h @@ -173,6 +173,8 @@ struct ethtool_link_ksettings { __ETHTOOL_DECLARE_LINK_MODE_MASK(lp_advertising); } link_modes; u32 lanes; + + DEEPIN_KABI_RESERVE(1) }; /** @@ -389,6 +391,8 @@ struct ethtool_pause_stats { u64 tx_pause_frames; u64 rx_pause_frames; ); + + DEEPIN_KABI_RESERVE(1) }; #define ETHTOOL_MAX_LANES 8 @@ -918,6 +922,18 @@ struct ethtool_ops { DEEPIN_KABI_RESERVE(2) DEEPIN_KABI_RESERVE(3) DEEPIN_KABI_RESERVE(4) + DEEPIN_KABI_RESERVE(5) + DEEPIN_KABI_RESERVE(6) + DEEPIN_KABI_RESERVE(7) + DEEPIN_KABI_RESERVE(8) + DEEPIN_KABI_RESERVE(9) + DEEPIN_KABI_RESERVE(10) + DEEPIN_KABI_RESERVE(11) + DEEPIN_KABI_RESERVE(12) + DEEPIN_KABI_RESERVE(13) + DEEPIN_KABI_RESERVE(14) + DEEPIN_KABI_RESERVE(15) + DEEPIN_KABI_RESERVE(16) }; int ethtool_check_ops(const struct ethtool_ops *ops); diff --git a/include/linux/exportfs.h b/include/linux/exportfs.h index 11fbd0ee13708..b68b347cd4e50 100644 --- a/include/linux/exportfs.h +++ b/include/linux/exportfs.h @@ -3,6 +3,7 @@ #define LINUX_EXPORTFS_H 1 #include +#include struct dentry; struct iattr; @@ -225,6 +226,9 @@ struct export_operations { */ #define EXPORT_OP_FLUSH_ON_CLOSE (0x20) /* fs flushes file data on close */ unsigned long flags; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; extern int exportfs_encode_inode_fh(struct inode *inode, struct fid *fid, diff --git a/include/linux/fb.h b/include/linux/fb.h index 322b4d20afa55..62c9b96f60d50 100644 --- a/include/linux/fb.h +++ b/include/linux/fb.h @@ -218,6 +218,8 @@ struct fb_deferred_io { struct list_head pagereflist; /* list of pagerefs for touched pages */ /* callback */ void (*deferred_io)(struct fb_info *info, struct list_head *pagelist); + + DEEPIN_KABI_RESERVE(1) }; #endif diff --git a/include/linux/filelock.h b/include/linux/filelock.h index 90c97fb17c7a4..9db230881d760 100644 --- a/include/linux/filelock.h +++ b/include/linux/filelock.h @@ -51,6 +51,8 @@ struct lock_manager_operations { DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; struct lock_manager { @@ -130,6 +132,8 @@ struct file_lock { struct inode *inode; } ceph; } fl_u; + + DEEPIN_KABI_RESERVE(1) } __randomize_layout; struct file_lock_context { diff --git a/include/linux/filter.h b/include/linux/filter.h index adf65eacade06..283dfc47511f3 100644 --- a/include/linux/filter.h +++ b/include/linux/filter.h @@ -570,6 +570,9 @@ struct bpf_prog_stats { u64_stats_t nsecs; u64_stats_t misses; struct u64_stats_sync syncp; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) } __aligned(2 * sizeof(u64)); struct sk_filter { diff --git a/include/linux/fs.h b/include/linux/fs.h index 40742efee1f1f..bfbb6dfe029a4 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -1975,6 +1975,11 @@ struct file_operations { int (*uring_cmd)(struct io_uring_cmd *ioucmd, unsigned int issue_flags); int (*uring_cmd_iopoll)(struct io_uring_cmd *, struct io_comp_batch *, unsigned int poll_flags); + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) } __randomize_layout; /* Wrap a directory iterator that needs exclusive inode access */ @@ -2025,6 +2030,11 @@ struct inode_operations { struct dentry *dentry, struct fileattr *fa); int (*fileattr_get)(struct dentry *dentry, struct fileattr *fa); struct offset_ctx *(*get_offset_ctx)(struct inode *inode); + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) } ____cacheline_aligned; static inline ssize_t call_read_iter(struct file *file, struct kiocb *kio, @@ -2108,6 +2118,11 @@ struct super_operations { long (*free_cached_objects)(struct super_block *, struct shrink_control *); void (*shutdown)(struct super_block *sb); + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; /* @@ -2412,6 +2427,11 @@ struct file_system_type { struct lock_class_key i_mutex_key; struct lock_class_key invalidate_lock_key; struct lock_class_key i_mutex_dir_key; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; #define MODULE_ALIAS_FS(NAME) MODULE_ALIAS("fs-" NAME) diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h index 2b6212db462af..a93959e88b3bd 100644 --- a/include/linux/ftrace.h +++ b/include/linux/ftrace.h @@ -341,6 +341,7 @@ struct ftrace_ops { unsigned long direct_call; #endif #endif + DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) }; diff --git a/include/linux/fwnode.h b/include/linux/fwnode.h index 7c37c32df6b65..5b8de625fd82b 100644 --- a/include/linux/fwnode.h +++ b/include/linux/fwnode.h @@ -50,6 +50,10 @@ struct fwnode_handle { DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) + DEEPIN_KABI_RESERVE(5) + DEEPIN_KABI_RESERVE(6) }; /* diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h index 8f77bb0f4ae0c..b6a8266cb9d71 100644 --- a/include/linux/hrtimer.h +++ b/include/linux/hrtimer.h @@ -20,6 +20,7 @@ #include #include #include +#include struct hrtimer_clock_base; struct hrtimer_cpu_base; @@ -124,6 +125,10 @@ struct hrtimer { u8 is_rel; u8 is_soft; u8 is_hard; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) }; /** @@ -165,6 +170,9 @@ struct hrtimer_clock_base { struct timerqueue_head active; ktime_t (*get_time)(void); ktime_t offset; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) } __hrtimer_clock_base_align; enum hrtimer_base_type { @@ -237,6 +245,9 @@ struct hrtimer_cpu_base { ktime_t softirq_expires_next; struct hrtimer *softirq_next_timer; struct hrtimer_clock_base clock_base[HRTIMER_MAX_CLOCK_BASES]; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) } ____cacheline_aligned; static inline void hrtimer_set_expires(struct hrtimer *timer, ktime_t time) diff --git a/include/linux/if_macvlan.h b/include/linux/if_macvlan.h index 523025106a643..4276a8470a08a 100644 --- a/include/linux/if_macvlan.h +++ b/include/linux/if_macvlan.h @@ -35,6 +35,9 @@ struct macvlan_dev { #ifdef CONFIG_NET_POLL_CONTROLLER struct netpoll *netpoll; #endif + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; static inline void macvlan_count_rx(const struct macvlan_dev *vlan, diff --git a/include/linux/inetdevice.h b/include/linux/inetdevice.h index 96997c59bb43d..bb47d778bfd95 100644 --- a/include/linux/inetdevice.h +++ b/include/linux/inetdevice.h @@ -19,6 +19,8 @@ struct ipv4_devconf { void *sysctl; int data[IPV4_DEVCONF_MAX]; DECLARE_BITMAP(state, IPV4_DEVCONF_MAX); + + DEEPIN_KABI_RESERVE(1) }; #define MC_HASH_SZ_LOG 9 diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h index 2610a7d156da8..f53e45515121f 100644 --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h @@ -289,6 +289,8 @@ struct irq_affinity { unsigned int set_size[IRQ_AFFINITY_MAX_SETS]; void (*calc_sets)(struct irq_affinity *, unsigned int nvecs); void *priv; + + DEEPIN_KABI_RESERVE(1) }; /** diff --git a/include/linux/iommu.h b/include/linux/iommu.h index 30f97ac4f91a5..3f2df40fb1559 100644 --- a/include/linux/iommu.h +++ b/include/linux/iommu.h @@ -236,6 +236,9 @@ struct iommu_iotlb_gather { size_t pgsize; struct list_head freelist; bool queued; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; /** @@ -343,6 +346,7 @@ struct iommu_ops { const struct iommu_domain_ops *default_domain_ops; unsigned long pgsize_bitmap; struct module *owner; + DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) DEEPIN_KABI_RESERVE(3) diff --git a/include/linux/ioport.h b/include/linux/ioport.h index 29246c047d8c5..3fe2c657656a1 100644 --- a/include/linux/ioport.h +++ b/include/linux/ioport.h @@ -26,6 +26,7 @@ struct resource { unsigned long flags; unsigned long desc; struct resource *parent, *sibling, *child; + DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) DEEPIN_KABI_RESERVE(3) diff --git a/include/linux/irq.h b/include/linux/irq.h index 90081afa10ce5..fb090dfbefc21 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h @@ -160,6 +160,9 @@ struct irq_common_data { #ifdef CONFIG_GENERIC_IRQ_IPI unsigned int ipi_offset; #endif + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; /** @@ -187,6 +190,11 @@ struct irq_data { struct irq_data *parent_data; #endif void *chip_data; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; /* @@ -548,6 +556,8 @@ struct irq_chip { void (*irq_nmi_teardown)(struct irq_data *data); unsigned long flags; + + DEEPIN_KABI_RESERVE(1) }; /* @@ -1023,6 +1033,8 @@ struct irq_chip_type { u32 type; u32 mask_cache_priv; u32 *mask_cache; + + DEEPIN_KABI_RESERVE(1) }; /** diff --git a/include/linux/irq_work.h b/include/linux/irq_work.h index 136f2980cba30..c3b297a79cabc 100644 --- a/include/linux/irq_work.h +++ b/include/linux/irq_work.h @@ -18,6 +18,11 @@ struct irq_work { struct __call_single_node node; void (*func)(struct irq_work *); struct rcuwait irqwait; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; #define __IRQ_WORK_INIT(_func, _flags) (struct irq_work){ \ diff --git a/include/linux/irqdesc.h b/include/linux/irqdesc.h index d9451d456a733..a61af0a6c2138 100644 --- a/include/linux/irqdesc.h +++ b/include/linux/irqdesc.h @@ -105,6 +105,11 @@ struct irq_desc { #ifdef CONFIG_HARDIRQS_SW_RESEND struct hlist_node resend_node; #endif + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) } ____cacheline_internodealigned_in_smp; #ifdef CONFIG_SPARSE_IRQ diff --git a/include/linux/irqdomain.h b/include/linux/irqdomain.h index 51c254b7fec27..75d5283d594ad 100644 --- a/include/linux/irqdomain.h +++ b/include/linux/irqdomain.h @@ -174,6 +174,12 @@ struct irq_domain { irq_hw_number_t hwirq_max; unsigned int revmap_size; struct radix_tree_root revmap_tree; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) + struct irq_data __rcu *revmap[]; }; diff --git a/include/linux/kernfs.h b/include/linux/kernfs.h index 5a952d00ea159..9371801c1d492 100644 --- a/include/linux/kernfs.h +++ b/include/linux/kernfs.h @@ -19,6 +19,7 @@ #include #include #include +#include struct file; struct dentry; @@ -165,6 +166,8 @@ struct kernfs_elem_dir { * node has changed during negative dentry revalidation. */ unsigned long rev; + + DEEPIN_KABI_RESERVE(1) }; struct kernfs_elem_symlink { @@ -244,6 +247,11 @@ struct kernfs_syscall_ops { const char *new_name); int (*show_path)(struct seq_file *sf, struct kernfs_node *kn, struct kernfs_root *root); + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; struct kernfs_node *kernfs_root_to_node(struct kernfs_root *root); @@ -318,6 +326,9 @@ struct kernfs_ops { struct poll_table_struct *pt); int (*mmap)(struct kernfs_open_file *of, struct vm_area_struct *vma); + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; /* diff --git a/include/linux/key-type.h b/include/linux/key-type.h index 8da1932fab25f..d1a56db9532dc 100644 --- a/include/linux/key-type.h +++ b/include/linux/key-type.h @@ -37,6 +37,8 @@ struct key_preparsed_payload { size_t datalen; /* Raw datalen */ size_t quotalen; /* Quota length for proposed payload */ time64_t expiry; /* Expiry time of key */ + + DEEPIN_KABI_RESERVE(1) } __randomize_layout; typedef int (*request_key_actor_t)(struct key *auth_key, void *aux); @@ -57,6 +59,7 @@ struct key_match_data { unsigned lookup_type; /* Type of lookup for this search. */ #define KEYRING_SEARCH_LOOKUP_DIRECT 0x0000 /* Direct lookup by description. */ #define KEYRING_SEARCH_LOOKUP_ITERATE 0x0001 /* Iterative search. */ + DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) }; diff --git a/include/linux/key.h b/include/linux/key.h index ffd0c00e89c71..c9b7f74638ffd 100644 --- a/include/linux/key.h +++ b/include/linux/key.h @@ -279,6 +279,7 @@ struct key { * restriction. */ struct key_restriction *restrict_link; + DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) }; diff --git a/include/linux/kobject.h b/include/linux/kobject.h index ac61d51d6c992..5b934f3086039 100644 --- a/include/linux/kobject.h +++ b/include/linux/kobject.h @@ -76,14 +76,15 @@ struct kobject { unsigned int state_add_uevent_sent:1; unsigned int state_remove_uevent_sent:1; unsigned int uevent_suppress:1; - DEEPIN_KABI_RESERVE(1) - DEEPIN_KABI_RESERVE(2) - DEEPIN_KABI_RESERVE(3) - DEEPIN_KABI_RESERVE(4) #ifdef CONFIG_DEBUG_KOBJECT_RELEASE struct delayed_work release; #endif + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; __printf(2, 3) int kobject_set_name(struct kobject *kobj, const char *name, ...); @@ -125,6 +126,7 @@ struct kobj_type { const struct kobj_ns_type_operations *(*child_ns_type)(const struct kobject *kobj); const void *(*namespace)(const struct kobject *kobj); void (*get_ownership)(const struct kobject *kobj, kuid_t *uid, kgid_t *gid); + DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) DEEPIN_KABI_RESERVE(3) @@ -179,6 +181,7 @@ struct kset { spinlock_t list_lock; struct kobject kobj; const struct kset_uevent_ops *uevent_ops; + DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) DEEPIN_KABI_RESERVE(3) diff --git a/include/linux/kprobes.h b/include/linux/kprobes.h index 45d5b0a76b0bd..39e67e386c28b 100644 --- a/include/linux/kprobes.h +++ b/include/linux/kprobes.h @@ -92,6 +92,8 @@ struct kprobe { * Protected by kprobe_mutex after this kprobe is registered. */ u32 flags; + + DEEPIN_KABI_RESERVE(1) }; /* Kprobe status flags */ diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h index 2a9c38aac1705..71df0cd7d3fea 100644 --- a/include/linux/kvm_host.h +++ b/include/linux/kvm_host.h @@ -392,6 +392,8 @@ struct kvm_vcpu { */ struct kvm_memory_slot *last_used_slot; u64 last_used_slot_gen; + + DEEPIN_KABI_RESERVE(1) }; /* @@ -588,6 +590,8 @@ struct kvm_memory_slot { u32 flags; short id; u16 as_id; + + DEEPIN_KABI_RESERVE(1) }; static inline bool kvm_slot_dirty_track_enabled(const struct kvm_memory_slot *slot) @@ -808,6 +812,8 @@ struct kvm { struct notifier_block pm_notifier; #endif char stats_id[KVM_STATS_NAME_SIZE]; + + DEEPIN_KABI_RESERVE(1) }; #define kvm_err(fmt, ...) \ diff --git a/include/linux/list_lru.h b/include/linux/list_lru.h index b35968ee9fb50..54212d62c7523 100644 --- a/include/linux/list_lru.h +++ b/include/linux/list_lru.h @@ -54,6 +54,9 @@ struct list_lru { bool memcg_aware; struct xarray xa; #endif + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; void list_lru_destroy(struct list_lru *lru); diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 60813f808d5c2..4772c6ca1b6c2 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -66,6 +66,7 @@ struct mem_cgroup_reclaim_cookie { struct mem_cgroup_id { int id; refcount_t ref; + DEEPIN_KABI_RESERVE(1) }; @@ -348,6 +349,7 @@ struct mem_cgroup { DEEPIN_KABI_RESERVE(6) DEEPIN_KABI_RESERVE(7) DEEPIN_KABI_RESERVE(8) + struct mem_cgroup_per_node *nodeinfo[]; }; diff --git a/include/linux/mempolicy.h b/include/linux/mempolicy.h index 786cf03054373..151a35d71fd80 100644 --- a/include/linux/mempolicy.h +++ b/include/linux/mempolicy.h @@ -52,6 +52,7 @@ struct mempolicy { nodemask_t cpuset_mems_allowed; /* relative to these nodes */ nodemask_t user_nodemask; /* nodemask passed by user */ } w; + DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) DEEPIN_KABI_RESERVE(3) diff --git a/include/linux/mempool.h b/include/linux/mempool.h index 8fb394f933707..9b3475f61b2f2 100644 --- a/include/linux/mempool.h +++ b/include/linux/mempool.h @@ -24,6 +24,7 @@ typedef struct mempool_s { mempool_alloc_t *alloc; mempool_free_t *free; wait_queue_head_t wait; + DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) DEEPIN_KABI_RESERVE(3) diff --git a/include/linux/memremap.h b/include/linux/memremap.h index bcb9e704ab253..310e2f06a33d6 100644 --- a/include/linux/memremap.h +++ b/include/linux/memremap.h @@ -25,6 +25,7 @@ struct vmem_altmap { unsigned long free; unsigned long align; unsigned long alloc; + DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) }; @@ -101,6 +102,7 @@ struct dev_pagemap_ops { */ int (*memory_failure)(struct dev_pagemap *pgmap, unsigned long pfn, unsigned long nr_pages, int mf_flags); + DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) }; @@ -137,11 +139,13 @@ struct dev_pagemap { const struct dev_pagemap_ops *ops; void *owner; int nr_range; + DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) DEEPIN_KABI_RESERVE(3) DEEPIN_KABI_RESERVE(4) DEEPIN_KABI_RESERVE(5) + union { struct range range; DECLARE_FLEX_ARRAY(struct range, ranges); diff --git a/include/linux/mm.h b/include/linux/mm.h index 2d2e3f6de2583..8a5be959026bc 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -637,6 +637,7 @@ struct vm_operations_struct { */ struct page *(*find_special_page)(struct vm_area_struct *vma, unsigned long addr); + DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) DEEPIN_KABI_RESERVE(3) diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index ff5f3bee32365..dc6b261134838 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h @@ -992,6 +992,10 @@ struct mm_struct { DEEPIN_KABI_RESERVE(3) DEEPIN_KABI_RESERVE(4) DEEPIN_KABI_RESERVE(5) + DEEPIN_KABI_RESERVE(6) + DEEPIN_KABI_RESERVE(7) + DEEPIN_KABI_RESERVE(8) + /* * The mm_cpumask needs to be at the end of mm_struct, because it * is dynamically sized based on nr_cpu_ids. diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index 3eabfbde8ee1f..772e1931fc383 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h @@ -737,6 +737,8 @@ struct per_cpu_zonestat { struct per_cpu_nodestat { s8 stat_threshold; s8 vm_node_stat_diff[NR_VM_NODE_STAT_ITEMS]; + + DEEPIN_KABI_RESERVE(1) }; #endif /* !__GENERATING_BOUNDS.H */ @@ -1008,13 +1010,14 @@ struct zone { CACHELINE_PADDING(_pad3_); + /* Zone statistics */ + atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS]; + atomic_long_t vm_numa_event[NR_VM_NUMA_EVENT_ITEMS]; + DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) DEEPIN_KABI_RESERVE(3) DEEPIN_KABI_RESERVE(4) - /* Zone statistics */ - atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS]; - atomic_long_t vm_numa_event[NR_VM_NUMA_EVENT_ITEMS]; } ____cacheline_internodealigned_in_smp; enum pgdat_flags { @@ -1425,9 +1428,6 @@ typedef struct pglist_data { CACHELINE_PADDING(_pad2_); - DEEPIN_KABI_RESERVE(1) - DEEPIN_KABI_RESERVE(2) - DEEPIN_KABI_RESERVE(3) /* Per-node vmstats */ struct per_cpu_nodestat __percpu *per_cpu_nodestats; atomic_long_t vm_stat[NR_VM_NODE_STAT_ITEMS]; @@ -1437,6 +1437,11 @@ typedef struct pglist_data { #ifdef CONFIG_MEMORY_FAILURE struct memory_failure_stats mf_stats; #endif + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) } pg_data_t; #define node_present_pages(nid) (NODE_DATA(nid)->node_present_pages) diff --git a/include/linux/module.h b/include/linux/module.h index f58d1eb260fa9..8cfbc16e414d1 100644 --- a/include/linux/module.h +++ b/include/linux/module.h @@ -590,6 +590,11 @@ struct module { #ifdef CONFIG_DYNAMIC_DEBUG_CORE struct _ddebug_info dyndbg_info; #endif + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) } ____cacheline_aligned __randomize_layout; #ifndef MODULE_ARCH_INIT #define MODULE_ARCH_INIT {} diff --git a/include/linux/mount.h b/include/linux/mount.h index 4f40b40306d0f..1c096126a2668 100644 --- a/include/linux/mount.h +++ b/include/linux/mount.h @@ -12,6 +12,7 @@ #include #include +#include struct super_block; struct dentry; @@ -72,6 +73,8 @@ struct vfsmount { struct super_block *mnt_sb; /* pointer to superblock */ int mnt_flags; struct mnt_idmap *mnt_idmap; + + DEEPIN_KABI_RESERVE(1) } __randomize_layout; static inline struct mnt_idmap *mnt_idmap(const struct vfsmount *mnt) diff --git a/include/linux/msi.h b/include/linux/msi.h index ddace8c34dcf9..dd132711974dd 100644 --- a/include/linux/msi.h +++ b/include/linux/msi.h @@ -203,6 +203,9 @@ struct msi_desc { struct pci_msi_desc pci; struct msi_desc_data data; }; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; /* diff --git a/include/linux/net.h b/include/linux/net.h index fbcf8a9aa1c02..78f629d691165 100644 --- a/include/linux/net.h +++ b/include/linux/net.h @@ -229,6 +229,10 @@ struct proto_ops { DEEPIN_KABI_RESERVE(2) DEEPIN_KABI_RESERVE(3) DEEPIN_KABI_RESERVE(4) + DEEPIN_KABI_RESERVE(5) + DEEPIN_KABI_RESERVE(6) + DEEPIN_KABI_RESERVE(7) + DEEPIN_KABI_RESERVE(8) }; #define DECLARE_SOCKADDR(type, dst, src) \ diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 9788b0de4a3c1..7562d2d8da22a 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -258,6 +258,8 @@ struct netdev_hw_addr_list { /* Auxiliary tree for faster lookup on addition and deletion */ struct rb_root tree; + + DEEPIN_KABI_RESERVE(1) }; #define netdev_hw_addr_list_count(l) ((l)->count) @@ -672,6 +674,10 @@ struct netdev_queue { DEEPIN_KABI_RESERVE(2) DEEPIN_KABI_RESERVE(3) DEEPIN_KABI_RESERVE(4) + DEEPIN_KABI_RESERVE(5) + DEEPIN_KABI_RESERVE(6) + DEEPIN_KABI_RESERVE(7) + DEEPIN_KABI_RESERVE(8) } ____cacheline_aligned_in_smp; extern int sysctl_fb_tunnels_only_for_init_net; @@ -837,6 +843,9 @@ struct xps_dev_maps { struct rcu_head rcu; unsigned int nr_ids; s16 num_tc; + + DEEPIN_KABI_RESERVE(1) + struct xps_map __rcu *attr_map[]; /* Either CPUs map or RXQs map */ }; @@ -1665,7 +1674,6 @@ struct net_device_ops { struct kernel_hwtstamp_config *kernel_config, struct netlink_ext_ack *extack); - DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) DEEPIN_KABI_RESERVE(3) @@ -1674,6 +1682,14 @@ struct net_device_ops { DEEPIN_KABI_RESERVE(6) DEEPIN_KABI_RESERVE(7) DEEPIN_KABI_RESERVE(8) + DEEPIN_KABI_RESERVE(9) + DEEPIN_KABI_RESERVE(10) + DEEPIN_KABI_RESERVE(11) + DEEPIN_KABI_RESERVE(12) + DEEPIN_KABI_RESERVE(13) + DEEPIN_KABI_RESERVE(14) + DEEPIN_KABI_RESERVE(15) + DEEPIN_KABI_RESERVE(16) }; /** @@ -2458,6 +2474,7 @@ struct net_device { struct rtnl_hw_stats64 *offload_xstats_l3; struct devlink_port *devlink_port; + DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) DEEPIN_KABI_RESERVE(3) @@ -2466,6 +2483,13 @@ struct net_device { DEEPIN_KABI_RESERVE(6) DEEPIN_KABI_RESERVE(7) DEEPIN_KABI_RESERVE(8) + DEEPIN_KABI_RESERVE(9) + DEEPIN_KABI_RESERVE(10) + DEEPIN_KABI_RESERVE(11) + DEEPIN_KABI_RESERVE(13) + DEEPIN_KABI_RESERVE(14) + DEEPIN_KABI_RESERVE(15) + DEEPIN_KABI_RESERVE(16) }; #define to_net_dev(d) container_of(d, struct net_device, dev) @@ -2779,6 +2803,11 @@ struct offload_callbacks { struct sk_buff *(*gro_receive)(struct list_head *head, struct sk_buff *skb); int (*gro_complete)(struct sk_buff *skb, int nhoff); + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; struct packet_offload { diff --git a/include/linux/netfilter/nf_conntrack_common.h b/include/linux/netfilter/nf_conntrack_common.h index 2770db2fa080d..002dc5e9fc079 100644 --- a/include/linux/netfilter/nf_conntrack_common.h +++ b/include/linux/netfilter/nf_conntrack_common.h @@ -4,6 +4,7 @@ #include #include +#include struct ip_conntrack_stat { unsigned int found; @@ -19,6 +20,8 @@ struct ip_conntrack_stat { unsigned int expect_delete; unsigned int search_restart; unsigned int chaintoolong; + + DEEPIN_KABI_RESERVE(1) }; #define NFCT_INFOMASK 7UL diff --git a/include/linux/netfilter/x_tables.h b/include/linux/netfilter/x_tables.h index 5897f3dbaf7c3..649d39eff18c6 100644 --- a/include/linux/netfilter/x_tables.h +++ b/include/linux/netfilter/x_tables.h @@ -217,6 +217,9 @@ struct xt_target { unsigned short proto; unsigned short family; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; /* Furniture shopping... */ diff --git a/include/linux/ns_common.h b/include/linux/ns_common.h index 0f1d024bd9582..8677b55f706df 100644 --- a/include/linux/ns_common.h +++ b/include/linux/ns_common.h @@ -3,6 +3,7 @@ #define _LINUX_NS_COMMON_H #include +#include struct proc_ns_operations; @@ -11,6 +12,8 @@ struct ns_common { const struct proc_ns_operations *ops; unsigned int inum; refcount_t count; + + DEEPIN_KABI_RESERVE(1) }; #endif diff --git a/include/linux/nsproxy.h b/include/linux/nsproxy.h index 7f05e63cc03bc..923a2cf23f780 100644 --- a/include/linux/nsproxy.h +++ b/include/linux/nsproxy.h @@ -39,10 +39,15 @@ struct nsproxy { struct time_namespace *time_ns; struct time_namespace *time_ns_for_children; struct cgroup_namespace *cgroup_ns; + DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) DEEPIN_KABI_RESERVE(3) DEEPIN_KABI_RESERVE(4) + DEEPIN_KABI_RESERVE(5) + DEEPIN_KABI_RESERVE(6) + DEEPIN_KABI_RESERVE(7) + DEEPIN_KABI_RESERVE(8) }; extern struct nsproxy init_nsproxy; diff --git a/include/linux/of.h b/include/linux/of.h index afee93163fddd..74a411144bdfa 100644 --- a/include/linux/of.h +++ b/include/linux/of.h @@ -65,6 +65,13 @@ struct device_node { unsigned int unique_id; struct of_irq_controller *irq_trans; #endif + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) + DEEPIN_KABI_RESERVE(5) + DEEPIN_KABI_RESERVE(6) }; #define MAX_PHANDLE_ARGS 16 diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index 8e9547ec2686e..fcfba26a44e45 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h @@ -1281,6 +1281,7 @@ struct readahead_control { DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) /* private: use the readahead_* accessors instead */ pgoff_t _index; unsigned int _nr_pages; diff --git a/include/linux/pci-epc.h b/include/linux/pci-epc.h index 5cb6940310729..a5fbc50ad8eac 100644 --- a/include/linux/pci-epc.h +++ b/include/linux/pci-epc.h @@ -89,6 +89,8 @@ struct pci_epc_ops { const struct pci_epc_features* (*get_features)(struct pci_epc *epc, u8 func_no, u8 vfunc_no); struct module *owner; + + DEEPIN_KABI_RESERVE(1) }; /** @@ -150,6 +152,8 @@ struct pci_epc { /* mutex to protect against concurrent access of EP controller */ struct mutex lock; unsigned long function_num_map; + + DEEPIN_KABI_RESERVE(1) }; /** diff --git a/include/linux/pci-epf.h b/include/linux/pci-epf.h index 3f44b6aec4770..a53f42a831158 100644 --- a/include/linux/pci-epf.h +++ b/include/linux/pci-epf.h @@ -51,6 +51,8 @@ struct pci_epf_header { u16 subsys_vendor_id; u16 subsys_id; enum pci_interrupt_pin interrupt_pin; + + DEEPIN_KABI_RESERVE(1) }; /** @@ -121,6 +123,8 @@ struct pci_epf_bar { size_t size; enum pci_barno barno; int flags; + + DEEPIN_KABI_RESERVE(1) }; /** @@ -180,6 +184,8 @@ struct pci_epf { unsigned long vfunction_num_map; struct list_head pci_vepf; const struct pci_epc_event_ops *event_ops; + + DEEPIN_KABI_RESERVE(1) }; /** diff --git a/include/linux/pci.h b/include/linux/pci.h index 838ab762ac2a7..8642b32a56d4f 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -539,6 +539,14 @@ struct pci_dev { DEEPIN_KABI_RESERVE(6) DEEPIN_KABI_RESERVE(7) DEEPIN_KABI_RESERVE(8) + DEEPIN_KABI_RESERVE(9) + DEEPIN_KABI_RESERVE(10) + DEEPIN_KABI_RESERVE(11) + DEEPIN_KABI_RESERVE(12) + DEEPIN_KABI_RESERVE(13) + DEEPIN_KABI_RESERVE(14) + DEEPIN_KABI_RESERVE(15) + DEEPIN_KABI_RESERVE(16) }; static inline struct pci_dev *pci_physfn(struct pci_dev *dev) @@ -696,6 +704,7 @@ struct pci_bus { DEEPIN_KABI_RESERVE(5) DEEPIN_KABI_RESERVE(6) DEEPIN_KABI_RESERVE(7) + DEEPIN_KABI_RESERVE(8) }; #define to_pci_bus(n) container_of(n, struct pci_bus, dev) diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index 199b1c93637e8..a8ce1e98dfdd8 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h @@ -859,6 +859,19 @@ struct perf_event { DEEPIN_KABI_RESERVE(5) DEEPIN_KABI_RESERVE(6) #endif /* CONFIG_PERF_EVENTS */ + + DEEPIN_KABI_RESERVE(7) + DEEPIN_KABI_RESERVE(8) + DEEPIN_KABI_RESERVE(9) + DEEPIN_KABI_RESERVE(10) + DEEPIN_KABI_RESERVE(11) + DEEPIN_KABI_RESERVE(12) + DEEPIN_KABI_RESERVE(13) + DEEPIN_KABI_RESERVE(14) + DEEPIN_KABI_RESERVE(15) + DEEPIN_KABI_RESERVE(16) + DEEPIN_KABI_RESERVE(17) + DEEPIN_KABI_RESERVE(18) }; /* @@ -1040,6 +1053,7 @@ struct perf_cpu_context { int heap_size; struct perf_event **heap; struct perf_event *heap_default[2]; + DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) DEEPIN_KABI_RESERVE(3) diff --git a/include/linux/posix-clock.h b/include/linux/posix-clock.h index 468328b1e1dd5..31223d80c86a7 100644 --- a/include/linux/posix-clock.h +++ b/include/linux/posix-clock.h @@ -62,6 +62,11 @@ struct posix_clock_operations { ssize_t (*read) (struct posix_clock *pc, uint flags, char __user *buf, size_t cnt); + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; /** @@ -88,6 +93,15 @@ struct posix_clock { struct device *dev; struct rw_semaphore rwsem; bool zombie; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) + DEEPIN_KABI_RESERVE(5) + DEEPIN_KABI_RESERVE(6) + DEEPIN_KABI_RESERVE(7) + DEEPIN_KABI_RESERVE(8) }; /** diff --git a/include/linux/posix-timers.h b/include/linux/posix-timers.h index d607f51404fca..f6048e688f763 100644 --- a/include/linux/posix-timers.h +++ b/include/linux/posix-timers.h @@ -2,6 +2,7 @@ #ifndef _linux_POSIX_TIMERS_H #define _linux_POSIX_TIMERS_H +#include #include #include #include @@ -145,6 +146,11 @@ struct posix_cputimers_work { struct callback_head work; struct mutex mutex; unsigned int scheduled; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; static inline void posix_cputimers_init(struct posix_cputimers *pct) diff --git a/include/linux/psi_types.h b/include/linux/psi_types.h index f1fd3a8044e0e..b209f190a8366 100644 --- a/include/linux/psi_types.h +++ b/include/linux/psi_types.h @@ -205,6 +205,9 @@ struct psi_group { u64 rtpoll_total[NR_PSI_STATES - 1]; u64 rtpoll_next_update; u64 rtpoll_until; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; #else /* CONFIG_PSI */ diff --git a/include/linux/ptp_clock_kernel.h b/include/linux/ptp_clock_kernel.h index 71137b7694573..07869e33b90c1 100644 --- a/include/linux/ptp_clock_kernel.h +++ b/include/linux/ptp_clock_kernel.h @@ -198,6 +198,7 @@ struct ptp_clock_info { DEEPIN_KABI_RESERVE(2) DEEPIN_KABI_RESERVE(3) DEEPIN_KABI_RESERVE(4) + DEEPIN_KABI_RESERVE(5) }; struct ptp_clock; diff --git a/include/linux/quota.h b/include/linux/quota.h index 07071e64abf3d..d1c42003a09b4 100644 --- a/include/linux/quota.h +++ b/include/linux/quota.h @@ -47,6 +47,7 @@ #include #include #include +#include #undef USRQUOTA #undef GRPQUOTA @@ -318,6 +319,9 @@ struct quota_format_ops { int (*commit_dqblk)(struct dquot *dquot); /* Write structure for one user */ int (*release_dqblk)(struct dquot *dquot); /* Called when last reference to dquot is being dropped */ int (*get_next_id)(struct super_block *sb, struct kqid *qid); /* Get next ID with existing structure in the quota file */ + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; /* Operations working with dquots */ @@ -337,6 +341,9 @@ struct dquot_operations { int (*get_inode_usage) (struct inode *, qsize_t *); /* Get next ID with active quota structure */ int (*get_next_id) (struct super_block *sb, struct kqid *qid); + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; struct path; @@ -440,6 +447,11 @@ struct quotactl_ops { int (*set_dqblk)(struct super_block *, struct kqid, struct qc_dqblk *); int (*get_state)(struct super_block *, struct qc_state *); int (*rm_xquota)(struct super_block *, unsigned int); + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; struct quota_format_type { diff --git a/include/linux/rcu_segcblist.h b/include/linux/rcu_segcblist.h index 659d13a7ddaaa..fc7b130744424 100644 --- a/include/linux/rcu_segcblist.h +++ b/include/linux/rcu_segcblist.h @@ -16,6 +16,7 @@ #include #include +#include /* Simple unsegmented callback lists. */ struct rcu_cblist { @@ -214,6 +215,11 @@ struct rcu_segcblist { #endif long seglen[RCU_CBLIST_NSEGS]; u8 flags; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; #define RCU_SEGCBLIST_INITIALIZER(n) \ diff --git a/include/linux/rmap.h b/include/linux/rmap.h index b1fb58b435a98..cac6c109dd399 100644 --- a/include/linux/rmap.h +++ b/include/linux/rmap.h @@ -5,6 +5,7 @@ * Declarations for Reverse Mapping functions in mm/rmap.c */ +#include #include #include #include @@ -64,6 +65,8 @@ struct anon_vma { /* Interval tree of private "related" vmas */ struct rb_root_cached rb_root; + + DEEPIN_KABI_RESERVE(1) }; /* diff --git a/include/linux/sbitmap.h b/include/linux/sbitmap.h index 189140bf11fc4..a2ee7b8514351 100644 --- a/include/linux/sbitmap.h +++ b/include/linux/sbitmap.h @@ -82,6 +82,8 @@ struct sbitmap { * cachelines until the map is exhausted. */ unsigned int __percpu *alloc_hint; + + DEEPIN_KABI_RESERVE(1) }; #define SBQ_WAIT_QUEUES 8 diff --git a/include/linux/sched.h b/include/linux/sched.h index 72f4ff561e044..b535e48083f1d 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -11,6 +11,7 @@ #include +#include #include #include #include @@ -395,6 +396,11 @@ struct sched_info { DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) #endif /* CONFIG_SCHED_INFO */ + + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) + DEEPIN_KABI_RESERVE(5) + DEEPIN_KABI_RESERVE(6) }; /* @@ -414,6 +420,11 @@ struct sched_info { struct load_weight { unsigned long weight; u32 inv_weight; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; /* @@ -471,8 +482,11 @@ struct sched_avg { unsigned long runnable_avg; unsigned long util_avg; unsigned int util_est; + DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) } ____cacheline_aligned; /* @@ -534,6 +548,11 @@ struct sched_statistics { DEEPIN_KABI_RESERVE(7) DEEPIN_KABI_RESERVE(8) #endif /* CONFIG_SCHEDSTATS */ + + DEEPIN_KABI_RESERVE(9) + DEEPIN_KABI_RESERVE(10) + DEEPIN_KABI_RESERVE(11) + DEEPIN_KABI_RESERVE(12) } ____cacheline_aligned; struct sched_entity { @@ -575,10 +594,15 @@ struct sched_entity { */ struct sched_avg avg; #endif + DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) DEEPIN_KABI_RESERVE(3) DEEPIN_KABI_RESERVE(4) + DEEPIN_KABI_RESERVE(5) + DEEPIN_KABI_RESERVE(6) + DEEPIN_KABI_RESERVE(7) + DEEPIN_KABI_RESERVE(8) }; struct sched_rt_entity { @@ -597,8 +621,11 @@ struct sched_rt_entity { /* rq "owned" by this entity/group: */ struct rt_rq *my_q; #endif + DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) } __randomize_layout; struct sched_dl_entity { @@ -672,6 +699,11 @@ struct sched_dl_entity { */ struct sched_dl_entity *pi_se; #endif + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; #ifdef CONFIG_UCLAMP_TASK diff --git a/include/linux/sched/signal.h b/include/linux/sched/signal.h index 36278d9955679..3e4a154b3acf7 100644 --- a/include/linux/sched/signal.h +++ b/include/linux/sched/signal.h @@ -246,6 +246,7 @@ struct signal_struct { * and may have inconsistent * permissions. */ + DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) DEEPIN_KABI_RESERVE(3) diff --git a/include/linux/sched/topology.h b/include/linux/sched/topology.h index 8e33b5f8e48c8..a8b2e552a5038 100644 --- a/include/linux/sched/topology.h +++ b/include/linux/sched/topology.h @@ -82,6 +82,11 @@ struct sched_domain_shared { atomic_t nr_busy_cpus; int has_idle_cores; int nr_idle_scan; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; struct sched_domain { @@ -152,6 +157,12 @@ struct sched_domain { struct sched_domain_shared *shared; unsigned int span_weight; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) + /* * Span of all CPUs in this domain. * diff --git a/include/linux/sched/user.h b/include/linux/sched/user.h index 4cc52698e214e..fe3d4b6c75225 100644 --- a/include/linux/sched/user.h +++ b/include/linux/sched/user.h @@ -34,6 +34,9 @@ struct user_struct { /* Miscellaneous per-user rate limit */ struct ratelimit_state ratelimit; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; extern int uids_sysfs_init(void); diff --git a/include/linux/shrinker.h b/include/linux/shrinker.h index 8873f645fdeab..d96b609ed8849 100644 --- a/include/linux/shrinker.h +++ b/include/linux/shrinker.h @@ -90,6 +90,9 @@ struct shrinker { DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) + DEEPIN_KABI_RESERVE(5) }; #define DEFAULT_SEEKS 2 /* A good number if you don't know better. */ diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 81ade4a96615b..3b3ad8d8e8b67 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -1048,10 +1048,19 @@ struct sk_buff { ); /* end headers group */ + /* + * kABI: The kmem_caches of struct sk_buff are initialized with + * SLAB_HWCACHE_ALIGN flag, such as skbuff_head_cache and + * skbuff_fclone_cache, which causes each skb to be forcibly + * aligned with cacheline size(64 bytes). + * Reserve 24 bytes, total 256 bytes, this will not break + * cacheline alignment. + */ DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) DEEPIN_KABI_RESERVE(3) DEEPIN_KABI_RESERVE(4) + /* These elements must be at the end, see alloc_skb() for details. */ sk_buff_data_t tail; sk_buff_data_t end; diff --git a/include/linux/srcutree.h b/include/linux/srcutree.h index 8f3f72480e78b..0215250871f74 100644 --- a/include/linux/srcutree.h +++ b/include/linux/srcutree.h @@ -41,6 +41,15 @@ struct srcu_data { /* ->srcu_data_have_cbs[]. */ int cpu; struct srcu_struct *ssp; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) + DEEPIN_KABI_RESERVE(5) + DEEPIN_KABI_RESERVE(6) + DEEPIN_KABI_RESERVE(7) + DEEPIN_KABI_RESERVE(8) }; /* diff --git a/include/linux/stat.h b/include/linux/stat.h index 52150570d37a5..c664195a4142e 100644 --- a/include/linux/stat.h +++ b/include/linux/stat.h @@ -2,7 +2,7 @@ #ifndef _LINUX_STAT_H #define _LINUX_STAT_H - +#include #include #include @@ -53,6 +53,9 @@ struct kstat { u32 dio_mem_align; u32 dio_offset_align; u64 change_cookie; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; /* These definitions are internal to the kernel for now. Mainly used by nfsd. */ diff --git a/include/linux/stop_machine.h b/include/linux/stop_machine.h index ea7a74ea73893..2876ce6ca55bf 100644 --- a/include/linux/stop_machine.h +++ b/include/linux/stop_machine.h @@ -27,6 +27,8 @@ struct cpu_stop_work { unsigned long caller; void *arg; struct cpu_stop_done *done; + + DEEPIN_KABI_RESERVE(1) }; int stop_one_cpu(unsigned int cpu, cpu_stop_fn_t fn, void *arg); diff --git a/include/linux/sunrpc/svc.h b/include/linux/sunrpc/svc.h index 3d8b215f32d5b..d69fbeddf782b 100644 --- a/include/linux/sunrpc/svc.h +++ b/include/linux/sunrpc/svc.h @@ -44,6 +44,9 @@ struct svc_pool { struct percpu_counter sp_threads_woken; unsigned long sp_flags; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) } ____cacheline_aligned_in_smp; /* bits for sp_flags */ @@ -96,6 +99,9 @@ struct svc_serv { * entries in the svc_cb_list */ bool sv_bc_enabled; /* service uses backchannel */ #endif /* CONFIG_SUNRPC_BACKCHANNEL */ + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; /** diff --git a/include/linux/swap.h b/include/linux/swap.h index 394b0a3300ad6..c3c58d0c203db 100644 --- a/include/linux/swap.h +++ b/include/linux/swap.h @@ -322,9 +322,14 @@ struct swap_info_struct { */ struct work_struct discard_work; /* discard worker */ struct swap_cluster_list discard_clusters; /* discard clusters list */ + DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) + DEEPIN_KABI_RESERVE(5) + DEEPIN_KABI_RESERVE(6) + struct plist_node avail_lists[]; /* * entries in swap_avail_heads, one * entry per node. diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h index fd3fe5c8c17fc..27bd1e70c1d67 100644 --- a/include/linux/sysfs.h +++ b/include/linux/sysfs.h @@ -183,6 +183,8 @@ struct bin_attribute { char *, loff_t, size_t); int (*mmap)(struct file *, struct kobject *, struct bin_attribute *attr, struct vm_area_struct *vma); + + DEEPIN_KABI_RESERVE(1) }; /** diff --git a/include/linux/task_io_accounting.h b/include/linux/task_io_accounting.h index 6f6acce064dea..09a2f6bd63e63 100644 --- a/include/linux/task_io_accounting.h +++ b/include/linux/task_io_accounting.h @@ -43,4 +43,13 @@ struct task_io_accounting { */ u64 cancelled_write_bytes; #endif /* CONFIG_TASK_IO_ACCOUNTING */ + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) + DEEPIN_KABI_RESERVE(5) + DEEPIN_KABI_RESERVE(6) + DEEPIN_KABI_RESERVE(7) + DEEPIN_KABI_RESERVE(8) }; diff --git a/include/linux/tcp.h b/include/linux/tcp.h index 66ecbea3c075d..53d04a3b39919 100644 --- a/include/linux/tcp.h +++ b/include/linux/tcp.h @@ -165,6 +165,9 @@ struct tcp_request_sock { * after data-in-SYN. */ u8 syn_tos; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; static inline struct tcp_request_sock *tcp_rsk(const struct request_sock *req) @@ -480,6 +483,11 @@ struct tcp_sock { */ struct request_sock __rcu *fastopen_rsk; struct saved_syn *saved_syn; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; enum tsq_enum { @@ -525,6 +533,9 @@ struct tcp_timewait_sock { #ifdef CONFIG_TCP_MD5SIG struct tcp_md5sig_key *tw_md5_key; #endif + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; static inline struct tcp_timewait_sock *tcp_twsk(const struct sock *sk) diff --git a/include/linux/timer.h b/include/linux/timer.h index 9162f275819a7..fea5c758c683f 100644 --- a/include/linux/timer.h +++ b/include/linux/timer.h @@ -7,6 +7,7 @@ #include #include #include +#include struct timer_list { /* @@ -21,6 +22,11 @@ struct timer_list { #ifdef CONFIG_LOCKDEP struct lockdep_map lockdep_map; #endif + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; #ifdef CONFIG_LOCKDEP diff --git a/include/linux/trace_events.h b/include/linux/trace_events.h index c336d672e9e34..a2db2c07497b4 100644 --- a/include/linux/trace_events.h +++ b/include/linux/trace_events.h @@ -127,6 +127,8 @@ struct trace_iterator { long idx; /* All new field here will be zeroed out in pipe_read */ + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; enum trace_iter_flags { diff --git a/include/linux/tracepoint-defs.h b/include/linux/tracepoint-defs.h index 1548889947cd2..b129644a4fbc3 100644 --- a/include/linux/tracepoint-defs.h +++ b/include/linux/tracepoint-defs.h @@ -40,6 +40,7 @@ struct tracepoint { int (*regfunc)(void); void (*unregfunc)(void); struct tracepoint_func __rcu *funcs; + DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) }; diff --git a/include/linux/tty_port.h b/include/linux/tty_port.h index 6b367eb17979a..d37c8f120e3b7 100644 --- a/include/linux/tty_port.h +++ b/include/linux/tty_port.h @@ -44,6 +44,8 @@ struct tty_port_client_operations { void (*lookahead_buf)(struct tty_port *port, const u8 *cp, const u8 *fp, size_t count); void (*write_wakeup)(struct tty_port *port); + + DEEPIN_KABI_RESERVE(1) }; extern const struct tty_port_client_operations tty_port_default_client_ops; @@ -121,6 +123,10 @@ struct tty_port { int drain_delay; struct kref kref; void *client_data; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) }; /* tty_port::iflags bits -- use atomic bit ops */ diff --git a/include/linux/user_namespace.h b/include/linux/user_namespace.h index 733f2a97589b2..26e8bb4d0030b 100644 --- a/include/linux/user_namespace.h +++ b/include/linux/user_namespace.h @@ -102,6 +102,11 @@ struct user_namespace { struct ucounts *ucounts; long ucount_max[UCOUNT_COUNTS]; long rlimit_max[UCOUNT_RLIMIT_COUNTS]; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) } __randomize_layout; struct ucounts { diff --git a/include/linux/watchdog.h b/include/linux/watchdog.h index 99660197a36cb..fcc40229ee615 100644 --- a/include/linux/watchdog.h +++ b/include/linux/watchdog.h @@ -53,6 +53,9 @@ struct watchdog_ops { unsigned int (*get_timeleft)(struct watchdog_device *); int (*restart)(struct watchdog_device *, unsigned long, void *); long (*ioctl)(struct watchdog_device *, unsigned int, unsigned long); + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; /** struct watchdog_device - The structure that defines a watchdog device @@ -119,6 +122,9 @@ struct watchdog_device { #define WDOG_STOP_ON_UNREGISTER 4 /* Should be stopped on unregister */ #define WDOG_NO_PING_ON_SUSPEND 5 /* Ping worker should be stopped on suspend */ struct list_head deferred; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; #define WATCHDOG_NOWAYOUT IS_BUILTIN(CONFIG_WATCHDOG_NOWAYOUT) diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h index 52c6dd6d80ac0..9da4d0657754f 100644 --- a/include/linux/workqueue.h +++ b/include/linux/workqueue.h @@ -14,6 +14,7 @@ #include #include #include +#include struct workqueue_struct; @@ -102,6 +103,11 @@ struct work_struct { #ifdef CONFIG_LOCKDEP struct lockdep_map lockdep_map; #endif + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; #define WORK_DATA_INIT() ATOMIC_LONG_INIT((unsigned long)WORK_STRUCT_NO_POOL) @@ -115,6 +121,11 @@ struct delayed_work { /* target workqueue and CPU ->timer uses to queue ->work */ struct workqueue_struct *wq; int cpu; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; struct rcu_work { diff --git a/include/linux/writeback.h b/include/linux/writeback.h index 083387c00f0c8..5645652db4565 100644 --- a/include/linux/writeback.h +++ b/include/linux/writeback.h @@ -89,6 +89,9 @@ struct writeback_control { size_t wb_lcand_bytes; /* bytes written by last candidate */ size_t wb_tcand_bytes; /* bytes written by this candidate */ #endif + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; static inline blk_opf_t wbc_to_write_flags(struct writeback_control *wbc) diff --git a/include/linux/xattr.h b/include/linux/xattr.h index d200518658008..197ca71f6eaf3 100644 --- a/include/linux/xattr.h +++ b/include/linux/xattr.h @@ -45,6 +45,8 @@ struct xattr_handler { struct mnt_idmap *idmap, struct dentry *dentry, struct inode *inode, const char *name, const void *buffer, size_t size, int flags); + + DEEPIN_KABI_RESERVE(1) }; /** diff --git a/include/net/devlink.h b/include/net/devlink.h index 29fd1b4ee6548..a94c01e6d4783 100644 --- a/include/net/devlink.h +++ b/include/net/devlink.h @@ -1506,6 +1506,15 @@ struct devlink_ops { enum devlink_selftest_status (*selftest_run)(struct devlink *devlink, unsigned int id, struct netlink_ext_ack *extack); + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) + DEEPIN_KABI_RESERVE(5) + DEEPIN_KABI_RESERVE(6) + DEEPIN_KABI_RESERVE(7) + DEEPIN_KABI_RESERVE(8) }; void *devlink_priv(struct devlink *devlink); diff --git a/include/net/dst_ops.h b/include/net/dst_ops.h index a46cb85afba75..77b17f31a0527 100644 --- a/include/net/dst_ops.h +++ b/include/net/dst_ops.h @@ -1,6 +1,7 @@ /* SPDX-License-Identifier: GPL-2.0 */ #ifndef _NET_DST_OPS_H #define _NET_DST_OPS_H +#include #include #include #include diff --git a/include/net/flow.h b/include/net/flow.h index fbd3e6865464d..a462fa35b5456 100644 --- a/include/net/flow.h +++ b/include/net/flow.h @@ -156,6 +156,9 @@ struct flowi6 { #define fl6_mh_type uli.mht.type #define fl6_gre_key uli.gre_key __u32 mp_hash; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) } __attribute__((__aligned__(BITS_PER_LONG/8))); struct flowi { @@ -175,6 +178,8 @@ struct flowi { #define flowi_secid u.__fl_common.flowic_secid #define flowi_tun_key u.__fl_common.flowic_tun_key #define flowi_uid u.__fl_common.flowic_uid + + DEEPIN_KABI_RESERVE(1) } __attribute__((__aligned__(BITS_PER_LONG/8))); static inline struct flowi *flowi4_to_flowi(struct flowi4 *fl4) diff --git a/include/net/flow_dissector.h b/include/net/flow_dissector.h index 1a7131d6cb0e4..99addc7fa6ea3 100644 --- a/include/net/flow_dissector.h +++ b/include/net/flow_dissector.h @@ -6,6 +6,7 @@ #include #include #include +#include #include struct bpf_prog; @@ -382,6 +383,8 @@ struct flow_dissector { unsigned long long used_keys; /* each bit represents presence of one key id */ unsigned short int offset[FLOW_DISSECTOR_KEY_MAX]; + + DEEPIN_KABI_RESERVE(1) }; struct flow_keys_basic { diff --git a/include/net/flow_offload.h b/include/net/flow_offload.h index 9efa9a59e81f6..4eb594061172f 100644 --- a/include/net/flow_offload.h +++ b/include/net/flow_offload.h @@ -329,6 +329,11 @@ struct flow_action_entry { } pppoe; }; struct flow_action_cookie *user_cookie; /* user defined action cookie */ + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; struct flow_action { diff --git a/include/net/genetlink.h b/include/net/genetlink.h index 5ae00a5abc680..1bd7e5e3f5e7f 100644 --- a/include/net/genetlink.h +++ b/include/net/genetlink.h @@ -19,6 +19,8 @@ struct genl_multicast_group { char name[GENL_NAMSIZ]; u8 flags; u8 cap_sys_admin:1; + + DEEPIN_KABI_RESERVE(1) }; struct genl_split_ops; @@ -257,6 +259,11 @@ struct genl_split_ops { u8 internal_flags; u8 flags; u8 validate; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; /** diff --git a/include/net/if_inet6.h b/include/net/if_inet6.h index 31bf475eca762..5177b56af8d50 100644 --- a/include/net/if_inet6.h +++ b/include/net/if_inet6.h @@ -219,6 +219,23 @@ struct inet6_dev { struct rcu_head rcu; unsigned int ra_mtu; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) + DEEPIN_KABI_RESERVE(5) + DEEPIN_KABI_RESERVE(6) + DEEPIN_KABI_RESERVE(7) + DEEPIN_KABI_RESERVE(8) + DEEPIN_KABI_RESERVE(9) + DEEPIN_KABI_RESERVE(10) + DEEPIN_KABI_RESERVE(11) + DEEPIN_KABI_RESERVE(12) + DEEPIN_KABI_RESERVE(13) + DEEPIN_KABI_RESERVE(14) + DEEPIN_KABI_RESERVE(15) + DEEPIN_KABI_RESERVE(16) }; static inline void ipv6_eth_mc_map(const struct in6_addr *addr, char *buf) diff --git a/include/net/neighbour.h b/include/net/neighbour.h index 24fc2449494d5..c5cbdab76476f 100644 --- a/include/net/neighbour.h +++ b/include/net/neighbour.h @@ -165,6 +165,10 @@ struct neighbour { struct rcu_head rcu; struct net_device *dev; netdevice_tracker dev_tracker; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + u8 primary_key[]; } __randomize_layout; @@ -239,6 +243,13 @@ struct neigh_table { struct pneigh_entry **phash_buckets; DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) + DEEPIN_KABI_RESERVE(5) + DEEPIN_KABI_RESERVE(6) + DEEPIN_KABI_RESERVE(7) + DEEPIN_KABI_RESERVE(8) }; enum { diff --git a/include/net/netdev_rx_queue.h b/include/net/netdev_rx_queue.h index cdcafb30d4378..5f5e42141885a 100644 --- a/include/net/netdev_rx_queue.h +++ b/include/net/netdev_rx_queue.h @@ -21,6 +21,15 @@ struct netdev_rx_queue { #ifdef CONFIG_XDP_SOCKETS struct xsk_buff_pool *pool; #endif + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) + DEEPIN_KABI_RESERVE(5) + DEEPIN_KABI_RESERVE(6) + DEEPIN_KABI_RESERVE(7) + DEEPIN_KABI_RESERVE(8) } ____cacheline_aligned_in_smp; /* diff --git a/include/net/netfilter/nf_conntrack_ecache.h b/include/net/netfilter/nf_conntrack_ecache.h index 0c1dac318e025..9522ffd46ee82 100644 --- a/include/net/netfilter/nf_conntrack_ecache.h +++ b/include/net/netfilter/nf_conntrack_ecache.h @@ -63,6 +63,7 @@ struct nf_exp_event { struct nf_ct_event_notifier { int (*ct_event)(unsigned int events, const struct nf_ct_event *item); int (*exp_event)(unsigned int events, const struct nf_exp_event *item); + DEEPIN_KABI_RESERVE(1) }; void nf_conntrack_register_notifier(struct net *net, diff --git a/include/net/netns/ipv6.h b/include/net/netns/ipv6.h index e868177b505a3..71ef4d64a3ed0 100644 --- a/include/net/netns/ipv6.h +++ b/include/net/netns/ipv6.h @@ -57,6 +57,8 @@ struct netns_sysctl_ipv6 { u8 skip_notify_on_dev_down; u8 fib_notify_on_flag_change; u8 icmpv6_error_anycast_as_unicast; + + DEEPIN_KABI_RESERVE(1) }; struct netns_ipv6 { diff --git a/include/net/netns/nftables.h b/include/net/netns/nftables.h index 861152cbf154b..96c333b29511f 100644 --- a/include/net/netns/nftables.h +++ b/include/net/netns/nftables.h @@ -6,6 +6,7 @@ struct netns_nftables { u8 gencursor; + DEEPIN_KABI_RESERVE(1) }; diff --git a/include/net/netns/sctp.h b/include/net/netns/sctp.h index 7eff3d981b893..9b8177942ffec 100644 --- a/include/net/netns/sctp.h +++ b/include/net/netns/sctp.h @@ -179,6 +179,9 @@ struct netns_sctp { #ifdef CONFIG_NET_L3_MASTER_DEV int l3mdev_accept; #endif + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; #endif /* __NETNS_SCTP_H__ */ diff --git a/include/net/netns/smc.h b/include/net/netns/smc.h index 582212ada3ba7..5eaee418a1b06 100644 --- a/include/net/netns/smc.h +++ b/include/net/netns/smc.h @@ -22,5 +22,38 @@ struct netns_smc { int sysctl_smcr_testlink_time; int sysctl_wmem; int sysctl_rmem; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) + DEEPIN_KABI_RESERVE(5) + DEEPIN_KABI_RESERVE(6) + DEEPIN_KABI_RESERVE(7) + DEEPIN_KABI_RESERVE(8) + DEEPIN_KABI_RESERVE(9) + DEEPIN_KABI_RESERVE(10) + DEEPIN_KABI_RESERVE(11) + DEEPIN_KABI_RESERVE(12) + DEEPIN_KABI_RESERVE(13) + DEEPIN_KABI_RESERVE(14) + DEEPIN_KABI_RESERVE(15) + DEEPIN_KABI_RESERVE(16) + DEEPIN_KABI_RESERVE(17) + DEEPIN_KABI_RESERVE(18) + DEEPIN_KABI_RESERVE(19) + DEEPIN_KABI_RESERVE(20) + DEEPIN_KABI_RESERVE(21) + DEEPIN_KABI_RESERVE(22) + DEEPIN_KABI_RESERVE(23) + DEEPIN_KABI_RESERVE(24) + DEEPIN_KABI_RESERVE(25) + DEEPIN_KABI_RESERVE(26) + DEEPIN_KABI_RESERVE(27) + DEEPIN_KABI_RESERVE(28) + DEEPIN_KABI_RESERVE(29) + DEEPIN_KABI_RESERVE(30) + DEEPIN_KABI_RESERVE(31) + DEEPIN_KABI_RESERVE(32) }; #endif diff --git a/include/net/netns/unix.h b/include/net/netns/unix.h index 9859d134d5a89..42e4c7a88f43d 100644 --- a/include/net/netns/unix.h +++ b/include/net/netns/unix.h @@ -17,6 +17,9 @@ struct netns_unix { struct unix_table table; int sysctl_max_dgram_qlen; struct ctl_table_header *ctl; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; #endif /* __NETNS_UNIX_H__ */ diff --git a/include/net/nexthop.h b/include/net/nexthop.h index 2b12725de9c09..98b314f69ec80 100644 --- a/include/net/nexthop.h +++ b/include/net/nexthop.h @@ -114,6 +114,10 @@ struct nh_grp_entry { struct list_head nh_list; struct nexthop *nh_parent; /* nexthop of group with this entry */ + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) }; struct nh_group { @@ -126,6 +130,9 @@ struct nh_group { bool has_v4; struct nh_res_table __rcu *res_table; + + DEEPIN_KABI_RESERVE(1) + struct nh_grp_entry nh_entries[]; }; diff --git a/include/net/page_pool/types.h b/include/net/page_pool/types.h index 887e7946a5974..0a971cb545956 100644 --- a/include/net/page_pool/types.h +++ b/include/net/page_pool/types.h @@ -68,6 +68,9 @@ struct page_pool_params { /* private: used by test code only */ void (*init_callback)(struct page *page, void *arg); void *init_arg; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; #ifdef CONFIG_PAGE_POOL_STATS @@ -180,6 +183,8 @@ struct page_pool { refcount_t user_cnt; u64 destroy_cnt; + + DEEPIN_KABI_RESERVE(1) }; struct page *page_pool_alloc_pages(struct page_pool *pool, gfp_t gfp); diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h index a8fe126c11c93..fcf911039c89b 100644 --- a/include/net/sch_generic.h +++ b/include/net/sch_generic.h @@ -131,6 +131,12 @@ struct Qdisc { DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) + DEEPIN_KABI_RESERVE(5) + DEEPIN_KABI_RESERVE(6) + DEEPIN_KABI_RESERVE(7) + DEEPIN_KABI_RESERVE(8) /* private data */ long privdata[] ____cacheline_aligned; @@ -407,6 +413,8 @@ struct tcf_proto_ops { struct module *owner; int flags; + + DEEPIN_KABI_RESERVE(1) }; /* Classifiers setting TCF_PROTO_OPS_DOIT_UNLOCKED in tcf_proto_ops->flags diff --git a/include/net/snmp.h b/include/net/snmp.h index 468a67836e2f1..609909893557d 100644 --- a/include/net/snmp.h +++ b/include/net/snmp.h @@ -91,6 +91,8 @@ struct icmpv6msg_mib_device { #define TCP_MIB_MAX __TCP_MIB_MAX struct tcp_mib { unsigned long mibs[TCP_MIB_MAX]; + + DEEPIN_KABI_RESERVE(1) }; /* UDP */ diff --git a/include/net/sock.h b/include/net/sock.h index 19cecf096cedc..fbd055c90b4c3 100644 --- a/include/net/sock.h +++ b/include/net/sock.h @@ -1551,6 +1551,8 @@ proto_memory_pressure(struct proto *prot) struct prot_inuse { int all; int val[PROTO_INUSE_NR]; + + DEEPIN_KABI_RESERVE(1) }; static inline void sock_prot_inuse_add(const struct net *net, diff --git a/include/net/sock_reuseport.h b/include/net/sock_reuseport.h index 6ec140b0a61bf..5eb265e64487c 100644 --- a/include/net/sock_reuseport.h +++ b/include/net/sock_reuseport.h @@ -26,6 +26,9 @@ struct sock_reuseport { unsigned int bind_inany:1; unsigned int has_conns:1; struct bpf_prog __rcu *prog; /* optional BPF sock selector */ + + DEEPIN_KABI_RESERVE(1) + struct sock *socks[]; /* array of sock pointers */ }; diff --git a/include/net/tcp.h b/include/net/tcp.h index e0e20ce3ec314..30a744c14016b 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h @@ -1078,6 +1078,9 @@ struct rate_sample { bool is_app_limited; /* is sample from packet with bubble in pipe? */ bool is_retrans; /* is sample from retransmission? */ bool is_ack_delayed; /* is this (likely) a delayed ACK? */ + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; struct tcp_congestion_ops { diff --git a/include/net/tls.h b/include/net/tls.h index 6c642ea180504..7fe07ed8a483c 100644 --- a/include/net/tls.h +++ b/include/net/tls.h @@ -191,6 +191,11 @@ enum tls_context_flags { struct cipher_context { char *iv; char *rec_seq; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; union tls_crypto_context { @@ -261,6 +266,11 @@ struct tls_context { struct list_head list; refcount_t refcount; struct rcu_head rcu; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; enum tls_offload_ctx_dir { @@ -279,6 +289,13 @@ struct tlsdev_ops { int (*tls_dev_resync)(struct net_device *netdev, struct sock *sk, u32 seq, u8 *rcd_sn, enum tls_offload_ctx_dir direction); + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) + DEEPIN_KABI_RESERVE(5) + DEEPIN_KABI_RESERVE(6) }; enum tls_offload_sync_type { diff --git a/include/net/xdp.h b/include/net/xdp.h index 9adc962475384..8c10abd19cacb 100644 --- a/include/net/xdp.h +++ b/include/net/xdp.h @@ -181,6 +181,8 @@ struct xdp_frame { struct net_device *dev_rx; /* used by cpumap */ u32 frame_sz; u32 flags; /* supported values defined in xdp_buff_flags */ + + DEEPIN_KABI_RESERVE(1) }; static __always_inline bool xdp_frame_has_frags(struct xdp_frame *frame) diff --git a/include/net/xfrm.h b/include/net/xfrm.h index fbb86b464b4ac..75e9dafbd2019 100644 --- a/include/net/xfrm.h +++ b/include/net/xfrm.h @@ -125,6 +125,8 @@ struct xfrm_state_walk { u8 proto; u32 seq; struct xfrm_address_filter *filter; + + DEEPIN_KABI_RESERVE(1) }; enum { diff --git a/include/net/xsk_buff_pool.h b/include/net/xsk_buff_pool.h index b0bdff26fc882..3943faa44f1d1 100644 --- a/include/net/xsk_buff_pool.h +++ b/include/net/xsk_buff_pool.h @@ -87,6 +87,10 @@ struct xsk_buff_pool { * sockets share a single cq when the same netdev and queue id is shared. */ spinlock_t cq_lock; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + struct xdp_buff_xsk *free_heads[]; }; diff --git a/include/scsi/scsi_cmnd.h b/include/scsi/scsi_cmnd.h index 6ae00983a6126..6dab9dc5354ca 100644 --- a/include/scsi/scsi_cmnd.h +++ b/include/scsi/scsi_cmnd.h @@ -141,6 +141,11 @@ struct scsi_cmnd { * to be at an address < 16Mb). */ int result; /* Status code from lower level driver */ + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_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 c38f4fe5e64cf..c0abae0d4ddc7 100644 --- a/include/scsi/scsi_device.h +++ b/include/scsi/scsi_device.h @@ -280,6 +280,14 @@ struct scsi_device { struct mutex state_mutex; enum scsi_device_state sdev_state; struct task_struct *quiesced_by; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) + DEEPIN_KABI_RESERVE(5) + DEEPIN_KABI_RESERVE(6) + unsigned long sdev_data[]; } __attribute__((aligned(sizeof(unsigned long)))); @@ -366,6 +374,12 @@ struct scsi_target { char scsi_level; enum scsi_target_state state; void *hostdata; /* available to low-level driver */ + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) + unsigned long starget_data[]; /* for the transport */ /* starget_data must be the last element!!!! */ } __attribute__((aligned(sizeof(unsigned long)))); diff --git a/include/scsi/scsi_host.h b/include/scsi/scsi_host.h index f9d5ce6170a70..2f2f5e5c39e52 100644 --- a/include/scsi/scsi_host.h +++ b/include/scsi/scsi_host.h @@ -497,6 +497,11 @@ struct scsi_host_template { /* Delay for runtime autosuspend */ int rpm_autosuspend_delay; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; /* @@ -710,6 +715,13 @@ struct Scsi_Host { */ struct device *dma_dev; + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) + DEEPIN_KABI_RESERVE(5) + DEEPIN_KABI_RESERVE(6) + /* * We should ensure that this is aligned, both for better performance * and also because some compilers (m68k) don't automatically force diff --git a/kernel/audit.h b/kernel/audit.h index 495262125ac07..8dc14f3f8e842 100644 --- a/kernel/audit.h +++ b/kernel/audit.h @@ -209,8 +209,9 @@ struct audit_context { }; int fds[2]; struct audit_proctitle proctitle; - DEEPIN_KABI_RESERVE(0) + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; extern bool audit_ever_enabled; diff --git a/kernel/bpf/devmap.c b/kernel/bpf/devmap.c index 5f2356b47b2dd..61d74e8a5950c 100644 --- a/kernel/bpf/devmap.c +++ b/kernel/bpf/devmap.c @@ -60,6 +60,8 @@ struct xdp_dev_bulk_queue { struct net_device *dev_rx; struct bpf_prog *xdp_prog; unsigned int count; + + DEEPIN_KABI_RESERVE(1) }; struct bpf_dtab_netdev { diff --git a/kernel/locking/rtmutex_common.h b/kernel/locking/rtmutex_common.h index 1162e07cdaea1..fda3020ae6850 100644 --- a/kernel/locking/rtmutex_common.h +++ b/kernel/locking/rtmutex_common.h @@ -56,6 +56,8 @@ struct rt_mutex_waiter { struct rt_mutex_base *lock; unsigned int wake_state; struct ww_acquire_ctx *ww_ctx; + + DEEPIN_KABI_RESERVE(1) }; /** diff --git a/kernel/module/sysfs.c b/kernel/module/sysfs.c index c921bf044050f..b585da2466bdc 100644 --- a/kernel/module/sysfs.c +++ b/kernel/module/sysfs.c @@ -22,6 +22,8 @@ struct module_sect_attr { struct bin_attribute battr; unsigned long address; + + DEEPIN_KABI_RESERVE(1) }; struct module_sect_attrs { diff --git a/kernel/sched/cpuacct.c b/kernel/sched/cpuacct.c index 0de9dda099496..9d252cb004207 100644 --- a/kernel/sched/cpuacct.c +++ b/kernel/sched/cpuacct.c @@ -7,6 +7,8 @@ * (balbir@in.ibm.com). */ +#include + /* Time spent by the tasks of the CPU accounting group executing in ... */ enum cpuacct_stat_index { CPUACCT_STAT_USER, /* ... user mode */ @@ -26,6 +28,11 @@ struct cpuacct { /* cpuusage holds pointer to a u64-type object on every CPU */ u64 __percpu *cpuusage; struct kernel_cpustat __percpu *cpustat; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; static inline struct cpuacct *css_ca(struct cgroup_subsys_state *css) diff --git a/kernel/sched/cpudeadline.h b/kernel/sched/cpudeadline.h index 0adeda93b5fb5..8d6c6a2c88064 100644 --- a/kernel/sched/cpudeadline.h +++ b/kernel/sched/cpudeadline.h @@ -13,6 +13,11 @@ struct cpudl { int size; cpumask_var_t free_cpus; struct cpudl_item *elements; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; #ifdef CONFIG_SMP diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index f83ba35ebd392..6a41cd2db01a8 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -1423,6 +1423,12 @@ struct numa_group { struct rcu_head rcu; unsigned long total_faults; unsigned long max_faults_cpu; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) + /* * faults[] array is split into two regions: faults_mem and faults_cpu. * diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index a39bb216e266b..a0cb713a42cce 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include @@ -284,8 +285,11 @@ struct rt_bandwidth { u64 rt_runtime; struct hrtimer rt_period_timer; unsigned int rt_period_active; + DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; static inline int dl_bandwidth_enabled(void) @@ -315,6 +319,11 @@ struct dl_bw { raw_spinlock_t lock; u64 bw; u64 total_bw; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; extern void init_dl_bw(struct dl_bw *dl_b); @@ -358,6 +367,7 @@ struct cfs_bandwidth { int nr_burst; u64 throttled_time; u64 burst_time; + DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) DEEPIN_KABI_RESERVE(3) @@ -422,6 +432,14 @@ struct task_group { struct uclamp_se uclamp[UCLAMP_CNT]; #endif + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) + DEEPIN_KABI_RESERVE(5) + DEEPIN_KABI_RESERVE(6) + DEEPIN_KABI_RESERVE(7) + DEEPIN_KABI_RESERVE(8) }; #ifdef CONFIG_FAIR_GROUP_SCHED @@ -659,6 +677,7 @@ struct cfs_rq { #endif #endif /* CONFIG_CFS_BANDWIDTH */ #endif /* CONFIG_FAIR_GROUP_SCHED */ + DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) DEEPIN_KABI_RESERVE(3) @@ -713,8 +732,11 @@ struct rt_rq { struct rq *rq; struct task_group *tg; #endif + DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; static inline bool rt_rq_is_runnable(struct rt_rq *rt_rq) @@ -783,6 +805,11 @@ struct dl_rq { * by the GRUB algorithm. */ u64 bw_ratio; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; #ifdef CONFIG_FAIR_GROUP_SCHED @@ -909,8 +936,11 @@ struct root_domain { * CPUs of the rd. Protected by RCU. */ struct perf_domain __rcu *pd; + DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; extern void init_defrootdomain(void); @@ -1188,6 +1218,7 @@ struct rq { call_single_data_t cfsb_csd; struct list_head cfsb_csd_list; #endif + DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) DEEPIN_KABI_RESERVE(3) @@ -1927,6 +1958,11 @@ struct sched_group_capacity { int id; #endif + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) + unsigned long cpumask[]; /* Balance mask */ }; @@ -1941,6 +1977,8 @@ struct sched_group { int flags; DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) /* * The CPUs this group covers. @@ -2334,6 +2372,8 @@ struct sched_class { #endif DEEPIN_KABI_RESERVE(1) DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; static inline void put_prev_task(struct rq *rq, struct task_struct *prev) diff --git a/kernel/workqueue.c b/kernel/workqueue.c index fab4690b9a246..aa67ab5adb42a 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -199,6 +199,9 @@ struct worker_pool { * from get_work_pool(). */ struct rcu_head rcu; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; /* @@ -323,6 +326,9 @@ struct workqueue_struct { /* hot fields used during command issue, aligned to cacheline */ unsigned int flags ____cacheline_aligned; /* WQ: WQ_* flags */ struct pool_workqueue __percpu __rcu **cpu_pwq; /* I: per-cpu pwqs */ + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; static struct kmem_cache *pwq_cache; diff --git a/kernel/workqueue_internal.h b/kernel/workqueue_internal.h index f6275944ada77..fd139a3f5fea1 100644 --- a/kernel/workqueue_internal.h +++ b/kernel/workqueue_internal.h @@ -59,6 +59,11 @@ struct worker { /* used only by rescuers to point to the target workqueue */ struct workqueue_struct *rescue_wq; /* I: the workqueue to rescue */ + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + DEEPIN_KABI_RESERVE(3) + DEEPIN_KABI_RESERVE(4) }; /** diff --git a/mm/internal.h b/mm/internal.h index 75d4a66e8ab96..1667fea2172b7 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -579,6 +579,9 @@ struct compact_control { * ensure forward progress. */ bool alloc_contig; /* alloc_contig_range allocation */ + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; /* diff --git a/mm/ksm.c b/mm/ksm.c index 2e4cd681622de..2915d4ed703f6 100644 --- a/mm/ksm.c +++ b/mm/ksm.c @@ -140,6 +140,9 @@ struct ksm_scan { unsigned long address; struct ksm_rmap_item **rmap_list; unsigned long seqnr; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; /** diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 9bf5a69e20d87..ec0e9e757daad 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -735,6 +735,9 @@ struct memcg_vmstats_percpu { /* Cgroup1: threshold notifications & softlimit tree updates */ unsigned long nr_page_events; unsigned long targets[MEM_CGROUP_NTARGETS]; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; struct memcg_vmstats { diff --git a/net/devlink/devl_internal.h b/net/devlink/devl_internal.h index f6b5fea2e13cd..befb5db674f52 100644 --- a/net/devlink/devl_internal.h +++ b/net/devlink/devl_internal.h @@ -52,6 +52,10 @@ struct devlink { */ struct mutex lock; struct lock_class_key lock_key; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) + u8 reload_failed:1; refcount_t refcount; struct rcu_work rwork; diff --git a/net/ipv4/route.c b/net/ipv4/route.c index 97dc30a03dbf2..bf7ada30192ed 100644 --- a/net/ipv4/route.c +++ b/net/ipv4/route.c @@ -1520,6 +1520,9 @@ struct uncached_list { spinlock_t lock; struct list_head head; struct list_head quarantine; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; static DEFINE_PER_CPU_ALIGNED(struct uncached_list, rt_uncached_list); diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 53197087353a7..5c715cf843a98 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -132,6 +132,9 @@ struct uncached_list { spinlock_t lock; struct list_head head; struct list_head quarantine; + + DEEPIN_KABI_RESERVE(1) + DEEPIN_KABI_RESERVE(2) }; static DEFINE_PER_CPU_ALIGNED(struct uncached_list, rt6_uncached_list);