diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-12-16 13:06:39 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-12-16 13:06:39 -0500 |
commit | 9cfc86249f32d984339c6d1f8a1fd1326989b3b8 (patch) | |
tree | 56428d319483f54949de8d9d0a5b3f715287ed91 /include | |
parent | f42647acc4eab1befa9e290691ed7a40f9a7d3cc (diff) | |
parent | 243797f59b748f679ab88d456fcc4f92236d724b (diff) |
Merge branch 'akpm'
* akpm: (173 commits)
genalloc: use bitmap_find_next_zero_area
ia64: use bitmap_find_next_zero_area
sparc: use bitmap_find_next_zero_area
mlx4: use bitmap_find_next_zero_area
isp1362-hcd: use bitmap_find_next_zero_area
iommu-helper: use bitmap library
bitmap: introduce bitmap_set, bitmap_clear, bitmap_find_next_zero_area
qnx4: use hweight8
qnx4fs: remove remains of the (defunct) write support
resource: constify arg to resource_size() and resource_type()
gru: send cross partition interrupts using the gru
gru: function to generate chipset IPI values
gru: update driver version number
gru: improve GRU TLB dropin statistics
gru: fix GRU interrupt race at deallocate
gru: add hugepage support
gru: fix bug in allocation of kernel contexts
gru: update GRU structures to match latest hardware spec
gru: check for correct GRU chiplet assignment
gru: remove stray local_irq_enable
...
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-generic/gpio.h | 6 | ||||
-rw-r--r-- | include/linux/aio.h | 4 | ||||
-rw-r--r-- | include/linux/bitmap.h | 11 | ||||
-rw-r--r-- | include/linux/fs.h | 22 | ||||
-rw-r--r-- | include/linux/gpio.h | 6 | ||||
-rw-r--r-- | include/linux/iommu-helper.h | 3 | ||||
-rw-r--r-- | include/linux/ioport.h | 4 | ||||
-rw-r--r-- | include/linux/ipc_namespace.h | 2 | ||||
-rw-r--r-- | include/linux/kexec.h | 2 | ||||
-rw-r--r-- | include/linux/memcontrol.h | 17 | ||||
-rw-r--r-- | include/linux/oom.h | 4 | ||||
-rw-r--r-- | include/linux/page_cgroup.h | 7 | ||||
-rw-r--r-- | include/linux/ptrace.h | 23 | ||||
-rw-r--r-- | include/linux/reiserfs_fs.h | 35 | ||||
-rw-r--r-- | include/linux/sched.h | 14 | ||||
-rw-r--r-- | include/linux/sem.h | 5 | ||||
-rw-r--r-- | include/linux/sm501-regs.h | 2 | ||||
-rw-r--r-- | include/linux/timb_gpio.h | 37 | ||||
-rw-r--r-- | include/linux/tracehook.h | 7 | ||||
-rw-r--r-- | include/video/da8xx-fb.h | 1 |
20 files changed, 151 insertions, 61 deletions
diff --git a/include/asm-generic/gpio.h b/include/asm-generic/gpio.h index 204bed37e82d..485eeb6c4ef3 100644 --- a/include/asm-generic/gpio.h +++ b/include/asm-generic/gpio.h | |||
@@ -145,6 +145,7 @@ extern int __gpio_to_irq(unsigned gpio); | |||
145 | extern int gpio_export(unsigned gpio, bool direction_may_change); | 145 | extern int gpio_export(unsigned gpio, bool direction_may_change); |
146 | extern int gpio_export_link(struct device *dev, const char *name, | 146 | extern int gpio_export_link(struct device *dev, const char *name, |
147 | unsigned gpio); | 147 | unsigned gpio); |
148 | extern int gpio_sysfs_set_active_low(unsigned gpio, int value); | ||
148 | extern void gpio_unexport(unsigned gpio); | 149 | extern void gpio_unexport(unsigned gpio); |
149 | 150 | ||
150 | #endif /* CONFIG_GPIO_SYSFS */ | 151 | #endif /* CONFIG_GPIO_SYSFS */ |
@@ -197,6 +198,11 @@ static inline int gpio_export_link(struct device *dev, const char *name, | |||
197 | return -ENOSYS; | 198 | return -ENOSYS; |
198 | } | 199 | } |
199 | 200 | ||
201 | static inline int gpio_sysfs_set_active_low(unsigned gpio, int value) | ||
202 | { | ||
203 | return -ENOSYS; | ||
204 | } | ||
205 | |||
200 | static inline void gpio_unexport(unsigned gpio) | 206 | static inline void gpio_unexport(unsigned gpio) |
201 | { | 207 | { |
202 | } | 208 | } |
diff --git a/include/linux/aio.h b/include/linux/aio.h index aea219d7d8d1..811dbb369379 100644 --- a/include/linux/aio.h +++ b/include/linux/aio.h | |||
@@ -102,7 +102,6 @@ struct kiocb { | |||
102 | } ki_obj; | 102 | } ki_obj; |
103 | 103 | ||
104 | __u64 ki_user_data; /* user's data for completion */ | 104 | __u64 ki_user_data; /* user's data for completion */ |
105 | wait_queue_t ki_wait; | ||
106 | loff_t ki_pos; | 105 | loff_t ki_pos; |
107 | 106 | ||
108 | void *private; | 107 | void *private; |
@@ -140,7 +139,6 @@ struct kiocb { | |||
140 | (x)->ki_dtor = NULL; \ | 139 | (x)->ki_dtor = NULL; \ |
141 | (x)->ki_obj.tsk = tsk; \ | 140 | (x)->ki_obj.tsk = tsk; \ |
142 | (x)->ki_user_data = 0; \ | 141 | (x)->ki_user_data = 0; \ |
143 | init_wait((&(x)->ki_wait)); \ | ||
144 | } while (0) | 142 | } while (0) |
145 | 143 | ||
146 | #define AIO_RING_MAGIC 0xa10a10a1 | 144 | #define AIO_RING_MAGIC 0xa10a10a1 |
@@ -223,8 +221,6 @@ struct mm_struct; | |||
223 | static inline void exit_aio(struct mm_struct *mm) { } | 221 | static inline void exit_aio(struct mm_struct *mm) { } |
224 | #endif /* CONFIG_AIO */ | 222 | #endif /* CONFIG_AIO */ |
225 | 223 | ||
226 | #define io_wait_to_kiocb(wait) container_of(wait, struct kiocb, ki_wait) | ||
227 | |||
228 | static inline struct kiocb *list_kiocb(struct list_head *h) | 224 | static inline struct kiocb *list_kiocb(struct list_head *h) |
229 | { | 225 | { |
230 | return list_entry(h, struct kiocb, ki_list); | 226 | return list_entry(h, struct kiocb, ki_list); |
diff --git a/include/linux/bitmap.h b/include/linux/bitmap.h index 756d78b8c1c5..daf8c480c786 100644 --- a/include/linux/bitmap.h +++ b/include/linux/bitmap.h | |||
@@ -42,6 +42,9 @@ | |||
42 | * bitmap_empty(src, nbits) Are all bits zero in *src? | 42 | * bitmap_empty(src, nbits) Are all bits zero in *src? |
43 | * bitmap_full(src, nbits) Are all bits set in *src? | 43 | * bitmap_full(src, nbits) Are all bits set in *src? |
44 | * bitmap_weight(src, nbits) Hamming Weight: number set bits | 44 | * bitmap_weight(src, nbits) Hamming Weight: number set bits |
45 | * bitmap_set(dst, pos, nbits) Set specified bit area | ||
46 | * bitmap_clear(dst, pos, nbits) Clear specified bit area | ||
47 | * bitmap_find_next_zero_area(buf, len, pos, n, mask) Find bit free area | ||
45 | * bitmap_shift_right(dst, src, n, nbits) *dst = *src >> n | 48 | * bitmap_shift_right(dst, src, n, nbits) *dst = *src >> n |
46 | * bitmap_shift_left(dst, src, n, nbits) *dst = *src << n | 49 | * bitmap_shift_left(dst, src, n, nbits) *dst = *src << n |
47 | * bitmap_remap(dst, src, old, new, nbits) *dst = map(old, new)(src) | 50 | * bitmap_remap(dst, src, old, new, nbits) *dst = map(old, new)(src) |
@@ -108,6 +111,14 @@ extern int __bitmap_subset(const unsigned long *bitmap1, | |||
108 | const unsigned long *bitmap2, int bits); | 111 | const unsigned long *bitmap2, int bits); |
109 | extern int __bitmap_weight(const unsigned long *bitmap, int bits); | 112 | extern int __bitmap_weight(const unsigned long *bitmap, int bits); |
110 | 113 | ||
114 | extern void bitmap_set(unsigned long *map, int i, int len); | ||
115 | extern void bitmap_clear(unsigned long *map, int start, int nr); | ||
116 | extern unsigned long bitmap_find_next_zero_area(unsigned long *map, | ||
117 | unsigned long size, | ||
118 | unsigned long start, | ||
119 | unsigned int nr, | ||
120 | unsigned long align_mask); | ||
121 | |||
111 | extern int bitmap_scnprintf(char *buf, unsigned int len, | 122 | extern int bitmap_scnprintf(char *buf, unsigned int len, |
112 | const unsigned long *src, int nbits); | 123 | const unsigned long *src, int nbits); |
113 | extern int __bitmap_parse(const char *buf, unsigned int buflen, int is_user, | 124 | extern int __bitmap_parse(const char *buf, unsigned int buflen, int is_user, |
diff --git a/include/linux/fs.h b/include/linux/fs.h index a057f48eb156..b23a7018eb90 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -2264,9 +2264,11 @@ ssize_t __blockdev_direct_IO(int rw, struct kiocb *iocb, struct inode *inode, | |||
2264 | int lock_type); | 2264 | int lock_type); |
2265 | 2265 | ||
2266 | enum { | 2266 | enum { |
2267 | DIO_LOCKING = 1, /* need locking between buffered and direct access */ | 2267 | /* need locking between buffered and direct access */ |
2268 | DIO_NO_LOCKING, /* bdev; no locking at all between buffered/direct */ | 2268 | DIO_LOCKING = 0x01, |
2269 | DIO_OWN_LOCKING, /* filesystem locks buffered and direct internally */ | 2269 | |
2270 | /* filesystem does not support filling holes */ | ||
2271 | DIO_SKIP_HOLES = 0x02, | ||
2270 | }; | 2272 | }; |
2271 | 2273 | ||
2272 | static inline ssize_t blockdev_direct_IO(int rw, struct kiocb *iocb, | 2274 | static inline ssize_t blockdev_direct_IO(int rw, struct kiocb *iocb, |
@@ -2275,7 +2277,8 @@ static inline ssize_t blockdev_direct_IO(int rw, struct kiocb *iocb, | |||
2275 | dio_iodone_t end_io) | 2277 | dio_iodone_t end_io) |
2276 | { | 2278 | { |
2277 | return __blockdev_direct_IO(rw, iocb, inode, bdev, iov, offset, | 2279 | return __blockdev_direct_IO(rw, iocb, inode, bdev, iov, offset, |
2278 | nr_segs, get_block, end_io, DIO_LOCKING); | 2280 | nr_segs, get_block, end_io, |
2281 | DIO_LOCKING | DIO_SKIP_HOLES); | ||
2279 | } | 2282 | } |
2280 | 2283 | ||
2281 | static inline ssize_t blockdev_direct_IO_no_locking(int rw, struct kiocb *iocb, | 2284 | static inline ssize_t blockdev_direct_IO_no_locking(int rw, struct kiocb *iocb, |
@@ -2284,16 +2287,7 @@ static inline ssize_t blockdev_direct_IO_no_locking(int rw, struct kiocb *iocb, | |||
2284 | dio_iodone_t end_io) | 2287 | dio_iodone_t end_io) |
2285 | { | 2288 | { |
2286 | return __blockdev_direct_IO(rw, iocb, inode, bdev, iov, offset, | 2289 | return __blockdev_direct_IO(rw, iocb, inode, bdev, iov, offset, |
2287 | nr_segs, get_block, end_io, DIO_NO_LOCKING); | 2290 | nr_segs, get_block, end_io, 0); |
2288 | } | ||
2289 | |||
2290 | static inline ssize_t blockdev_direct_IO_own_locking(int rw, struct kiocb *iocb, | ||
2291 | struct inode *inode, struct block_device *bdev, const struct iovec *iov, | ||
2292 | loff_t offset, unsigned long nr_segs, get_block_t get_block, | ||
2293 | dio_iodone_t end_io) | ||
2294 | { | ||
2295 | return __blockdev_direct_IO(rw, iocb, inode, bdev, iov, offset, | ||
2296 | nr_segs, get_block, end_io, DIO_OWN_LOCKING); | ||
2297 | } | 2291 | } |
2298 | #endif | 2292 | #endif |
2299 | 2293 | ||
diff --git a/include/linux/gpio.h b/include/linux/gpio.h index 059bd189d35d..4e949a5b5b85 100644 --- a/include/linux/gpio.h +++ b/include/linux/gpio.h | |||
@@ -99,6 +99,12 @@ static inline int gpio_export_link(struct device *dev, const char *name, | |||
99 | return -EINVAL; | 99 | return -EINVAL; |
100 | } | 100 | } |
101 | 101 | ||
102 | static inline int gpio_sysfs_set_active_low(unsigned gpio, int value) | ||
103 | { | ||
104 | /* GPIO can never have been requested */ | ||
105 | WARN_ON(1); | ||
106 | return -EINVAL; | ||
107 | } | ||
102 | 108 | ||
103 | static inline void gpio_unexport(unsigned gpio) | 109 | static inline void gpio_unexport(unsigned gpio) |
104 | { | 110 | { |
diff --git a/include/linux/iommu-helper.h b/include/linux/iommu-helper.h index 3b068e5b5671..64d1b638745d 100644 --- a/include/linux/iommu-helper.h +++ b/include/linux/iommu-helper.h | |||
@@ -14,14 +14,11 @@ static inline unsigned long iommu_device_max_index(unsigned long size, | |||
14 | extern int iommu_is_span_boundary(unsigned int index, unsigned int nr, | 14 | extern int iommu_is_span_boundary(unsigned int index, unsigned int nr, |
15 | unsigned long shift, | 15 | unsigned long shift, |
16 | unsigned long boundary_size); | 16 | unsigned long boundary_size); |
17 | extern void iommu_area_reserve(unsigned long *map, unsigned long i, int len); | ||
18 | extern unsigned long iommu_area_alloc(unsigned long *map, unsigned long size, | 17 | extern unsigned long iommu_area_alloc(unsigned long *map, unsigned long size, |
19 | unsigned long start, unsigned int nr, | 18 | unsigned long start, unsigned int nr, |
20 | unsigned long shift, | 19 | unsigned long shift, |
21 | unsigned long boundary_size, | 20 | unsigned long boundary_size, |
22 | unsigned long align_mask); | 21 | unsigned long align_mask); |
23 | extern void iommu_area_free(unsigned long *map, unsigned long start, | ||
24 | unsigned int nr); | ||
25 | 22 | ||
26 | extern unsigned long iommu_num_pages(unsigned long addr, unsigned long len, | 23 | extern unsigned long iommu_num_pages(unsigned long addr, unsigned long len, |
27 | unsigned long io_page_size); | 24 | unsigned long io_page_size); |
diff --git a/include/linux/ioport.h b/include/linux/ioport.h index 83aa81297ea3..7129504e053d 100644 --- a/include/linux/ioport.h +++ b/include/linux/ioport.h | |||
@@ -126,11 +126,11 @@ extern int allocate_resource(struct resource *root, struct resource *new, | |||
126 | int adjust_resource(struct resource *res, resource_size_t start, | 126 | int adjust_resource(struct resource *res, resource_size_t start, |
127 | resource_size_t size); | 127 | resource_size_t size); |
128 | resource_size_t resource_alignment(struct resource *res); | 128 | resource_size_t resource_alignment(struct resource *res); |
129 | static inline resource_size_t resource_size(struct resource *res) | 129 | static inline resource_size_t resource_size(const struct resource *res) |
130 | { | 130 | { |
131 | return res->end - res->start + 1; | 131 | return res->end - res->start + 1; |
132 | } | 132 | } |
133 | static inline unsigned long resource_type(struct resource *res) | 133 | static inline unsigned long resource_type(const struct resource *res) |
134 | { | 134 | { |
135 | return res->flags & IORESOURCE_TYPE_BITS; | 135 | return res->flags & IORESOURCE_TYPE_BITS; |
136 | } | 136 | } |
diff --git a/include/linux/ipc_namespace.h b/include/linux/ipc_namespace.h index e408722a84c7..07baa38bce37 100644 --- a/include/linux/ipc_namespace.h +++ b/include/linux/ipc_namespace.h | |||
@@ -87,7 +87,7 @@ extern int mq_init_ns(struct ipc_namespace *ns); | |||
87 | /* default values */ | 87 | /* default values */ |
88 | #define DFLT_QUEUESMAX 256 /* max number of message queues */ | 88 | #define DFLT_QUEUESMAX 256 /* max number of message queues */ |
89 | #define DFLT_MSGMAX 10 /* max number of messages in each queue */ | 89 | #define DFLT_MSGMAX 10 /* max number of messages in each queue */ |
90 | #define HARD_MSGMAX (131072/sizeof(void *)) | 90 | #define HARD_MSGMAX (32768*sizeof(void *)/4) |
91 | #define DFLT_MSGSIZEMAX 8192 /* max message size */ | 91 | #define DFLT_MSGSIZEMAX 8192 /* max message size */ |
92 | #else | 92 | #else |
93 | static inline int mq_init_ns(struct ipc_namespace *ns) { return 0; } | 93 | static inline int mq_init_ns(struct ipc_namespace *ns) { return 0; } |
diff --git a/include/linux/kexec.h b/include/linux/kexec.h index adc34f2c6eff..c356b6914ffd 100644 --- a/include/linux/kexec.h +++ b/include/linux/kexec.h | |||
@@ -206,6 +206,8 @@ extern size_t vmcoreinfo_max_size; | |||
206 | 206 | ||
207 | int __init parse_crashkernel(char *cmdline, unsigned long long system_ram, | 207 | int __init parse_crashkernel(char *cmdline, unsigned long long system_ram, |
208 | unsigned long long *crash_size, unsigned long long *crash_base); | 208 | unsigned long long *crash_size, unsigned long long *crash_base); |
209 | int crash_shrink_memory(unsigned long new_size); | ||
210 | size_t crash_get_memory_size(void); | ||
209 | 211 | ||
210 | #else /* !CONFIG_KEXEC */ | 212 | #else /* !CONFIG_KEXEC */ |
211 | struct pt_regs; | 213 | struct pt_regs; |
diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index bf9213b2db8f..0b46c2068b96 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h | |||
@@ -54,6 +54,11 @@ extern void mem_cgroup_rotate_lru_list(struct page *page, enum lru_list lru); | |||
54 | extern void mem_cgroup_del_lru(struct page *page); | 54 | extern void mem_cgroup_del_lru(struct page *page); |
55 | extern void mem_cgroup_move_lists(struct page *page, | 55 | extern void mem_cgroup_move_lists(struct page *page, |
56 | enum lru_list from, enum lru_list to); | 56 | enum lru_list from, enum lru_list to); |
57 | |||
58 | /* For coalescing uncharge for reducing memcg' overhead*/ | ||
59 | extern void mem_cgroup_uncharge_start(void); | ||
60 | extern void mem_cgroup_uncharge_end(void); | ||
61 | |||
57 | extern void mem_cgroup_uncharge_page(struct page *page); | 62 | extern void mem_cgroup_uncharge_page(struct page *page); |
58 | extern void mem_cgroup_uncharge_cache_page(struct page *page); | 63 | extern void mem_cgroup_uncharge_cache_page(struct page *page); |
59 | extern int mem_cgroup_shmem_charge_fallback(struct page *page, | 64 | extern int mem_cgroup_shmem_charge_fallback(struct page *page, |
@@ -117,7 +122,7 @@ static inline bool mem_cgroup_disabled(void) | |||
117 | } | 122 | } |
118 | 123 | ||
119 | extern bool mem_cgroup_oom_called(struct task_struct *task); | 124 | extern bool mem_cgroup_oom_called(struct task_struct *task); |
120 | void mem_cgroup_update_mapped_file_stat(struct page *page, int val); | 125 | void mem_cgroup_update_file_mapped(struct page *page, int val); |
121 | unsigned long mem_cgroup_soft_limit_reclaim(struct zone *zone, int order, | 126 | unsigned long mem_cgroup_soft_limit_reclaim(struct zone *zone, int order, |
122 | gfp_t gfp_mask, int nid, | 127 | gfp_t gfp_mask, int nid, |
123 | int zid); | 128 | int zid); |
@@ -151,6 +156,14 @@ static inline void mem_cgroup_cancel_charge_swapin(struct mem_cgroup *ptr) | |||
151 | { | 156 | { |
152 | } | 157 | } |
153 | 158 | ||
159 | static inline void mem_cgroup_uncharge_start(void) | ||
160 | { | ||
161 | } | ||
162 | |||
163 | static inline void mem_cgroup_uncharge_end(void) | ||
164 | { | ||
165 | } | ||
166 | |||
154 | static inline void mem_cgroup_uncharge_page(struct page *page) | 167 | static inline void mem_cgroup_uncharge_page(struct page *page) |
155 | { | 168 | { |
156 | } | 169 | } |
@@ -274,7 +287,7 @@ mem_cgroup_print_oom_info(struct mem_cgroup *memcg, struct task_struct *p) | |||
274 | { | 287 | { |
275 | } | 288 | } |
276 | 289 | ||
277 | static inline void mem_cgroup_update_mapped_file_stat(struct page *page, | 290 | static inline void mem_cgroup_update_file_mapped(struct page *page, |
278 | int val) | 291 | int val) |
279 | { | 292 | { |
280 | } | 293 | } |
diff --git a/include/linux/oom.h b/include/linux/oom.h index 6aac5fe4f6f1..537662315627 100644 --- a/include/linux/oom.h +++ b/include/linux/oom.h | |||
@@ -10,6 +10,7 @@ | |||
10 | #ifdef __KERNEL__ | 10 | #ifdef __KERNEL__ |
11 | 11 | ||
12 | #include <linux/types.h> | 12 | #include <linux/types.h> |
13 | #include <linux/nodemask.h> | ||
13 | 14 | ||
14 | struct zonelist; | 15 | struct zonelist; |
15 | struct notifier_block; | 16 | struct notifier_block; |
@@ -26,7 +27,8 @@ enum oom_constraint { | |||
26 | extern int try_set_zone_oom(struct zonelist *zonelist, gfp_t gfp_flags); | 27 | extern int try_set_zone_oom(struct zonelist *zonelist, gfp_t gfp_flags); |
27 | extern void clear_zonelist_oom(struct zonelist *zonelist, gfp_t gfp_flags); | 28 | extern void clear_zonelist_oom(struct zonelist *zonelist, gfp_t gfp_flags); |
28 | 29 | ||
29 | extern void out_of_memory(struct zonelist *zonelist, gfp_t gfp_mask, int order); | 30 | extern void out_of_memory(struct zonelist *zonelist, gfp_t gfp_mask, |
31 | int order, nodemask_t *mask); | ||
30 | extern int register_oom_notifier(struct notifier_block *nb); | 32 | extern int register_oom_notifier(struct notifier_block *nb); |
31 | extern int unregister_oom_notifier(struct notifier_block *nb); | 33 | extern int unregister_oom_notifier(struct notifier_block *nb); |
32 | 34 | ||
diff --git a/include/linux/page_cgroup.h b/include/linux/page_cgroup.h index 4b938d4f3ac2..b0e4eb126236 100644 --- a/include/linux/page_cgroup.h +++ b/include/linux/page_cgroup.h | |||
@@ -57,6 +57,8 @@ static inline void ClearPageCgroup##uname(struct page_cgroup *pc) \ | |||
57 | static inline int TestClearPageCgroup##uname(struct page_cgroup *pc) \ | 57 | static inline int TestClearPageCgroup##uname(struct page_cgroup *pc) \ |
58 | { return test_and_clear_bit(PCG_##lname, &pc->flags); } | 58 | { return test_and_clear_bit(PCG_##lname, &pc->flags); } |
59 | 59 | ||
60 | TESTPCGFLAG(Locked, LOCK) | ||
61 | |||
60 | /* Cache flag is set only once (at allocation) */ | 62 | /* Cache flag is set only once (at allocation) */ |
61 | TESTPCGFLAG(Cache, CACHE) | 63 | TESTPCGFLAG(Cache, CACHE) |
62 | CLEARPCGFLAG(Cache, CACHE) | 64 | CLEARPCGFLAG(Cache, CACHE) |
@@ -86,11 +88,6 @@ static inline void lock_page_cgroup(struct page_cgroup *pc) | |||
86 | bit_spin_lock(PCG_LOCK, &pc->flags); | 88 | bit_spin_lock(PCG_LOCK, &pc->flags); |
87 | } | 89 | } |
88 | 90 | ||
89 | static inline int trylock_page_cgroup(struct page_cgroup *pc) | ||
90 | { | ||
91 | return bit_spin_trylock(PCG_LOCK, &pc->flags); | ||
92 | } | ||
93 | |||
94 | static inline void unlock_page_cgroup(struct page_cgroup *pc) | 91 | static inline void unlock_page_cgroup(struct page_cgroup *pc) |
95 | { | 92 | { |
96 | bit_spin_unlock(PCG_LOCK, &pc->flags); | 93 | bit_spin_unlock(PCG_LOCK, &pc->flags); |
diff --git a/include/linux/ptrace.h b/include/linux/ptrace.h index 7456d7d87a19..56f2d63a5cbb 100644 --- a/include/linux/ptrace.h +++ b/include/linux/ptrace.h | |||
@@ -105,12 +105,7 @@ static inline int ptrace_reparented(struct task_struct *child) | |||
105 | { | 105 | { |
106 | return child->real_parent != child->parent; | 106 | return child->real_parent != child->parent; |
107 | } | 107 | } |
108 | static inline void ptrace_link(struct task_struct *child, | 108 | |
109 | struct task_struct *new_parent) | ||
110 | { | ||
111 | if (unlikely(child->ptrace)) | ||
112 | __ptrace_link(child, new_parent); | ||
113 | } | ||
114 | static inline void ptrace_unlink(struct task_struct *child) | 109 | static inline void ptrace_unlink(struct task_struct *child) |
115 | { | 110 | { |
116 | if (unlikely(child->ptrace)) | 111 | if (unlikely(child->ptrace)) |
@@ -169,9 +164,9 @@ static inline void ptrace_init_task(struct task_struct *child, bool ptrace) | |||
169 | INIT_LIST_HEAD(&child->ptraced); | 164 | INIT_LIST_HEAD(&child->ptraced); |
170 | child->parent = child->real_parent; | 165 | child->parent = child->real_parent; |
171 | child->ptrace = 0; | 166 | child->ptrace = 0; |
172 | if (unlikely(ptrace)) { | 167 | if (unlikely(ptrace) && (current->ptrace & PT_PTRACED)) { |
173 | child->ptrace = current->ptrace; | 168 | child->ptrace = current->ptrace; |
174 | ptrace_link(child, current->parent); | 169 | __ptrace_link(child, current->parent); |
175 | } | 170 | } |
176 | } | 171 | } |
177 | 172 | ||
@@ -278,6 +273,18 @@ static inline void user_enable_block_step(struct task_struct *task) | |||
278 | } | 273 | } |
279 | #endif /* arch_has_block_step */ | 274 | #endif /* arch_has_block_step */ |
280 | 275 | ||
276 | #ifdef ARCH_HAS_USER_SINGLE_STEP_INFO | ||
277 | extern void user_single_step_siginfo(struct task_struct *tsk, | ||
278 | struct pt_regs *regs, siginfo_t *info); | ||
279 | #else | ||
280 | static inline void user_single_step_siginfo(struct task_struct *tsk, | ||
281 | struct pt_regs *regs, siginfo_t *info) | ||
282 | { | ||
283 | memset(info, 0, sizeof(*info)); | ||
284 | info->si_signo = SIGTRAP; | ||
285 | } | ||
286 | #endif | ||
287 | |||
281 | #ifndef arch_ptrace_stop_needed | 288 | #ifndef arch_ptrace_stop_needed |
282 | /** | 289 | /** |
283 | * arch_ptrace_stop_needed - Decide whether arch_ptrace_stop() should be called | 290 | * arch_ptrace_stop_needed - Decide whether arch_ptrace_stop() should be called |
diff --git a/include/linux/reiserfs_fs.h b/include/linux/reiserfs_fs.h index a05b4a20768d..c96c1858fe2c 100644 --- a/include/linux/reiserfs_fs.h +++ b/include/linux/reiserfs_fs.h | |||
@@ -2051,25 +2051,12 @@ void set_de_name_and_namelen(struct reiserfs_dir_entry *de); | |||
2051 | int search_by_entry_key(struct super_block *sb, const struct cpu_key *key, | 2051 | int search_by_entry_key(struct super_block *sb, const struct cpu_key *key, |
2052 | struct treepath *path, struct reiserfs_dir_entry *de); | 2052 | struct treepath *path, struct reiserfs_dir_entry *de); |
2053 | struct dentry *reiserfs_get_parent(struct dentry *); | 2053 | struct dentry *reiserfs_get_parent(struct dentry *); |
2054 | /* procfs.c */ | ||
2055 | |||
2056 | #if defined( CONFIG_PROC_FS ) && defined( CONFIG_REISERFS_PROC_INFO ) | ||
2057 | #define REISERFS_PROC_INFO | ||
2058 | #else | ||
2059 | #undef REISERFS_PROC_INFO | ||
2060 | #endif | ||
2061 | 2054 | ||
2055 | #ifdef CONFIG_REISERFS_PROC_INFO | ||
2062 | int reiserfs_proc_info_init(struct super_block *sb); | 2056 | int reiserfs_proc_info_init(struct super_block *sb); |
2063 | int reiserfs_proc_info_done(struct super_block *sb); | 2057 | int reiserfs_proc_info_done(struct super_block *sb); |
2064 | struct proc_dir_entry *reiserfs_proc_register_global(char *name, | ||
2065 | read_proc_t * func); | ||
2066 | void reiserfs_proc_unregister_global(const char *name); | ||
2067 | int reiserfs_proc_info_global_init(void); | 2058 | int reiserfs_proc_info_global_init(void); |
2068 | int reiserfs_proc_info_global_done(void); | 2059 | int reiserfs_proc_info_global_done(void); |
2069 | int reiserfs_global_version_in_proc(char *buffer, char **start, off_t offset, | ||
2070 | int count, int *eof, void *data); | ||
2071 | |||
2072 | #if defined( REISERFS_PROC_INFO ) | ||
2073 | 2060 | ||
2074 | #define PROC_EXP( e ) e | 2061 | #define PROC_EXP( e ) e |
2075 | 2062 | ||
@@ -2084,6 +2071,26 @@ int reiserfs_global_version_in_proc(char *buffer, char **start, off_t offset, | |||
2084 | PROC_INFO_ADD( sb, free_at[ ( level ) ], B_FREE_SPACE( bh ) ); \ | 2071 | PROC_INFO_ADD( sb, free_at[ ( level ) ], B_FREE_SPACE( bh ) ); \ |
2085 | PROC_INFO_ADD( sb, items_at[ ( level ) ], B_NR_ITEMS( bh ) ) | 2072 | PROC_INFO_ADD( sb, items_at[ ( level ) ], B_NR_ITEMS( bh ) ) |
2086 | #else | 2073 | #else |
2074 | static inline int reiserfs_proc_info_init(struct super_block *sb) | ||
2075 | { | ||
2076 | return 0; | ||
2077 | } | ||
2078 | |||
2079 | static inline int reiserfs_proc_info_done(struct super_block *sb) | ||
2080 | { | ||
2081 | return 0; | ||
2082 | } | ||
2083 | |||
2084 | static inline int reiserfs_proc_info_global_init(void) | ||
2085 | { | ||
2086 | return 0; | ||
2087 | } | ||
2088 | |||
2089 | static inline int reiserfs_proc_info_global_done(void) | ||
2090 | { | ||
2091 | return 0; | ||
2092 | } | ||
2093 | |||
2087 | #define PROC_EXP( e ) | 2094 | #define PROC_EXP( e ) |
2088 | #define VOID_V ( ( void ) 0 ) | 2095 | #define VOID_V ( ( void ) 0 ) |
2089 | #define PROC_INFO_MAX( sb, field, value ) VOID_V | 2096 | #define PROC_INFO_MAX( sb, field, value ) VOID_V |
diff --git a/include/linux/sched.h b/include/linux/sched.h index 5c858f38e81a..244c287a5ac1 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -1544,6 +1544,14 @@ struct task_struct { | |||
1544 | unsigned long trace_recursion; | 1544 | unsigned long trace_recursion; |
1545 | #endif /* CONFIG_TRACING */ | 1545 | #endif /* CONFIG_TRACING */ |
1546 | unsigned long stack_start; | 1546 | unsigned long stack_start; |
1547 | #ifdef CONFIG_CGROUP_MEM_RES_CTLR /* memcg uses this to do batch job */ | ||
1548 | struct memcg_batch_info { | ||
1549 | int do_batch; /* incremented when batch uncharge started */ | ||
1550 | struct mem_cgroup *memcg; /* target memcg of uncharge */ | ||
1551 | unsigned long bytes; /* uncharged usage */ | ||
1552 | unsigned long memsw_bytes; /* uncharged mem+swap usage */ | ||
1553 | } memcg_batch; | ||
1554 | #endif | ||
1547 | }; | 1555 | }; |
1548 | 1556 | ||
1549 | /* Future-safe accessor for struct task_struct's cpus_allowed. */ | 1557 | /* Future-safe accessor for struct task_struct's cpus_allowed. */ |
@@ -2075,7 +2083,6 @@ extern int kill_proc_info(int, struct siginfo *, pid_t); | |||
2075 | extern int do_notify_parent(struct task_struct *, int); | 2083 | extern int do_notify_parent(struct task_struct *, int); |
2076 | extern void __wake_up_parent(struct task_struct *p, struct task_struct *parent); | 2084 | extern void __wake_up_parent(struct task_struct *p, struct task_struct *parent); |
2077 | extern void force_sig(int, struct task_struct *); | 2085 | extern void force_sig(int, struct task_struct *); |
2078 | extern void force_sig_specific(int, struct task_struct *); | ||
2079 | extern int send_sig(int, struct task_struct *, int); | 2086 | extern int send_sig(int, struct task_struct *, int); |
2080 | extern void zap_other_threads(struct task_struct *p); | 2087 | extern void zap_other_threads(struct task_struct *p); |
2081 | extern struct sigqueue *sigqueue_alloc(void); | 2088 | extern struct sigqueue *sigqueue_alloc(void); |
@@ -2094,11 +2101,6 @@ static inline int kill_cad_pid(int sig, int priv) | |||
2094 | #define SEND_SIG_PRIV ((struct siginfo *) 1) | 2101 | #define SEND_SIG_PRIV ((struct siginfo *) 1) |
2095 | #define SEND_SIG_FORCED ((struct siginfo *) 2) | 2102 | #define SEND_SIG_FORCED ((struct siginfo *) 2) |
2096 | 2103 | ||
2097 | static inline int is_si_special(const struct siginfo *info) | ||
2098 | { | ||
2099 | return info <= SEND_SIG_FORCED; | ||
2100 | } | ||
2101 | |||
2102 | /* | 2104 | /* |
2103 | * True if we are on the alternate signal stack. | 2105 | * True if we are on the alternate signal stack. |
2104 | */ | 2106 | */ |
diff --git a/include/linux/sem.h b/include/linux/sem.h index 1b191c176bcd..8a4adbef8a0f 100644 --- a/include/linux/sem.h +++ b/include/linux/sem.h | |||
@@ -86,6 +86,7 @@ struct task_struct; | |||
86 | struct sem { | 86 | struct sem { |
87 | int semval; /* current value */ | 87 | int semval; /* current value */ |
88 | int sempid; /* pid of last operation */ | 88 | int sempid; /* pid of last operation */ |
89 | struct list_head sem_pending; /* pending single-sop operations */ | ||
89 | }; | 90 | }; |
90 | 91 | ||
91 | /* One sem_array data structure for each set of semaphores in the system. */ | 92 | /* One sem_array data structure for each set of semaphores in the system. */ |
@@ -96,11 +97,13 @@ struct sem_array { | |||
96 | struct sem *sem_base; /* ptr to first semaphore in array */ | 97 | struct sem *sem_base; /* ptr to first semaphore in array */ |
97 | struct list_head sem_pending; /* pending operations to be processed */ | 98 | struct list_head sem_pending; /* pending operations to be processed */ |
98 | struct list_head list_id; /* undo requests on this array */ | 99 | struct list_head list_id; /* undo requests on this array */ |
99 | unsigned long sem_nsems; /* no. of semaphores in array */ | 100 | int sem_nsems; /* no. of semaphores in array */ |
101 | int complex_count; /* pending complex operations */ | ||
100 | }; | 102 | }; |
101 | 103 | ||
102 | /* One queue for each sleeping process in the system. */ | 104 | /* One queue for each sleeping process in the system. */ |
103 | struct sem_queue { | 105 | struct sem_queue { |
106 | struct list_head simple_list; /* queue of pending operations */ | ||
104 | struct list_head list; /* queue of pending operations */ | 107 | struct list_head list; /* queue of pending operations */ |
105 | struct task_struct *sleeper; /* this process */ | 108 | struct task_struct *sleeper; /* this process */ |
106 | struct sem_undo *undo; /* undo structure */ | 109 | struct sem_undo *undo; /* undo structure */ |
diff --git a/include/linux/sm501-regs.h b/include/linux/sm501-regs.h index d53642d2d899..67ed2c542831 100644 --- a/include/linux/sm501-regs.h +++ b/include/linux/sm501-regs.h | |||
@@ -31,6 +31,8 @@ | |||
31 | #define SM501_SYSCTRL_PCI_SUBSYS_LOCK (1<<11) | 31 | #define SM501_SYSCTRL_PCI_SUBSYS_LOCK (1<<11) |
32 | #define SM501_SYSCTRL_PCI_BURST_READ_EN (1<<15) | 32 | #define SM501_SYSCTRL_PCI_BURST_READ_EN (1<<15) |
33 | 33 | ||
34 | #define SM501_SYSCTRL_2D_ENGINE_STATUS (1<<19) | ||
35 | |||
34 | /* miscellaneous control */ | 36 | /* miscellaneous control */ |
35 | 37 | ||
36 | #define SM501_MISC_CONTROL (0x000004) | 38 | #define SM501_MISC_CONTROL (0x000004) |
diff --git a/include/linux/timb_gpio.h b/include/linux/timb_gpio.h new file mode 100644 index 000000000000..ce456eaae861 --- /dev/null +++ b/include/linux/timb_gpio.h | |||
@@ -0,0 +1,37 @@ | |||
1 | /* | ||
2 | * timb_gpio.h timberdale FPGA GPIO driver, platform data definition | ||
3 | * Copyright (c) 2009 Intel Corporation | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU General Public License version 2 as | ||
7 | * published by the Free Software Foundation. | ||
8 | * | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program; if not, write to the Free Software | ||
16 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
17 | */ | ||
18 | |||
19 | #ifndef _LINUX_TIMB_GPIO_H | ||
20 | #define _LINUX_TIMB_GPIO_H | ||
21 | |||
22 | /** | ||
23 | * struct timbgpio_platform_data - Platform data of the Timberdale GPIO driver | ||
24 | * @gpio_base The number of the first GPIO pin, set to -1 for | ||
25 | * dynamic number allocation. | ||
26 | * @nr_pins Number of pins that is supported by the hardware (1-32) | ||
27 | * @irq_base If IRQ is supported by the hardware, this is the base | ||
28 | * number of IRQ:s. One IRQ per pin will be used. Set to | ||
29 | * -1 if IRQ:s is not supported. | ||
30 | */ | ||
31 | struct timbgpio_platform_data { | ||
32 | int gpio_base; | ||
33 | int nr_pins; | ||
34 | int irq_base; | ||
35 | }; | ||
36 | |||
37 | #endif | ||
diff --git a/include/linux/tracehook.h b/include/linux/tracehook.h index 1eb44a924e56..10db0102a890 100644 --- a/include/linux/tracehook.h +++ b/include/linux/tracehook.h | |||
@@ -134,6 +134,13 @@ static inline __must_check int tracehook_report_syscall_entry( | |||
134 | */ | 134 | */ |
135 | static inline void tracehook_report_syscall_exit(struct pt_regs *regs, int step) | 135 | static inline void tracehook_report_syscall_exit(struct pt_regs *regs, int step) |
136 | { | 136 | { |
137 | if (step) { | ||
138 | siginfo_t info; | ||
139 | user_single_step_siginfo(current, regs, &info); | ||
140 | force_sig_info(SIGTRAP, &info, current); | ||
141 | return; | ||
142 | } | ||
143 | |||
137 | ptrace_report_syscall(regs); | 144 | ptrace_report_syscall(regs); |
138 | } | 145 | } |
139 | 146 | ||
diff --git a/include/video/da8xx-fb.h b/include/video/da8xx-fb.h index c051a50ed528..89d43b3d4cb9 100644 --- a/include/video/da8xx-fb.h +++ b/include/video/da8xx-fb.h | |||
@@ -38,6 +38,7 @@ struct da8xx_lcdc_platform_data { | |||
38 | const char manu_name[10]; | 38 | const char manu_name[10]; |
39 | void *controller_data; | 39 | void *controller_data; |
40 | const char type[25]; | 40 | const char type[25]; |
41 | void (*panel_power_ctrl)(int); | ||
41 | }; | 42 | }; |
42 | 43 | ||
43 | struct lcd_ctrl_config { | 44 | struct lcd_ctrl_config { |