diff options
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/clockchips.h | 1 | ||||
-rw-r--r-- | include/linux/compaction.h | 19 | ||||
-rw-r--r-- | include/linux/frontswap.h | 127 | ||||
-rw-r--r-- | include/linux/fs.h | 6 | ||||
-rw-r--r-- | include/linux/fuse.h | 14 | ||||
-rw-r--r-- | include/linux/i2c-mux-pinctrl.h | 41 | ||||
-rw-r--r-- | include/linux/init_task.h | 2 | ||||
-rw-r--r-- | include/linux/moduleparam.h | 10 | ||||
-rw-r--r-- | include/linux/perf_event.h | 4 | ||||
-rw-r--r-- | include/linux/prctl.h | 10 | ||||
-rw-r--r-- | include/linux/radix-tree.h | 5 | ||||
-rw-r--r-- | include/linux/sched.h | 15 | ||||
-rw-r--r-- | include/linux/skbuff.h | 7 | ||||
-rw-r--r-- | include/linux/swap.h | 4 | ||||
-rw-r--r-- | include/linux/swapfile.h | 13 | ||||
-rw-r--r-- | include/linux/vga_switcheroo.h | 7 |
16 files changed, 243 insertions, 42 deletions
diff --git a/include/linux/clockchips.h b/include/linux/clockchips.h index 81e803e90aa4..acba894374a1 100644 --- a/include/linux/clockchips.h +++ b/include/linux/clockchips.h | |||
@@ -132,6 +132,7 @@ extern u64 clockevent_delta2ns(unsigned long latch, | |||
132 | struct clock_event_device *evt); | 132 | struct clock_event_device *evt); |
133 | extern void clockevents_register_device(struct clock_event_device *dev); | 133 | extern void clockevents_register_device(struct clock_event_device *dev); |
134 | 134 | ||
135 | extern void clockevents_config(struct clock_event_device *dev, u32 freq); | ||
135 | extern void clockevents_config_and_register(struct clock_event_device *dev, | 136 | extern void clockevents_config_and_register(struct clock_event_device *dev, |
136 | u32 freq, unsigned long min_delta, | 137 | u32 freq, unsigned long min_delta, |
137 | unsigned long max_delta); | 138 | unsigned long max_delta); |
diff --git a/include/linux/compaction.h b/include/linux/compaction.h index e988037abd2a..51a90b7f2d60 100644 --- a/include/linux/compaction.h +++ b/include/linux/compaction.h | |||
@@ -1,8 +1,6 @@ | |||
1 | #ifndef _LINUX_COMPACTION_H | 1 | #ifndef _LINUX_COMPACTION_H |
2 | #define _LINUX_COMPACTION_H | 2 | #define _LINUX_COMPACTION_H |
3 | 3 | ||
4 | #include <linux/node.h> | ||
5 | |||
6 | /* Return values for compact_zone() and try_to_compact_pages() */ | 4 | /* Return values for compact_zone() and try_to_compact_pages() */ |
7 | /* compaction didn't start as it was not possible or direct reclaim was more suitable */ | 5 | /* compaction didn't start as it was not possible or direct reclaim was more suitable */ |
8 | #define COMPACT_SKIPPED 0 | 6 | #define COMPACT_SKIPPED 0 |
@@ -13,23 +11,6 @@ | |||
13 | /* The full zone was compacted */ | 11 | /* The full zone was compacted */ |
14 | #define COMPACT_COMPLETE 3 | 12 | #define COMPACT_COMPLETE 3 |
15 | 13 | ||
16 | /* | ||
17 | * compaction supports three modes | ||
18 | * | ||
19 | * COMPACT_ASYNC_MOVABLE uses asynchronous migration and only scans | ||
20 | * MIGRATE_MOVABLE pageblocks as migration sources and targets. | ||
21 | * COMPACT_ASYNC_UNMOVABLE uses asynchronous migration and only scans | ||
22 | * MIGRATE_MOVABLE pageblocks as migration sources. | ||
23 | * MIGRATE_UNMOVABLE pageblocks are scanned as potential migration | ||
24 | * targets and convers them to MIGRATE_MOVABLE if possible | ||
25 | * COMPACT_SYNC uses synchronous migration and scans all pageblocks | ||
26 | */ | ||
27 | enum compact_mode { | ||
28 | COMPACT_ASYNC_MOVABLE, | ||
29 | COMPACT_ASYNC_UNMOVABLE, | ||
30 | COMPACT_SYNC, | ||
31 | }; | ||
32 | |||
33 | #ifdef CONFIG_COMPACTION | 14 | #ifdef CONFIG_COMPACTION |
34 | extern int sysctl_compact_memory; | 15 | extern int sysctl_compact_memory; |
35 | extern int sysctl_compaction_handler(struct ctl_table *table, int write, | 16 | extern int sysctl_compaction_handler(struct ctl_table *table, int write, |
diff --git a/include/linux/frontswap.h b/include/linux/frontswap.h new file mode 100644 index 000000000000..0e4e2eec5c1d --- /dev/null +++ b/include/linux/frontswap.h | |||
@@ -0,0 +1,127 @@ | |||
1 | #ifndef _LINUX_FRONTSWAP_H | ||
2 | #define _LINUX_FRONTSWAP_H | ||
3 | |||
4 | #include <linux/swap.h> | ||
5 | #include <linux/mm.h> | ||
6 | #include <linux/bitops.h> | ||
7 | |||
8 | struct frontswap_ops { | ||
9 | void (*init)(unsigned); | ||
10 | int (*store)(unsigned, pgoff_t, struct page *); | ||
11 | int (*load)(unsigned, pgoff_t, struct page *); | ||
12 | void (*invalidate_page)(unsigned, pgoff_t); | ||
13 | void (*invalidate_area)(unsigned); | ||
14 | }; | ||
15 | |||
16 | extern bool frontswap_enabled; | ||
17 | extern struct frontswap_ops | ||
18 | frontswap_register_ops(struct frontswap_ops *ops); | ||
19 | extern void frontswap_shrink(unsigned long); | ||
20 | extern unsigned long frontswap_curr_pages(void); | ||
21 | extern void frontswap_writethrough(bool); | ||
22 | |||
23 | extern void __frontswap_init(unsigned type); | ||
24 | extern int __frontswap_store(struct page *page); | ||
25 | extern int __frontswap_load(struct page *page); | ||
26 | extern void __frontswap_invalidate_page(unsigned, pgoff_t); | ||
27 | extern void __frontswap_invalidate_area(unsigned); | ||
28 | |||
29 | #ifdef CONFIG_FRONTSWAP | ||
30 | |||
31 | static inline bool frontswap_test(struct swap_info_struct *sis, pgoff_t offset) | ||
32 | { | ||
33 | bool ret = false; | ||
34 | |||
35 | if (frontswap_enabled && sis->frontswap_map) | ||
36 | ret = test_bit(offset, sis->frontswap_map); | ||
37 | return ret; | ||
38 | } | ||
39 | |||
40 | static inline void frontswap_set(struct swap_info_struct *sis, pgoff_t offset) | ||
41 | { | ||
42 | if (frontswap_enabled && sis->frontswap_map) | ||
43 | set_bit(offset, sis->frontswap_map); | ||
44 | } | ||
45 | |||
46 | static inline void frontswap_clear(struct swap_info_struct *sis, pgoff_t offset) | ||
47 | { | ||
48 | if (frontswap_enabled && sis->frontswap_map) | ||
49 | clear_bit(offset, sis->frontswap_map); | ||
50 | } | ||
51 | |||
52 | static inline void frontswap_map_set(struct swap_info_struct *p, | ||
53 | unsigned long *map) | ||
54 | { | ||
55 | p->frontswap_map = map; | ||
56 | } | ||
57 | |||
58 | static inline unsigned long *frontswap_map_get(struct swap_info_struct *p) | ||
59 | { | ||
60 | return p->frontswap_map; | ||
61 | } | ||
62 | #else | ||
63 | /* all inline routines become no-ops and all externs are ignored */ | ||
64 | |||
65 | #define frontswap_enabled (0) | ||
66 | |||
67 | static inline bool frontswap_test(struct swap_info_struct *sis, pgoff_t offset) | ||
68 | { | ||
69 | return false; | ||
70 | } | ||
71 | |||
72 | static inline void frontswap_set(struct swap_info_struct *sis, pgoff_t offset) | ||
73 | { | ||
74 | } | ||
75 | |||
76 | static inline void frontswap_clear(struct swap_info_struct *sis, pgoff_t offset) | ||
77 | { | ||
78 | } | ||
79 | |||
80 | static inline void frontswap_map_set(struct swap_info_struct *p, | ||
81 | unsigned long *map) | ||
82 | { | ||
83 | } | ||
84 | |||
85 | static inline unsigned long *frontswap_map_get(struct swap_info_struct *p) | ||
86 | { | ||
87 | return NULL; | ||
88 | } | ||
89 | #endif | ||
90 | |||
91 | static inline int frontswap_store(struct page *page) | ||
92 | { | ||
93 | int ret = -1; | ||
94 | |||
95 | if (frontswap_enabled) | ||
96 | ret = __frontswap_store(page); | ||
97 | return ret; | ||
98 | } | ||
99 | |||
100 | static inline int frontswap_load(struct page *page) | ||
101 | { | ||
102 | int ret = -1; | ||
103 | |||
104 | if (frontswap_enabled) | ||
105 | ret = __frontswap_load(page); | ||
106 | return ret; | ||
107 | } | ||
108 | |||
109 | static inline void frontswap_invalidate_page(unsigned type, pgoff_t offset) | ||
110 | { | ||
111 | if (frontswap_enabled) | ||
112 | __frontswap_invalidate_page(type, offset); | ||
113 | } | ||
114 | |||
115 | static inline void frontswap_invalidate_area(unsigned type) | ||
116 | { | ||
117 | if (frontswap_enabled) | ||
118 | __frontswap_invalidate_area(type); | ||
119 | } | ||
120 | |||
121 | static inline void frontswap_init(unsigned type) | ||
122 | { | ||
123 | if (frontswap_enabled) | ||
124 | __frontswap_init(type); | ||
125 | } | ||
126 | |||
127 | #endif /* _LINUX_FRONTSWAP_H */ | ||
diff --git a/include/linux/fs.h b/include/linux/fs.h index 51978ed43e97..17fd887c798f 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -802,13 +802,14 @@ struct inode { | |||
802 | unsigned int __i_nlink; | 802 | unsigned int __i_nlink; |
803 | }; | 803 | }; |
804 | dev_t i_rdev; | 804 | dev_t i_rdev; |
805 | loff_t i_size; | ||
805 | struct timespec i_atime; | 806 | struct timespec i_atime; |
806 | struct timespec i_mtime; | 807 | struct timespec i_mtime; |
807 | struct timespec i_ctime; | 808 | struct timespec i_ctime; |
808 | spinlock_t i_lock; /* i_blocks, i_bytes, maybe i_size */ | 809 | spinlock_t i_lock; /* i_blocks, i_bytes, maybe i_size */ |
809 | unsigned short i_bytes; | 810 | unsigned short i_bytes; |
811 | unsigned int i_blkbits; | ||
810 | blkcnt_t i_blocks; | 812 | blkcnt_t i_blocks; |
811 | loff_t i_size; | ||
812 | 813 | ||
813 | #ifdef __NEED_I_SIZE_ORDERED | 814 | #ifdef __NEED_I_SIZE_ORDERED |
814 | seqcount_t i_size_seqcount; | 815 | seqcount_t i_size_seqcount; |
@@ -828,9 +829,8 @@ struct inode { | |||
828 | struct list_head i_dentry; | 829 | struct list_head i_dentry; |
829 | struct rcu_head i_rcu; | 830 | struct rcu_head i_rcu; |
830 | }; | 831 | }; |
831 | atomic_t i_count; | ||
832 | unsigned int i_blkbits; | ||
833 | u64 i_version; | 832 | u64 i_version; |
833 | atomic_t i_count; | ||
834 | atomic_t i_dio_count; | 834 | atomic_t i_dio_count; |
835 | atomic_t i_writecount; | 835 | atomic_t i_writecount; |
836 | const struct file_operations *i_fop; /* former ->i_op->default_file_ops */ | 836 | const struct file_operations *i_fop; /* former ->i_op->default_file_ops */ |
diff --git a/include/linux/fuse.h b/include/linux/fuse.h index 8f2ab8fef929..9303348965fb 100644 --- a/include/linux/fuse.h +++ b/include/linux/fuse.h | |||
@@ -54,6 +54,9 @@ | |||
54 | * 7.18 | 54 | * 7.18 |
55 | * - add FUSE_IOCTL_DIR flag | 55 | * - add FUSE_IOCTL_DIR flag |
56 | * - add FUSE_NOTIFY_DELETE | 56 | * - add FUSE_NOTIFY_DELETE |
57 | * | ||
58 | * 7.19 | ||
59 | * - add FUSE_FALLOCATE | ||
57 | */ | 60 | */ |
58 | 61 | ||
59 | #ifndef _LINUX_FUSE_H | 62 | #ifndef _LINUX_FUSE_H |
@@ -85,7 +88,7 @@ | |||
85 | #define FUSE_KERNEL_VERSION 7 | 88 | #define FUSE_KERNEL_VERSION 7 |
86 | 89 | ||
87 | /** Minor version number of this interface */ | 90 | /** Minor version number of this interface */ |
88 | #define FUSE_KERNEL_MINOR_VERSION 18 | 91 | #define FUSE_KERNEL_MINOR_VERSION 19 |
89 | 92 | ||
90 | /** The node ID of the root inode */ | 93 | /** The node ID of the root inode */ |
91 | #define FUSE_ROOT_ID 1 | 94 | #define FUSE_ROOT_ID 1 |
@@ -278,6 +281,7 @@ enum fuse_opcode { | |||
278 | FUSE_POLL = 40, | 281 | FUSE_POLL = 40, |
279 | FUSE_NOTIFY_REPLY = 41, | 282 | FUSE_NOTIFY_REPLY = 41, |
280 | FUSE_BATCH_FORGET = 42, | 283 | FUSE_BATCH_FORGET = 42, |
284 | FUSE_FALLOCATE = 43, | ||
281 | 285 | ||
282 | /* CUSE specific operations */ | 286 | /* CUSE specific operations */ |
283 | CUSE_INIT = 4096, | 287 | CUSE_INIT = 4096, |
@@ -571,6 +575,14 @@ struct fuse_notify_poll_wakeup_out { | |||
571 | __u64 kh; | 575 | __u64 kh; |
572 | }; | 576 | }; |
573 | 577 | ||
578 | struct fuse_fallocate_in { | ||
579 | __u64 fh; | ||
580 | __u64 offset; | ||
581 | __u64 length; | ||
582 | __u32 mode; | ||
583 | __u32 padding; | ||
584 | }; | ||
585 | |||
574 | struct fuse_in_header { | 586 | struct fuse_in_header { |
575 | __u32 len; | 587 | __u32 len; |
576 | __u32 opcode; | 588 | __u32 opcode; |
diff --git a/include/linux/i2c-mux-pinctrl.h b/include/linux/i2c-mux-pinctrl.h new file mode 100644 index 000000000000..a65c86429e84 --- /dev/null +++ b/include/linux/i2c-mux-pinctrl.h | |||
@@ -0,0 +1,41 @@ | |||
1 | /* | ||
2 | * i2c-mux-pinctrl platform data | ||
3 | * | ||
4 | * Copyright (c) 2012, NVIDIA CORPORATION. All rights reserved. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify it | ||
7 | * under the terms and conditions of the GNU General Public License, | ||
8 | * version 2, as published by the Free Software Foundation. | ||
9 | * | ||
10 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
11 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
12 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | ||
13 | * more details. | ||
14 | * | ||
15 | * You should have received a copy of the GNU General Public License | ||
16 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
17 | */ | ||
18 | |||
19 | #ifndef _LINUX_I2C_MUX_PINCTRL_H | ||
20 | #define _LINUX_I2C_MUX_PINCTRL_H | ||
21 | |||
22 | /** | ||
23 | * struct i2c_mux_pinctrl_platform_data - Platform data for i2c-mux-pinctrl | ||
24 | * @parent_bus_num: Parent I2C bus number | ||
25 | * @base_bus_num: Base I2C bus number for the child busses. 0 for dynamic. | ||
26 | * @bus_count: Number of child busses. Also the number of elements in | ||
27 | * @pinctrl_states | ||
28 | * @pinctrl_states: The names of the pinctrl state to select for each child bus | ||
29 | * @pinctrl_state_idle: The pinctrl state to select when no child bus is being | ||
30 | * accessed. If NULL, the most recently used pinctrl state will be left | ||
31 | * selected. | ||
32 | */ | ||
33 | struct i2c_mux_pinctrl_platform_data { | ||
34 | int parent_bus_num; | ||
35 | int base_bus_num; | ||
36 | int bus_count; | ||
37 | const char **pinctrl_states; | ||
38 | const char *pinctrl_state_idle; | ||
39 | }; | ||
40 | |||
41 | #endif | ||
diff --git a/include/linux/init_task.h b/include/linux/init_task.h index e4baff5f7ff4..9e65eff6af3b 100644 --- a/include/linux/init_task.h +++ b/include/linux/init_task.h | |||
@@ -149,6 +149,7 @@ extern struct cred init_cred; | |||
149 | .normal_prio = MAX_PRIO-20, \ | 149 | .normal_prio = MAX_PRIO-20, \ |
150 | .policy = SCHED_NORMAL, \ | 150 | .policy = SCHED_NORMAL, \ |
151 | .cpus_allowed = CPU_MASK_ALL, \ | 151 | .cpus_allowed = CPU_MASK_ALL, \ |
152 | .nr_cpus_allowed= NR_CPUS, \ | ||
152 | .mm = NULL, \ | 153 | .mm = NULL, \ |
153 | .active_mm = &init_mm, \ | 154 | .active_mm = &init_mm, \ |
154 | .se = { \ | 155 | .se = { \ |
@@ -157,7 +158,6 @@ extern struct cred init_cred; | |||
157 | .rt = { \ | 158 | .rt = { \ |
158 | .run_list = LIST_HEAD_INIT(tsk.rt.run_list), \ | 159 | .run_list = LIST_HEAD_INIT(tsk.rt.run_list), \ |
159 | .time_slice = RR_TIMESLICE, \ | 160 | .time_slice = RR_TIMESLICE, \ |
160 | .nr_cpus_allowed = NR_CPUS, \ | ||
161 | }, \ | 161 | }, \ |
162 | .tasks = LIST_HEAD_INIT(tsk.tasks), \ | 162 | .tasks = LIST_HEAD_INIT(tsk.tasks), \ |
163 | INIT_PUSHABLE_TASKS(tsk) \ | 163 | INIT_PUSHABLE_TASKS(tsk) \ |
diff --git a/include/linux/moduleparam.h b/include/linux/moduleparam.h index 1b14d25162cb..d6a58065c09c 100644 --- a/include/linux/moduleparam.h +++ b/include/linux/moduleparam.h | |||
@@ -128,7 +128,7 @@ struct kparam_array | |||
128 | * The ops can have NULL set or get functions. | 128 | * The ops can have NULL set or get functions. |
129 | */ | 129 | */ |
130 | #define module_param_cb(name, ops, arg, perm) \ | 130 | #define module_param_cb(name, ops, arg, perm) \ |
131 | __module_param_call(MODULE_PARAM_PREFIX, name, ops, arg, perm, 0) | 131 | __module_param_call(MODULE_PARAM_PREFIX, name, ops, arg, perm, -1) |
132 | 132 | ||
133 | /** | 133 | /** |
134 | * <level>_param_cb - general callback for a module/cmdline parameter | 134 | * <level>_param_cb - general callback for a module/cmdline parameter |
@@ -192,7 +192,7 @@ struct kparam_array | |||
192 | { (void *)set, (void *)get }; \ | 192 | { (void *)set, (void *)get }; \ |
193 | __module_param_call(MODULE_PARAM_PREFIX, \ | 193 | __module_param_call(MODULE_PARAM_PREFIX, \ |
194 | name, &__param_ops_##name, arg, \ | 194 | name, &__param_ops_##name, arg, \ |
195 | (perm) + sizeof(__check_old_set_param(set))*0, 0) | 195 | (perm) + sizeof(__check_old_set_param(set))*0, -1) |
196 | 196 | ||
197 | /* We don't get oldget: it's often a new-style param_get_uint, etc. */ | 197 | /* We don't get oldget: it's often a new-style param_get_uint, etc. */ |
198 | static inline int | 198 | static inline int |
@@ -272,7 +272,7 @@ static inline void __kernel_param_unlock(void) | |||
272 | */ | 272 | */ |
273 | #define core_param(name, var, type, perm) \ | 273 | #define core_param(name, var, type, perm) \ |
274 | param_check_##type(name, &(var)); \ | 274 | param_check_##type(name, &(var)); \ |
275 | __module_param_call("", name, ¶m_ops_##type, &var, perm, 0) | 275 | __module_param_call("", name, ¶m_ops_##type, &var, perm, -1) |
276 | #endif /* !MODULE */ | 276 | #endif /* !MODULE */ |
277 | 277 | ||
278 | /** | 278 | /** |
@@ -290,7 +290,7 @@ static inline void __kernel_param_unlock(void) | |||
290 | = { len, string }; \ | 290 | = { len, string }; \ |
291 | __module_param_call(MODULE_PARAM_PREFIX, name, \ | 291 | __module_param_call(MODULE_PARAM_PREFIX, name, \ |
292 | ¶m_ops_string, \ | 292 | ¶m_ops_string, \ |
293 | .str = &__param_string_##name, perm, 0); \ | 293 | .str = &__param_string_##name, perm, -1); \ |
294 | __MODULE_PARM_TYPE(name, "string") | 294 | __MODULE_PARM_TYPE(name, "string") |
295 | 295 | ||
296 | /** | 296 | /** |
@@ -432,7 +432,7 @@ extern int param_set_bint(const char *val, const struct kernel_param *kp); | |||
432 | __module_param_call(MODULE_PARAM_PREFIX, name, \ | 432 | __module_param_call(MODULE_PARAM_PREFIX, name, \ |
433 | ¶m_array_ops, \ | 433 | ¶m_array_ops, \ |
434 | .arr = &__param_arr_##name, \ | 434 | .arr = &__param_arr_##name, \ |
435 | perm, 0); \ | 435 | perm, -1); \ |
436 | __MODULE_PARM_TYPE(name, "array of " #type) | 436 | __MODULE_PARM_TYPE(name, "array of " #type) |
437 | 437 | ||
438 | extern struct kernel_param_ops param_array_ops; | 438 | extern struct kernel_param_ops param_array_ops; |
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index f32578634d9d..45db49f64bb4 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h | |||
@@ -555,6 +555,8 @@ enum perf_event_type { | |||
555 | PERF_RECORD_MAX, /* non-ABI */ | 555 | PERF_RECORD_MAX, /* non-ABI */ |
556 | }; | 556 | }; |
557 | 557 | ||
558 | #define PERF_MAX_STACK_DEPTH 127 | ||
559 | |||
558 | enum perf_callchain_context { | 560 | enum perf_callchain_context { |
559 | PERF_CONTEXT_HV = (__u64)-32, | 561 | PERF_CONTEXT_HV = (__u64)-32, |
560 | PERF_CONTEXT_KERNEL = (__u64)-128, | 562 | PERF_CONTEXT_KERNEL = (__u64)-128, |
@@ -609,8 +611,6 @@ struct perf_guest_info_callbacks { | |||
609 | #include <linux/sysfs.h> | 611 | #include <linux/sysfs.h> |
610 | #include <asm/local.h> | 612 | #include <asm/local.h> |
611 | 613 | ||
612 | #define PERF_MAX_STACK_DEPTH 255 | ||
613 | |||
614 | struct perf_callchain_entry { | 614 | struct perf_callchain_entry { |
615 | __u64 nr; | 615 | __u64 nr; |
616 | __u64 ip[PERF_MAX_STACK_DEPTH]; | 616 | __u64 ip[PERF_MAX_STACK_DEPTH]; |
diff --git a/include/linux/prctl.h b/include/linux/prctl.h index 711e0a30aacc..3988012255dc 100644 --- a/include/linux/prctl.h +++ b/include/linux/prctl.h | |||
@@ -127,8 +127,8 @@ | |||
127 | #define PR_SET_PTRACER 0x59616d61 | 127 | #define PR_SET_PTRACER 0x59616d61 |
128 | # define PR_SET_PTRACER_ANY ((unsigned long)-1) | 128 | # define PR_SET_PTRACER_ANY ((unsigned long)-1) |
129 | 129 | ||
130 | #define PR_SET_CHILD_SUBREAPER 36 | 130 | #define PR_SET_CHILD_SUBREAPER 36 |
131 | #define PR_GET_CHILD_SUBREAPER 37 | 131 | #define PR_GET_CHILD_SUBREAPER 37 |
132 | 132 | ||
133 | /* | 133 | /* |
134 | * If no_new_privs is set, then operations that grant new privileges (i.e. | 134 | * If no_new_privs is set, then operations that grant new privileges (i.e. |
@@ -142,7 +142,9 @@ | |||
142 | * asking selinux for a specific new context (e.g. with runcon) will result | 142 | * asking selinux for a specific new context (e.g. with runcon) will result |
143 | * in execve returning -EPERM. | 143 | * in execve returning -EPERM. |
144 | */ | 144 | */ |
145 | #define PR_SET_NO_NEW_PRIVS 38 | 145 | #define PR_SET_NO_NEW_PRIVS 38 |
146 | #define PR_GET_NO_NEW_PRIVS 39 | 146 | #define PR_GET_NO_NEW_PRIVS 39 |
147 | |||
148 | #define PR_GET_TID_ADDRESS 40 | ||
147 | 149 | ||
148 | #endif /* _LINUX_PRCTL_H */ | 150 | #endif /* _LINUX_PRCTL_H */ |
diff --git a/include/linux/radix-tree.h b/include/linux/radix-tree.h index 0d04cd69ab9b..ffc444c38b0a 100644 --- a/include/linux/radix-tree.h +++ b/include/linux/radix-tree.h | |||
@@ -368,8 +368,11 @@ radix_tree_next_slot(void **slot, struct radix_tree_iter *iter, unsigned flags) | |||
368 | iter->index++; | 368 | iter->index++; |
369 | if (likely(*slot)) | 369 | if (likely(*slot)) |
370 | return slot; | 370 | return slot; |
371 | if (flags & RADIX_TREE_ITER_CONTIG) | 371 | if (flags & RADIX_TREE_ITER_CONTIG) { |
372 | /* forbid switching to the next chunk */ | ||
373 | iter->next_index = 0; | ||
372 | break; | 374 | break; |
375 | } | ||
373 | } | 376 | } |
374 | } | 377 | } |
375 | return NULL; | 378 | return NULL; |
diff --git a/include/linux/sched.h b/include/linux/sched.h index f34437e835a7..4059c0f33f07 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -145,6 +145,7 @@ extern unsigned long this_cpu_load(void); | |||
145 | 145 | ||
146 | 146 | ||
147 | extern void calc_global_load(unsigned long ticks); | 147 | extern void calc_global_load(unsigned long ticks); |
148 | extern void update_cpu_load_nohz(void); | ||
148 | 149 | ||
149 | extern unsigned long get_parent_ip(unsigned long addr); | 150 | extern unsigned long get_parent_ip(unsigned long addr); |
150 | 151 | ||
@@ -438,6 +439,7 @@ extern int get_dumpable(struct mm_struct *mm); | |||
438 | /* leave room for more dump flags */ | 439 | /* leave room for more dump flags */ |
439 | #define MMF_VM_MERGEABLE 16 /* KSM may merge identical pages */ | 440 | #define MMF_VM_MERGEABLE 16 /* KSM may merge identical pages */ |
440 | #define MMF_VM_HUGEPAGE 17 /* set when VM_HUGEPAGE is set on vma */ | 441 | #define MMF_VM_HUGEPAGE 17 /* set when VM_HUGEPAGE is set on vma */ |
442 | #define MMF_EXE_FILE_CHANGED 18 /* see prctl_set_mm_exe_file() */ | ||
441 | 443 | ||
442 | #define MMF_INIT_MASK (MMF_DUMPABLE_MASK | MMF_DUMP_FILTER_MASK) | 444 | #define MMF_INIT_MASK (MMF_DUMPABLE_MASK | MMF_DUMP_FILTER_MASK) |
443 | 445 | ||
@@ -875,6 +877,8 @@ struct sched_group_power { | |||
875 | * Number of busy cpus in this group. | 877 | * Number of busy cpus in this group. |
876 | */ | 878 | */ |
877 | atomic_t nr_busy_cpus; | 879 | atomic_t nr_busy_cpus; |
880 | |||
881 | unsigned long cpumask[0]; /* iteration mask */ | ||
878 | }; | 882 | }; |
879 | 883 | ||
880 | struct sched_group { | 884 | struct sched_group { |
@@ -899,6 +903,15 @@ static inline struct cpumask *sched_group_cpus(struct sched_group *sg) | |||
899 | return to_cpumask(sg->cpumask); | 903 | return to_cpumask(sg->cpumask); |
900 | } | 904 | } |
901 | 905 | ||
906 | /* | ||
907 | * cpumask masking which cpus in the group are allowed to iterate up the domain | ||
908 | * tree. | ||
909 | */ | ||
910 | static inline struct cpumask *sched_group_mask(struct sched_group *sg) | ||
911 | { | ||
912 | return to_cpumask(sg->sgp->cpumask); | ||
913 | } | ||
914 | |||
902 | /** | 915 | /** |
903 | * group_first_cpu - Returns the first cpu in the cpumask of a sched_group. | 916 | * group_first_cpu - Returns the first cpu in the cpumask of a sched_group. |
904 | * @group: The group whose first cpu is to be returned. | 917 | * @group: The group whose first cpu is to be returned. |
@@ -1187,7 +1200,6 @@ struct sched_rt_entity { | |||
1187 | struct list_head run_list; | 1200 | struct list_head run_list; |
1188 | unsigned long timeout; | 1201 | unsigned long timeout; |
1189 | unsigned int time_slice; | 1202 | unsigned int time_slice; |
1190 | int nr_cpus_allowed; | ||
1191 | 1203 | ||
1192 | struct sched_rt_entity *back; | 1204 | struct sched_rt_entity *back; |
1193 | #ifdef CONFIG_RT_GROUP_SCHED | 1205 | #ifdef CONFIG_RT_GROUP_SCHED |
@@ -1252,6 +1264,7 @@ struct task_struct { | |||
1252 | #endif | 1264 | #endif |
1253 | 1265 | ||
1254 | unsigned int policy; | 1266 | unsigned int policy; |
1267 | int nr_cpus_allowed; | ||
1255 | cpumask_t cpus_allowed; | 1268 | cpumask_t cpus_allowed; |
1256 | 1269 | ||
1257 | #ifdef CONFIG_PREEMPT_RCU | 1270 | #ifdef CONFIG_PREEMPT_RCU |
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index b534a1be540a..642cb7355df3 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
@@ -225,14 +225,11 @@ enum { | |||
225 | /* device driver is going to provide hardware time stamp */ | 225 | /* device driver is going to provide hardware time stamp */ |
226 | SKBTX_IN_PROGRESS = 1 << 2, | 226 | SKBTX_IN_PROGRESS = 1 << 2, |
227 | 227 | ||
228 | /* ensure the originating sk reference is available on driver level */ | ||
229 | SKBTX_DRV_NEEDS_SK_REF = 1 << 3, | ||
230 | |||
231 | /* device driver supports TX zero-copy buffers */ | 228 | /* device driver supports TX zero-copy buffers */ |
232 | SKBTX_DEV_ZEROCOPY = 1 << 4, | 229 | SKBTX_DEV_ZEROCOPY = 1 << 3, |
233 | 230 | ||
234 | /* generate wifi status information (where possible) */ | 231 | /* generate wifi status information (where possible) */ |
235 | SKBTX_WIFI_STATUS = 1 << 5, | 232 | SKBTX_WIFI_STATUS = 1 << 4, |
236 | }; | 233 | }; |
237 | 234 | ||
238 | /* | 235 | /* |
diff --git a/include/linux/swap.h b/include/linux/swap.h index b6661933e252..c84ec68eaec9 100644 --- a/include/linux/swap.h +++ b/include/linux/swap.h | |||
@@ -197,6 +197,10 @@ struct swap_info_struct { | |||
197 | struct block_device *bdev; /* swap device or bdev of swap file */ | 197 | struct block_device *bdev; /* swap device or bdev of swap file */ |
198 | struct file *swap_file; /* seldom referenced */ | 198 | struct file *swap_file; /* seldom referenced */ |
199 | unsigned int old_block_size; /* seldom referenced */ | 199 | unsigned int old_block_size; /* seldom referenced */ |
200 | #ifdef CONFIG_FRONTSWAP | ||
201 | unsigned long *frontswap_map; /* frontswap in-use, one bit per page */ | ||
202 | atomic_t frontswap_pages; /* frontswap pages in-use counter */ | ||
203 | #endif | ||
200 | }; | 204 | }; |
201 | 205 | ||
202 | struct swap_list_t { | 206 | struct swap_list_t { |
diff --git a/include/linux/swapfile.h b/include/linux/swapfile.h new file mode 100644 index 000000000000..e282624e8c10 --- /dev/null +++ b/include/linux/swapfile.h | |||
@@ -0,0 +1,13 @@ | |||
1 | #ifndef _LINUX_SWAPFILE_H | ||
2 | #define _LINUX_SWAPFILE_H | ||
3 | |||
4 | /* | ||
5 | * these were static in swapfile.c but frontswap.c needs them and we don't | ||
6 | * want to expose them to the dozens of source files that include swap.h | ||
7 | */ | ||
8 | extern spinlock_t swap_lock; | ||
9 | extern struct swap_list_t swap_list; | ||
10 | extern struct swap_info_struct *swap_info[]; | ||
11 | extern int try_to_unuse(unsigned int, bool, unsigned long); | ||
12 | |||
13 | #endif /* _LINUX_SWAPFILE_H */ | ||
diff --git a/include/linux/vga_switcheroo.h b/include/linux/vga_switcheroo.h index b455c7c212eb..60da41fe9dc2 100644 --- a/include/linux/vga_switcheroo.h +++ b/include/linux/vga_switcheroo.h | |||
@@ -12,6 +12,9 @@ | |||
12 | enum vga_switcheroo_state { | 12 | enum vga_switcheroo_state { |
13 | VGA_SWITCHEROO_OFF, | 13 | VGA_SWITCHEROO_OFF, |
14 | VGA_SWITCHEROO_ON, | 14 | VGA_SWITCHEROO_ON, |
15 | /* below are referred only from vga_switcheroo_get_client_state() */ | ||
16 | VGA_SWITCHEROO_INIT, | ||
17 | VGA_SWITCHEROO_NOT_FOUND, | ||
15 | }; | 18 | }; |
16 | 19 | ||
17 | enum vga_switcheroo_client_id { | 20 | enum vga_switcheroo_client_id { |
@@ -50,6 +53,8 @@ void vga_switcheroo_unregister_handler(void); | |||
50 | 53 | ||
51 | int vga_switcheroo_process_delayed_switch(void); | 54 | int vga_switcheroo_process_delayed_switch(void); |
52 | 55 | ||
56 | int vga_switcheroo_get_client_state(struct pci_dev *dev); | ||
57 | |||
53 | #else | 58 | #else |
54 | 59 | ||
55 | static inline void vga_switcheroo_unregister_client(struct pci_dev *dev) {} | 60 | static inline void vga_switcheroo_unregister_client(struct pci_dev *dev) {} |
@@ -62,5 +67,7 @@ static inline int vga_switcheroo_register_audio_client(struct pci_dev *pdev, | |||
62 | int id, bool active) { return 0; } | 67 | int id, bool active) { return 0; } |
63 | static inline void vga_switcheroo_unregister_handler(void) {} | 68 | static inline void vga_switcheroo_unregister_handler(void) {} |
64 | static inline int vga_switcheroo_process_delayed_switch(void) { return 0; } | 69 | static inline int vga_switcheroo_process_delayed_switch(void) { return 0; } |
70 | static inline int vga_switcheroo_get_client_state(struct pci_dev *dev) { return VGA_SWITCHEROO_ON; } | ||
71 | |||
65 | 72 | ||
66 | #endif | 73 | #endif |