diff options
Diffstat (limited to 'include/linux')
48 files changed, 404 insertions, 93 deletions
diff --git a/include/linux/aio.h b/include/linux/aio.h index 2314ad8b3c9c..b1a520ec8b59 100644 --- a/include/linux/aio.h +++ b/include/linux/aio.h | |||
| @@ -140,6 +140,7 @@ struct kiocb { | |||
| 140 | (x)->ki_dtor = NULL; \ | 140 | (x)->ki_dtor = NULL; \ |
| 141 | (x)->ki_obj.tsk = tsk; \ | 141 | (x)->ki_obj.tsk = tsk; \ |
| 142 | (x)->ki_user_data = 0; \ | 142 | (x)->ki_user_data = 0; \ |
| 143 | (x)->private = NULL; \ | ||
| 143 | } while (0) | 144 | } while (0) |
| 144 | 145 | ||
| 145 | #define AIO_RING_MAGIC 0xa10a10a1 | 146 | #define AIO_RING_MAGIC 0xa10a10a1 |
diff --git a/include/linux/bootmem.h b/include/linux/bootmem.h index 324fe08ea3b1..6d6795d46a75 100644 --- a/include/linux/bootmem.h +++ b/include/linux/bootmem.h | |||
| @@ -91,6 +91,11 @@ extern void *__alloc_bootmem_node_nopanic(pg_data_t *pgdat, | |||
| 91 | unsigned long size, | 91 | unsigned long size, |
| 92 | unsigned long align, | 92 | unsigned long align, |
| 93 | unsigned long goal); | 93 | unsigned long goal); |
| 94 | void *___alloc_bootmem_node_nopanic(pg_data_t *pgdat, | ||
| 95 | unsigned long size, | ||
| 96 | unsigned long align, | ||
| 97 | unsigned long goal, | ||
| 98 | unsigned long limit); | ||
| 94 | extern void *__alloc_bootmem_low(unsigned long size, | 99 | extern void *__alloc_bootmem_low(unsigned long size, |
| 95 | unsigned long align, | 100 | unsigned long align, |
| 96 | unsigned long goal); | 101 | unsigned long goal); |
diff --git a/include/linux/capability.h b/include/linux/capability.h index 68d56effc328..d10b7ed595b1 100644 --- a/include/linux/capability.h +++ b/include/linux/capability.h | |||
| @@ -360,11 +360,11 @@ struct cpu_vfs_cap_data { | |||
| 360 | 360 | ||
| 361 | #define CAP_WAKE_ALARM 35 | 361 | #define CAP_WAKE_ALARM 35 |
| 362 | 362 | ||
| 363 | /* Allow preventing system suspends while epoll events are pending */ | 363 | /* Allow preventing system suspends */ |
| 364 | 364 | ||
| 365 | #define CAP_EPOLLWAKEUP 36 | 365 | #define CAP_BLOCK_SUSPEND 36 |
| 366 | 366 | ||
| 367 | #define CAP_LAST_CAP CAP_EPOLLWAKEUP | 367 | #define CAP_LAST_CAP CAP_BLOCK_SUSPEND |
| 368 | 368 | ||
| 369 | #define cap_valid(x) ((x) >= 0 && (x) <= CAP_LAST_CAP) | 369 | #define cap_valid(x) ((x) >= 0 && (x) <= CAP_LAST_CAP) |
| 370 | 370 | ||
diff --git a/include/linux/ceph/messenger.h b/include/linux/ceph/messenger.h index 2521a95fa6d9..44c87e731e9d 100644 --- a/include/linux/ceph/messenger.h +++ b/include/linux/ceph/messenger.h | |||
| @@ -163,16 +163,8 @@ struct ceph_connection { | |||
| 163 | 163 | ||
| 164 | /* connection negotiation temps */ | 164 | /* connection negotiation temps */ |
| 165 | char in_banner[CEPH_BANNER_MAX_LEN]; | 165 | char in_banner[CEPH_BANNER_MAX_LEN]; |
| 166 | union { | 166 | struct ceph_msg_connect out_connect; |
| 167 | struct { /* outgoing connection */ | 167 | struct ceph_msg_connect_reply in_reply; |
| 168 | struct ceph_msg_connect out_connect; | ||
| 169 | struct ceph_msg_connect_reply in_reply; | ||
| 170 | }; | ||
| 171 | struct { /* incoming */ | ||
| 172 | struct ceph_msg_connect in_connect; | ||
| 173 | struct ceph_msg_connect_reply out_reply; | ||
| 174 | }; | ||
| 175 | }; | ||
| 176 | struct ceph_entity_addr actual_peer_addr; | 168 | struct ceph_entity_addr actual_peer_addr; |
| 177 | 169 | ||
| 178 | /* message out temps */ | 170 | /* message out temps */ |
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/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/device.h b/include/linux/device.h index 161d96241b1b..6de94151ff6f 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
| @@ -865,8 +865,6 @@ extern int (*platform_notify_remove)(struct device *dev); | |||
| 865 | extern struct device *get_device(struct device *dev); | 865 | extern struct device *get_device(struct device *dev); |
| 866 | extern void put_device(struct device *dev); | 866 | extern void put_device(struct device *dev); |
| 867 | 867 | ||
| 868 | extern void wait_for_device_probe(void); | ||
| 869 | |||
| 870 | #ifdef CONFIG_DEVTMPFS | 868 | #ifdef CONFIG_DEVTMPFS |
| 871 | extern int devtmpfs_create_node(struct device *dev); | 869 | extern int devtmpfs_create_node(struct device *dev); |
| 872 | extern int devtmpfs_delete_node(struct device *dev); | 870 | extern int devtmpfs_delete_node(struct device *dev); |
diff --git a/include/linux/eventpoll.h b/include/linux/eventpoll.h index 6f8be328770a..f4bb378ccf6a 100644 --- a/include/linux/eventpoll.h +++ b/include/linux/eventpoll.h | |||
| @@ -34,7 +34,7 @@ | |||
| 34 | * re-allowed until epoll_wait is called again after consuming the wakeup | 34 | * re-allowed until epoll_wait is called again after consuming the wakeup |
| 35 | * event(s). | 35 | * event(s). |
| 36 | * | 36 | * |
| 37 | * Requires CAP_EPOLLWAKEUP | 37 | * Requires CAP_BLOCK_SUSPEND |
| 38 | */ | 38 | */ |
| 39 | #define EPOLLWAKEUP (1 << 29) | 39 | #define EPOLLWAKEUP (1 << 29) |
| 40 | 40 | ||
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/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/gpio.h b/include/linux/gpio.h index f07fc2d08159..2e31e8b3a190 100644 --- a/include/linux/gpio.h +++ b/include/linux/gpio.h | |||
| @@ -22,8 +22,8 @@ | |||
| 22 | /* Gpio pin is open source */ | 22 | /* Gpio pin is open source */ |
| 23 | #define GPIOF_OPEN_SOURCE (1 << 3) | 23 | #define GPIOF_OPEN_SOURCE (1 << 3) |
| 24 | 24 | ||
| 25 | #define GPIOF_EXPORT (1 << 2) | 25 | #define GPIOF_EXPORT (1 << 4) |
| 26 | #define GPIOF_EXPORT_CHANGEABLE (1 << 3) | 26 | #define GPIOF_EXPORT_CHANGEABLE (1 << 5) |
| 27 | #define GPIOF_EXPORT_DIR_FIXED (GPIOF_EXPORT) | 27 | #define GPIOF_EXPORT_DIR_FIXED (GPIOF_EXPORT) |
| 28 | #define GPIOF_EXPORT_DIR_CHANGEABLE (GPIOF_EXPORT | GPIOF_EXPORT_CHANGEABLE) | 28 | #define GPIOF_EXPORT_DIR_CHANGEABLE (GPIOF_EXPORT | GPIOF_EXPORT_CHANGEABLE) |
| 29 | 29 | ||
diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h index fd0dc30c9f15..cc07d2777bbe 100644 --- a/include/linux/hrtimer.h +++ b/include/linux/hrtimer.h | |||
| @@ -165,6 +165,7 @@ enum hrtimer_base_type { | |||
| 165 | * @lock: lock protecting the base and associated clock bases | 165 | * @lock: lock protecting the base and associated clock bases |
| 166 | * and timers | 166 | * and timers |
| 167 | * @active_bases: Bitfield to mark bases with active timers | 167 | * @active_bases: Bitfield to mark bases with active timers |
| 168 | * @clock_was_set: Indicates that clock was set from irq context. | ||
| 168 | * @expires_next: absolute time of the next event which was scheduled | 169 | * @expires_next: absolute time of the next event which was scheduled |
| 169 | * via clock_set_next_event() | 170 | * via clock_set_next_event() |
| 170 | * @hres_active: State of high resolution mode | 171 | * @hres_active: State of high resolution mode |
| @@ -177,7 +178,8 @@ enum hrtimer_base_type { | |||
| 177 | */ | 178 | */ |
| 178 | struct hrtimer_cpu_base { | 179 | struct hrtimer_cpu_base { |
| 179 | raw_spinlock_t lock; | 180 | raw_spinlock_t lock; |
| 180 | unsigned long active_bases; | 181 | unsigned int active_bases; |
| 182 | unsigned int clock_was_set; | ||
| 181 | #ifdef CONFIG_HIGH_RES_TIMERS | 183 | #ifdef CONFIG_HIGH_RES_TIMERS |
| 182 | ktime_t expires_next; | 184 | ktime_t expires_next; |
| 183 | int hres_active; | 185 | int hres_active; |
| @@ -286,6 +288,8 @@ extern void hrtimer_peek_ahead_timers(void); | |||
| 286 | # define MONOTONIC_RES_NSEC HIGH_RES_NSEC | 288 | # define MONOTONIC_RES_NSEC HIGH_RES_NSEC |
| 287 | # define KTIME_MONOTONIC_RES KTIME_HIGH_RES | 289 | # define KTIME_MONOTONIC_RES KTIME_HIGH_RES |
| 288 | 290 | ||
| 291 | extern void clock_was_set_delayed(void); | ||
| 292 | |||
| 289 | #else | 293 | #else |
| 290 | 294 | ||
| 291 | # define MONOTONIC_RES_NSEC LOW_RES_NSEC | 295 | # define MONOTONIC_RES_NSEC LOW_RES_NSEC |
| @@ -306,6 +310,9 @@ static inline int hrtimer_is_hres_active(struct hrtimer *timer) | |||
| 306 | { | 310 | { |
| 307 | return 0; | 311 | return 0; |
| 308 | } | 312 | } |
| 313 | |||
| 314 | static inline void clock_was_set_delayed(void) { } | ||
| 315 | |||
| 309 | #endif | 316 | #endif |
| 310 | 317 | ||
| 311 | extern void clock_was_set(void); | 318 | extern void clock_was_set(void); |
| @@ -320,6 +327,7 @@ extern ktime_t ktime_get(void); | |||
| 320 | extern ktime_t ktime_get_real(void); | 327 | extern ktime_t ktime_get_real(void); |
| 321 | extern ktime_t ktime_get_boottime(void); | 328 | extern ktime_t ktime_get_boottime(void); |
| 322 | extern ktime_t ktime_get_monotonic_offset(void); | 329 | extern ktime_t ktime_get_monotonic_offset(void); |
| 330 | extern ktime_t ktime_get_update_offsets(ktime_t *offs_real, ktime_t *offs_boot); | ||
| 323 | 331 | ||
| 324 | DECLARE_PER_CPU(struct tick_device, tick_cpu_device); | 332 | DECLARE_PER_CPU(struct tick_device, tick_cpu_device); |
| 325 | 333 | ||
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/input.h b/include/linux/input.h index a81671453575..2740d080ec6b 100644 --- a/include/linux/input.h +++ b/include/linux/input.h | |||
| @@ -116,6 +116,7 @@ struct input_keymap_entry { | |||
| 116 | 116 | ||
| 117 | /** | 117 | /** |
| 118 | * EVIOCGMTSLOTS(len) - get MT slot values | 118 | * EVIOCGMTSLOTS(len) - get MT slot values |
| 119 | * @len: size of the data buffer in bytes | ||
| 119 | * | 120 | * |
| 120 | * The ioctl buffer argument should be binary equivalent to | 121 | * The ioctl buffer argument should be binary equivalent to |
| 121 | * | 122 | * |
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/kernel.h b/include/linux/kernel.h index e07f5e0c5df4..604382143bcf 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h | |||
| @@ -377,7 +377,6 @@ extern enum system_states { | |||
| 377 | SYSTEM_HALT, | 377 | SYSTEM_HALT, |
| 378 | SYSTEM_POWER_OFF, | 378 | SYSTEM_POWER_OFF, |
| 379 | SYSTEM_RESTART, | 379 | SYSTEM_RESTART, |
| 380 | SYSTEM_SUSPEND_DISK, | ||
| 381 | } system_state; | 380 | } system_state; |
| 382 | 381 | ||
| 383 | #define TAINT_PROPRIETARY_MODULE 0 | 382 | #define TAINT_PROPRIETARY_MODULE 0 |
diff --git a/include/linux/kmsg_dump.h b/include/linux/kmsg_dump.h index 35f7237ec972..2e7a1e032c71 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,42 @@ 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_nolock(struct kmsg_dumper *dumper, bool syslog, | ||
| 59 | char *line, size_t size, size_t *len); | ||
| 60 | |||
| 61 | bool kmsg_dump_get_line(struct kmsg_dumper *dumper, bool syslog, | ||
| 62 | char *line, size_t size, size_t *len); | ||
| 63 | |||
| 64 | bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, | ||
| 65 | char *buf, size_t size, size_t *len); | ||
| 66 | |||
| 67 | void kmsg_dump_rewind_nolock(struct kmsg_dumper *dumper); | ||
| 68 | |||
| 69 | void kmsg_dump_rewind(struct kmsg_dumper *dumper); | ||
| 70 | |||
| 51 | int kmsg_dump_register(struct kmsg_dumper *dumper); | 71 | int kmsg_dump_register(struct kmsg_dumper *dumper); |
| 52 | 72 | ||
| 53 | int kmsg_dump_unregister(struct kmsg_dumper *dumper); | 73 | int kmsg_dump_unregister(struct kmsg_dumper *dumper); |
| @@ -56,6 +76,33 @@ static inline void kmsg_dump(enum kmsg_dump_reason reason) | |||
| 56 | { | 76 | { |
| 57 | } | 77 | } |
| 58 | 78 | ||
| 79 | static inline bool kmsg_dump_get_line_nolock(struct kmsg_dumper *dumper, | ||
| 80 | bool syslog, const char *line, | ||
| 81 | size_t size, size_t *len) | ||
| 82 | { | ||
| 83 | return false; | ||
| 84 | } | ||
| 85 | |||
| 86 | static inline bool kmsg_dump_get_line(struct kmsg_dumper *dumper, bool syslog, | ||
| 87 | const char *line, size_t size, size_t *len) | ||
| 88 | { | ||
| 89 | return false; | ||
| 90 | } | ||
| 91 | |||
| 92 | static inline bool kmsg_dump_get_buffer(struct kmsg_dumper *dumper, bool syslog, | ||
| 93 | char *buf, size_t size, size_t *len) | ||
| 94 | { | ||
| 95 | return false; | ||
| 96 | } | ||
| 97 | |||
| 98 | static inline void kmsg_dump_rewind_nolock(struct kmsg_dumper *dumper) | ||
| 99 | { | ||
| 100 | } | ||
| 101 | |||
| 102 | static inline void kmsg_dump_rewind(struct kmsg_dumper *dumper) | ||
| 103 | { | ||
| 104 | } | ||
| 105 | |||
| 59 | static inline int kmsg_dump_register(struct kmsg_dumper *dumper) | 106 | static inline int kmsg_dump_register(struct kmsg_dumper *dumper) |
| 60 | { | 107 | { |
| 61 | return -EINVAL; | 108 | return -EINVAL; |
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h index c4464356b35b..96c158a37d3e 100644 --- a/include/linux/kvm_host.h +++ b/include/linux/kvm_host.h | |||
| @@ -815,7 +815,7 @@ static inline void kvm_free_irq_routing(struct kvm *kvm) {} | |||
| 815 | #ifdef CONFIG_HAVE_KVM_EVENTFD | 815 | #ifdef CONFIG_HAVE_KVM_EVENTFD |
| 816 | 816 | ||
| 817 | void kvm_eventfd_init(struct kvm *kvm); | 817 | void kvm_eventfd_init(struct kvm *kvm); |
| 818 | int kvm_irqfd(struct kvm *kvm, int fd, int gsi, int flags); | 818 | int kvm_irqfd(struct kvm *kvm, struct kvm_irqfd *args); |
| 819 | void kvm_irqfd_release(struct kvm *kvm); | 819 | void kvm_irqfd_release(struct kvm *kvm); |
| 820 | void kvm_irq_routing_update(struct kvm *, struct kvm_irq_routing_table *); | 820 | void kvm_irq_routing_update(struct kvm *, struct kvm_irq_routing_table *); |
| 821 | int kvm_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args); | 821 | int kvm_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args); |
| @@ -824,7 +824,7 @@ int kvm_ioeventfd(struct kvm *kvm, struct kvm_ioeventfd *args); | |||
| 824 | 824 | ||
| 825 | static inline void kvm_eventfd_init(struct kvm *kvm) {} | 825 | static inline void kvm_eventfd_init(struct kvm *kvm) {} |
| 826 | 826 | ||
| 827 | static inline int kvm_irqfd(struct kvm *kvm, int fd, int gsi, int flags) | 827 | static inline int kvm_irqfd(struct kvm *kvm, struct kvm_irqfd *args) |
| 828 | { | 828 | { |
| 829 | return -EINVAL; | 829 | return -EINVAL; |
| 830 | } | 830 | } |
diff --git a/include/linux/memblock.h b/include/linux/memblock.h index a6bb10235148..19dc455b4f3d 100644 --- a/include/linux/memblock.h +++ b/include/linux/memblock.h | |||
| @@ -50,9 +50,7 @@ phys_addr_t memblock_find_in_range_node(phys_addr_t start, phys_addr_t end, | |||
| 50 | phys_addr_t size, phys_addr_t align, int nid); | 50 | phys_addr_t size, phys_addr_t align, int nid); |
| 51 | phys_addr_t memblock_find_in_range(phys_addr_t start, phys_addr_t end, | 51 | phys_addr_t memblock_find_in_range(phys_addr_t start, phys_addr_t end, |
| 52 | phys_addr_t size, phys_addr_t align); | 52 | phys_addr_t size, phys_addr_t align); |
| 53 | int memblock_free_reserved_regions(void); | 53 | phys_addr_t get_allocated_memblock_reserved_regions_info(phys_addr_t *addr); |
| 54 | int memblock_reserve_reserved_regions(void); | ||
| 55 | |||
| 56 | void memblock_allow_resize(void); | 54 | void memblock_allow_resize(void); |
| 57 | int memblock_add_node(phys_addr_t base, phys_addr_t size, int nid); | 55 | int memblock_add_node(phys_addr_t base, phys_addr_t size, int nid); |
| 58 | int memblock_add(phys_addr_t base, phys_addr_t size); | 56 | int memblock_add(phys_addr_t base, phys_addr_t size); |
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/mmzone.h b/include/linux/mmzone.h index 2427706f78b4..68c569fcbb66 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h | |||
| @@ -694,7 +694,7 @@ typedef struct pglist_data { | |||
| 694 | range, including holes */ | 694 | range, including holes */ |
| 695 | int node_id; | 695 | int node_id; |
| 696 | wait_queue_head_t kswapd_wait; | 696 | wait_queue_head_t kswapd_wait; |
| 697 | struct task_struct *kswapd; | 697 | struct task_struct *kswapd; /* Protected by lock_memory_hotplug() */ |
| 698 | int kswapd_max_order; | 698 | int kswapd_max_order; |
| 699 | enum zone_type classzone_idx; | 699 | enum zone_type classzone_idx; |
| 700 | } pg_data_t; | 700 | } pg_data_t; |
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/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..289760f424aa 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. |
| @@ -141,8 +141,12 @@ | |||
| 141 | * Changing LSM security domain is considered a new privilege. So, for example, | 141 | * Changing LSM security domain is considered a new privilege. So, for example, |
| 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 | * | ||
| 145 | * See Documentation/prctl/no_new_privs.txt for more details. | ||
| 144 | */ | 146 | */ |
| 145 | #define PR_SET_NO_NEW_PRIVS 38 | 147 | #define PR_SET_NO_NEW_PRIVS 38 |
| 146 | #define PR_GET_NO_NEW_PRIVS 39 | 148 | #define PR_GET_NO_NEW_PRIVS 39 |
| 149 | |||
| 150 | #define PR_GET_TID_ADDRESS 40 | ||
| 147 | 151 | ||
| 148 | #endif /* _LINUX_PRCTL_H */ | 152 | #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/pxa2xx_ssp.h b/include/linux/pxa2xx_ssp.h index 44835fb39793..f36632061c66 100644 --- a/include/linux/pxa2xx_ssp.h +++ b/include/linux/pxa2xx_ssp.h | |||
| @@ -160,7 +160,9 @@ enum pxa_ssp_type { | |||
| 160 | PXA25x_SSP, /* pxa 210, 250, 255, 26x */ | 160 | PXA25x_SSP, /* pxa 210, 250, 255, 26x */ |
| 161 | PXA25x_NSSP, /* pxa 255, 26x (including ASSP) */ | 161 | PXA25x_NSSP, /* pxa 255, 26x (including ASSP) */ |
| 162 | PXA27x_SSP, | 162 | PXA27x_SSP, |
| 163 | PXA3xx_SSP, | ||
| 163 | PXA168_SSP, | 164 | PXA168_SSP, |
| 165 | PXA910_SSP, | ||
| 164 | CE4100_SSP, | 166 | CE4100_SSP, |
| 165 | }; | 167 | }; |
| 166 | 168 | ||
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/rcupdate.h b/include/linux/rcupdate.h index 26d1a47591f1..9cac722b169c 100644 --- a/include/linux/rcupdate.h +++ b/include/linux/rcupdate.h | |||
| @@ -184,7 +184,6 @@ static inline int rcu_preempt_depth(void) | |||
| 184 | /* Internal to kernel */ | 184 | /* Internal to kernel */ |
| 185 | extern void rcu_sched_qs(int cpu); | 185 | extern void rcu_sched_qs(int cpu); |
| 186 | extern void rcu_bh_qs(int cpu); | 186 | extern void rcu_bh_qs(int cpu); |
| 187 | extern void rcu_preempt_note_context_switch(void); | ||
| 188 | extern void rcu_check_callbacks(int cpu, int user); | 187 | extern void rcu_check_callbacks(int cpu, int user); |
| 189 | struct notifier_block; | 188 | struct notifier_block; |
| 190 | extern void rcu_idle_enter(void); | 189 | extern void rcu_idle_enter(void); |
diff --git a/include/linux/rcutiny.h b/include/linux/rcutiny.h index adb5e5a38cae..4e56a9c69a35 100644 --- a/include/linux/rcutiny.h +++ b/include/linux/rcutiny.h | |||
| @@ -87,17 +87,24 @@ 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 void rcu_preempt_note_context_switch(void) |
| 91 | { | 91 | { |
| 92 | } | ||
| 93 | |||
| 94 | static inline int rcu_needs_cpu(int cpu, unsigned long *delta_jiffies) | ||
| 95 | { | ||
| 96 | *delta_jiffies = ULONG_MAX; | ||
| 92 | return 0; | 97 | return 0; |
| 93 | } | 98 | } |
| 94 | 99 | ||
| 95 | #else /* #ifdef CONFIG_TINY_RCU */ | 100 | #else /* #ifdef CONFIG_TINY_RCU */ |
| 96 | 101 | ||
| 102 | void rcu_preempt_note_context_switch(void); | ||
| 97 | int rcu_preempt_needs_cpu(void); | 103 | int rcu_preempt_needs_cpu(void); |
| 98 | 104 | ||
| 99 | static inline int rcu_needs_cpu(int cpu) | 105 | static inline int rcu_needs_cpu(int cpu, unsigned long *delta_jiffies) |
| 100 | { | 106 | { |
| 107 | *delta_jiffies = ULONG_MAX; | ||
| 101 | return rcu_preempt_needs_cpu(); | 108 | return rcu_preempt_needs_cpu(); |
| 102 | } | 109 | } |
| 103 | 110 | ||
| @@ -106,6 +113,7 @@ static inline int rcu_needs_cpu(int cpu) | |||
| 106 | static inline void rcu_note_context_switch(int cpu) | 113 | static inline void rcu_note_context_switch(int cpu) |
| 107 | { | 114 | { |
| 108 | rcu_sched_qs(cpu); | 115 | rcu_sched_qs(cpu); |
| 116 | rcu_preempt_note_context_switch(); | ||
| 109 | } | 117 | } |
| 110 | 118 | ||
| 111 | /* | 119 | /* |
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/rpmsg.h b/include/linux/rpmsg.h index a8e50e44203c..82a673905edb 100644 --- a/include/linux/rpmsg.h +++ b/include/linux/rpmsg.h | |||
| @@ -38,6 +38,8 @@ | |||
| 38 | #include <linux/types.h> | 38 | #include <linux/types.h> |
| 39 | #include <linux/device.h> | 39 | #include <linux/device.h> |
| 40 | #include <linux/mod_devicetable.h> | 40 | #include <linux/mod_devicetable.h> |
| 41 | #include <linux/kref.h> | ||
| 42 | #include <linux/mutex.h> | ||
| 41 | 43 | ||
| 42 | /* The feature bitmap for virtio rpmsg */ | 44 | /* The feature bitmap for virtio rpmsg */ |
| 43 | #define VIRTIO_RPMSG_F_NS 0 /* RP supports name service notifications */ | 45 | #define VIRTIO_RPMSG_F_NS 0 /* RP supports name service notifications */ |
| @@ -120,7 +122,9 @@ typedef void (*rpmsg_rx_cb_t)(struct rpmsg_channel *, void *, int, void *, u32); | |||
| 120 | /** | 122 | /** |
| 121 | * struct rpmsg_endpoint - binds a local rpmsg address to its user | 123 | * struct rpmsg_endpoint - binds a local rpmsg address to its user |
| 122 | * @rpdev: rpmsg channel device | 124 | * @rpdev: rpmsg channel device |
| 125 | * @refcount: when this drops to zero, the ept is deallocated | ||
| 123 | * @cb: rx callback handler | 126 | * @cb: rx callback handler |
| 127 | * @cb_lock: must be taken before accessing/changing @cb | ||
| 124 | * @addr: local rpmsg address | 128 | * @addr: local rpmsg address |
| 125 | * @priv: private data for the driver's use | 129 | * @priv: private data for the driver's use |
| 126 | * | 130 | * |
| @@ -140,7 +144,9 @@ typedef void (*rpmsg_rx_cb_t)(struct rpmsg_channel *, void *, int, void *, u32); | |||
| 140 | */ | 144 | */ |
| 141 | struct rpmsg_endpoint { | 145 | struct rpmsg_endpoint { |
| 142 | struct rpmsg_channel *rpdev; | 146 | struct rpmsg_channel *rpdev; |
| 147 | struct kref refcount; | ||
| 143 | rpmsg_rx_cb_t cb; | 148 | rpmsg_rx_cb_t cb; |
| 149 | struct mutex cb_lock; | ||
| 144 | u32 addr; | 150 | u32 addr; |
| 145 | void *priv; | 151 | void *priv; |
| 146 | }; | 152 | }; |
diff --git a/include/linux/sched.h b/include/linux/sched.h index f34437e835a7..4a1f493e0fef 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 |
| @@ -1858,22 +1871,12 @@ static inline void rcu_copy_process(struct task_struct *p) | |||
| 1858 | INIT_LIST_HEAD(&p->rcu_node_entry); | 1871 | INIT_LIST_HEAD(&p->rcu_node_entry); |
| 1859 | } | 1872 | } |
| 1860 | 1873 | ||
| 1861 | static inline void rcu_switch_from(struct task_struct *prev) | ||
| 1862 | { | ||
| 1863 | if (prev->rcu_read_lock_nesting != 0) | ||
| 1864 | rcu_preempt_note_context_switch(); | ||
| 1865 | } | ||
| 1866 | |||
| 1867 | #else | 1874 | #else |
| 1868 | 1875 | ||
| 1869 | static inline void rcu_copy_process(struct task_struct *p) | 1876 | static inline void rcu_copy_process(struct task_struct *p) |
| 1870 | { | 1877 | { |
| 1871 | } | 1878 | } |
| 1872 | 1879 | ||
| 1873 | static inline void rcu_switch_from(struct task_struct *prev) | ||
| 1874 | { | ||
| 1875 | } | ||
| 1876 | |||
| 1877 | #endif | 1880 | #endif |
| 1878 | 1881 | ||
| 1879 | #ifdef CONFIG_SMP | 1882 | #ifdef CONFIG_SMP |
| @@ -1896,6 +1899,14 @@ static inline int set_cpus_allowed_ptr(struct task_struct *p, | |||
| 1896 | } | 1899 | } |
| 1897 | #endif | 1900 | #endif |
| 1898 | 1901 | ||
| 1902 | #ifdef CONFIG_NO_HZ | ||
| 1903 | void calc_load_enter_idle(void); | ||
| 1904 | void calc_load_exit_idle(void); | ||
| 1905 | #else | ||
| 1906 | static inline void calc_load_enter_idle(void) { } | ||
| 1907 | static inline void calc_load_exit_idle(void) { } | ||
| 1908 | #endif /* CONFIG_NO_HZ */ | ||
| 1909 | |||
| 1899 | #ifndef CONFIG_CPUMASK_OFFSTACK | 1910 | #ifndef CONFIG_CPUMASK_OFFSTACK |
| 1900 | static inline int set_cpus_allowed(struct task_struct *p, cpumask_t new_mask) | 1911 | static inline int set_cpus_allowed(struct task_struct *p, cpumask_t new_mask) |
| 1901 | { | 1912 | { |
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/spi/pxa2xx_spi.h b/include/linux/spi/pxa2xx_spi.h index d3e1075f7b60..c73d1445c77e 100644 --- a/include/linux/spi/pxa2xx_spi.h +++ b/include/linux/spi/pxa2xx_spi.h | |||
| @@ -43,7 +43,7 @@ struct pxa2xx_spi_chip { | |||
| 43 | void (*cs_control)(u32 command); | 43 | void (*cs_control)(u32 command); |
| 44 | }; | 44 | }; |
| 45 | 45 | ||
| 46 | #ifdef CONFIG_ARCH_PXA | 46 | #if defined(CONFIG_ARCH_PXA) || defined(CONFIG_ARCH_MMP) |
| 47 | 47 | ||
| 48 | #include <linux/clk.h> | 48 | #include <linux/clk.h> |
| 49 | #include <mach/dma.h> | 49 | #include <mach/dma.h> |
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 b455c7c212eb..ddb419cf4530 100644 --- a/include/linux/vga_switcheroo.h +++ b/include/linux/vga_switcheroo.h | |||
| @@ -7,11 +7,19 @@ | |||
| 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, |
| 20 | /* below are referred only from vga_switcheroo_get_client_state() */ | ||
| 21 | VGA_SWITCHEROO_INIT, | ||
| 22 | VGA_SWITCHEROO_NOT_FOUND, | ||
| 15 | }; | 23 | }; |
| 16 | 24 | ||
| 17 | enum vga_switcheroo_client_id { | 25 | enum vga_switcheroo_client_id { |
| @@ -50,6 +58,8 @@ void vga_switcheroo_unregister_handler(void); | |||
| 50 | 58 | ||
| 51 | int vga_switcheroo_process_delayed_switch(void); | 59 | int vga_switcheroo_process_delayed_switch(void); |
| 52 | 60 | ||
| 61 | int vga_switcheroo_get_client_state(struct pci_dev *dev); | ||
| 62 | |||
| 53 | #else | 63 | #else |
| 54 | 64 | ||
| 55 | static inline void vga_switcheroo_unregister_client(struct pci_dev *dev) {} | 65 | static inline void vga_switcheroo_unregister_client(struct pci_dev *dev) {} |
| @@ -62,5 +72,8 @@ static inline int vga_switcheroo_register_audio_client(struct pci_dev *pdev, | |||
| 62 | int id, bool active) { return 0; } | 72 | int id, bool active) { return 0; } |
| 63 | static inline void vga_switcheroo_unregister_handler(void) {} | 73 | static inline void vga_switcheroo_unregister_handler(void) {} |
| 64 | static inline int vga_switcheroo_process_delayed_switch(void) { return 0; } | 74 | static inline int vga_switcheroo_process_delayed_switch(void) { return 0; } |
| 75 | static inline int vga_switcheroo_get_client_state(struct pci_dev *dev) { return VGA_SWITCHEROO_ON; } | ||
| 76 | |||
| 65 | 77 | ||
| 66 | #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! */ |
