diff options
38 files changed, 57 insertions, 56 deletions
diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h index 3cada998a402..e2335edb9fc5 100644 --- a/arch/x86/include/asm/processor.h +++ b/arch/x86/include/asm/processor.h | |||
@@ -129,7 +129,7 @@ struct cpuinfo_x86 { | |||
129 | /* Index into per_cpu list: */ | 129 | /* Index into per_cpu list: */ |
130 | u16 cpu_index; | 130 | u16 cpu_index; |
131 | u32 microcode; | 131 | u32 microcode; |
132 | }; | 132 | } __randomize_layout; |
133 | 133 | ||
134 | struct cpuid_regs { | 134 | struct cpuid_regs { |
135 | u32 eax, ebx, ecx, edx; | 135 | u32 eax, ebx, ecx, edx; |
diff --git a/fs/mount.h b/fs/mount.h index bf1fda6eed8f..e406b286fba1 100644 --- a/fs/mount.h +++ b/fs/mount.h | |||
@@ -16,7 +16,7 @@ struct mnt_namespace { | |||
16 | u64 event; | 16 | u64 event; |
17 | unsigned int mounts; /* # of mounts in the namespace */ | 17 | unsigned int mounts; /* # of mounts in the namespace */ |
18 | unsigned int pending_mounts; | 18 | unsigned int pending_mounts; |
19 | }; | 19 | } __randomize_layout; |
20 | 20 | ||
21 | struct mnt_pcp { | 21 | struct mnt_pcp { |
22 | int mnt_count; | 22 | int mnt_count; |
@@ -68,7 +68,7 @@ struct mount { | |||
68 | struct hlist_head mnt_pins; | 68 | struct hlist_head mnt_pins; |
69 | struct fs_pin mnt_umount; | 69 | struct fs_pin mnt_umount; |
70 | struct dentry *mnt_ex_mountpoint; | 70 | struct dentry *mnt_ex_mountpoint; |
71 | }; | 71 | } __randomize_layout; |
72 | 72 | ||
73 | #define MNT_NS_INTERNAL ERR_PTR(-EINVAL) /* distinct from any mnt_namespace */ | 73 | #define MNT_NS_INTERNAL ERR_PTR(-EINVAL) /* distinct from any mnt_namespace */ |
74 | 74 | ||
diff --git a/fs/namei.c b/fs/namei.c index 6571a5f5112e..1764620ac383 100644 --- a/fs/namei.c +++ b/fs/namei.c | |||
@@ -524,7 +524,7 @@ struct nameidata { | |||
524 | struct inode *link_inode; | 524 | struct inode *link_inode; |
525 | unsigned root_seq; | 525 | unsigned root_seq; |
526 | int dfd; | 526 | int dfd; |
527 | }; | 527 | } __randomize_layout; |
528 | 528 | ||
529 | static void set_nameidata(struct nameidata *p, int dfd, struct filename *name) | 529 | static void set_nameidata(struct nameidata *p, int dfd, struct filename *name) |
530 | { | 530 | { |
diff --git a/fs/proc/internal.h b/fs/proc/internal.h index c5ae09b6c726..07b16318223f 100644 --- a/fs/proc/internal.h +++ b/fs/proc/internal.h | |||
@@ -51,7 +51,7 @@ struct proc_dir_entry { | |||
51 | spinlock_t pde_unload_lock; /* proc_fops checks and pde_users bumps */ | 51 | spinlock_t pde_unload_lock; /* proc_fops checks and pde_users bumps */ |
52 | u8 namelen; | 52 | u8 namelen; |
53 | char name[]; | 53 | char name[]; |
54 | }; | 54 | } __randomize_layout; |
55 | 55 | ||
56 | union proc_op { | 56 | union proc_op { |
57 | int (*proc_get_link)(struct dentry *, struct path *); | 57 | int (*proc_get_link)(struct dentry *, struct path *); |
@@ -70,7 +70,7 @@ struct proc_inode { | |||
70 | struct list_head sysctl_inodes; | 70 | struct list_head sysctl_inodes; |
71 | const struct proc_ns_operations *ns_ops; | 71 | const struct proc_ns_operations *ns_ops; |
72 | struct inode vfs_inode; | 72 | struct inode vfs_inode; |
73 | }; | 73 | } __randomize_layout; |
74 | 74 | ||
75 | /* | 75 | /* |
76 | * General functions | 76 | * General functions |
@@ -279,7 +279,7 @@ struct proc_maps_private { | |||
279 | #ifdef CONFIG_NUMA | 279 | #ifdef CONFIG_NUMA |
280 | struct mempolicy *task_mempolicy; | 280 | struct mempolicy *task_mempolicy; |
281 | #endif | 281 | #endif |
282 | }; | 282 | } __randomize_layout; |
283 | 283 | ||
284 | struct mm_struct *proc_mem_open(struct inode *inode, unsigned int mode); | 284 | struct mm_struct *proc_mem_open(struct inode *inode, unsigned int mode); |
285 | 285 | ||
diff --git a/include/linux/binfmts.h b/include/linux/binfmts.h index 05488da3aee9..3ae9013eeaaa 100644 --- a/include/linux/binfmts.h +++ b/include/linux/binfmts.h | |||
@@ -46,7 +46,7 @@ struct linux_binprm { | |||
46 | unsigned interp_flags; | 46 | unsigned interp_flags; |
47 | unsigned interp_data; | 47 | unsigned interp_data; |
48 | unsigned long loader, exec; | 48 | unsigned long loader, exec; |
49 | }; | 49 | } __randomize_layout; |
50 | 50 | ||
51 | #define BINPRM_FLAGS_ENFORCE_NONDUMP_BIT 0 | 51 | #define BINPRM_FLAGS_ENFORCE_NONDUMP_BIT 0 |
52 | #define BINPRM_FLAGS_ENFORCE_NONDUMP (1 << BINPRM_FLAGS_ENFORCE_NONDUMP_BIT) | 52 | #define BINPRM_FLAGS_ENFORCE_NONDUMP (1 << BINPRM_FLAGS_ENFORCE_NONDUMP_BIT) |
@@ -81,7 +81,7 @@ struct linux_binfmt { | |||
81 | int (*load_shlib)(struct file *); | 81 | int (*load_shlib)(struct file *); |
82 | int (*core_dump)(struct coredump_params *cprm); | 82 | int (*core_dump)(struct coredump_params *cprm); |
83 | unsigned long min_coredump; /* minimal dump size */ | 83 | unsigned long min_coredump; /* minimal dump size */ |
84 | }; | 84 | } __randomize_layout; |
85 | 85 | ||
86 | extern void __register_binfmt(struct linux_binfmt *fmt, int insert); | 86 | extern void __register_binfmt(struct linux_binfmt *fmt, int insert); |
87 | 87 | ||
diff --git a/include/linux/cdev.h b/include/linux/cdev.h index 408bc09ce497..cb28eb21e3ca 100644 --- a/include/linux/cdev.h +++ b/include/linux/cdev.h | |||
@@ -17,7 +17,7 @@ struct cdev { | |||
17 | struct list_head list; | 17 | struct list_head list; |
18 | dev_t dev; | 18 | dev_t dev; |
19 | unsigned int count; | 19 | unsigned int count; |
20 | }; | 20 | } __randomize_layout; |
21 | 21 | ||
22 | void cdev_init(struct cdev *, const struct file_operations *); | 22 | void cdev_init(struct cdev *, const struct file_operations *); |
23 | 23 | ||
diff --git a/include/linux/cred.h b/include/linux/cred.h index b03e7d049a64..82c8a9e1aabb 100644 --- a/include/linux/cred.h +++ b/include/linux/cred.h | |||
@@ -31,7 +31,7 @@ struct group_info { | |||
31 | atomic_t usage; | 31 | atomic_t usage; |
32 | int ngroups; | 32 | int ngroups; |
33 | kgid_t gid[0]; | 33 | kgid_t gid[0]; |
34 | }; | 34 | } __randomize_layout; |
35 | 35 | ||
36 | /** | 36 | /** |
37 | * get_group_info - Get a reference to a group info structure | 37 | * get_group_info - Get a reference to a group info structure |
@@ -145,7 +145,7 @@ struct cred { | |||
145 | struct user_namespace *user_ns; /* user_ns the caps and keyrings are relative to. */ | 145 | struct user_namespace *user_ns; /* user_ns the caps and keyrings are relative to. */ |
146 | struct group_info *group_info; /* supplementary groups for euid/fsgid */ | 146 | struct group_info *group_info; /* supplementary groups for euid/fsgid */ |
147 | struct rcu_head rcu; /* RCU deletion hook */ | 147 | struct rcu_head rcu; /* RCU deletion hook */ |
148 | }; | 148 | } __randomize_layout; |
149 | 149 | ||
150 | extern void __put_cred(struct cred *); | 150 | extern void __put_cred(struct cred *); |
151 | extern void exit_creds(struct task_struct *); | 151 | extern void exit_creds(struct task_struct *); |
diff --git a/include/linux/dcache.h b/include/linux/dcache.h index d2e38dc6172c..7eb262e13d3c 100644 --- a/include/linux/dcache.h +++ b/include/linux/dcache.h | |||
@@ -113,7 +113,7 @@ struct dentry { | |||
113 | struct hlist_bl_node d_in_lookup_hash; /* only for in-lookup ones */ | 113 | struct hlist_bl_node d_in_lookup_hash; /* only for in-lookup ones */ |
114 | struct rcu_head d_rcu; | 114 | struct rcu_head d_rcu; |
115 | } d_u; | 115 | } d_u; |
116 | }; | 116 | } __randomize_layout; |
117 | 117 | ||
118 | /* | 118 | /* |
119 | * dentry->d_lock spinlock nesting subclasses: | 119 | * dentry->d_lock spinlock nesting subclasses: |
diff --git a/include/linux/fs.h b/include/linux/fs.h index 803e5a9b2654..8f28143486c4 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -275,7 +275,7 @@ struct kiocb { | |||
275 | void (*ki_complete)(struct kiocb *iocb, long ret, long ret2); | 275 | void (*ki_complete)(struct kiocb *iocb, long ret, long ret2); |
276 | void *private; | 276 | void *private; |
277 | int ki_flags; | 277 | int ki_flags; |
278 | }; | 278 | } __randomize_layout; |
279 | 279 | ||
280 | static inline bool is_sync_kiocb(struct kiocb *kiocb) | 280 | static inline bool is_sync_kiocb(struct kiocb *kiocb) |
281 | { | 281 | { |
@@ -392,7 +392,7 @@ struct address_space { | |||
392 | gfp_t gfp_mask; /* implicit gfp mask for allocations */ | 392 | gfp_t gfp_mask; /* implicit gfp mask for allocations */ |
393 | struct list_head private_list; /* ditto */ | 393 | struct list_head private_list; /* ditto */ |
394 | void *private_data; /* ditto */ | 394 | void *private_data; /* ditto */ |
395 | } __attribute__((aligned(sizeof(long)))); | 395 | } __attribute__((aligned(sizeof(long)))) __randomize_layout; |
396 | /* | 396 | /* |
397 | * On most architectures that alignment is already the case; but | 397 | * On most architectures that alignment is already the case; but |
398 | * must be enforced here for CRIS, to let the least significant bit | 398 | * must be enforced here for CRIS, to let the least significant bit |
@@ -435,7 +435,7 @@ struct block_device { | |||
435 | int bd_fsfreeze_count; | 435 | int bd_fsfreeze_count; |
436 | /* Mutex for freeze */ | 436 | /* Mutex for freeze */ |
437 | struct mutex bd_fsfreeze_mutex; | 437 | struct mutex bd_fsfreeze_mutex; |
438 | }; | 438 | } __randomize_layout; |
439 | 439 | ||
440 | /* | 440 | /* |
441 | * Radix-tree tags, for tagging dirty and writeback pages within the pagecache | 441 | * Radix-tree tags, for tagging dirty and writeback pages within the pagecache |
@@ -653,7 +653,7 @@ struct inode { | |||
653 | #endif | 653 | #endif |
654 | 654 | ||
655 | void *i_private; /* fs or device private pointer */ | 655 | void *i_private; /* fs or device private pointer */ |
656 | }; | 656 | } __randomize_layout; |
657 | 657 | ||
658 | static inline unsigned int i_blocksize(const struct inode *node) | 658 | static inline unsigned int i_blocksize(const struct inode *node) |
659 | { | 659 | { |
@@ -868,7 +868,8 @@ struct file { | |||
868 | struct list_head f_tfile_llink; | 868 | struct list_head f_tfile_llink; |
869 | #endif /* #ifdef CONFIG_EPOLL */ | 869 | #endif /* #ifdef CONFIG_EPOLL */ |
870 | struct address_space *f_mapping; | 870 | struct address_space *f_mapping; |
871 | } __attribute__((aligned(4))); /* lest something weird decides that 2 is OK */ | 871 | } __randomize_layout |
872 | __attribute__((aligned(4))); /* lest something weird decides that 2 is OK */ | ||
872 | 873 | ||
873 | struct file_handle { | 874 | struct file_handle { |
874 | __u32 handle_bytes; | 875 | __u32 handle_bytes; |
@@ -1005,7 +1006,7 @@ struct file_lock { | |||
1005 | int state; /* state of grant or error if -ve */ | 1006 | int state; /* state of grant or error if -ve */ |
1006 | } afs; | 1007 | } afs; |
1007 | } fl_u; | 1008 | } fl_u; |
1008 | }; | 1009 | } __randomize_layout; |
1009 | 1010 | ||
1010 | struct file_lock_context { | 1011 | struct file_lock_context { |
1011 | spinlock_t flc_lock; | 1012 | spinlock_t flc_lock; |
@@ -1404,7 +1405,7 @@ struct super_block { | |||
1404 | 1405 | ||
1405 | spinlock_t s_inode_wblist_lock; | 1406 | spinlock_t s_inode_wblist_lock; |
1406 | struct list_head s_inodes_wb; /* writeback inodes */ | 1407 | struct list_head s_inodes_wb; /* writeback inodes */ |
1407 | }; | 1408 | } __randomize_layout; |
1408 | 1409 | ||
1409 | /* Helper functions so that in most cases filesystems will | 1410 | /* Helper functions so that in most cases filesystems will |
1410 | * not need to deal directly with kuid_t and kgid_t and can | 1411 | * not need to deal directly with kuid_t and kgid_t and can |
@@ -1690,7 +1691,7 @@ struct file_operations { | |||
1690 | u64); | 1691 | u64); |
1691 | ssize_t (*dedupe_file_range)(struct file *, u64, u64, struct file *, | 1692 | ssize_t (*dedupe_file_range)(struct file *, u64, u64, struct file *, |
1692 | u64); | 1693 | u64); |
1693 | }; | 1694 | } __randomize_layout; |
1694 | 1695 | ||
1695 | struct inode_operations { | 1696 | struct inode_operations { |
1696 | struct dentry * (*lookup) (struct inode *,struct dentry *, unsigned int); | 1697 | struct dentry * (*lookup) (struct inode *,struct dentry *, unsigned int); |
diff --git a/include/linux/fs_struct.h b/include/linux/fs_struct.h index 0efc3e62843a..7a026240cbb1 100644 --- a/include/linux/fs_struct.h +++ b/include/linux/fs_struct.h | |||
@@ -12,7 +12,7 @@ struct fs_struct { | |||
12 | int umask; | 12 | int umask; |
13 | int in_exec; | 13 | int in_exec; |
14 | struct path root, pwd; | 14 | struct path root, pwd; |
15 | }; | 15 | } __randomize_layout; |
16 | 16 | ||
17 | extern struct kmem_cache *fs_cachep; | 17 | extern struct kmem_cache *fs_cachep; |
18 | 18 | ||
diff --git a/include/linux/ipc.h b/include/linux/ipc.h index 71fd92d81b26..ea0eb0b5f98c 100644 --- a/include/linux/ipc.h +++ b/include/linux/ipc.h | |||
@@ -20,6 +20,6 @@ struct kern_ipc_perm { | |||
20 | umode_t mode; | 20 | umode_t mode; |
21 | unsigned long seq; | 21 | unsigned long seq; |
22 | void *security; | 22 | void *security; |
23 | } ____cacheline_aligned_in_smp; | 23 | } ____cacheline_aligned_in_smp __randomize_layout; |
24 | 24 | ||
25 | #endif /* _LINUX_IPC_H */ | 25 | #endif /* _LINUX_IPC_H */ |
diff --git a/include/linux/ipc_namespace.h b/include/linux/ipc_namespace.h index 848e5796400e..65327ee0936b 100644 --- a/include/linux/ipc_namespace.h +++ b/include/linux/ipc_namespace.h | |||
@@ -61,7 +61,7 @@ struct ipc_namespace { | |||
61 | struct ucounts *ucounts; | 61 | struct ucounts *ucounts; |
62 | 62 | ||
63 | struct ns_common ns; | 63 | struct ns_common ns; |
64 | }; | 64 | } __randomize_layout; |
65 | 65 | ||
66 | extern struct ipc_namespace init_ipc_ns; | 66 | extern struct ipc_namespace init_ipc_ns; |
67 | extern spinlock_t mq_lock; | 67 | extern spinlock_t mq_lock; |
diff --git a/include/linux/key-type.h b/include/linux/key-type.h index 8496cf64575c..9520fc3c3b9a 100644 --- a/include/linux/key-type.h +++ b/include/linux/key-type.h | |||
@@ -45,7 +45,7 @@ struct key_preparsed_payload { | |||
45 | size_t datalen; /* Raw datalen */ | 45 | size_t datalen; /* Raw datalen */ |
46 | size_t quotalen; /* Quota length for proposed payload */ | 46 | size_t quotalen; /* Quota length for proposed payload */ |
47 | time_t expiry; /* Expiry time of key */ | 47 | time_t expiry; /* Expiry time of key */ |
48 | }; | 48 | } __randomize_layout; |
49 | 49 | ||
50 | typedef int (*request_key_actor_t)(struct key_construction *key, | 50 | typedef int (*request_key_actor_t)(struct key_construction *key, |
51 | const char *op, void *aux); | 51 | const char *op, void *aux); |
@@ -158,7 +158,7 @@ struct key_type { | |||
158 | /* internal fields */ | 158 | /* internal fields */ |
159 | struct list_head link; /* link in types list */ | 159 | struct list_head link; /* link in types list */ |
160 | struct lock_class_key lock_class; /* key->sem lock class */ | 160 | struct lock_class_key lock_class; /* key->sem lock class */ |
161 | }; | 161 | } __randomize_layout; |
162 | 162 | ||
163 | extern struct key_type key_type_keyring; | 163 | extern struct key_type key_type_keyring; |
164 | 164 | ||
diff --git a/include/linux/kmod.h b/include/linux/kmod.h index c4e441e00db5..655082c88fd9 100644 --- a/include/linux/kmod.h +++ b/include/linux/kmod.h | |||
@@ -64,7 +64,7 @@ struct subprocess_info { | |||
64 | int (*init)(struct subprocess_info *info, struct cred *new); | 64 | int (*init)(struct subprocess_info *info, struct cred *new); |
65 | void (*cleanup)(struct subprocess_info *info); | 65 | void (*cleanup)(struct subprocess_info *info); |
66 | void *data; | 66 | void *data; |
67 | }; | 67 | } __randomize_layout; |
68 | 68 | ||
69 | extern int | 69 | extern int |
70 | call_usermodehelper(const char *path, char **argv, char **envp, int wait); | 70 | call_usermodehelper(const char *path, char **argv, char **envp, int wait); |
diff --git a/include/linux/kobject.h b/include/linux/kobject.h index ca85cb80e99a..084513350317 100644 --- a/include/linux/kobject.h +++ b/include/linux/kobject.h | |||
@@ -172,7 +172,7 @@ struct kset { | |||
172 | spinlock_t list_lock; | 172 | spinlock_t list_lock; |
173 | struct kobject kobj; | 173 | struct kobject kobj; |
174 | const struct kset_uevent_ops *uevent_ops; | 174 | const struct kset_uevent_ops *uevent_ops; |
175 | }; | 175 | } __randomize_layout; |
176 | 176 | ||
177 | extern void kset_init(struct kset *kset); | 177 | extern void kset_init(struct kset *kset); |
178 | extern int __must_check kset_register(struct kset *kset); | 178 | extern int __must_check kset_register(struct kset *kset); |
diff --git a/include/linux/lsm_hooks.h b/include/linux/lsm_hooks.h index 080f34e66017..565163fc9ad4 100644 --- a/include/linux/lsm_hooks.h +++ b/include/linux/lsm_hooks.h | |||
@@ -1876,7 +1876,7 @@ struct security_hook_heads { | |||
1876 | struct list_head audit_rule_match; | 1876 | struct list_head audit_rule_match; |
1877 | struct list_head audit_rule_free; | 1877 | struct list_head audit_rule_free; |
1878 | #endif /* CONFIG_AUDIT */ | 1878 | #endif /* CONFIG_AUDIT */ |
1879 | }; | 1879 | } __randomize_layout; |
1880 | 1880 | ||
1881 | /* | 1881 | /* |
1882 | * Security module hook list structure. | 1882 | * Security module hook list structure. |
@@ -1887,7 +1887,7 @@ struct security_hook_list { | |||
1887 | struct list_head *head; | 1887 | struct list_head *head; |
1888 | union security_list_options hook; | 1888 | union security_list_options hook; |
1889 | char *lsm; | 1889 | char *lsm; |
1890 | }; | 1890 | } __randomize_layout; |
1891 | 1891 | ||
1892 | /* | 1892 | /* |
1893 | * Initializing a security_hook_list structure takes | 1893 | * Initializing a security_hook_list structure takes |
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index 45cdb27791a3..ff151814a02d 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h | |||
@@ -342,7 +342,7 @@ struct vm_area_struct { | |||
342 | struct mempolicy *vm_policy; /* NUMA policy for the VMA */ | 342 | struct mempolicy *vm_policy; /* NUMA policy for the VMA */ |
343 | #endif | 343 | #endif |
344 | struct vm_userfaultfd_ctx vm_userfaultfd_ctx; | 344 | struct vm_userfaultfd_ctx vm_userfaultfd_ctx; |
345 | }; | 345 | } __randomize_layout; |
346 | 346 | ||
347 | struct core_thread { | 347 | struct core_thread { |
348 | struct task_struct *task; | 348 | struct task_struct *task; |
@@ -500,7 +500,7 @@ struct mm_struct { | |||
500 | atomic_long_t hugetlb_usage; | 500 | atomic_long_t hugetlb_usage; |
501 | #endif | 501 | #endif |
502 | struct work_struct async_put_work; | 502 | struct work_struct async_put_work; |
503 | }; | 503 | } __randomize_layout; |
504 | 504 | ||
505 | extern struct mm_struct init_mm; | 505 | extern struct mm_struct init_mm; |
506 | 506 | ||
diff --git a/include/linux/module.h b/include/linux/module.h index 21f56393602f..d93111d7def6 100644 --- a/include/linux/module.h +++ b/include/linux/module.h | |||
@@ -45,7 +45,7 @@ struct module_kobject { | |||
45 | struct kobject *drivers_dir; | 45 | struct kobject *drivers_dir; |
46 | struct module_param_attrs *mp; | 46 | struct module_param_attrs *mp; |
47 | struct completion *kobj_completion; | 47 | struct completion *kobj_completion; |
48 | }; | 48 | } __randomize_layout; |
49 | 49 | ||
50 | struct module_attribute { | 50 | struct module_attribute { |
51 | struct attribute attr; | 51 | struct attribute attr; |
@@ -475,7 +475,7 @@ struct module { | |||
475 | ctor_fn_t *ctors; | 475 | ctor_fn_t *ctors; |
476 | unsigned int num_ctors; | 476 | unsigned int num_ctors; |
477 | #endif | 477 | #endif |
478 | } ____cacheline_aligned; | 478 | } ____cacheline_aligned __randomize_layout; |
479 | #ifndef MODULE_ARCH_INIT | 479 | #ifndef MODULE_ARCH_INIT |
480 | #define MODULE_ARCH_INIT {} | 480 | #define MODULE_ARCH_INIT {} |
481 | #endif | 481 | #endif |
diff --git a/include/linux/mount.h b/include/linux/mount.h index 8e0352af06b7..1ce85e6fd95f 100644 --- a/include/linux/mount.h +++ b/include/linux/mount.h | |||
@@ -67,7 +67,7 @@ struct vfsmount { | |||
67 | struct dentry *mnt_root; /* root of the mounted tree */ | 67 | struct dentry *mnt_root; /* root of the mounted tree */ |
68 | struct super_block *mnt_sb; /* pointer to superblock */ | 68 | struct super_block *mnt_sb; /* pointer to superblock */ |
69 | int mnt_flags; | 69 | int mnt_flags; |
70 | }; | 70 | } __randomize_layout; |
71 | 71 | ||
72 | struct file; /* forward dec */ | 72 | struct file; /* forward dec */ |
73 | struct path; | 73 | struct path; |
diff --git a/include/linux/msg.h b/include/linux/msg.h index f3f302f9c197..a001305f5a79 100644 --- a/include/linux/msg.h +++ b/include/linux/msg.h | |||
@@ -29,7 +29,7 @@ struct msg_queue { | |||
29 | struct list_head q_messages; | 29 | struct list_head q_messages; |
30 | struct list_head q_receivers; | 30 | struct list_head q_receivers; |
31 | struct list_head q_senders; | 31 | struct list_head q_senders; |
32 | }; | 32 | } __randomize_layout; |
33 | 33 | ||
34 | /* Helper routines for sys_msgsnd and sys_msgrcv */ | 34 | /* Helper routines for sys_msgsnd and sys_msgrcv */ |
35 | extern long do_msgsnd(int msqid, long mtype, void __user *mtext, | 35 | extern long do_msgsnd(int msqid, long mtype, void __user *mtext, |
diff --git a/include/linux/path.h b/include/linux/path.h index d1372186f431..cde895cc4af4 100644 --- a/include/linux/path.h +++ b/include/linux/path.h | |||
@@ -7,7 +7,7 @@ struct vfsmount; | |||
7 | struct path { | 7 | struct path { |
8 | struct vfsmount *mnt; | 8 | struct vfsmount *mnt; |
9 | struct dentry *dentry; | 9 | struct dentry *dentry; |
10 | }; | 10 | } __randomize_layout; |
11 | 11 | ||
12 | extern void path_get(const struct path *); | 12 | extern void path_get(const struct path *); |
13 | extern void path_put(const struct path *); | 13 | extern void path_put(const struct path *); |
diff --git a/include/linux/pid_namespace.h b/include/linux/pid_namespace.h index c2a989dee876..b09136f88cf4 100644 --- a/include/linux/pid_namespace.h +++ b/include/linux/pid_namespace.h | |||
@@ -52,7 +52,7 @@ struct pid_namespace { | |||
52 | int hide_pid; | 52 | int hide_pid; |
53 | int reboot; /* group exit code if this pidns was rebooted */ | 53 | int reboot; /* group exit code if this pidns was rebooted */ |
54 | struct ns_common ns; | 54 | struct ns_common ns; |
55 | }; | 55 | } __randomize_layout; |
56 | 56 | ||
57 | extern struct pid_namespace init_pid_ns; | 57 | extern struct pid_namespace init_pid_ns; |
58 | 58 | ||
diff --git a/include/linux/proc_ns.h b/include/linux/proc_ns.h index 58ab28d81fc2..06844b54dfc1 100644 --- a/include/linux/proc_ns.h +++ b/include/linux/proc_ns.h | |||
@@ -21,7 +21,7 @@ struct proc_ns_operations { | |||
21 | int (*install)(struct nsproxy *nsproxy, struct ns_common *ns); | 21 | int (*install)(struct nsproxy *nsproxy, struct ns_common *ns); |
22 | struct user_namespace *(*owner)(struct ns_common *ns); | 22 | struct user_namespace *(*owner)(struct ns_common *ns); |
23 | struct ns_common *(*get_parent)(struct ns_common *ns); | 23 | struct ns_common *(*get_parent)(struct ns_common *ns); |
24 | }; | 24 | } __randomize_layout; |
25 | 25 | ||
26 | extern const struct proc_ns_operations netns_operations; | 26 | extern const struct proc_ns_operations netns_operations; |
27 | extern const struct proc_ns_operations utsns_operations; | 27 | extern const struct proc_ns_operations utsns_operations; |
diff --git a/include/linux/sched.h b/include/linux/sched.h index 2b69fc650201..f833254fce00 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -408,7 +408,7 @@ struct sched_rt_entity { | |||
408 | /* rq "owned" by this entity/group: */ | 408 | /* rq "owned" by this entity/group: */ |
409 | struct rt_rq *my_q; | 409 | struct rt_rq *my_q; |
410 | #endif | 410 | #endif |
411 | }; | 411 | } __randomize_layout; |
412 | 412 | ||
413 | struct sched_dl_entity { | 413 | struct sched_dl_entity { |
414 | struct rb_node rb_node; | 414 | struct rb_node rb_node; |
diff --git a/include/linux/sched/signal.h b/include/linux/sched/signal.h index c06d63b3a583..2a0dd40b15db 100644 --- a/include/linux/sched/signal.h +++ b/include/linux/sched/signal.h | |||
@@ -222,7 +222,7 @@ struct signal_struct { | |||
222 | struct mutex cred_guard_mutex; /* guard against foreign influences on | 222 | struct mutex cred_guard_mutex; /* guard against foreign influences on |
223 | * credential calculations | 223 | * credential calculations |
224 | * (notably. ptrace) */ | 224 | * (notably. ptrace) */ |
225 | }; | 225 | } __randomize_layout; |
226 | 226 | ||
227 | /* | 227 | /* |
228 | * Bits in flags field of signal_struct. | 228 | * Bits in flags field of signal_struct. |
diff --git a/include/linux/sem.h b/include/linux/sem.h index 9edec926e9d9..23bcbdfad4a6 100644 --- a/include/linux/sem.h +++ b/include/linux/sem.h | |||
@@ -21,7 +21,7 @@ struct sem_array { | |||
21 | int sem_nsems; /* no. of semaphores in array */ | 21 | int sem_nsems; /* no. of semaphores in array */ |
22 | int complex_count; /* pending complex operations */ | 22 | int complex_count; /* pending complex operations */ |
23 | unsigned int use_global_lock;/* >0: global lock required */ | 23 | unsigned int use_global_lock;/* >0: global lock required */ |
24 | }; | 24 | } __randomize_layout; |
25 | 25 | ||
26 | #ifdef CONFIG_SYSVIPC | 26 | #ifdef CONFIG_SYSVIPC |
27 | 27 | ||
diff --git a/include/linux/shm.h b/include/linux/shm.h index 04e881829625..0fb7061ec54c 100644 --- a/include/linux/shm.h +++ b/include/linux/shm.h | |||
@@ -22,7 +22,7 @@ struct shmid_kernel /* private to the kernel */ | |||
22 | /* The task created the shm object. NULL if the task is dead. */ | 22 | /* The task created the shm object. NULL if the task is dead. */ |
23 | struct task_struct *shm_creator; | 23 | struct task_struct *shm_creator; |
24 | struct list_head shm_clist; /* list by creator */ | 24 | struct list_head shm_clist; /* list by creator */ |
25 | }; | 25 | } __randomize_layout; |
26 | 26 | ||
27 | /* shm_mode upper byte flags */ | 27 | /* shm_mode upper byte flags */ |
28 | #define SHM_DEST 01000 /* segment will be destroyed on last detach */ | 28 | #define SHM_DEST 01000 /* segment will be destroyed on last detach */ |
diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h index 80d07816def0..9ddeef2c03e2 100644 --- a/include/linux/sysctl.h +++ b/include/linux/sysctl.h | |||
@@ -117,7 +117,7 @@ struct ctl_table | |||
117 | struct ctl_table_poll *poll; | 117 | struct ctl_table_poll *poll; |
118 | void *extra1; | 118 | void *extra1; |
119 | void *extra2; | 119 | void *extra2; |
120 | }; | 120 | } __randomize_layout; |
121 | 121 | ||
122 | struct ctl_node { | 122 | struct ctl_node { |
123 | struct rb_node node; | 123 | struct rb_node node; |
diff --git a/include/linux/tty.h b/include/linux/tty.h index d07cd2105a6c..73f8d0977bb0 100644 --- a/include/linux/tty.h +++ b/include/linux/tty.h | |||
@@ -333,7 +333,7 @@ struct tty_struct { | |||
333 | /* If the tty has a pending do_SAK, queue it here - akpm */ | 333 | /* If the tty has a pending do_SAK, queue it here - akpm */ |
334 | struct work_struct SAK_work; | 334 | struct work_struct SAK_work; |
335 | struct tty_port *port; | 335 | struct tty_port *port; |
336 | }; | 336 | } __randomize_layout; |
337 | 337 | ||
338 | /* Each of a tty's open files has private_data pointing to tty_file_private */ | 338 | /* Each of a tty's open files has private_data pointing to tty_file_private */ |
339 | struct tty_file_private { | 339 | struct tty_file_private { |
diff --git a/include/linux/tty_driver.h b/include/linux/tty_driver.h index b742b5e47cc2..00b2213f6a35 100644 --- a/include/linux/tty_driver.h +++ b/include/linux/tty_driver.h | |||
@@ -291,7 +291,7 @@ struct tty_operations { | |||
291 | void (*poll_put_char)(struct tty_driver *driver, int line, char ch); | 291 | void (*poll_put_char)(struct tty_driver *driver, int line, char ch); |
292 | #endif | 292 | #endif |
293 | const struct file_operations *proc_fops; | 293 | const struct file_operations *proc_fops; |
294 | }; | 294 | } __randomize_layout; |
295 | 295 | ||
296 | struct tty_driver { | 296 | struct tty_driver { |
297 | int magic; /* magic number for this structure */ | 297 | int magic; /* magic number for this structure */ |
@@ -325,7 +325,7 @@ struct tty_driver { | |||
325 | 325 | ||
326 | const struct tty_operations *ops; | 326 | const struct tty_operations *ops; |
327 | struct list_head tty_drivers; | 327 | struct list_head tty_drivers; |
328 | }; | 328 | } __randomize_layout; |
329 | 329 | ||
330 | extern struct list_head tty_drivers; | 330 | extern struct list_head tty_drivers; |
331 | 331 | ||
diff --git a/include/linux/user_namespace.h b/include/linux/user_namespace.h index 32354b4b4b2b..b3575ce29148 100644 --- a/include/linux/user_namespace.h +++ b/include/linux/user_namespace.h | |||
@@ -66,7 +66,7 @@ struct user_namespace { | |||
66 | #endif | 66 | #endif |
67 | struct ucounts *ucounts; | 67 | struct ucounts *ucounts; |
68 | int ucount_max[UCOUNT_COUNTS]; | 68 | int ucount_max[UCOUNT_COUNTS]; |
69 | }; | 69 | } __randomize_layout; |
70 | 70 | ||
71 | struct ucounts { | 71 | struct ucounts { |
72 | struct hlist_node node; | 72 | struct hlist_node node; |
diff --git a/include/linux/utsname.h b/include/linux/utsname.h index 60f0bb83b313..da826ed059cf 100644 --- a/include/linux/utsname.h +++ b/include/linux/utsname.h | |||
@@ -26,7 +26,7 @@ struct uts_namespace { | |||
26 | struct user_namespace *user_ns; | 26 | struct user_namespace *user_ns; |
27 | struct ucounts *ucounts; | 27 | struct ucounts *ucounts; |
28 | struct ns_common ns; | 28 | struct ns_common ns; |
29 | }; | 29 | } __randomize_layout; |
30 | extern struct uts_namespace init_uts_ns; | 30 | extern struct uts_namespace init_uts_ns; |
31 | 31 | ||
32 | #ifdef CONFIG_UTS_NS | 32 | #ifdef CONFIG_UTS_NS |
diff --git a/include/net/af_unix.h b/include/net/af_unix.h index fd60eccb59a6..64e2a1e24a2c 100644 --- a/include/net/af_unix.h +++ b/include/net/af_unix.h | |||
@@ -36,7 +36,7 @@ struct unix_skb_parms { | |||
36 | u32 secid; /* Security ID */ | 36 | u32 secid; /* Security ID */ |
37 | #endif | 37 | #endif |
38 | u32 consumed; | 38 | u32 consumed; |
39 | }; | 39 | } __randomize_layout; |
40 | 40 | ||
41 | #define UNIXCB(skb) (*(struct unix_skb_parms *)&((skb)->cb)) | 41 | #define UNIXCB(skb) (*(struct unix_skb_parms *)&((skb)->cb)) |
42 | 42 | ||
diff --git a/include/net/neighbour.h b/include/net/neighbour.h index e4dd3a214034..a62959d2b3f7 100644 --- a/include/net/neighbour.h +++ b/include/net/neighbour.h | |||
@@ -155,7 +155,7 @@ struct neighbour { | |||
155 | struct rcu_head rcu; | 155 | struct rcu_head rcu; |
156 | struct net_device *dev; | 156 | struct net_device *dev; |
157 | u8 primary_key[0]; | 157 | u8 primary_key[0]; |
158 | }; | 158 | } __randomize_layout; |
159 | 159 | ||
160 | struct neigh_ops { | 160 | struct neigh_ops { |
161 | int family; | 161 | int family; |
diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h index fe80bb48ab1f..a224196d16ac 100644 --- a/include/net/net_namespace.h +++ b/include/net/net_namespace.h | |||
@@ -147,7 +147,7 @@ struct net { | |||
147 | #endif | 147 | #endif |
148 | struct sock *diag_nlsk; | 148 | struct sock *diag_nlsk; |
149 | atomic_t fnhe_genid; | 149 | atomic_t fnhe_genid; |
150 | }; | 150 | } __randomize_layout; |
151 | 151 | ||
152 | #include <linux/seq_file_net.h> | 152 | #include <linux/seq_file_net.h> |
153 | 153 | ||
diff --git a/include/net/sock.h b/include/net/sock.h index f33e3d134e0b..d349297db9e9 100644 --- a/include/net/sock.h +++ b/include/net/sock.h | |||
@@ -1113,7 +1113,7 @@ struct proto { | |||
1113 | atomic_t socks; | 1113 | atomic_t socks; |
1114 | #endif | 1114 | #endif |
1115 | int (*diag_destroy)(struct sock *sk, int err); | 1115 | int (*diag_destroy)(struct sock *sk, int err); |
1116 | }; | 1116 | } __randomize_layout; |
1117 | 1117 | ||
1118 | int proto_register(struct proto *prot, int alloc_slab); | 1118 | int proto_register(struct proto *prot, int alloc_slab); |
1119 | void proto_unregister(struct proto *prot); | 1119 | void proto_unregister(struct proto *prot); |
diff --git a/kernel/futex.c b/kernel/futex.c index 357348a6cf6b..5616511abf39 100644 --- a/kernel/futex.c +++ b/kernel/futex.c | |||
@@ -212,7 +212,7 @@ struct futex_pi_state { | |||
212 | atomic_t refcount; | 212 | atomic_t refcount; |
213 | 213 | ||
214 | union futex_key key; | 214 | union futex_key key; |
215 | }; | 215 | } __randomize_layout; |
216 | 216 | ||
217 | /** | 217 | /** |
218 | * struct futex_q - The hashed futex queue entry, one per waiting task | 218 | * struct futex_q - The hashed futex queue entry, one per waiting task |
@@ -246,7 +246,7 @@ struct futex_q { | |||
246 | struct rt_mutex_waiter *rt_waiter; | 246 | struct rt_mutex_waiter *rt_waiter; |
247 | union futex_key *requeue_pi_key; | 247 | union futex_key *requeue_pi_key; |
248 | u32 bitset; | 248 | u32 bitset; |
249 | }; | 249 | } __randomize_layout; |
250 | 250 | ||
251 | static const struct futex_q futex_q_init = { | 251 | static const struct futex_q futex_q_init = { |
252 | /* list gets initialized in queue_me()*/ | 252 | /* list gets initialized in queue_me()*/ |
diff --git a/security/keys/internal.h b/security/keys/internal.h index c0f8682eba69..6494954e9980 100644 --- a/security/keys/internal.h +++ b/security/keys/internal.h | |||
@@ -197,7 +197,7 @@ struct request_key_auth { | |||
197 | void *callout_info; | 197 | void *callout_info; |
198 | size_t callout_len; | 198 | size_t callout_len; |
199 | pid_t pid; | 199 | pid_t pid; |
200 | }; | 200 | } __randomize_layout; |
201 | 201 | ||
202 | extern struct key_type key_type_request_key_auth; | 202 | extern struct key_type key_type_request_key_auth; |
203 | extern struct key *request_key_auth_new(struct key *target, | 203 | extern struct key *request_key_auth_new(struct key *target, |