anolis: kabi: Reserve some fields

ANBZ: #3879

Based on upstream struct size to reserve specific fields
for kabi related structs.

Signed-off-by: Guixin Liu <kanie@linux.alibaba.com>
Acked-by: Joseph Qi <joseph.qi@linux.alibaba.com>
Reviewed-by: Xu Yu <xuyu@linux.alibaba.com>
Reviewed-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
Reviewed-by: Tianchen Ding <dtcccc@linux.alibaba.com>
Reviewed-by: Yihao Wu <wuyihao@linux.alibaba.com>
Reviewed-by: Xunlei Pang <xlpang@linux.alibaba.com>
Link: https://gitee.com/anolis/cloud-kernel/pulls/1148
This commit is contained in:
Guixin Liu 2023-02-09 10:40:47 +08:00 committed by 小龙
parent 0ef985a036
commit 2af3c87980
156 changed files with 1248 additions and 2 deletions

View File

@ -7,6 +7,7 @@
#ifndef _ARM_PROBES_H
#define _ARM_PROBES_H
#include <linux/ck_kabi.h>
#include <asm/insn.h>
typedef u32 probe_opcode_t;
@ -24,6 +25,9 @@ struct arch_probe_insn {
typedef u32 kprobe_opcode_t;
struct arch_specific_insn {
struct arch_probe_insn api;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
#endif

View File

@ -8,6 +8,7 @@
#ifndef __ASM_THREAD_INFO_H
#define __ASM_THREAD_INFO_H
#include <linux/ck_kabi.h>
#include <linux/compiler.h>
#ifndef __ASSEMBLY__
@ -45,6 +46,9 @@ struct thread_info {
#ifdef CONFIG_ARM64_MPAM
u64 mpam_partid_pmg;
#endif
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
#define thread_saved_pc(tsk) \

View File

@ -9,6 +9,7 @@
* See arch/x86/kernel/kprobes.c for x86 kprobes history.
*/
#include <linux/ck_kabi.h>
#include <asm-generic/kprobes.h>
#ifdef CONFIG_KPROBES
@ -68,6 +69,9 @@ struct arch_specific_insn {
bool if_modifier;
/* Number of bytes of text poked */
int tp_len;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
struct arch_optimized_insn {

View File

@ -8,6 +8,7 @@
#ifndef _ASM_X86_THREAD_INFO_H
#define _ASM_X86_THREAD_INFO_H
#include <linux/ck_kabi.h>
#include <linux/compiler.h>
#include <asm/page.h>
#include <asm/percpu.h>
@ -56,6 +57,9 @@ struct task_struct;
struct thread_info {
unsigned long flags; /* low level flags */
u32 status; /* thread synchronous flags */
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
#define INIT_THREAD_INFO(tsk) \

View File

@ -2,6 +2,8 @@
#ifndef INT_BLK_MQ_TAG_H
#define INT_BLK_MQ_TAG_H
#include <linux/ck_kabi.h>
/*
* Tag address space map.
*/
@ -26,6 +28,11 @@ struct blk_mq_tags {
* request pool
*/
spinlock_t lock;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
extern struct blk_mq_tags *blk_mq_init_tags(unsigned int nr_tags,

View File

@ -158,6 +158,10 @@ struct blk_mq_alloc_data {
/* input & output parameter */
struct blk_mq_ctx *ctx;
struct blk_mq_hw_ctx *hctx;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
};
static inline bool blk_mq_is_sbitmap_shared(unsigned int flags)

View File

@ -2,6 +2,7 @@
#ifndef DRIVERS_PCI_H
#define DRIVERS_PCI_H
#include <linux/ck_kabi.h>
#include <linux/pci.h>
/* Number of possible devfns: 0.0 to 1f.7 inclusive */
@ -343,6 +344,15 @@ struct pci_sriov {
u16 subsystem_device; /* VF subsystem device */
resource_size_t barsz[PCI_SRIOV_NUM_BARS]; /* VF BAR size */
bool drivers_autoprobe; /* Auto probing of VFs by driver */
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
CK_KABI_RESERVE(7)
CK_KABI_RESERVE(8)
};
/**

View File

@ -7,6 +7,7 @@
#ifndef _PTP_PRIVATE_H_
#define _PTP_PRIVATE_H_
#include <linux/ck_kabi.h>
#include <linux/cdev.h>
#include <linux/device.h>
#include <linux/kthread.h>
@ -46,6 +47,11 @@ struct ptp_clock {
const struct attribute_group *pin_attr_groups[2];
struct kthread_worker *kworker;
struct kthread_delayed_work aux_work;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
/*

View File

@ -1,4 +1,5 @@
/* SPDX-License-Identifier: GPL-2.0 */
#include <linux/ck_kabi.h>
#include <linux/mount.h>
#include <linux/seq_file.h>
#include <linux/poll.h>
@ -78,6 +79,8 @@ struct mount {
int mnt_expiry_mark; /* true if marked for expiry */
struct hlist_head mnt_pins;
struct hlist_head mnt_stuck_children;
CK_KABI_RESERVE(1)
} __randomize_layout;
#define MNT_NS_INTERNAL ERR_PTR(-EINVAL) /* distinct from any mnt_namespace */

View File

@ -9,6 +9,7 @@
#ifndef __ACPI_BUS_H__
#define __ACPI_BUS_H__
#include <linux/ck_kabi.h>
#include <linux/device.h>
#include <linux/property.h>

View File

@ -28,6 +28,7 @@
#ifndef DRM_ATOMIC_H_
#define DRM_ATOMIC_H_
#include <linux/ck_kabi.h>
#include <drm/drm_crtc.h>
#include <drm/drm_util.h>
@ -225,6 +226,8 @@ struct drm_private_state_funcs {
*/
void (*atomic_destroy_state)(struct drm_private_obj *obj,
struct drm_private_state *state);
CK_KABI_RESERVE(1)
};
/**
@ -297,6 +300,8 @@ struct drm_private_obj {
*/
struct drm_private_state {
struct drm_atomic_state *state;
CK_KABI_RESERVE(1)
};
struct __drm_private_objs_state {

View File

@ -3,6 +3,7 @@
#ifndef _DRM_CLIENT_H_
#define _DRM_CLIENT_H_
#include <linux/ck_kabi.h>
#include <linux/lockdep.h>
#include <linux/mutex.h>
#include <linux/types.h>
@ -149,6 +150,8 @@ struct drm_client_buffer {
* @fb: DRM framebuffer
*/
struct drm_framebuffer *fb;
CK_KABI_RESERVE(1)
};
struct drm_client_buffer *

View File

@ -23,6 +23,7 @@
#ifndef __DRM_CONNECTOR_H__
#define __DRM_CONNECTOR_H__
#include <linux/ck_kabi.h>
#include <linux/list.h>
#include <linux/llist.h>
#include <linux/ctype.h>
@ -207,6 +208,9 @@ struct drm_hdmi_info {
/** @y420_dc_modes: bitmap of deep color support index */
u8 y420_dc_modes;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
/**
@ -269,6 +273,8 @@ enum drm_panel_orientation {
struct drm_monitor_range_info {
u8 min_vfreq;
u8 max_vfreq;
CK_KABI_RESERVE(1)
};
/*
@ -541,6 +547,9 @@ struct drm_display_info {
* @monitor_range: Frequency range supported by monitor range descriptor
*/
struct drm_monitor_range_info monitor_range;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
int drm_display_info_set_bus_formats(struct drm_display_info *info,
@ -1030,6 +1039,9 @@ struct drm_connector_funcs {
*/
void (*atomic_print_state)(struct drm_printer *p,
const struct drm_connector_state *state);
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
/**
@ -1506,6 +1518,19 @@ struct drm_connector {
/** @hdr_sink_metadata: HDR Metadata Information read from sink */
struct hdr_sink_metadata hdr_sink_metadata;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
CK_KABI_RESERVE(7)
CK_KABI_RESERVE(8)
CK_KABI_RESERVE(9)
CK_KABI_RESERVE(10)
CK_KABI_RESERVE(11)
CK_KABI_RESERVE(12)
};
#define obj_to_connector(x) container_of(x, struct drm_connector, base)

View File

@ -25,6 +25,7 @@
#ifndef __DRM_CRTC_H__
#define __DRM_CRTC_H__
#include <linux/ck_kabi.h>
#include <linux/i2c.h>
#include <linux/spinlock.h>
#include <linux/types.h>
@ -392,6 +393,8 @@ struct drm_crtc_state {
/** @state: backpointer to global drm_atomic_state */
struct drm_atomic_state *state;
CK_KABI_RESERVE(1)
};
/**
@ -1172,6 +1175,8 @@ struct drm_crtc {
* Initialized via drm_self_refresh_helper_init().
*/
struct drm_self_refresh_data *self_refresh_data;
CK_KABI_RESERVE(1)
};
/**

View File

@ -29,6 +29,7 @@
#ifndef __DRM_MODESET_HELPER_VTABLES_H__
#define __DRM_MODESET_HELPER_VTABLES_H__
#include <linux/ck_kabi.h>
#include <drm/drm_crtc.h>
#include <drm/drm_encoder.h>
@ -1406,6 +1407,8 @@ struct drm_mode_config_helper_funcs {
* drm_atomic_helper_commit_tail().
*/
void (*atomic_commit_tail)(struct drm_atomic_state *state);
CK_KABI_RESERVE(1)
};
#endif

View File

@ -24,6 +24,7 @@
#ifndef DRM_MODESET_LOCK_H_
#define DRM_MODESET_LOCK_H_
#include <linux/ck_kabi.h>
#include <linux/ww_mutex.h>
struct drm_modeset_lock;
@ -63,6 +64,8 @@ struct drm_modeset_acquire_ctx {
/* Perform interruptible waits on this context. */
bool interruptible;
CK_KABI_RESERVE(1)
};
/**

View File

@ -23,6 +23,7 @@
#ifndef __DRM_PLANE_H__
#define __DRM_PLANE_H__
#include <linux/ck_kabi.h>
#include <linux/list.h>
#include <linux/ctype.h>
#include <drm/drm_mode_object.h>
@ -724,6 +725,8 @@ struct drm_plane {
* See drm_plane_create_color_properties().
*/
struct drm_property *color_range_property;
CK_KABI_RESERVE(1)
};
#define obj_to_plane(x) container_of(x, struct drm_plane, base)

View File

@ -11,6 +11,7 @@
#ifndef __DRM_WRITEBACK_H__
#define __DRM_WRITEBACK_H__
#include <linux/ck_kabi.h>
#include <drm/drm_connector.h>
#include <drm/drm_encoder.h>
#include <linux/workqueue.h>
@ -82,6 +83,19 @@ struct drm_writeback_connector {
* The name of the connector's fence timeline.
*/
char timeline_name[32];
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
CK_KABI_RESERVE(7)
CK_KABI_RESERVE(8)
CK_KABI_RESERVE(9)
CK_KABI_RESERVE(10)
CK_KABI_RESERVE(11)
CK_KABI_RESERVE(12)
};
/**

View File

@ -25,6 +25,7 @@
#ifndef _TTM_RESOURCE_H_
#define _TTM_RESOURCE_H_
#include <linux/ck_kabi.h>
#include <linux/types.h>
#include <linux/mutex.h>
#include <linux/dma-fence.h>
@ -136,6 +137,9 @@ struct ttm_resource_manager {
* Protected by @move_lock.
*/
struct dma_fence *move;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
/**

View File

@ -2,6 +2,7 @@
#ifndef __LINUX_BACKING_DEV_DEFS_H
#define __LINUX_BACKING_DEV_DEFS_H
#include <linux/ck_kabi.h>
#include <linux/list.h>
#include <linux/radix-tree.h>
#include <linux/rbtree.h>
@ -165,6 +166,10 @@ struct bdi_writeback {
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
};
struct backing_dev_info {
@ -206,6 +211,8 @@ struct backing_dev_info {
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
enum {

View File

@ -2,6 +2,7 @@
#ifndef _LINUX_BINFMTS_H
#define _LINUX_BINFMTS_H
#include <linux/ck_kabi.h>
#include <linux/sched.h>
#include <linux/unistd.h>
#include <asm/exec.h>
@ -85,6 +86,8 @@ struct coredump_params {
int vma_count;
size_t vma_data_size;
struct core_vma_metadata *vma_meta;
CK_KABI_RESERVE(1)
};
/*

View File

@ -5,6 +5,7 @@
#ifndef __LINUX_BIO_H
#define __LINUX_BIO_H
#include <linux/ck_kabi.h>
#include <linux/highmem.h>
#include <linux/mempool.h>
#include <linux/ioprio.h>
@ -336,6 +337,10 @@ struct bio_integrity_payload {
struct work_struct bip_work; /* I/O completion */
struct bio_vec *bip_vec;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
struct bio_vec bip_inline_vecs[];/* embedded bvec array */
};
@ -712,6 +717,8 @@ struct bio_set {
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
struct biovec_slab {

View File

@ -141,6 +141,8 @@ struct blkcg_gq {
int last_use;
struct rcu_head rcu_head;
CK_KABI_RESERVE(1)
};
typedef struct blkcg_policy_data *(blkcg_pol_alloc_cpd_fn)(gfp_t gfp);

View File

@ -2,6 +2,7 @@
#ifndef BLK_MQ_H
#define BLK_MQ_H
#include <linux/ck_kabi.h>
#include <linux/blkdev.h>
#include <linux/sbitmap.h>
#include <linux/srcu.h>
@ -178,6 +179,10 @@ struct blk_mq_hw_ctx {
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
CK_KABI_RESERVE(7)
CK_KABI_RESERVE(8)
/**
* @srcu: Sleepable RCU. Use as lock when type of the hardware queue is
@ -276,6 +281,10 @@ struct blk_mq_tag_set {
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
CK_KABI_RESERVE(7)
CK_KABI_RESERVE(8)
};
/**
@ -401,6 +410,12 @@ struct blk_mq_ops {
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
CK_KABI_RESERVE(7)
CK_KABI_RESERVE(8)
};
enum {

View File

@ -52,6 +52,8 @@ struct block_device {
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
} __randomize_layout;
/*
@ -273,6 +275,8 @@ struct bio {
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
/*
* We can inline a number of vecs at the end of the bio, to avoid

View File

@ -2,6 +2,7 @@
#ifndef _LINUX_BLKDEV_H
#define _LINUX_BLKDEV_H
#include <linux/ck_kabi.h>
#include <linux/sched.h>
#include <linux/sched/clock.h>
#include <linux/major.h>
@ -357,6 +358,12 @@ struct queue_limits {
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
CK_KABI_RESERVE(7)
CK_KABI_RESERVE(8)
};
typedef int (*report_zones_cb)(struct blk_zone *zone, unsigned int idx,
@ -1272,6 +1279,11 @@ struct blk_plug {
unsigned short rq_count;
bool multiple_queues;
bool nowait;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
struct blk_plug_cb;
@ -1714,6 +1726,9 @@ struct blk_integrity_profile {
integrity_prepare_fn *prepare_fn;
integrity_complete_fn *complete_fn;
const char *name;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
extern void blk_integrity_register(struct gendisk *, struct blk_integrity *);
@ -1908,6 +1923,11 @@ struct block_device_operations {
char *(*devnode)(struct gendisk *disk, umode_t *mode);
struct module *owner;
const struct pr_ops *pr_ops;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
#ifdef CONFIG_COMPAT

View File

@ -2,6 +2,7 @@
#ifndef _BPF_CGROUP_H
#define _BPF_CGROUP_H
#include <linux/ck_kabi.h>
#include <linux/bpf.h>
#include <linux/errno.h>
#include <linux/jump_label.h>
@ -101,6 +102,9 @@ struct cgroup_bpf {
/* cgroup_bpf is released using a work queue */
struct work_struct release_work;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
int cgroup_bpf_inherit(struct cgroup *cgrp);

View File

@ -21,6 +21,7 @@
#include <linux/kallsyms.h>
#include <linux/capability.h>
#include <linux/percpu-refcount.h>
#include <linux/ck_kabi.h>
struct bpf_verifier_env;
struct bpf_verifier_log;
@ -132,6 +133,11 @@ struct bpf_map_ops {
/* bpf_iter info used to open a seq_file */
const struct bpf_iter_seq_info *iter_seq_info;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
struct bpf_map_memory {
@ -481,6 +487,9 @@ struct bpf_insn_access_aux {
u32 btf_id;
};
struct bpf_verifier_log *log; /* for verbose logs */
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
static inline void
@ -564,6 +573,9 @@ struct bpf_prog_stats {
u64 cnt;
u64 nsecs;
struct u64_stats_sync syncp;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
} __aligned(2 * sizeof(u64));
struct btf_func_model {
@ -684,6 +696,9 @@ struct bpf_trampoline {
/* Executable image of trampoline */
struct bpf_tramp_image *cur_image;
u64 selector;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
struct bpf_attach_target_info {

View File

@ -4,6 +4,7 @@
#ifndef _LINUX_BPF_VERIFIER_H
#define _LINUX_BPF_VERIFIER_H 1
#include <linux/ck_kabi.h>
#include <linux/bpf.h> /* for enum bpf_reg_type */
#include <linux/filter.h> /* for MAX_BPF_STACK */
#include <linux/tnum.h>
@ -199,6 +200,8 @@ struct bpf_func_state {
struct bpf_reference_state *refs;
int allocated_stack;
struct bpf_stack_state *stack;
CK_KABI_RESERVE(1)
};
struct bpf_idx_pair {
@ -336,6 +339,9 @@ struct bpf_insn_aux_data {
/* below fields are initialized once */
unsigned int orig_idx; /* original instruction index */
bool prune_point;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
#define MAX_USED_MAPS 64 /* max number of maps accessed by one eBPF program */
@ -445,6 +451,11 @@ struct bpf_verifier_env {
u32 longest_mark_read_walk;
/* buffer used in reg_type_str() to generate reg_type string */
char type_str_buf[TYPE_STR_BUF_LEN];
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
__printf(2, 0) void bpf_verifier_vlog(struct bpf_verifier_log *log,

View File

@ -2,6 +2,7 @@
#ifndef _LINUX_BSG_H
#define _LINUX_BSG_H
#include <linux/ck_kabi.h>
#include <uapi/linux/bsg.h>
struct request;
@ -13,6 +14,9 @@ struct bsg_ops {
fmode_t mode);
int (*complete_rq)(struct request *rq, struct sg_io_v4 *hdr);
void (*free_rq)(struct request *rq);
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
struct bsg_class_device {
@ -20,6 +24,9 @@ struct bsg_class_device {
int minor;
struct request_queue *queue;
const struct bsg_ops *ops;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
int bsg_register_queue(struct request_queue *q, struct device *parent,

View File

@ -8,6 +8,7 @@
#ifndef _LINUX_CGROUP_DEFS_H
#define _LINUX_CGROUP_DEFS_H
#include <linux/ck_kabi.h>
#include <linux/limits.h>
#include <linux/list.h>
#include <linux/idr.h>
@ -144,6 +145,9 @@ struct cgroup_file {
struct kernfs_node *kn;
unsigned long notified_at;
struct timer_list notify_timer;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
/*
@ -201,6 +205,8 @@ struct cgroup_subsys_state {
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
/*
* PI: the parent css. Placed here for cache proximity to following
@ -307,6 +313,8 @@ struct css_set {
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
struct cgroup_base_stat {
@ -519,6 +527,11 @@ struct cgroup {
struct kernfs_root *hidden_place; /* tree to hide cgroup in pool. */
struct delayed_work supply_pool_work;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
/* ids of the ancestors at each level including self */
u64 ancestor_ids[];
};
@ -554,6 +567,8 @@ struct cgroup_root {
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
/* The path to use for release notifications. */
char release_agent_path[PATH_MAX];
@ -652,6 +667,8 @@ struct cftype {
#ifdef CONFIG_DEBUG_LOCK_ALLOC
struct lock_class_key lockdep_key;
#endif
CK_KABI_RESERVE(1)
};
/*
@ -683,6 +700,8 @@ struct cgroup_subsys {
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
bool early_init:1;
@ -852,6 +871,8 @@ struct sock_cgroup_data {
#endif
u64 val;
};
CK_KABI_RESERVE(1)
};
/*

View File

@ -11,6 +11,7 @@
#ifndef _LINUX_CPUIDLE_H
#define _LINUX_CPUIDLE_H
#include <linux/ck_kabi.h>
#include <linux/percpu.h>
#include <linux/list.h>
#include <linux/hrtimer.h>
@ -43,6 +44,11 @@ struct cpuidle_state_usage {
unsigned long long s2idle_usage;
unsigned long long s2idle_time; /* in US */
#endif
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
struct cpuidle_state {
@ -73,6 +79,11 @@ struct cpuidle_state {
int (*enter_s2idle)(struct cpuidle_device *dev,
struct cpuidle_driver *drv,
int index);
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
/* Idle State Flags */
@ -110,6 +121,11 @@ struct cpuidle_device {
cpumask_t coupled_cpus;
struct cpuidle_coupled *coupled;
#endif
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
DECLARE_PER_CPU(struct cpuidle_device *, cpuidle_devices);
@ -135,6 +151,9 @@ struct cpuidle_driver {
/* preferred governor to switch at register time */
const char *governor;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
#ifdef CONFIG_CPU_IDLE

View File

@ -8,6 +8,7 @@
#ifndef _LINUX_CRED_H
#define _LINUX_CRED_H
#include <linux/ck_kabi.h>
#include <linux/capability.h>
#include <linux/init.h>
#include <linux/key.h>
@ -150,6 +151,15 @@ struct cred {
int non_rcu; /* Can we skip RCU deletion? */
struct rcu_head rcu; /* RCU deletion hook */
};
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
CK_KABI_RESERVE(7)
CK_KABI_RESERVE(8)
} __randomize_layout;
extern void __put_cred(struct cred *);

View File

@ -2,6 +2,7 @@
#ifndef __LINUX_DCACHE_H
#define __LINUX_DCACHE_H
#include <linux/ck_kabi.h>
#include <linux/atomic.h>
#include <linux/list.h>
#include <linux/rculist.h>
@ -119,6 +120,8 @@ struct dentry {
struct rcu_head d_rcu;
} d_u;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
} __randomize_layout;
/*
@ -148,6 +151,11 @@ struct dentry_operations {
struct vfsmount *(*d_automount)(struct path *);
int (*d_manage)(const struct path *, bool);
struct dentry *(*d_real)(struct dentry *, const struct inode *);
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
} ____cacheline_aligned;
/*

View File

@ -7,6 +7,7 @@
#ifndef _LINUX_DELAYACCT_H
#define _LINUX_DELAYACCT_H
#include <linux/ck_kabi.h>
#include <uapi/linux/taskstats.h>
/*
@ -53,6 +54,13 @@ struct task_delay_info {
u32 freepages_count; /* total count of memory reclaim */
u32 thrashing_count; /* total count of thrash waits */
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
};
#endif

View File

@ -12,6 +12,7 @@
#ifndef _DEVICE_H_
#define _DEVICE_H_
#include <linux/ck_kabi.h>
#include <linux/dev_printk.h>
#include <linux/energy_model.h>
#include <linux/ioport.h>
@ -566,6 +567,23 @@ struct device {
#ifdef CONFIG_DMA_OPS_BYPASS
bool dma_ops_bypass : 1;
#endif
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
CK_KABI_RESERVE(7)
CK_KABI_RESERVE(8)
CK_KABI_RESERVE(9)
CK_KABI_RESERVE(10)
CK_KABI_RESERVE(11)
CK_KABI_RESERVE(12)
CK_KABI_RESERVE(13)
CK_KABI_RESERVE(14)
CK_KABI_RESERVE(15)
CK_KABI_RESERVE(16)
};
/**

View File

@ -14,6 +14,7 @@
#ifndef _DEVICE_BUS_H_
#define _DEVICE_BUS_H_
#include <linux/ck_kabi.h>
#include <linux/kobject.h>
#include <linux/klist.h>
#include <linux/pm.h>
@ -112,6 +113,9 @@ struct bus_type {
struct lock_class_key lock_key;
bool need_parent_lock;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
extern int __must_check bus_register(struct bus_type *bus);

View File

@ -14,6 +14,7 @@
#ifndef _DEVICE_CLASS_H_
#define _DEVICE_CLASS_H_
#include <linux/ck_kabi.h>
#include <linux/kobject.h>
#include <linux/klist.h>
#include <linux/pm.h>
@ -75,6 +76,11 @@ struct class {
const struct dev_pm_ops *pm;
struct subsys_private *p;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
struct class_dev_iter {

View File

@ -14,6 +14,7 @@
#ifndef _DEVICE_DRIVER_H_
#define _DEVICE_DRIVER_H_
#include <linux/ck_kabi.h>
#include <linux/kobject.h>
#include <linux/klist.h>
#include <linux/pm.h>
@ -118,6 +119,11 @@ struct device_driver {
void (*coredump) (struct device *dev);
struct driver_private *p;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};

View File

@ -6,6 +6,7 @@
#ifndef _LINUX_DMA_MAP_OPS_H
#define _LINUX_DMA_MAP_OPS_H
#include <linux/ck_kabi.h>
#include <linux/dma-mapping.h>
#include <linux/pgtable.h>
@ -64,6 +65,13 @@ struct dma_map_ops {
u64 (*get_required_mask)(struct device *dev);
size_t (*max_mapping_size)(struct device *dev);
unsigned long (*get_merge_boundary)(struct device *dev);
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
};
#ifdef CONFIG_DMA_OPS

View File

@ -2,6 +2,7 @@
#ifndef _LINUX_ELEVATOR_H
#define _LINUX_ELEVATOR_H
#include <linux/ck_kabi.h>
#include <linux/percpu.h>
#include <linux/hashtable.h>
@ -53,6 +54,12 @@ struct elevator_mq_ops {
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
CK_KABI_RESERVE(7)
CK_KABI_RESERVE(8)
};
#define ELV_NAME_MAX (16)
@ -89,6 +96,11 @@ struct elevator_type
/* managed by elevator core */
char icq_cache_name[ELV_NAME_MAX + 6]; /* elvname + "_io_cq" */
struct list_head list;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
#define ELV_HASH_BITS 6

View File

@ -1,6 +1,7 @@
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _LINUX_ENERGY_MODEL_H
#define _LINUX_ENERGY_MODEL_H
#include <linux/ck_kabi.h>
#include <linux/cpumask.h>
#include <linux/device.h>
#include <linux/jump_label.h>
@ -23,6 +24,8 @@ struct em_perf_state {
unsigned long frequency;
unsigned long power;
unsigned long cost;
CK_KABI_RESERVE(1)
};
/**
@ -43,6 +46,9 @@ struct em_perf_state {
struct em_perf_domain {
struct em_perf_state *table;
int nr_perf_states;
CK_KABI_RESERVE(1)
unsigned long cpus[];
};

View File

@ -13,6 +13,7 @@
#ifndef _LINUX_ETHTOOL_H
#define _LINUX_ETHTOOL_H
#include <linux/ck_kabi.h>
#include <linux/bitmap.h>
#include <linux/compat.h>
#include <uapi/linux/ethtool.h>
@ -124,6 +125,8 @@ struct ethtool_link_ksettings {
__ETHTOOL_DECLARE_LINK_MODE_MASK(advertising);
__ETHTOOL_DECLARE_LINK_MODE_MASK(lp_advertising);
} link_modes;
CK_KABI_RESERVE(1)
};
/**
@ -505,6 +508,23 @@ struct ethtool_ops {
const struct ethtool_tunable *, void *);
int (*set_phy_tunable)(struct net_device *,
const struct ethtool_tunable *, const void *);
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
CK_KABI_RESERVE(7)
CK_KABI_RESERVE(8)
CK_KABI_RESERVE(9)
CK_KABI_RESERVE(10)
CK_KABI_RESERVE(11)
CK_KABI_RESERVE(12)
CK_KABI_RESERVE(13)
CK_KABI_RESERVE(14)
CK_KABI_RESERVE(15)
CK_KABI_RESERVE(16)
};
int ethtool_check_ops(const struct ethtool_ops *ops);

View File

@ -3,6 +3,7 @@
#define LINUX_EXPORTFS_H 1
#include <linux/types.h>
#include <linux/ck_kabi.h>
struct dentry;
struct iattr;
@ -213,6 +214,9 @@ struct export_operations {
bool write, u32 *device_generation);
int (*commit_blocks)(struct inode *inode, struct iomap *iomaps,
int nr_iomaps, struct iattr *iattr);
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
extern int exportfs_encode_inode_fh(struct inode *inode, struct fid *fid,

View File

@ -2,6 +2,7 @@
#ifndef _LINUX_FB_H
#define _LINUX_FB_H
#include <linux/ck_kabi.h>
#include <linux/kgdb.h>
#include <uapi/linux/fb.h>
@ -208,6 +209,8 @@ struct fb_deferred_io {
/* callback */
void (*first_io)(struct fb_info *info);
void (*deferred_io)(struct fb_info *info, struct list_head *pagelist);
CK_KABI_RESERVE(1)
};
#endif

View File

@ -2,6 +2,7 @@
#ifndef _LINUX_FS_H
#define _LINUX_FS_H
#include <linux/ck_kabi.h>
#include <linux/linkage.h>
#include <linux/wait_bit.h>
#include <linux/kdev_t.h>
@ -414,6 +415,11 @@ struct address_space_operations {
int (*swap_activate)(struct swap_info_struct *sis, struct file *file,
sector_t *span);
void (*swap_deactivate)(struct file *file);
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
extern const struct address_space_operations empty_aops;
@ -476,6 +482,8 @@ struct address_space {
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
} __attribute__((aligned(sizeof(long)))) __randomize_layout;
/*
* On most architectures that alignment is already the case; but
@ -732,6 +740,9 @@ struct inode {
void *i_private; /* fs or device private pointer */
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
} __randomize_layout;
struct timespec64 timestamp_truncate(struct timespec64 t, struct inode *inode);
@ -1025,6 +1036,9 @@ struct file_lock;
struct file_lock_operations {
void (*fl_copy_lock)(struct file_lock *, struct file_lock *);
void (*fl_release_private)(struct file_lock *);
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
struct lock_manager_operations {
@ -1036,6 +1050,11 @@ struct lock_manager_operations {
int (*lm_change)(struct file_lock *, int, struct list_head *);
void (*lm_setup)(struct file_lock *, void **);
bool (*lm_breaker_owns_lease)(struct file_lock *);
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
struct lock_manager {
@ -1109,6 +1128,8 @@ struct file_lock {
unsigned int debug_id;
} afs;
} fl_u;
CK_KABI_RESERVE(1)
} __randomize_layout;
struct file_lock_context {
@ -1880,6 +1901,11 @@ struct file_operations {
int (*fadvise)(struct file *, loff_t, loff_t, int);
int (*uring_cmd)(struct io_uring_cmd *ioucmd, unsigned int issue_flags);
bool may_pollfree;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
} __randomize_layout;
struct inode_operations {
@ -1910,6 +1936,11 @@ struct inode_operations {
umode_t create_mode);
int (*tmpfile) (struct inode *, struct dentry *, umode_t);
int (*set_acl)(struct inode *, struct posix_acl *, int);
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
} ____cacheline_aligned;
static inline ssize_t call_read_iter(struct file *file, struct kiocb *kio,
@ -1986,6 +2017,11 @@ struct super_operations {
struct shrink_control *);
long (*free_cached_objects)(struct super_block *,
struct shrink_control *);
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
/*
@ -2275,6 +2311,11 @@ struct file_system_type {
struct lock_class_key i_lock_key;
struct lock_class_key i_mutex_key;
struct lock_class_key i_mutex_dir_key;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
#define MODULE_ALIAS_FS(NAME) MODULE_ALIAS("fs-" NAME)

View File

@ -7,6 +7,7 @@
#ifndef _LINUX_FTRACE_H
#define _LINUX_FTRACE_H
#include <linux/ck_kabi.h>
#include <linux/trace_clock.h>
#include <linux/kallsyms.h>
#include <linux/linkage.h>
@ -217,6 +218,8 @@ struct ftrace_ops {
unsigned long trampoline_size;
struct list_head list;
#endif
CK_KABI_RESERVE(1)
};
extern struct ftrace_ops __rcu *ftrace_ops_list;

View File

@ -9,6 +9,7 @@
#ifndef _LINUX_FWNODE_H_
#define _LINUX_FWNODE_H_
#include <linux/ck_kabi.h>
#include <linux/types.h>
struct fwnode_operations;
@ -18,6 +19,13 @@ struct fwnode_handle {
struct fwnode_handle *secondary;
const struct fwnode_operations *ops;
struct device *dev;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
};
/**
@ -147,6 +155,11 @@ struct fwnode_operations {
struct fwnode_endpoint *endpoint);
int (*add_links)(const struct fwnode_handle *fwnode,
struct device *dev);
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
#define fwnode_has_op(fwnode, op) \

View File

@ -10,6 +10,7 @@
* <drew@colorado.edu>
*/
#include <linux/ck_kabi.h>
#include <linux/types.h>
#include <linux/kdev_t.h>
#include <linux/rcupdate.h>
@ -76,6 +77,8 @@ struct hd_struct {
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
/**
@ -165,6 +168,9 @@ struct blk_integrity {
unsigned char tuple_size;
unsigned char interval_exp;
unsigned char tag_size;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
struct gendisk {
@ -215,6 +221,8 @@ struct gendisk {
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
#if IS_REACHABLE(CONFIG_CDROM)

View File

@ -12,6 +12,7 @@
#ifndef _LINUX_HRTIMER_H
#define _LINUX_HRTIMER_H
#include <linux/ck_kabi.h>
#include <linux/hrtimer_defs.h>
#include <linux/rbtree.h>
#include <linux/init.h>
@ -124,6 +125,10 @@ struct hrtimer {
u8 is_rel;
u8 is_soft;
u8 is_hard;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
};
/**
@ -165,6 +170,9 @@ struct hrtimer_clock_base {
struct timerqueue_head active;
ktime_t (*get_time)(void);
ktime_t offset;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
} __hrtimer_clock_base_align;
enum hrtimer_base_type {
@ -235,6 +243,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];
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
} ____cacheline_aligned;
static inline void hrtimer_set_expires(struct hrtimer *timer, ktime_t time)

View File

@ -10,6 +10,7 @@
#ifndef _LINUX_I2C_H
#define _LINUX_I2C_H
#include <linux/ck_kabi.h>
#include <linux/acpi.h> /* for acpi_handle */
#include <linux/mod_devicetable.h>
#include <linux/device.h> /* for struct device */
@ -544,6 +545,9 @@ struct i2c_algorithm {
int (*reg_slave)(struct i2c_client *client);
int (*unreg_slave)(struct i2c_client *client);
#endif
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
/**
@ -633,6 +637,9 @@ struct i2c_bus_recovery_info {
struct pinctrl *pinctrl;
struct pinctrl_state *pins_default;
struct pinctrl_state *pins_gpio;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
int i2c_recover_bus(struct i2c_adapter *adap);
@ -723,6 +730,9 @@ struct i2c_adapter {
const struct i2c_adapter_quirks *quirks;
struct irq_domain *host_notify_domain;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
#define to_i2c_adapter(d) container_of(d, struct i2c_adapter, dev)

View File

@ -13,11 +13,14 @@
#include <linux/sysctl.h>
#include <linux/rtnetlink.h>
#include <linux/refcount.h>
#include <linux/ck_kabi.h>
struct ipv4_devconf {
void *sysctl;
int data[IPV4_DEVCONF_MAX];
DECLARE_BITMAP(state, IPV4_DEVCONF_MAX);
CK_KABI_RESERVE(1)
};
#define MC_HASH_SZ_LOG 9
@ -48,6 +51,9 @@ struct in_device {
struct neigh_parms *arp_parms;
struct ipv4_devconf cnf;
struct rcu_head rcu_head;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
#define IPV4_DEVCONF(cnf, attr) ((cnf).data[IPV4_DEVCONF_ ## attr - 1])

View File

@ -3,6 +3,7 @@
#ifndef _LINUX_INTERRUPT_H
#define _LINUX_INTERRUPT_H
#include <linux/ck_kabi.h>
#include <linux/kernel.h>
#include <linux/bitops.h>
#include <linux/cpumask.h>
@ -298,6 +299,8 @@ struct irq_affinity {
unsigned int set_size[IRQ_AFFINITY_MAX_SETS];
void (*calc_sets)(struct irq_affinity *, unsigned int nvecs);
void *priv;
CK_KABI_RESERVE(1)
};
/**
@ -717,7 +720,7 @@ extern void tasklet_setup(struct tasklet_struct *t,
* if more than one irq occurred.
*/
#if !defined(CONFIG_GENERIC_IRQ_PROBE)
#if !defined(CONFIG_GENERIC_IRQ_PROBE)
static inline unsigned long probe_irq_on(void)
{
return 0;

View File

@ -7,6 +7,7 @@
#ifndef __LINUX_IOMMU_H
#define __LINUX_IOMMU_H
#include <linux/ck_kabi.h>
#include <linux/scatterlist.h>
#include <linux/device.h>
#include <linux/types.h>
@ -93,6 +94,11 @@ struct iommu_domain {
struct mutex switch_log_lock;
ioasid_t dma_pasid; /* Used for DMA requests with PASID */
atomic_t dma_pasid_users;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
enum iommu_cap {
@ -203,6 +209,9 @@ struct iommu_iotlb_gather {
unsigned long end;
size_t pgsize;
struct page *freelist;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
/**
@ -368,6 +377,15 @@ struct iommu_ops {
unsigned long pgsize_bitmap;
struct module *owner;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
CK_KABI_RESERVE(7)
CK_KABI_RESERVE(8)
};
/**

View File

@ -13,6 +13,8 @@
#include <linux/compiler.h>
#include <linux/types.h>
#include <linux/bits.h>
#include <linux/ck_kabi.h>
/*
* Resources are tree-like, allowing
* nesting etc..
@ -24,6 +26,11 @@ struct resource {
unsigned long flags;
unsigned long desc;
struct resource *parent, *sibling, *child;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
/*

View File

@ -2,6 +2,7 @@
#ifndef _IPV6_H
#define _IPV6_H
#include <linux/ck_kabi.h>
#include <uapi/linux/ipv6.h>
#define ipv6_optlen(p) (((p)->hdrlen+1) << 3)
@ -77,6 +78,11 @@ struct ipv6_devconf {
__s32 rpl_seg_enabled;
struct ctl_table_header *sysctl_header;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
struct ipv6_params {

View File

@ -10,6 +10,7 @@
* Thanks. --rmk
*/
#include <linux/ck_kabi.h>
#include <linux/cache.h>
#include <linux/spinlock.h>
#include <linux/cpumask.h>
@ -156,6 +157,9 @@ struct irq_common_data {
#ifdef CONFIG_GENERIC_IRQ_IPI
unsigned int ipi_offset;
#endif
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
/**
@ -554,6 +558,8 @@ struct irq_chip {
void (*irq_nmi_teardown)(struct irq_data *data);
unsigned long flags;
CK_KABI_RESERVE(1)
};
/*
@ -1019,6 +1025,8 @@ struct irq_chip_type {
u32 type;
u32 mask_cache_priv;
u32 *mask_cache;
CK_KABI_RESERVE(1)
};
/**

View File

@ -2,6 +2,7 @@
#ifndef _LINUX_IRQ_WORK_H
#define _LINUX_IRQ_WORK_H
#include <linux/ck_kabi.h>
#include <linux/smp_types.h>
/*
@ -22,6 +23,8 @@ struct irq_work {
};
};
void (*func)(struct irq_work *);
CK_KABI_RESERVE(1)
};
static inline

View File

@ -2,6 +2,7 @@
#ifndef _LINUX_IRQDESC_H
#define _LINUX_IRQDESC_H
#include <linux/ck_kabi.h>
#include <linux/rcupdate.h>
#include <linux/kobject.h>
#include <linux/mutex.h>
@ -102,6 +103,8 @@ struct irq_desc {
int parent_irq;
struct module *owner;
const char *name;
CK_KABI_RESERVE(1)
} ____cacheline_internodealigned_in_smp;
#ifdef CONFIG_SPARSE_IRQ

View File

@ -30,6 +30,7 @@
#ifndef _LINUX_IRQDOMAIN_H
#define _LINUX_IRQDOMAIN_H
#include <linux/ck_kabi.h>
#include <linux/types.h>
#include <linux/irqhandler.h>
#include <linux/of.h>
@ -185,6 +186,12 @@ struct irq_domain {
unsigned int revmap_size;
struct radix_tree_root revmap_tree;
struct mutex revmap_tree_mutex;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
unsigned int linear_revmap[];
};

View File

@ -6,6 +6,7 @@
#ifndef __LINUX_KERNFS_H
#define __LINUX_KERNFS_H
#include <linux/ck_kabi.h>
#include <linux/kernel.h>
#include <linux/err.h>
#include <linux/list.h>
@ -98,6 +99,8 @@ struct kernfs_elem_dir {
* better directly in kernfs_node but is here to save space.
*/
struct kernfs_root *root;
CK_KABI_RESERVE(1)
};
struct kernfs_elem_symlink {
@ -175,6 +178,11 @@ struct kernfs_syscall_ops {
const char *new_name);
int (*show_path)(struct seq_file *sf, struct kernfs_node *kn,
struct kernfs_root *root);
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
struct kernfs_root {
@ -268,6 +276,9 @@ struct kernfs_ops {
#ifdef CONFIG_DEBUG_LOCK_ALLOC
struct lock_class_key lockdep_key;
#endif
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
/*

View File

@ -8,6 +8,7 @@
#ifndef _LINUX_KEY_TYPE_H
#define _LINUX_KEY_TYPE_H
#include <linux/ck_kabi.h>
#include <linux/key.h>
#include <linux/errno.h>
@ -35,6 +36,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 */
CK_KABI_RESERVE(1)
} __randomize_layout;
typedef int (*request_key_actor_t)(struct key *auth_key, void *aux);
@ -55,6 +58,8 @@ 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. */
CK_KABI_RESERVE(1)
};
/*

View File

@ -10,6 +10,7 @@
#ifndef _LINUX_KEY_H
#define _LINUX_KEY_H
#include <linux/ck_kabi.h>
#include <linux/types.h>
#include <linux/list.h>
#include <linux/rbtree.h>
@ -272,6 +273,9 @@ struct key {
* restriction.
*/
struct key_restriction *restrict_link;
CK_KABI_RESERVE(1)
};
extern struct key *key_alloc(struct key_type *type,

View File

@ -15,6 +15,7 @@
#ifndef _KOBJECT_H_
#define _KOBJECT_H_
#include <linux/ck_kabi.h>
#include <linux/types.h>
#include <linux/list.h>
#include <linux/sysfs.h>
@ -77,6 +78,11 @@ struct kobject {
unsigned int state_add_uevent_sent:1;
unsigned int state_remove_uevent_sent:1;
unsigned int uevent_suppress:1;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
extern __printf(2, 3)
@ -143,6 +149,11 @@ struct kobj_type {
const struct kobj_ns_type_operations *(*child_ns_type)(struct kobject *kobj);
const void *(*namespace)(struct kobject *kobj);
void (*get_ownership)(struct kobject *kobj, kuid_t *uid, kgid_t *gid);
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
struct kobj_uevent_env {
@ -194,6 +205,11 @@ struct kset {
spinlock_t list_lock;
struct kobject kobj;
const struct kset_uevent_ops *uevent_ops;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
} __randomize_layout;
extern void kset_init(struct kset *kset);

View File

@ -16,6 +16,7 @@
* <jkenisto@us.ibm.com> and Prasanna S Panchamukhi
* <prasanna@in.ibm.com> added function-return probes.
*/
#include <linux/ck_kabi.h>
#include <linux/compiler.h>
#include <linux/linkage.h>
#include <linux/list.h>
@ -98,6 +99,8 @@ struct kprobe {
* Protected by kprobe_mutex after this kprobe is registered.
*/
u32 flags;
CK_KABI_RESERVE(1)
};
/* Kprobe status flags */

View File

@ -8,6 +8,7 @@
#ifndef _LRU_LIST_H
#define _LRU_LIST_H
#include <linux/ck_kabi.h>
#include <linux/list.h>
#include <linux/nodemask.h>
#include <linux/shrinker.h>
@ -59,6 +60,9 @@ struct list_lru {
int shrinker_id;
bool memcg_aware;
#endif
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
void list_lru_destroy(struct list_lru *lru);

View File

@ -10,6 +10,7 @@
#ifndef _LINUX_MEMCONTROL_H
#define _LINUX_MEMCONTROL_H
#include <linux/ck_kabi.h>
#include <linux/cgroup.h>
#include <linux/vm_event_item.h>
#include <linux/hardirq.h>
@ -108,6 +109,8 @@ struct alloc_context;
struct mem_cgroup_id {
int id;
refcount_t ref;
CK_KABI_RESERVE(1)
};
/*
@ -127,6 +130,9 @@ struct memcg_vmstats_percpu {
unsigned long events[NR_VM_EVENT_ITEMS];
unsigned long nr_page_events;
unsigned long targets[MEM_CGROUP_NTARGETS];
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
struct mem_cgroup_reclaim_iter {
@ -173,6 +179,11 @@ struct mem_cgroup_per_node {
bool on_tree;
struct mem_cgroup *memcg; /* Back pointer, we cannot */
/* use container_of */
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
struct mem_cgroup_threshold {
@ -488,6 +499,10 @@ struct mem_cgroup {
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
CK_KABI_RESERVE(7)
CK_KABI_RESERVE(8)
struct mem_cgroup_per_node *nodeinfo[0];
/* WARNING: nodeinfo must be the last member here */

View File

@ -15,6 +15,7 @@
#include <linux/nodemask.h>
#include <linux/pagemap.h>
#include <uapi/linux/mempolicy.h>
#include <linux/ck_kabi.h>
struct mm_struct;
@ -55,6 +56,8 @@ struct mempolicy {
nodemask_t cpuset_mems_allowed; /* relative to these nodes */
nodemask_t user_nodemask; /* nodemask passed by user */
} w;
CK_KABI_RESERVE(1)
};
/*

View File

@ -31,6 +31,7 @@
#include <linux/sizes.h>
#include <linux/sched.h>
#include <linux/pgtable.h>
#include <linux/ck_kabi.h>
struct mempolicy;
struct anon_vma;
@ -545,6 +546,8 @@ struct vm_fault {
* page table to avoid allocation from
* atomic context.
*/
CK_KABI_RESERVE(1)
};
/* page entry size for vm->huge_fault() */
@ -629,6 +632,8 @@ struct vm_operations_struct {
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
static inline void vma_init(struct vm_area_struct *vma, struct mm_struct *mm)

View File

@ -602,6 +602,12 @@ struct mm_struct {
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
CK_KABI_RESERVE(7)
CK_KABI_RESERVE(8)
/*
* The mm_cpumask needs to be at the end of mm_struct, because it

View File

@ -310,6 +310,8 @@ struct lruvec {
#ifdef CONFIG_MEMCG
struct pglist_data *pgdat;
#endif
CK_KABI_RESERVE(1)
};
/* Isolate unmapped pages */
@ -376,6 +378,8 @@ struct per_cpu_pageset {
struct per_cpu_nodestat {
s8 stat_threshold;
s8 vm_node_stat_diff[NR_VM_NODE_STAT_ITEMS];
CK_KABI_RESERVE(1)
};
#endif /* !__GENERATING_BOUNDS.H */
@ -634,6 +638,8 @@ struct zone {
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
} ____cacheline_internodealigned_in_smp;
enum pgdat_flags {
@ -890,6 +896,8 @@ typedef struct pglist_data {
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
} pg_data_t;
#define node_present_pages(nid) (NODE_DATA(nid)->node_present_pages)

View File

@ -9,6 +9,7 @@
#ifndef _LINUX_MODULE_H
#define _LINUX_MODULE_H
#include <linux/ck_kabi.h>
#include <linux/list.h>
#include <linux/stat.h>
#include <linux/compiler.h>
@ -534,6 +535,11 @@ struct module {
struct error_injection_entry *ei_funcs;
unsigned int num_ei_funcs;
#endif
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
} ____cacheline_aligned __randomize_layout;
#ifndef MODULE_ARCH_INIT
#define MODULE_ARCH_INIT {}

View File

@ -10,6 +10,7 @@
#ifndef _LINUX_MOUNT_H
#define _LINUX_MOUNT_H
#include <linux/ck_kabi.h>
#include <linux/types.h>
#include <linux/list.h>
#include <linux/nodemask.h>
@ -72,6 +73,8 @@ struct vfsmount {
struct dentry *mnt_root; /* root of the mounted tree */
struct super_block *mnt_sb; /* pointer to superblock */
int mnt_flags;
CK_KABI_RESERVE(1)
} __randomize_layout;
struct file; /* forward dec */

View File

@ -2,6 +2,7 @@
#ifndef LINUX_MSI_H
#define LINUX_MSI_H
#include <linux/ck_kabi.h>
#include <linux/kobject.h>
#include <linux/list.h>
#include <asm/msi.h>
@ -179,6 +180,9 @@ struct msi_desc {
struct ti_sci_inta_msi_desc inta;
struct device_msi_desc device_msi;
};
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
/* Helpers to hide struct msi_desc implementation details */

View File

@ -14,6 +14,7 @@
#ifndef _LINUX_NET_H
#define _LINUX_NET_H
#include <linux/ck_kabi.h>
#include <linux/stringify.h>
#include <linux/random.h>
#include <linux/wait.h>
@ -203,6 +204,15 @@ struct proto_ops {
int (*sendmsg_locked)(struct sock *sk, struct msghdr *msg,
size_t size);
int (*set_rcvlowat)(struct sock *sk, int val);
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
CK_KABI_RESERVE(7)
CK_KABI_RESERVE(8)
};
#define DECLARE_SOCKADDR(type, dst, src) \

View File

@ -226,6 +226,8 @@ struct netdev_hw_addr {
struct netdev_hw_addr_list {
struct list_head list;
int count;
CK_KABI_RESERVE(1)
};
#define netdev_hw_addr_list_count(l) ((l)->count)
@ -280,6 +282,9 @@ struct header_ops {
const unsigned char *haddr);
bool (*validate)(const char *ll_header, unsigned int len);
__be16 (*parse_protocol)(const struct sk_buff *skb);
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
/* These flag bits are private to the generic network queueing
@ -349,6 +354,11 @@ struct napi_struct {
struct list_head dev_list;
struct hlist_node napi_hash_node;
unsigned int napi_id;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
enum {
@ -617,6 +627,15 @@ struct netdev_queue {
#ifdef CONFIG_BQL
struct dql dql;
#endif
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
CK_KABI_RESERVE(7)
CK_KABI_RESERVE(8)
} ____cacheline_aligned_in_smp;
extern int sysctl_fb_tunnels_only_for_init_net;
@ -740,6 +759,15 @@ struct netdev_rx_queue {
#ifdef CONFIG_XDP_SOCKETS
struct xsk_buff_pool *pool;
#endif
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
CK_KABI_RESERVE(7)
CK_KABI_RESERVE(8)
} ____cacheline_aligned_in_smp;
/*
@ -772,6 +800,9 @@ struct xps_map {
*/
struct xps_dev_maps {
struct rcu_head rcu;
CK_KABI_RESERVE(1)
struct xps_map __rcu *attr_map[]; /* Either CPUs map or RXQs map */
};
@ -920,6 +951,11 @@ struct xfrmdev_ops {
bool (*xdo_dev_offload_ok) (struct sk_buff *skb,
struct xfrm_state *x);
void (*xdo_dev_state_advance_esn) (struct xfrm_state *x);
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
#endif
@ -1486,6 +1522,20 @@ struct net_device_ops {
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
CK_KABI_RESERVE(7)
CK_KABI_RESERVE(8)
CK_KABI_RESERVE(9)
CK_KABI_RESERVE(10)
CK_KABI_RESERVE(11)
CK_KABI_RESERVE(12)
CK_KABI_RESERVE(13)
CK_KABI_RESERVE(14)
CK_KABI_RESERVE(15)
CK_KABI_RESERVE(16)
};
/**
@ -2172,6 +2222,22 @@ struct net_device {
/* protected by rtnl_lock */
struct bpf_xdp_entity xdp_state[__MAX_XDP_MODE];
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
CK_KABI_RESERVE(7)
CK_KABI_RESERVE(8)
CK_KABI_RESERVE(9)
CK_KABI_RESERVE(10)
CK_KABI_RESERVE(11)
CK_KABI_RESERVE(13)
CK_KABI_RESERVE(14)
CK_KABI_RESERVE(15)
CK_KABI_RESERVE(16)
};
#define to_net_dev(d) container_of(d, struct net_device, dev)
@ -2545,6 +2611,11 @@ struct packet_type {
struct net *af_packet_net;
void *af_packet_priv;
struct list_head list;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
struct offload_callbacks {

View File

@ -2,6 +2,7 @@
#ifndef __LINUX_NETFILTER_H
#define __LINUX_NETFILTER_H
#include <linux/ck_kabi.h>
#include <linux/init.h>
#include <linux/skbuff.h>
#include <linux/net.h>
@ -171,6 +172,8 @@ struct nf_sockopt_ops {
int (*get)(struct sock *sk, int optval, void __user *user, int *len);
/* Use the module struct to lock set/get code in place */
struct module *owner;
CK_KABI_RESERVE(1)
};
/* Function to register/unregister hook points. */

View File

@ -2,6 +2,7 @@
#ifndef _NF_CONNTRACK_COMMON_H
#define _NF_CONNTRACK_COMMON_H
#include <linux/ck_kabi.h>
#include <linux/atomic.h>
#include <uapi/linux/netfilter/nf_conntrack_common.h>
@ -18,6 +19,8 @@ struct ip_conntrack_stat {
unsigned int expect_create;
unsigned int expect_delete;
unsigned int search_restart;
CK_KABI_RESERVE(1)
};
#define NFCT_INFOMASK 7UL

View File

@ -2,12 +2,15 @@
#ifndef _LINUX_NS_COMMON_H
#define _LINUX_NS_COMMON_H
#include <linux/ck_kabi.h>
struct proc_ns_operations;
struct ns_common {
atomic_long_t stashed;
const struct proc_ns_operations *ops;
unsigned int inum;
CK_KABI_RESERVE(1)
};
#endif

View File

@ -2,6 +2,7 @@
#ifndef _LINUX_NSPROXY_H
#define _LINUX_NSPROXY_H
#include <linux/ck_kabi.h>
#include <linux/spinlock.h>
#include <linux/sched.h>
@ -38,6 +39,15 @@ struct nsproxy {
struct time_namespace *time_ns;
struct time_namespace *time_ns_for_children;
struct cgroup_namespace *cgroup_ns;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
CK_KABI_RESERVE(7)
CK_KABI_RESERVE(8)
};
extern struct nsproxy init_nsproxy;

View File

@ -11,6 +11,7 @@
* Updates for SPARC64 by David S. Miller
* Derived from PowerPC and Sparc prom.h files by Stephen Rothwell, IBM Corp.
*/
#include <linux/ck_kabi.h>
#include <linux/types.h>
#include <linux/bitops.h>
#include <linux/errno.h>
@ -68,6 +69,13 @@ struct device_node {
unsigned int unique_id;
struct of_irq_controller *irq_trans;
#endif
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
};
#define MAX_PHANDLE_ARGS 16

View File

@ -5,6 +5,7 @@
/*
* Copyright 1995 Linus Torvalds
*/
#include <linux/ck_kabi.h>
#include <linux/mm.h>
#include <linux/fs.h>
#include <linux/list.h>
@ -836,6 +837,8 @@ struct readahead_control {
pgoff_t _index;
unsigned int _nr_pages;
unsigned int _batch_count;
CK_KABI_RESERVE(1)
};
#define DEFINE_READAHEAD(rac, f, m, i) \

View File

@ -24,6 +24,7 @@
#define LINUX_PCI_H
#include <linux/ck_kabi.h>
#include <linux/mod_devicetable.h>
#include <linux/types.h>
@ -522,6 +523,23 @@ struct pci_dev {
char *driver_override; /* Driver name to force a match */
unsigned long priv_flags; /* Private flags for the PCI driver */
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
CK_KABI_RESERVE(7)
CK_KABI_RESERVE(8)
CK_KABI_RESERVE(9)
CK_KABI_RESERVE(10)
CK_KABI_RESERVE(11)
CK_KABI_RESERVE(12)
CK_KABI_RESERVE(13)
CK_KABI_RESERVE(14)
CK_KABI_RESERVE(15)
CK_KABI_RESERVE(16)
};
static inline struct pci_dev *pci_physfn(struct pci_dev *dev)
@ -659,6 +677,15 @@ struct pci_bus {
struct bin_attribute *legacy_mem; /* Legacy mem */
unsigned int is_added:1;
unsigned int unsafe_warn:1; /* warned about RW1C config write */
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
CK_KABI_RESERVE(7)
CK_KABI_RESERVE(8)
};
#define to_pci_bus(n) container_of(n, struct pci_bus, dev)
@ -892,6 +919,15 @@ struct pci_driver {
const struct attribute_group **groups;
struct device_driver driver;
struct pci_dynids dynids;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
CK_KABI_RESERVE(7)
CK_KABI_RESERVE(8)
};
#define to_pci_driver(drv) container_of(drv, struct pci_driver, driver)

View File

@ -14,6 +14,8 @@
#ifndef _PCI_HOTPLUG_H
#define _PCI_HOTPLUG_H
#include <linux/ck_kabi.h>
/**
* struct hotplug_slot_ops -the callbacks that the hotplug pci core can use
* @enable_slot: Called when the user wants to enable a specific pci slot
@ -46,6 +48,15 @@ struct hotplug_slot_ops {
int (*get_adapter_status)(struct hotplug_slot *slot, u8 *value);
int (*reset_slot)(struct hotplug_slot *slot, int probe);
int (*set_power_indicator)(struct hotplug_slot *slot, u8 value);
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
CK_KABI_RESERVE(7)
CK_KABI_RESERVE(8)
};
/**
@ -62,6 +73,15 @@ struct hotplug_slot {
struct pci_slot *pci_slot;
struct module *owner;
const char *mod_name;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
CK_KABI_RESERVE(7)
CK_KABI_RESERVE(8)
};
static inline const char *hotplug_slot_name(const struct hotplug_slot *slot)

View File

@ -14,6 +14,7 @@
#ifndef _LINUX_PERF_EVENT_H
#define _LINUX_PERF_EVENT_H
#include <linux/ck_kabi.h>
#include <uapi/linux/perf_event.h>
#include <uapi/linux/bpf_perf_event.h>
@ -513,6 +514,11 @@ struct pmu {
* Check period value for PERF_EVENT_IOC_PERIOD ioctl.
*/
int (*check_period) (struct perf_event *event, u64 value); /* optional */
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
enum perf_addr_filter_action_t {
@ -837,6 +843,8 @@ struct perf_event_context {
#endif
void *task_ctx_data; /* pmu specific data */
struct rcu_head rcu_head;
CK_KABI_RESERVE(1)
};
/*
@ -875,6 +883,8 @@ struct perf_cpu_context {
int heap_size;
struct perf_event **heap;
struct perf_event *heap_default[2];
CK_KABI_RESERVE(1)
};
struct perf_output_handle {

View File

@ -8,6 +8,7 @@
#ifndef _LINUX_PM_H
#define _LINUX_PM_H
#include <linux/ck_kabi.h>
#include <linux/list.h>
#include <linux/workqueue.h>
#include <linux/spinlock.h>
@ -542,6 +543,13 @@ struct pm_subsys_data {
#ifdef CONFIG_PM_GENERIC_DOMAINS
struct pm_domain_data *domain_data;
#endif
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
};
/*
@ -621,6 +629,9 @@ struct dev_pm_info {
struct pm_subsys_data *subsys_data; /* Owned by the subsystem. */
void (*set_latency_tolerance)(struct device *, s32);
struct dev_pm_qos *qos;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
extern int dev_pm_get_subsys_data(struct device *dev);
@ -647,6 +658,9 @@ struct dev_pm_domain {
int (*activate)(struct device *dev);
void (*sync)(struct device *dev);
void (*dismiss)(struct device *dev);
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
/*

View File

@ -12,6 +12,7 @@
#ifndef _LINUX_PM_QOS_H
#define _LINUX_PM_QOS_H
#include <linux/ck_kabi.h>
#include <linux/plist.h>
#include <linux/notifier.h>
#include <linux/device.h>
@ -112,6 +113,9 @@ struct dev_pm_qos_request {
struct freq_qos_request freq;
} data;
struct device *dev;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
struct dev_pm_qos {
@ -122,6 +126,9 @@ struct dev_pm_qos {
struct dev_pm_qos_request *resume_latency_req;
struct dev_pm_qos_request *latency_tolerance_req;
struct dev_pm_qos_request *flags_req;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
/* Action requested to pm_qos_update_target */

View File

@ -9,6 +9,7 @@
#ifndef _LINUX_PM_WAKEUP_H
#define _LINUX_PM_WAKEUP_H
#include <linux/ck_kabi.h>
#ifndef _DEVICE_H_
# error "please don't include this file directly"
#endif
@ -61,6 +62,9 @@ struct wakeup_source {
struct device *dev;
bool active:1;
bool autosleep_enabled:1;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
#define for_each_wakeup_source(ws) \

View File

@ -7,6 +7,7 @@
#ifndef _LINUX_POSIX_CLOCK_H_
#define _LINUX_POSIX_CLOCK_H_
#include <linux/ck_kabi.h>
#include <linux/cdev.h>
#include <linux/fs.h>
#include <linux/poll.h>
@ -62,6 +63,11 @@ struct posix_clock_operations {
ssize_t (*read) (struct posix_clock *pc,
uint flags, char __user *buf, size_t cnt);
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
/**
@ -88,6 +94,15 @@ struct posix_clock {
struct device *dev;
struct rw_semaphore rwsem;
bool zombie;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
CK_KABI_RESERVE(7)
CK_KABI_RESERVE(8)
};
/**

View File

@ -8,6 +8,7 @@
#ifndef _PTP_CLOCK_KERNEL_H_
#define _PTP_CLOCK_KERNEL_H_
#include <linux/ck_kabi.h>
#include <linux/device.h>
#include <linux/pps_kernel.h>
#include <linux/ptp_clock.h>
@ -144,6 +145,12 @@ struct ptp_clock_info {
int (*verify)(struct ptp_clock_info *ptp, unsigned int pin,
enum ptp_pin_function func, unsigned int chan);
long (*do_aux_work)(struct ptp_clock_info *ptp);
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
};
struct ptp_clock;

View File

@ -32,6 +32,7 @@
#ifndef _LINUX_QUOTA_
#define _LINUX_QUOTA_
#include <linux/ck_kabi.h>
#include <linux/list.h>
#include <linux/mutex.h>
#include <linux/rwsem.h>
@ -316,6 +317,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 */
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
/* Operations working with dquots */
@ -335,6 +339,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);
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
struct path;
@ -438,6 +445,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);
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
struct quota_format_type {

View File

@ -14,6 +14,7 @@
#ifndef __INCLUDE_LINUX_RCU_SEGCBLIST_H
#define __INCLUDE_LINUX_RCU_SEGCBLIST_H
#include <linux/ck_kabi.h>
#include <linux/types.h>
#include <linux/atomic.h>
@ -74,6 +75,11 @@ struct rcu_segcblist {
#endif
u8 enabled;
u8 offloaded;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
};
#define RCU_SEGCBLIST_INITIALIZER(n) \

View File

@ -5,6 +5,7 @@
* Declarations for Reverse Mapping functions in mm/rmap.c
*/
#include <linux/ck_kabi.h>
#include <linux/list.h>
#include <linux/slab.h>
#include <linux/mm.h>

View File

@ -9,6 +9,7 @@
#ifndef __LINUX_SCALE_BITMAP_H
#define __LINUX_SCALE_BITMAP_H
#include <linux/ck_kabi.h>
#include <linux/kernel.h>
#include <linux/slab.h>
@ -65,6 +66,8 @@ struct sbitmap {
* @map: Allocated bitmap.
*/
struct sbitmap_word *map;
CK_KABI_RESERVE(1)
};
#define SBQ_WAIT_QUEUES 8

View File

@ -2,6 +2,7 @@
#ifndef _LINUX_SCHED_SIGNAL_H
#define _LINUX_SCHED_SIGNAL_H
#include <linux/ck_kabi.h>
#include <linux/rculist.h>
#include <linux/signal.h>
#include <linux/sched.h>
@ -237,6 +238,8 @@ struct signal_struct {
*/
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
} __randomize_layout;
/*

View File

@ -2,6 +2,7 @@
#ifndef _LINUX_SCHED_USER_H
#define _LINUX_SCHED_USER_H
#include <linux/ck_kabi.h>
#include <linux/uidgid.h>
#include <linux/atomic.h>
#include <linux/refcount.h>
@ -42,6 +43,9 @@ struct user_struct {
/* Miscellaneous per-user rate limit */
struct ratelimit_state ratelimit;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
};
extern int uids_sysfs_init(void);

View File

@ -10,6 +10,7 @@
#ifndef _LINUX_SKBUFF_H
#define _LINUX_SKBUFF_H
#include <linux/ck_kabi.h>
#include <linux/kernel.h>
#include <linux/compiler.h>
#include <linux/time.h>
@ -914,7 +915,17 @@ struct sk_buff {
__u32 headers_end[0];
/* public: */
/*
* 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 248 bytes, this will not break
* cacheline alignment.
*/
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
/* These elements must be at the end, see alloc_skb() for details. */
sk_buff_data_t tail;

View File

@ -3,6 +3,7 @@
#define _LINUX_SOCKET_H
#include <linux/ck_kabi.h>
#include <asm/socket.h> /* arch-dependent defines */
#include <linux/sockios.h> /* the SIOCxxx I/O controls */
#include <linux/uio.h> /* iovec support */
@ -75,6 +76,8 @@ struct user_msghdr {
void __user *msg_control; /* ancillary data */
__kernel_size_t msg_controllen; /* ancillary data buffer length */
unsigned int msg_flags; /* flags on received message */
CK_KABI_RESERVE(1)
};
/* For recvmmsg/sendmmsg */

View File

@ -11,6 +11,7 @@
#ifndef _LINUX_SRCU_TREE_H
#define _LINUX_SRCU_TREE_H
#include <linux/ck_kabi.h>
#include <linux/rcu_node_tree.h>
#include <linux/completion.h>
@ -40,6 +41,15 @@ struct srcu_data {
/* ->srcu_data_have_cbs[]. */
int cpu;
struct srcu_struct *ssp;
CK_KABI_RESERVE(1)
CK_KABI_RESERVE(2)
CK_KABI_RESERVE(3)
CK_KABI_RESERVE(4)
CK_KABI_RESERVE(5)
CK_KABI_RESERVE(6)
CK_KABI_RESERVE(7)
CK_KABI_RESERVE(8)
};
/*

View File

@ -2,6 +2,7 @@
#ifndef _LINUX_STOP_MACHINE
#define _LINUX_STOP_MACHINE
#include <linux/ck_kabi.h>
#include <linux/cpu.h>
#include <linux/cpumask.h>
#include <linux/smp.h>
@ -26,6 +27,8 @@ struct cpu_stop_work {
cpu_stop_fn_t fn;
void *arg;
struct cpu_stop_done *done;
CK_KABI_RESERVE(1)
};
int stop_one_cpu(unsigned int cpu, cpu_stop_fn_t fn, void *arg);

Some files were not shown because too many files have changed in this diff Show More