diff options
| author | Takashi Iwai <tiwai@suse.de> | 2012-07-04 03:12:50 -0400 |
|---|---|---|
| committer | Takashi Iwai <tiwai@suse.de> | 2012-07-04 03:12:50 -0400 |
| commit | f68d891d85c8f9ab1af663ed3ceac18ad58dbabe (patch) | |
| tree | d92db7af512307ab5282eb62f3dd1741ac71d21f /include/linux | |
| parent | 5780b627e24113323427c102175296ae43dfb9d7 (diff) | |
| parent | 3fd877d32cac31292628fb8f443543fc1989b49b (diff) | |
Merge branch 'topic/hda-beep' into topic/hda
Diffstat (limited to 'include/linux')
34 files changed, 333 insertions, 77 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/compiler-gcc.h b/include/linux/compiler-gcc.h index e5834aa24b9e..6a6d7aefe12d 100644 --- a/include/linux/compiler-gcc.h +++ b/include/linux/compiler-gcc.h | |||
| @@ -47,9 +47,9 @@ | |||
| 47 | */ | 47 | */ |
| 48 | #if !defined(CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING) || \ | 48 | #if !defined(CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING) || \ |
| 49 | !defined(CONFIG_OPTIMIZE_INLINING) || (__GNUC__ < 4) | 49 | !defined(CONFIG_OPTIMIZE_INLINING) || (__GNUC__ < 4) |
| 50 | # define inline inline __attribute__((always_inline)) | 50 | # define inline inline __attribute__((always_inline)) notrace |
| 51 | # define __inline__ __inline__ __attribute__((always_inline)) | 51 | # define __inline__ __inline__ __attribute__((always_inline)) notrace |
| 52 | # define __inline __inline __attribute__((always_inline)) | 52 | # define __inline __inline __attribute__((always_inline)) notrace |
| 53 | #else | 53 | #else |
| 54 | /* A lot of inline functions can cause havoc with function tracing */ | 54 | /* A lot of inline functions can cause havoc with function tracing */ |
| 55 | # define inline inline notrace | 55 | # define inline inline notrace |
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/irq.h b/include/linux/irq.h index 61f5cec031e0..a5261e3d2e3c 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h | |||
| @@ -301,8 +301,6 @@ static inline irq_hw_number_t irqd_to_hwirq(struct irq_data *d) | |||
| 301 | * @irq_pm_shutdown: function called from core code on shutdown once per chip | 301 | * @irq_pm_shutdown: function called from core code on shutdown once per chip |
| 302 | * @irq_print_chip: optional to print special chip info in show_interrupts | 302 | * @irq_print_chip: optional to print special chip info in show_interrupts |
| 303 | * @flags: chip specific flags | 303 | * @flags: chip specific flags |
| 304 | * | ||
| 305 | * @release: release function solely used by UML | ||
| 306 | */ | 304 | */ |
| 307 | struct irq_chip { | 305 | struct irq_chip { |
| 308 | const char *name; | 306 | const char *name; |
diff --git a/include/linux/kmsg_dump.h b/include/linux/kmsg_dump.h index 35f7237ec972..d6bd50110ec2 100644 --- a/include/linux/kmsg_dump.h +++ b/include/linux/kmsg_dump.h | |||
| @@ -21,6 +21,7 @@ | |||
| 21 | * is passed to the kernel. | 21 | * is passed to the kernel. |
| 22 | */ | 22 | */ |
| 23 | enum kmsg_dump_reason { | 23 | enum kmsg_dump_reason { |
| 24 | KMSG_DUMP_UNDEF, | ||
| 24 | KMSG_DUMP_PANIC, | 25 | KMSG_DUMP_PANIC, |
| 25 | KMSG_DUMP_OOPS, | 26 | KMSG_DUMP_OOPS, |
| 26 | KMSG_DUMP_EMERG, | 27 | KMSG_DUMP_EMERG, |
| @@ -31,23 +32,37 @@ enum kmsg_dump_reason { | |||
| 31 | 32 | ||
| 32 | /** | 33 | /** |
| 33 | * struct kmsg_dumper - kernel crash message dumper structure | 34 | * struct kmsg_dumper - kernel crash message dumper structure |
| 34 | * @dump: The callback which gets called on crashes. The buffer is passed | ||
| 35 | * as two sections, where s1 (length l1) contains the older | ||
| 36 | * messages and s2 (length l2) contains the newer. | ||
| 37 | * @list: Entry in the dumper list (private) | 35 | * @list: Entry in the dumper list (private) |
| 36 | * @dump: Call into dumping code which will retrieve the data with | ||
| 37 | * through the record iterator | ||
| 38 | * @max_reason: filter for highest reason number that should be dumped | ||
| 38 | * @registered: Flag that specifies if this is already registered | 39 | * @registered: Flag that specifies if this is already registered |
| 39 | */ | 40 | */ |
| 40 | struct kmsg_dumper { | 41 | struct kmsg_dumper { |
| 41 | void (*dump)(struct kmsg_dumper *dumper, enum kmsg_dump_reason reason, | ||
| 42 | const char *s1, unsigned long l1, | ||
| 43 | const char *s2, unsigned long l2); | ||
| 44 | struct list_head list; | 42 | struct list_head list; |
| 45 | int registered; | 43 | void (*dump)(struct kmsg_dumper *dumper, enum kmsg_dump_reason reason); |
| 44 | enum kmsg_dump_reason max_reason; | ||
| 45 | bool active; | ||
| 46 | bool registered; | ||
| 47 | |||
| 48 | /* private state of the kmsg iterator */ | ||
| 49 | u32 cur_idx; | ||
| 50 | u32 next_idx; | ||
| 51 | u64 cur_seq; | ||
| 52 | u64 next_seq; | ||
| 46 | }; | 53 | }; |
| 47 | 54 | ||
| 48 | #ifdef CONFIG_PRINTK | 55 | #ifdef CONFIG_PRINTK |
| 49 | void kmsg_dump(enum kmsg_dump_reason reason); | 56 | void kmsg_dump(enum kmsg_dump_reason reason); |
| 50 | 57 | ||
| 58 | bool kmsg_dump_get_line(struct kmsg_dumper *dumper, bool syslog, | ||
| 59 | char *line, size_t size, size_t *len); | ||
| 60 | |||
| 61 | bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, | ||
| 62 | char *buf, size_t size, size_t *len); | ||
| 63 | |||
| 64 | void kmsg_dump_rewind(struct kmsg_dumper *dumper); | ||
| 65 | |||
| 51 | int kmsg_dump_register(struct kmsg_dumper *dumper); | 66 | int kmsg_dump_register(struct kmsg_dumper *dumper); |
| 52 | 67 | ||
| 53 | int kmsg_dump_unregister(struct kmsg_dumper *dumper); | 68 | int kmsg_dump_unregister(struct kmsg_dumper *dumper); |
| @@ -56,6 +71,22 @@ static inline void kmsg_dump(enum kmsg_dump_reason reason) | |||
| 56 | { | 71 | { |
| 57 | } | 72 | } |
| 58 | 73 | ||
| 74 | static inline bool kmsg_dump_get_line(struct kmsg_dumper *dumper, bool syslog, | ||
| 75 | const char *line, size_t size, size_t *len) | ||
| 76 | { | ||
| 77 | return false; | ||
| 78 | } | ||
| 79 | |||
| 80 | static inline bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, | ||
| 81 | char *buf, size_t size, size_t *len) | ||
| 82 | { | ||
| 83 | return false; | ||
| 84 | } | ||
| 85 | |||
| 86 | static inline void kmsg_dump_rewind(struct kmsg_dumper *dumper) | ||
| 87 | { | ||
| 88 | } | ||
| 89 | |||
| 59 | static inline int kmsg_dump_register(struct kmsg_dumper *dumper) | 90 | static inline int kmsg_dump_register(struct kmsg_dumper *dumper) |
| 60 | { | 91 | { |
| 61 | return -EINVAL; | 92 | return -EINVAL; |
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index dad95bdd06d7..704a626d94a0 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h | |||
| @@ -57,8 +57,18 @@ struct page { | |||
| 57 | }; | 57 | }; |
| 58 | 58 | ||
| 59 | union { | 59 | union { |
| 60 | #if defined(CONFIG_HAVE_CMPXCHG_DOUBLE) && \ | ||
| 61 | defined(CONFIG_HAVE_ALIGNED_STRUCT_PAGE) | ||
| 60 | /* Used for cmpxchg_double in slub */ | 62 | /* Used for cmpxchg_double in slub */ |
| 61 | unsigned long counters; | 63 | unsigned long counters; |
| 64 | #else | ||
| 65 | /* | ||
| 66 | * Keep _count separate from slub cmpxchg_double data. | ||
| 67 | * As the rest of the double word is protected by | ||
| 68 | * slab_lock but _count is not. | ||
| 69 | */ | ||
| 70 | unsigned counters; | ||
| 71 | #endif | ||
| 62 | 72 | ||
| 63 | struct { | 73 | struct { |
| 64 | 74 | ||
diff --git a/include/linux/mmc/sdhci-spear.h b/include/linux/mmc/sdhci-spear.h index 5cdc96da9dd5..e78c0e236e9d 100644 --- a/include/linux/mmc/sdhci-spear.h +++ b/include/linux/mmc/sdhci-spear.h | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | * SDHCI declarations specific to ST SPEAr platform | 4 | * SDHCI declarations specific to ST SPEAr platform |
| 5 | * | 5 | * |
| 6 | * Copyright (C) 2010 ST Microelectronics | 6 | * Copyright (C) 2010 ST Microelectronics |
| 7 | * Viresh Kumar<viresh.kumar@st.com> | 7 | * Viresh Kumar <viresh.linux@gmail.com> |
| 8 | * | 8 | * |
| 9 | * This file is licensed under the terms of the GNU General Public | 9 | * This file is licensed under the terms of the GNU General Public |
| 10 | * License version 2. This program is licensed "as is" without any | 10 | * License version 2. This program is licensed "as is" without any |
diff --git a/include/linux/mmc/sdio.h b/include/linux/mmc/sdio.h index c9fe66c58f8f..17446d3c3602 100644 --- a/include/linux/mmc/sdio.h +++ b/include/linux/mmc/sdio.h | |||
| @@ -98,7 +98,9 @@ | |||
| 98 | 98 | ||
| 99 | #define SDIO_CCCR_IF 0x07 /* bus interface controls */ | 99 | #define SDIO_CCCR_IF 0x07 /* bus interface controls */ |
| 100 | 100 | ||
| 101 | #define SDIO_BUS_WIDTH_MASK 0x03 /* data bus width setting */ | ||
| 101 | #define SDIO_BUS_WIDTH_1BIT 0x00 | 102 | #define SDIO_BUS_WIDTH_1BIT 0x00 |
| 103 | #define SDIO_BUS_WIDTH_RESERVED 0x01 | ||
| 102 | #define SDIO_BUS_WIDTH_4BIT 0x02 | 104 | #define SDIO_BUS_WIDTH_4BIT 0x02 |
| 103 | #define SDIO_BUS_ECSI 0x20 /* Enable continuous SPI interrupt */ | 105 | #define SDIO_BUS_ECSI 0x20 /* Enable continuous SPI interrupt */ |
| 104 | #define SDIO_BUS_SCSI 0x40 /* Support continuous SPI interrupt */ | 106 | #define SDIO_BUS_SCSI 0x40 /* Support continuous SPI interrupt */ |
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/netfilter/xt_HMARK.h b/include/linux/netfilter/xt_HMARK.h index abb1650940d2..826fc5807577 100644 --- a/include/linux/netfilter/xt_HMARK.h +++ b/include/linux/netfilter/xt_HMARK.h | |||
| @@ -27,7 +27,12 @@ union hmark_ports { | |||
| 27 | __u16 src; | 27 | __u16 src; |
| 28 | __u16 dst; | 28 | __u16 dst; |
| 29 | } p16; | 29 | } p16; |
| 30 | struct { | ||
| 31 | __be16 src; | ||
| 32 | __be16 dst; | ||
| 33 | } b16; | ||
| 30 | __u32 v32; | 34 | __u32 v32; |
| 35 | __be32 b32; | ||
| 31 | }; | 36 | }; |
| 32 | 37 | ||
| 33 | struct xt_hmark_info { | 38 | struct xt_hmark_info { |
diff --git a/include/linux/nfs_fs_sb.h b/include/linux/nfs_fs_sb.h index fbb78fb09bd2..f58325a1d8fb 100644 --- a/include/linux/nfs_fs_sb.h +++ b/include/linux/nfs_fs_sb.h | |||
| @@ -25,6 +25,7 @@ struct nfs41_impl_id; | |||
| 25 | */ | 25 | */ |
| 26 | struct nfs_client { | 26 | struct nfs_client { |
| 27 | atomic_t cl_count; | 27 | atomic_t cl_count; |
| 28 | atomic_t cl_mds_count; | ||
| 28 | int cl_cons_state; /* current construction state (-ve: init error) */ | 29 | int cl_cons_state; /* current construction state (-ve: init error) */ |
| 29 | #define NFS_CS_READY 0 /* ready to be used */ | 30 | #define NFS_CS_READY 0 /* ready to be used */ |
| 30 | #define NFS_CS_INITING 1 /* busy initialising */ | 31 | #define NFS_CS_INITING 1 /* busy initialising */ |
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h index d1a7bf51c326..8aadd90b808a 100644 --- a/include/linux/nfs_xdr.h +++ b/include/linux/nfs_xdr.h | |||
| @@ -348,6 +348,7 @@ struct nfs_openargs { | |||
| 348 | const struct qstr * name; | 348 | const struct qstr * name; |
| 349 | const struct nfs_server *server; /* Needed for ID mapping */ | 349 | const struct nfs_server *server; /* Needed for ID mapping */ |
| 350 | const u32 * bitmask; | 350 | const u32 * bitmask; |
| 351 | const u32 * open_bitmap; | ||
| 351 | __u32 claim; | 352 | __u32 claim; |
| 352 | struct nfs4_sequence_args seq_args; | 353 | struct nfs4_sequence_args seq_args; |
| 353 | }; | 354 | }; |
| @@ -1236,6 +1237,7 @@ struct nfs_pgio_header { | |||
| 1236 | struct list_head rpc_list; | 1237 | struct list_head rpc_list; |
| 1237 | atomic_t refcnt; | 1238 | atomic_t refcnt; |
| 1238 | struct nfs_page *req; | 1239 | struct nfs_page *req; |
| 1240 | struct nfs_writeverf *verf; | ||
| 1239 | struct pnfs_layout_segment *lseg; | 1241 | struct pnfs_layout_segment *lseg; |
| 1240 | loff_t io_start; | 1242 | loff_t io_start; |
| 1241 | const struct rpc_call_ops *mds_ops; | 1243 | const struct rpc_call_ops *mds_ops; |
| @@ -1273,6 +1275,7 @@ struct nfs_write_data { | |||
| 1273 | struct nfs_write_header { | 1275 | struct nfs_write_header { |
| 1274 | struct nfs_pgio_header header; | 1276 | struct nfs_pgio_header header; |
| 1275 | struct nfs_write_data rpc_data; | 1277 | struct nfs_write_data rpc_data; |
| 1278 | struct nfs_writeverf verf; | ||
| 1276 | }; | 1279 | }; |
| 1277 | 1280 | ||
| 1278 | struct nfs_mds_commit_info { | 1281 | struct nfs_mds_commit_info { |
diff --git a/include/linux/pata_arasan_cf_data.h b/include/linux/pata_arasan_cf_data.h index a6ee9aa898bb..a7b4fc386e63 100644 --- a/include/linux/pata_arasan_cf_data.h +++ b/include/linux/pata_arasan_cf_data.h | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | * Arasan Compact Flash host controller platform data header file | 4 | * Arasan Compact Flash host controller platform data header file |
| 5 | * | 5 | * |
| 6 | * Copyright (C) 2011 ST Microelectronics | 6 | * Copyright (C) 2011 ST Microelectronics |
| 7 | * Viresh Kumar <viresh.kumar@st.com> | 7 | * Viresh Kumar <viresh.linux@gmail.com> |
| 8 | * | 8 | * |
| 9 | * This file is licensed under the terms of the GNU General Public | 9 | * This file is licensed under the terms of the GNU General Public |
| 10 | * License version 2. This program is licensed "as is" without any | 10 | * License version 2. This program is licensed "as is" without any |
diff --git a/include/linux/pci.h b/include/linux/pci.h index d8c379dba6ad..fefb4e19bf6a 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
| @@ -176,6 +176,8 @@ enum pci_dev_flags { | |||
| 176 | PCI_DEV_FLAGS_NO_D3 = (__force pci_dev_flags_t) 2, | 176 | PCI_DEV_FLAGS_NO_D3 = (__force pci_dev_flags_t) 2, |
| 177 | /* Provide indication device is assigned by a Virtual Machine Manager */ | 177 | /* Provide indication device is assigned by a Virtual Machine Manager */ |
| 178 | PCI_DEV_FLAGS_ASSIGNED = (__force pci_dev_flags_t) 4, | 178 | PCI_DEV_FLAGS_ASSIGNED = (__force pci_dev_flags_t) 4, |
| 179 | /* Device causes system crash if in D3 during S3 sleep */ | ||
| 180 | PCI_DEV_FLAGS_NO_D3_DURING_SLEEP = (__force pci_dev_flags_t) 8, | ||
| 179 | }; | 181 | }; |
| 180 | 182 | ||
| 181 | enum pci_irq_reroute_variant { | 183 | enum pci_irq_reroute_variant { |
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/pstore_ram.h b/include/linux/pstore_ram.h index 7ed7fd4dba49..3b823d49a85a 100644 --- a/include/linux/pstore_ram.h +++ b/include/linux/pstore_ram.h | |||
| @@ -69,12 +69,14 @@ struct persistent_ram_zone * __init persistent_ram_new(phys_addr_t start, | |||
| 69 | size_t size, | 69 | size_t size, |
| 70 | bool ecc); | 70 | bool ecc); |
| 71 | void persistent_ram_free(struct persistent_ram_zone *prz); | 71 | void persistent_ram_free(struct persistent_ram_zone *prz); |
| 72 | void persistent_ram_zap(struct persistent_ram_zone *prz); | ||
| 72 | struct persistent_ram_zone *persistent_ram_init_ringbuffer(struct device *dev, | 73 | struct persistent_ram_zone *persistent_ram_init_ringbuffer(struct device *dev, |
| 73 | bool ecc); | 74 | bool ecc); |
| 74 | 75 | ||
| 75 | int persistent_ram_write(struct persistent_ram_zone *prz, const void *s, | 76 | int persistent_ram_write(struct persistent_ram_zone *prz, const void *s, |
| 76 | unsigned int count); | 77 | unsigned int count); |
| 77 | 78 | ||
| 79 | void persistent_ram_save_old(struct persistent_ram_zone *prz); | ||
| 78 | size_t persistent_ram_old_size(struct persistent_ram_zone *prz); | 80 | size_t persistent_ram_old_size(struct persistent_ram_zone *prz); |
| 79 | void *persistent_ram_old(struct persistent_ram_zone *prz); | 81 | void *persistent_ram_old(struct persistent_ram_zone *prz); |
| 80 | void persistent_ram_free_old(struct persistent_ram_zone *prz); | 82 | void persistent_ram_free_old(struct persistent_ram_zone *prz); |
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/rcutiny.h b/include/linux/rcutiny.h index adb5e5a38cae..854dc4c5c271 100644 --- a/include/linux/rcutiny.h +++ b/include/linux/rcutiny.h | |||
| @@ -87,8 +87,9 @@ static inline void kfree_call_rcu(struct rcu_head *head, | |||
| 87 | 87 | ||
| 88 | #ifdef CONFIG_TINY_RCU | 88 | #ifdef CONFIG_TINY_RCU |
| 89 | 89 | ||
| 90 | static inline int rcu_needs_cpu(int cpu) | 90 | static inline int rcu_needs_cpu(int cpu, unsigned long *delta_jiffies) |
| 91 | { | 91 | { |
| 92 | *delta_jiffies = ULONG_MAX; | ||
| 92 | return 0; | 93 | return 0; |
| 93 | } | 94 | } |
| 94 | 95 | ||
| @@ -96,8 +97,9 @@ static inline int rcu_needs_cpu(int cpu) | |||
| 96 | 97 | ||
| 97 | int rcu_preempt_needs_cpu(void); | 98 | int rcu_preempt_needs_cpu(void); |
| 98 | 99 | ||
| 99 | static inline int rcu_needs_cpu(int cpu) | 100 | static inline int rcu_needs_cpu(int cpu, unsigned long *delta_jiffies) |
| 100 | { | 101 | { |
| 102 | *delta_jiffies = ULONG_MAX; | ||
| 101 | return rcu_preempt_needs_cpu(); | 103 | return rcu_preempt_needs_cpu(); |
| 102 | } | 104 | } |
| 103 | 105 | ||
diff --git a/include/linux/rcutree.h b/include/linux/rcutree.h index 3c6083cde4fc..952b79339304 100644 --- a/include/linux/rcutree.h +++ b/include/linux/rcutree.h | |||
| @@ -32,7 +32,7 @@ | |||
| 32 | 32 | ||
| 33 | extern void rcu_init(void); | 33 | extern void rcu_init(void); |
| 34 | extern void rcu_note_context_switch(int cpu); | 34 | extern void rcu_note_context_switch(int cpu); |
| 35 | extern int rcu_needs_cpu(int cpu); | 35 | extern int rcu_needs_cpu(int cpu, unsigned long *delta_jiffies); |
| 36 | extern void rcu_cpu_stall_reset(void); | 36 | extern void rcu_cpu_stall_reset(void); |
| 37 | 37 | ||
| 38 | /* | 38 | /* |
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/swapops.h b/include/linux/swapops.h index 792d16d9cbc7..47ead515c811 100644 --- a/include/linux/swapops.h +++ b/include/linux/swapops.h | |||
| @@ -9,13 +9,15 @@ | |||
| 9 | * get good packing density in that tree, so the index should be dense in | 9 | * get good packing density in that tree, so the index should be dense in |
| 10 | * the low-order bits. | 10 | * the low-order bits. |
| 11 | * | 11 | * |
| 12 | * We arrange the `type' and `offset' fields so that `type' is at the five | 12 | * We arrange the `type' and `offset' fields so that `type' is at the seven |
| 13 | * high-order bits of the swp_entry_t and `offset' is right-aligned in the | 13 | * high-order bits of the swp_entry_t and `offset' is right-aligned in the |
| 14 | * remaining bits. | 14 | * remaining bits. Although `type' itself needs only five bits, we allow for |
| 15 | * shmem/tmpfs to shift it all up a further two bits: see swp_to_radix_entry(). | ||
| 15 | * | 16 | * |
| 16 | * swp_entry_t's are *never* stored anywhere in their arch-dependent format. | 17 | * swp_entry_t's are *never* stored anywhere in their arch-dependent format. |
| 17 | */ | 18 | */ |
| 18 | #define SWP_TYPE_SHIFT(e) (sizeof(e.val) * 8 - MAX_SWAPFILES_SHIFT) | 19 | #define SWP_TYPE_SHIFT(e) ((sizeof(e.val) * 8) - \ |
| 20 | (MAX_SWAPFILES_SHIFT + RADIX_TREE_EXCEPTIONAL_SHIFT)) | ||
| 19 | #define SWP_OFFSET_MASK(e) ((1UL << SWP_TYPE_SHIFT(e)) - 1) | 21 | #define SWP_OFFSET_MASK(e) ((1UL << SWP_TYPE_SHIFT(e)) - 1) |
| 20 | 22 | ||
| 21 | /* | 23 | /* |
diff --git a/include/linux/tcp.h b/include/linux/tcp.h index 4c5b63283377..5f359dbfcdce 100644 --- a/include/linux/tcp.h +++ b/include/linux/tcp.h | |||
| @@ -69,16 +69,16 @@ union tcp_word_hdr { | |||
| 69 | #define tcp_flag_word(tp) ( ((union tcp_word_hdr *)(tp))->words [3]) | 69 | #define tcp_flag_word(tp) ( ((union tcp_word_hdr *)(tp))->words [3]) |
| 70 | 70 | ||
| 71 | enum { | 71 | enum { |
| 72 | TCP_FLAG_CWR = __cpu_to_be32(0x00800000), | 72 | TCP_FLAG_CWR = __constant_cpu_to_be32(0x00800000), |
| 73 | TCP_FLAG_ECE = __cpu_to_be32(0x00400000), | 73 | TCP_FLAG_ECE = __constant_cpu_to_be32(0x00400000), |
| 74 | TCP_FLAG_URG = __cpu_to_be32(0x00200000), | 74 | TCP_FLAG_URG = __constant_cpu_to_be32(0x00200000), |
| 75 | TCP_FLAG_ACK = __cpu_to_be32(0x00100000), | 75 | TCP_FLAG_ACK = __constant_cpu_to_be32(0x00100000), |
| 76 | TCP_FLAG_PSH = __cpu_to_be32(0x00080000), | 76 | TCP_FLAG_PSH = __constant_cpu_to_be32(0x00080000), |
| 77 | TCP_FLAG_RST = __cpu_to_be32(0x00040000), | 77 | TCP_FLAG_RST = __constant_cpu_to_be32(0x00040000), |
| 78 | TCP_FLAG_SYN = __cpu_to_be32(0x00020000), | 78 | TCP_FLAG_SYN = __constant_cpu_to_be32(0x00020000), |
| 79 | TCP_FLAG_FIN = __cpu_to_be32(0x00010000), | 79 | TCP_FLAG_FIN = __constant_cpu_to_be32(0x00010000), |
| 80 | TCP_RESERVED_BITS = __cpu_to_be32(0x0F000000), | 80 | TCP_RESERVED_BITS = __constant_cpu_to_be32(0x0F000000), |
| 81 | TCP_DATA_OFFSET = __cpu_to_be32(0xF0000000) | 81 | TCP_DATA_OFFSET = __constant_cpu_to_be32(0xF0000000) |
| 82 | }; | 82 | }; |
| 83 | 83 | ||
| 84 | /* | 84 | /* |
diff --git a/include/linux/usb/hcd.h b/include/linux/usb/hcd.h index 7f855d50cdf5..49b3ac29726a 100644 --- a/include/linux/usb/hcd.h +++ b/include/linux/usb/hcd.h | |||
| @@ -126,8 +126,6 @@ struct usb_hcd { | |||
| 126 | unsigned wireless:1; /* Wireless USB HCD */ | 126 | unsigned wireless:1; /* Wireless USB HCD */ |
| 127 | unsigned authorized_default:1; | 127 | unsigned authorized_default:1; |
| 128 | unsigned has_tt:1; /* Integrated TT in root hub */ | 128 | unsigned has_tt:1; /* Integrated TT in root hub */ |
| 129 | unsigned broken_pci_sleep:1; /* Don't put the | ||
| 130 | controller in PCI-D3 for system sleep */ | ||
| 131 | 129 | ||
| 132 | unsigned int irq; /* irq allocated */ | 130 | unsigned int irq; /* irq allocated */ |
| 133 | void __iomem *regs; /* device memory/io */ | 131 | void __iomem *regs; /* device memory/io */ |
diff --git a/include/linux/vga_switcheroo.h b/include/linux/vga_switcheroo.h index 60da41fe9dc2..ddb419cf4530 100644 --- a/include/linux/vga_switcheroo.h +++ b/include/linux/vga_switcheroo.h | |||
| @@ -7,8 +7,13 @@ | |||
| 7 | * vga_switcheroo.h - Support for laptop with dual GPU using one set of outputs | 7 | * vga_switcheroo.h - Support for laptop with dual GPU using one set of outputs |
| 8 | */ | 8 | */ |
| 9 | 9 | ||
| 10 | #ifndef _LINUX_VGA_SWITCHEROO_H_ | ||
| 11 | #define _LINUX_VGA_SWITCHEROO_H_ | ||
| 12 | |||
| 10 | #include <linux/fb.h> | 13 | #include <linux/fb.h> |
| 11 | 14 | ||
| 15 | struct pci_dev; | ||
| 16 | |||
| 12 | enum vga_switcheroo_state { | 17 | enum vga_switcheroo_state { |
| 13 | VGA_SWITCHEROO_OFF, | 18 | VGA_SWITCHEROO_OFF, |
| 14 | VGA_SWITCHEROO_ON, | 19 | VGA_SWITCHEROO_ON, |
| @@ -71,3 +76,4 @@ static inline int vga_switcheroo_get_client_state(struct pci_dev *dev) { return | |||
| 71 | 76 | ||
| 72 | 77 | ||
| 73 | #endif | 78 | #endif |
| 79 | #endif /* _LINUX_VGA_SWITCHEROO_H_ */ | ||
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h index 370d11106c11..2039c5d3292e 100644 --- a/include/linux/videodev2.h +++ b/include/linux/videodev2.h | |||
| @@ -2640,9 +2640,9 @@ struct v4l2_create_buffers { | |||
| 2640 | 2640 | ||
| 2641 | /* Experimental, these three ioctls may change over the next couple of kernel | 2641 | /* Experimental, these three ioctls may change over the next couple of kernel |
| 2642 | versions. */ | 2642 | versions. */ |
| 2643 | #define VIDIOC_ENUM_DV_TIMINGS _IOWR('V', 96, struct v4l2_enum_dv_timings) | 2643 | #define VIDIOC_ENUM_DV_TIMINGS _IOWR('V', 98, struct v4l2_enum_dv_timings) |
| 2644 | #define VIDIOC_QUERY_DV_TIMINGS _IOR('V', 97, struct v4l2_dv_timings) | 2644 | #define VIDIOC_QUERY_DV_TIMINGS _IOR('V', 99, struct v4l2_dv_timings) |
| 2645 | #define VIDIOC_DV_TIMINGS_CAP _IOWR('V', 98, struct v4l2_dv_timings_cap) | 2645 | #define VIDIOC_DV_TIMINGS_CAP _IOWR('V', 100, struct v4l2_dv_timings_cap) |
| 2646 | 2646 | ||
| 2647 | /* Reminder: when adding new ioctls please add support for them to | 2647 | /* Reminder: when adding new ioctls please add support for them to |
| 2648 | drivers/media/video/v4l2-compat-ioctl32.c as well! */ | 2648 | drivers/media/video/v4l2-compat-ioctl32.c as well! */ |
