diff options
Diffstat (limited to 'include/linux')
40 files changed, 177 insertions, 83 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/blkdev.h b/include/linux/blkdev.h index ba43f408baa3..07954b05b86c 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
@@ -827,7 +827,6 @@ extern bool __blk_end_request_err(struct request *rq, int error); | |||
827 | extern void blk_complete_request(struct request *); | 827 | extern void blk_complete_request(struct request *); |
828 | extern void __blk_complete_request(struct request *); | 828 | extern void __blk_complete_request(struct request *); |
829 | extern void blk_abort_request(struct request *); | 829 | extern void blk_abort_request(struct request *); |
830 | extern void blk_abort_queue(struct request_queue *); | ||
831 | extern void blk_unprep_request(struct request *); | 830 | extern void blk_unprep_request(struct request *); |
832 | 831 | ||
833 | /* | 832 | /* |
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/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/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/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/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/prctl.h b/include/linux/prctl.h index 3988012255dc..289760f424aa 100644 --- a/include/linux/prctl.h +++ b/include/linux/prctl.h | |||
@@ -141,6 +141,8 @@ | |||
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 |
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/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 4059c0f33f07..4a1f493e0fef 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -1871,22 +1871,12 @@ static inline void rcu_copy_process(struct task_struct *p) | |||
1871 | INIT_LIST_HEAD(&p->rcu_node_entry); | 1871 | INIT_LIST_HEAD(&p->rcu_node_entry); |
1872 | } | 1872 | } |
1873 | 1873 | ||
1874 | static inline void rcu_switch_from(struct task_struct *prev) | ||
1875 | { | ||
1876 | if (prev->rcu_read_lock_nesting != 0) | ||
1877 | rcu_preempt_note_context_switch(); | ||
1878 | } | ||
1879 | |||
1880 | #else | 1874 | #else |
1881 | 1875 | ||
1882 | static inline void rcu_copy_process(struct task_struct *p) | 1876 | static inline void rcu_copy_process(struct task_struct *p) |
1883 | { | 1877 | { |
1884 | } | 1878 | } |
1885 | 1879 | ||
1886 | static inline void rcu_switch_from(struct task_struct *prev) | ||
1887 | { | ||
1888 | } | ||
1889 | |||
1890 | #endif | 1880 | #endif |
1891 | 1881 | ||
1892 | #ifdef CONFIG_SMP | 1882 | #ifdef CONFIG_SMP |
@@ -1909,6 +1899,14 @@ static inline int set_cpus_allowed_ptr(struct task_struct *p, | |||
1909 | } | 1899 | } |
1910 | #endif | 1900 | #endif |
1911 | 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 | |||
1912 | #ifndef CONFIG_CPUMASK_OFFSTACK | 1910 | #ifndef CONFIG_CPUMASK_OFFSTACK |
1913 | 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) |
1914 | { | 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/splice.h b/include/linux/splice.h index 26e5b613deda..09a545a7dfa3 100644 --- a/include/linux/splice.h +++ b/include/linux/splice.h | |||
@@ -51,7 +51,8 @@ struct partial_page { | |||
51 | struct splice_pipe_desc { | 51 | struct splice_pipe_desc { |
52 | struct page **pages; /* page map */ | 52 | struct page **pages; /* page map */ |
53 | struct partial_page *partial; /* pages[] may not be contig */ | 53 | struct partial_page *partial; /* pages[] may not be contig */ |
54 | int nr_pages; /* number of pages in map */ | 54 | int nr_pages; /* number of populated pages in map */ |
55 | unsigned int nr_pages_max; /* pages[] & partial[] arrays size */ | ||
55 | unsigned int flags; /* splice flags */ | 56 | unsigned int flags; /* splice flags */ |
56 | const struct pipe_buf_operations *ops;/* ops associated with output pipe */ | 57 | const struct pipe_buf_operations *ops;/* ops associated with output pipe */ |
57 | void (*spd_release)(struct splice_pipe_desc *, unsigned int); | 58 | void (*spd_release)(struct splice_pipe_desc *, unsigned int); |
@@ -85,9 +86,8 @@ extern ssize_t splice_direct_to_actor(struct file *, struct splice_desc *, | |||
85 | /* | 86 | /* |
86 | * for dynamic pipe sizing | 87 | * for dynamic pipe sizing |
87 | */ | 88 | */ |
88 | extern int splice_grow_spd(struct pipe_inode_info *, struct splice_pipe_desc *); | 89 | extern int splice_grow_spd(const struct pipe_inode_info *, struct splice_pipe_desc *); |
89 | extern void splice_shrink_spd(struct pipe_inode_info *, | 90 | extern void splice_shrink_spd(struct splice_pipe_desc *); |
90 | struct splice_pipe_desc *); | ||
91 | extern void spd_release_page(struct splice_pipe_desc *, unsigned int); | 91 | extern void spd_release_page(struct splice_pipe_desc *, unsigned int); |
92 | 92 | ||
93 | extern const struct pipe_buf_operations page_cache_pipe_buf_ops; | 93 | extern const struct pipe_buf_operations page_cache_pipe_buf_ops; |
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! */ |