aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/Kbuild2
-rw-r--r--include/linux/ata.h5
-rw-r--r--include/linux/blkdev.h4
-rw-r--r--include/linux/cgroup.h50
-rw-r--r--include/linux/cgroup_subsys.h2
-rw-r--r--include/linux/compiler.h6
-rw-r--r--include/linux/connector.h2
-rw-r--r--include/linux/debugfs.h5
-rw-r--r--include/linux/delay.h8
-rw-r--r--include/linux/dmaengine.h2
-rw-r--r--include/linux/efs_dir.h42
-rw-r--r--include/linux/efs_fs.h56
-rw-r--r--include/linux/efs_fs_i.h68
-rw-r--r--include/linux/elfcore-compat.h4
-rw-r--r--include/linux/ethtool.h1
-rw-r--r--include/linux/ext4_fs_extents.h1
-rw-r--r--include/linux/firmware.h23
-rw-r--r--include/linux/futex.h1
-rw-r--r--include/linux/genhd.h35
-rw-r--r--include/linux/gpio.h95
-rw-r--r--include/linux/hardirq.h10
-rw-r--r--include/linux/i2c.h11
-rw-r--r--include/linux/if_ether.h3
-rw-r--r--include/linux/iommu-helper.h3
-rw-r--r--include/linux/kprobes.h6
-rw-r--r--include/linux/kvm.h4
-rw-r--r--include/linux/kvm_host.h1
-rw-r--r--include/linux/libata.h1
-rw-r--r--include/linux/maple.h1
-rw-r--r--include/linux/marker.h8
-rw-r--r--include/linux/memcontrol.h44
-rw-r--r--include/linux/memstick.h132
-rw-r--r--include/linux/mm.h17
-rw-r--r--include/linux/mm_types.h9
-rw-r--r--include/linux/netfilter.h4
-rw-r--r--include/linux/netfilter/Kbuild2
-rw-r--r--include/linux/netfilter/nfnetlink_compat.h2
-rw-r--r--include/linux/netfilter/xt_hashlimit.h1
-rw-r--r--include/linux/netpoll.h7
-rw-r--r--include/linux/nfs_fs.h1
-rw-r--r--include/linux/page-flags.h4
-rw-r--r--include/linux/pci.h10
-rw-r--r--include/linux/pci_ids.h7
-rw-r--r--include/linux/pm.h9
-rw-r--r--include/linux/pmu.h9
-rw-r--r--include/linux/proc_fs.h3
-rw-r--r--include/linux/raid/bitmap.h2
-rw-r--r--include/linux/raid/md_k.h1
-rw-r--r--include/linux/rcuclassic.h3
-rw-r--r--include/linux/rcupreempt.h22
-rw-r--r--include/linux/sched.h11
-rw-r--r--include/linux/security.h99
-rw-r--r--include/linux/serial_sci.h32
-rw-r--r--include/linux/slab_def.h4
-rw-r--r--include/linux/slub_def.h4
-rw-r--r--include/linux/sm501-regs.h3
-rw-r--r--include/linux/sm501.h3
-rw-r--r--include/linux/ssb/ssb.h12
-rw-r--r--include/linux/ssb/ssb_driver_chipcommon.h18
-rw-r--r--include/linux/ssb/ssb_driver_extif.h18
-rw-r--r--include/linux/ssb/ssb_driver_pci.h5
-rw-r--r--include/linux/ssb/ssb_embedded.h18
-rw-r--r--include/linux/tifm.h2
-rw-r--r--include/linux/time.h4
-rw-r--r--include/linux/timex.h9
-rw-r--r--include/linux/usb.h12
-rw-r--r--include/linux/usb/Kbuild2
-rw-r--r--include/linux/usb/gadget.h4
-rw-r--r--include/linux/vmstat.h3
69 files changed, 612 insertions, 400 deletions
diff --git a/include/linux/Kbuild b/include/linux/Kbuild
index aada32fffec2..0fac822c1157 100644
--- a/include/linux/Kbuild
+++ b/include/linux/Kbuild
@@ -61,6 +61,7 @@ header-y += efs_fs_sb.h
61header-y += elf-fdpic.h 61header-y += elf-fdpic.h
62header-y += elf-em.h 62header-y += elf-em.h
63header-y += fadvise.h 63header-y += fadvise.h
64header-y += falloc.h
64header-y += fd.h 65header-y += fd.h
65header-y += fdreg.h 66header-y += fdreg.h
66header-y += fib_rules.h 67header-y += fib_rules.h
@@ -204,7 +205,6 @@ unifdef-y += futex.h
204unifdef-y += fs.h 205unifdef-y += fs.h
205unifdef-y += gameport.h 206unifdef-y += gameport.h
206unifdef-y += generic_serial.h 207unifdef-y += generic_serial.h
207unifdef-y += genhd.h
208unifdef-y += gfs2_ondisk.h 208unifdef-y += gfs2_ondisk.h
209unifdef-y += hayesesp.h 209unifdef-y += hayesesp.h
210unifdef-y += hdlcdrv.h 210unifdef-y += hdlcdrv.h
diff --git a/include/linux/ata.h b/include/linux/ata.h
index 78bbacaed8c4..1c622e2b0504 100644
--- a/include/linux/ata.h
+++ b/include/linux/ata.h
@@ -659,6 +659,11 @@ static inline int atapi_command_packet_set(const u16 *dev_id)
659 return (dev_id[0] >> 8) & 0x1f; 659 return (dev_id[0] >> 8) & 0x1f;
660} 660}
661 661
662static inline int atapi_id_dmadir(const u16 *dev_id)
663{
664 return ata_id_major_version(dev_id) >= 7 && (dev_id[62] & 0x8000);
665}
666
662static inline int is_multi_taskfile(struct ata_taskfile *tf) 667static inline int is_multi_taskfile(struct ata_taskfile *tf)
663{ 668{
664 return (tf->command == ATA_CMD_READ_MULTI) || 669 return (tf->command == ATA_CMD_READ_MULTI) ||
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 6fe67d1939c2..6f79d40dd3c0 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -216,8 +216,8 @@ struct request {
216 unsigned int cmd_len; 216 unsigned int cmd_len;
217 unsigned char cmd[BLK_MAX_CDB]; 217 unsigned char cmd[BLK_MAX_CDB];
218 218
219 unsigned int raw_data_len;
220 unsigned int data_len; 219 unsigned int data_len;
220 unsigned int extra_len; /* length of alignment and padding */
221 unsigned int sense_len; 221 unsigned int sense_len;
222 void *data; 222 void *data;
223 void *sense; 223 void *sense;
@@ -362,6 +362,7 @@ struct request_queue
362 unsigned long seg_boundary_mask; 362 unsigned long seg_boundary_mask;
363 void *dma_drain_buffer; 363 void *dma_drain_buffer;
364 unsigned int dma_drain_size; 364 unsigned int dma_drain_size;
365 unsigned int dma_pad_mask;
365 unsigned int dma_alignment; 366 unsigned int dma_alignment;
366 367
367 struct blk_queue_tag *queue_tags; 368 struct blk_queue_tag *queue_tags;
@@ -701,6 +702,7 @@ extern void blk_queue_max_hw_segments(struct request_queue *, unsigned short);
701extern void blk_queue_max_segment_size(struct request_queue *, unsigned int); 702extern void blk_queue_max_segment_size(struct request_queue *, unsigned int);
702extern void blk_queue_hardsect_size(struct request_queue *, unsigned short); 703extern void blk_queue_hardsect_size(struct request_queue *, unsigned short);
703extern void blk_queue_stack_limits(struct request_queue *t, struct request_queue *b); 704extern void blk_queue_stack_limits(struct request_queue *t, struct request_queue *b);
705extern void blk_queue_dma_pad(struct request_queue *, unsigned int);
704extern int blk_queue_dma_drain(struct request_queue *q, 706extern int blk_queue_dma_drain(struct request_queue *q,
705 dma_drain_needed_fn *dma_drain_needed, 707 dma_drain_needed_fn *dma_drain_needed,
706 void *buf, unsigned int size); 708 void *buf, unsigned int size);
diff --git a/include/linux/cgroup.h b/include/linux/cgroup.h
index ff9055fc3d2a..028ba3b523b1 100644
--- a/include/linux/cgroup.h
+++ b/include/linux/cgroup.h
@@ -175,7 +175,7 @@ struct css_set {
175 * 175 *
176 * 176 *
177 * When reading/writing to a file: 177 * When reading/writing to a file:
178 * - the cgroup to use in file->f_dentry->d_parent->d_fsdata 178 * - the cgroup to use is file->f_dentry->d_parent->d_fsdata
179 * - the 'cftype' of the file is file->f_dentry->d_fsdata 179 * - the 'cftype' of the file is file->f_dentry->d_fsdata
180 */ 180 */
181 181
@@ -186,15 +186,15 @@ struct cftype {
186 char name[MAX_CFTYPE_NAME]; 186 char name[MAX_CFTYPE_NAME];
187 int private; 187 int private;
188 int (*open) (struct inode *inode, struct file *file); 188 int (*open) (struct inode *inode, struct file *file);
189 ssize_t (*read) (struct cgroup *cont, struct cftype *cft, 189 ssize_t (*read) (struct cgroup *cgrp, struct cftype *cft,
190 struct file *file, 190 struct file *file,
191 char __user *buf, size_t nbytes, loff_t *ppos); 191 char __user *buf, size_t nbytes, loff_t *ppos);
192 /* 192 /*
193 * read_uint() is a shortcut for the common case of returning a 193 * read_uint() is a shortcut for the common case of returning a
194 * single integer. Use it in place of read() 194 * single integer. Use it in place of read()
195 */ 195 */
196 u64 (*read_uint) (struct cgroup *cont, struct cftype *cft); 196 u64 (*read_uint) (struct cgroup *cgrp, struct cftype *cft);
197 ssize_t (*write) (struct cgroup *cont, struct cftype *cft, 197 ssize_t (*write) (struct cgroup *cgrp, struct cftype *cft,
198 struct file *file, 198 struct file *file,
199 const char __user *buf, size_t nbytes, loff_t *ppos); 199 const char __user *buf, size_t nbytes, loff_t *ppos);
200 200
@@ -203,7 +203,7 @@ struct cftype {
203 * a single integer (as parsed by simple_strtoull) from 203 * a single integer (as parsed by simple_strtoull) from
204 * userspace. Use in place of write(); return 0 or error. 204 * userspace. Use in place of write(); return 0 or error.
205 */ 205 */
206 int (*write_uint) (struct cgroup *cont, struct cftype *cft, u64 val); 206 int (*write_uint) (struct cgroup *cgrp, struct cftype *cft, u64 val);
207 207
208 int (*release) (struct inode *inode, struct file *file); 208 int (*release) (struct inode *inode, struct file *file);
209}; 209};
@@ -218,41 +218,41 @@ struct cgroup_scanner {
218 218
219/* Add a new file to the given cgroup directory. Should only be 219/* Add a new file to the given cgroup directory. Should only be
220 * called by subsystems from within a populate() method */ 220 * called by subsystems from within a populate() method */
221int cgroup_add_file(struct cgroup *cont, struct cgroup_subsys *subsys, 221int cgroup_add_file(struct cgroup *cgrp, struct cgroup_subsys *subsys,
222 const struct cftype *cft); 222 const struct cftype *cft);
223 223
224/* Add a set of new files to the given cgroup directory. Should 224/* Add a set of new files to the given cgroup directory. Should
225 * only be called by subsystems from within a populate() method */ 225 * only be called by subsystems from within a populate() method */
226int cgroup_add_files(struct cgroup *cont, 226int cgroup_add_files(struct cgroup *cgrp,
227 struct cgroup_subsys *subsys, 227 struct cgroup_subsys *subsys,
228 const struct cftype cft[], 228 const struct cftype cft[],
229 int count); 229 int count);
230 230
231int cgroup_is_removed(const struct cgroup *cont); 231int cgroup_is_removed(const struct cgroup *cgrp);
232 232
233int cgroup_path(const struct cgroup *cont, char *buf, int buflen); 233int cgroup_path(const struct cgroup *cgrp, char *buf, int buflen);
234 234
235int cgroup_task_count(const struct cgroup *cont); 235int cgroup_task_count(const struct cgroup *cgrp);
236 236
237/* Return true if the cgroup is a descendant of the current cgroup */ 237/* Return true if the cgroup is a descendant of the current cgroup */
238int cgroup_is_descendant(const struct cgroup *cont); 238int cgroup_is_descendant(const struct cgroup *cgrp);
239 239
240/* Control Group subsystem type. See Documentation/cgroups.txt for details */ 240/* Control Group subsystem type. See Documentation/cgroups.txt for details */
241 241
242struct cgroup_subsys { 242struct cgroup_subsys {
243 struct cgroup_subsys_state *(*create)(struct cgroup_subsys *ss, 243 struct cgroup_subsys_state *(*create)(struct cgroup_subsys *ss,
244 struct cgroup *cont); 244 struct cgroup *cgrp);
245 void (*pre_destroy)(struct cgroup_subsys *ss, struct cgroup *cont); 245 void (*pre_destroy)(struct cgroup_subsys *ss, struct cgroup *cgrp);
246 void (*destroy)(struct cgroup_subsys *ss, struct cgroup *cont); 246 void (*destroy)(struct cgroup_subsys *ss, struct cgroup *cgrp);
247 int (*can_attach)(struct cgroup_subsys *ss, 247 int (*can_attach)(struct cgroup_subsys *ss,
248 struct cgroup *cont, struct task_struct *tsk); 248 struct cgroup *cgrp, struct task_struct *tsk);
249 void (*attach)(struct cgroup_subsys *ss, struct cgroup *cont, 249 void (*attach)(struct cgroup_subsys *ss, struct cgroup *cgrp,
250 struct cgroup *old_cont, struct task_struct *tsk); 250 struct cgroup *old_cgrp, struct task_struct *tsk);
251 void (*fork)(struct cgroup_subsys *ss, struct task_struct *task); 251 void (*fork)(struct cgroup_subsys *ss, struct task_struct *task);
252 void (*exit)(struct cgroup_subsys *ss, struct task_struct *task); 252 void (*exit)(struct cgroup_subsys *ss, struct task_struct *task);
253 int (*populate)(struct cgroup_subsys *ss, 253 int (*populate)(struct cgroup_subsys *ss,
254 struct cgroup *cont); 254 struct cgroup *cgrp);
255 void (*post_clone)(struct cgroup_subsys *ss, struct cgroup *cont); 255 void (*post_clone)(struct cgroup_subsys *ss, struct cgroup *cgrp);
256 void (*bind)(struct cgroup_subsys *ss, struct cgroup *root); 256 void (*bind)(struct cgroup_subsys *ss, struct cgroup *root);
257 int subsys_id; 257 int subsys_id;
258 int active; 258 int active;
@@ -273,9 +273,9 @@ struct cgroup_subsys {
273#undef SUBSYS 273#undef SUBSYS
274 274
275static inline struct cgroup_subsys_state *cgroup_subsys_state( 275static inline struct cgroup_subsys_state *cgroup_subsys_state(
276 struct cgroup *cont, int subsys_id) 276 struct cgroup *cgrp, int subsys_id)
277{ 277{
278 return cont->subsys[subsys_id]; 278 return cgrp->subsys[subsys_id];
279} 279}
280 280
281static inline struct cgroup_subsys_state *task_subsys_state( 281static inline struct cgroup_subsys_state *task_subsys_state(
@@ -290,8 +290,6 @@ static inline struct cgroup* task_cgroup(struct task_struct *task,
290 return task_subsys_state(task, subsys_id)->cgroup; 290 return task_subsys_state(task, subsys_id)->cgroup;
291} 291}
292 292
293int cgroup_path(const struct cgroup *cont, char *buf, int buflen);
294
295int cgroup_clone(struct task_struct *tsk, struct cgroup_subsys *ss); 293int cgroup_clone(struct task_struct *tsk, struct cgroup_subsys *ss);
296 294
297/* A cgroup_iter should be treated as an opaque object */ 295/* A cgroup_iter should be treated as an opaque object */
@@ -313,10 +311,10 @@ struct cgroup_iter {
313 * - cgroup_scan_tasks() holds the css_set_lock when calling the test_task() 311 * - cgroup_scan_tasks() holds the css_set_lock when calling the test_task()
314 * callback, but not while calling the process_task() callback. 312 * callback, but not while calling the process_task() callback.
315 */ 313 */
316void cgroup_iter_start(struct cgroup *cont, struct cgroup_iter *it); 314void cgroup_iter_start(struct cgroup *cgrp, struct cgroup_iter *it);
317struct task_struct *cgroup_iter_next(struct cgroup *cont, 315struct task_struct *cgroup_iter_next(struct cgroup *cgrp,
318 struct cgroup_iter *it); 316 struct cgroup_iter *it);
319void cgroup_iter_end(struct cgroup *cont, struct cgroup_iter *it); 317void cgroup_iter_end(struct cgroup *cgrp, struct cgroup_iter *it);
320int cgroup_scan_tasks(struct cgroup_scanner *scan); 318int cgroup_scan_tasks(struct cgroup_scanner *scan);
321int cgroup_attach_task(struct cgroup *, struct task_struct *); 319int cgroup_attach_task(struct cgroup *, struct task_struct *);
322 320
diff --git a/include/linux/cgroup_subsys.h b/include/linux/cgroup_subsys.h
index ac6aad98b607..1ddebfc52565 100644
--- a/include/linux/cgroup_subsys.h
+++ b/include/linux/cgroup_subsys.h
@@ -37,7 +37,7 @@ SUBSYS(cpuacct)
37 37
38/* */ 38/* */
39 39
40#ifdef CONFIG_CGROUP_MEM_CONT 40#ifdef CONFIG_CGROUP_MEM_RES_CTLR
41SUBSYS(mem_cgroup) 41SUBSYS(mem_cgroup)
42#endif 42#endif
43 43
diff --git a/include/linux/compiler.h b/include/linux/compiler.h
index d0e17e1657dc..dcae0c8d97e6 100644
--- a/include/linux/compiler.h
+++ b/include/linux/compiler.h
@@ -138,6 +138,12 @@ extern void __chk_io_ptr(const volatile void __iomem *);
138#define noinline 138#define noinline
139#endif 139#endif
140 140
141/*
142 * Rather then using noinline to prevent stack consumption, use
143 * noinline_for_stack instead. For documentaiton reasons.
144 */
145#define noinline_for_stack noinline
146
141#ifndef __always_inline 147#ifndef __always_inline
142#define __always_inline inline 148#define __always_inline inline
143#endif 149#endif
diff --git a/include/linux/connector.h b/include/linux/connector.h
index da6dd957f908..96a89d3d6727 100644
--- a/include/linux/connector.h
+++ b/include/linux/connector.h
@@ -170,7 +170,5 @@ int cn_cb_equal(struct cb_id *, struct cb_id *);
170 170
171void cn_queue_wrapper(struct work_struct *work); 171void cn_queue_wrapper(struct work_struct *work);
172 172
173extern int cn_already_initialized;
174
175#endif /* __KERNEL__ */ 173#endif /* __KERNEL__ */
176#endif /* __CONNECTOR_H */ 174#endif /* __CONNECTOR_H */
diff --git a/include/linux/debugfs.h b/include/linux/debugfs.h
index f592d6de3b97..7266124361b4 100644
--- a/include/linux/debugfs.h
+++ b/include/linux/debugfs.h
@@ -27,6 +27,11 @@ struct debugfs_blob_wrapper {
27}; 27};
28 28
29#if defined(CONFIG_DEBUG_FS) 29#if defined(CONFIG_DEBUG_FS)
30
31/* declared over in file.c */
32extern const struct file_operations debugfs_file_operations;
33extern const struct inode_operations debugfs_link_operations;
34
30struct dentry *debugfs_create_file(const char *name, mode_t mode, 35struct dentry *debugfs_create_file(const char *name, mode_t mode,
31 struct dentry *parent, void *data, 36 struct dentry *parent, void *data,
32 const struct file_operations *fops); 37 const struct file_operations *fops);
diff --git a/include/linux/delay.h b/include/linux/delay.h
index 17ddb55430ae..54552d21296e 100644
--- a/include/linux/delay.h
+++ b/include/linux/delay.h
@@ -7,6 +7,8 @@
7 * Delay routines, using a pre-computed "loops_per_jiffy" value. 7 * Delay routines, using a pre-computed "loops_per_jiffy" value.
8 */ 8 */
9 9
10#include <linux/kernel.h>
11
10extern unsigned long loops_per_jiffy; 12extern unsigned long loops_per_jiffy;
11 13
12#include <asm/delay.h> 14#include <asm/delay.h>
@@ -32,7 +34,11 @@ extern unsigned long loops_per_jiffy;
32#endif 34#endif
33 35
34#ifndef ndelay 36#ifndef ndelay
35#define ndelay(x) udelay(((x)+999)/1000) 37static inline void ndelay(unsigned long x)
38{
39 udelay(DIV_ROUND_UP(x, 1000));
40}
41#define ndelay(x) ndelay(x)
36#endif 42#endif
37 43
38void calibrate_delay(void); 44void calibrate_delay(void);
diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h
index acbb364674ff..261e43a4c873 100644
--- a/include/linux/dmaengine.h
+++ b/include/linux/dmaengine.h
@@ -366,7 +366,7 @@ __dma_has_cap(enum dma_transaction_type tx_type, dma_cap_mask_t *srcp)
366 */ 366 */
367static inline void dma_async_issue_pending(struct dma_chan *chan) 367static inline void dma_async_issue_pending(struct dma_chan *chan)
368{ 368{
369 return chan->device->device_issue_pending(chan); 369 chan->device->device_issue_pending(chan);
370} 370}
371 371
372#define dma_async_memcpy_issue_pending(chan) dma_async_issue_pending(chan) 372#define dma_async_memcpy_issue_pending(chan) dma_async_issue_pending(chan)
diff --git a/include/linux/efs_dir.h b/include/linux/efs_dir.h
deleted file mode 100644
index a09ec010569c..000000000000
--- a/include/linux/efs_dir.h
+++ /dev/null
@@ -1,42 +0,0 @@
1/*
2 * efs_dir.h
3 *
4 * Copyright (c) 1999 Al Smith
5 */
6
7#ifndef __EFS_DIR_H__
8#define __EFS_DIR_H__
9
10#define EFS_DIRBSIZE_BITS EFS_BLOCKSIZE_BITS
11#define EFS_DIRBSIZE (1 << EFS_DIRBSIZE_BITS)
12
13struct efs_dentry {
14 __be32 inode;
15 unsigned char namelen;
16 char name[3];
17};
18
19#define EFS_DENTSIZE (sizeof(struct efs_dentry) - 3 + 1)
20#define EFS_MAXNAMELEN ((1 << (sizeof(char) * 8)) - 1)
21
22#define EFS_DIRBLK_HEADERSIZE 4
23#define EFS_DIRBLK_MAGIC 0xbeef /* moo */
24
25struct efs_dir {
26 __be16 magic;
27 unsigned char firstused;
28 unsigned char slots;
29
30 unsigned char space[EFS_DIRBSIZE - EFS_DIRBLK_HEADERSIZE];
31};
32
33#define EFS_MAXENTS \
34 ((EFS_DIRBSIZE - EFS_DIRBLK_HEADERSIZE) / \
35 (EFS_DENTSIZE + sizeof(char)))
36
37#define EFS_SLOTAT(dir, slot) EFS_REALOFF((dir)->space[slot])
38
39#define EFS_REALOFF(offset) ((offset << 1))
40
41#endif /* __EFS_DIR_H__ */
42
diff --git a/include/linux/efs_fs.h b/include/linux/efs_fs.h
deleted file mode 100644
index a695d63a07af..000000000000
--- a/include/linux/efs_fs.h
+++ /dev/null
@@ -1,56 +0,0 @@
1/*
2 * efs_fs.h
3 *
4 * Copyright (c) 1999 Al Smith
5 *
6 * Portions derived from work (c) 1995,1996 Christian Vogelgsang.
7 */
8
9#ifndef __EFS_FS_H__
10#define __EFS_FS_H__
11
12#define EFS_VERSION "1.0a"
13
14static const char cprt[] = "EFS: "EFS_VERSION" - (c) 1999 Al Smith <Al.Smith@aeschi.ch.eu.org>";
15
16#include <asm/uaccess.h>
17
18/* 1 block is 512 bytes */
19#define EFS_BLOCKSIZE_BITS 9
20#define EFS_BLOCKSIZE (1 << EFS_BLOCKSIZE_BITS)
21
22#include <linux/fs.h>
23#include <linux/efs_fs_i.h>
24#include <linux/efs_fs_sb.h>
25#include <linux/efs_dir.h>
26
27static inline struct efs_inode_info *INODE_INFO(struct inode *inode)
28{
29 return container_of(inode, struct efs_inode_info, vfs_inode);
30}
31
32static inline struct efs_sb_info *SUPER_INFO(struct super_block *sb)
33{
34 return sb->s_fs_info;
35}
36
37struct statfs;
38struct fid;
39
40extern const struct inode_operations efs_dir_inode_operations;
41extern const struct file_operations efs_dir_operations;
42extern const struct address_space_operations efs_symlink_aops;
43
44extern struct inode *efs_iget(struct super_block *, unsigned long);
45extern efs_block_t efs_map_block(struct inode *, efs_block_t);
46extern int efs_get_block(struct inode *, sector_t, struct buffer_head *, int);
47
48extern struct dentry *efs_lookup(struct inode *, struct dentry *, struct nameidata *);
49extern struct dentry *efs_fh_to_dentry(struct super_block *sb, struct fid *fid,
50 int fh_len, int fh_type);
51extern struct dentry *efs_fh_to_parent(struct super_block *sb, struct fid *fid,
52 int fh_len, int fh_type);
53extern struct dentry *efs_get_parent(struct dentry *);
54extern int efs_bmap(struct inode *, int);
55
56#endif /* __EFS_FS_H__ */
diff --git a/include/linux/efs_fs_i.h b/include/linux/efs_fs_i.h
deleted file mode 100644
index 617c474ca659..000000000000
--- a/include/linux/efs_fs_i.h
+++ /dev/null
@@ -1,68 +0,0 @@
1/*
2 * efs_fs_i.h
3 *
4 * Copyright (c) 1999 Al Smith
5 *
6 * Portions derived from IRIX header files (c) 1988 Silicon Graphics
7 */
8
9#ifndef __EFS_FS_I_H__
10#define __EFS_FS_I_H__
11
12typedef int32_t efs_block_t;
13typedef uint32_t efs_ino_t;
14
15#define EFS_DIRECTEXTENTS 12
16
17/*
18 * layout of an extent, in memory and on disk. 8 bytes exactly.
19 */
20typedef union extent_u {
21 unsigned char raw[8];
22 struct extent_s {
23 unsigned int ex_magic:8; /* magic # (zero) */
24 unsigned int ex_bn:24; /* basic block */
25 unsigned int ex_length:8; /* numblocks in this extent */
26 unsigned int ex_offset:24; /* logical offset into file */
27 } cooked;
28} efs_extent;
29
30typedef struct edevs {
31 __be16 odev;
32 __be32 ndev;
33} efs_devs;
34
35/*
36 * extent based filesystem inode as it appears on disk. The efs inode
37 * is exactly 128 bytes long.
38 */
39struct efs_dinode {
40 __be16 di_mode; /* mode and type of file */
41 __be16 di_nlink; /* number of links to file */
42 __be16 di_uid; /* owner's user id */
43 __be16 di_gid; /* owner's group id */
44 __be32 di_size; /* number of bytes in file */
45 __be32 di_atime; /* time last accessed */
46 __be32 di_mtime; /* time last modified */
47 __be32 di_ctime; /* time created */
48 __be32 di_gen; /* generation number */
49 __be16 di_numextents; /* # of extents */
50 u_char di_version; /* version of inode */
51 u_char di_spare; /* spare - used by AFS */
52 union di_addr {
53 efs_extent di_extents[EFS_DIRECTEXTENTS];
54 efs_devs di_dev; /* device for IFCHR/IFBLK */
55 } di_u;
56};
57
58/* efs inode storage in memory */
59struct efs_inode_info {
60 int numextents;
61 int lastextent;
62
63 efs_extent extents[EFS_DIRECTEXTENTS];
64 struct inode vfs_inode;
65};
66
67#endif /* __EFS_FS_I_H__ */
68
diff --git a/include/linux/elfcore-compat.h b/include/linux/elfcore-compat.h
index 532d13adabc4..0a90e1c3a422 100644
--- a/include/linux/elfcore-compat.h
+++ b/include/linux/elfcore-compat.h
@@ -45,8 +45,8 @@ struct compat_elf_prpsinfo
45 char pr_zomb; 45 char pr_zomb;
46 char pr_nice; 46 char pr_nice;
47 compat_ulong_t pr_flag; 47 compat_ulong_t pr_flag;
48 compat_uid_t pr_uid; 48 __compat_uid_t pr_uid;
49 compat_gid_t pr_gid; 49 __compat_gid_t pr_gid;
50 compat_pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid; 50 compat_pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid;
51 char pr_fname[16]; 51 char pr_fname[16];
52 char pr_psargs[ELF_PRARGSZ]; 52 char pr_psargs[ELF_PRARGSZ];
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
index fcbe8b640ffb..c8d216357865 100644
--- a/include/linux/ethtool.h
+++ b/include/linux/ethtool.h
@@ -12,6 +12,7 @@
12#ifndef _LINUX_ETHTOOL_H 12#ifndef _LINUX_ETHTOOL_H
13#define _LINUX_ETHTOOL_H 13#define _LINUX_ETHTOOL_H
14 14
15#include <linux/types.h>
15 16
16/* This should work for both 32 and 64 bit userland. */ 17/* This should work for both 32 and 64 bit userland. */
17struct ethtool_cmd { 18struct ethtool_cmd {
diff --git a/include/linux/ext4_fs_extents.h b/include/linux/ext4_fs_extents.h
index 697da4bce6c5..1285c583b2d8 100644
--- a/include/linux/ext4_fs_extents.h
+++ b/include/linux/ext4_fs_extents.h
@@ -227,5 +227,6 @@ extern int ext4_ext_search_left(struct inode *, struct ext4_ext_path *,
227 ext4_lblk_t *, ext4_fsblk_t *); 227 ext4_lblk_t *, ext4_fsblk_t *);
228extern int ext4_ext_search_right(struct inode *, struct ext4_ext_path *, 228extern int ext4_ext_search_right(struct inode *, struct ext4_ext_path *,
229 ext4_lblk_t *, ext4_fsblk_t *); 229 ext4_lblk_t *, ext4_fsblk_t *);
230extern void ext4_ext_drop_refs(struct ext4_ext_path *);
230#endif /* _LINUX_EXT4_EXTENTS */ 231#endif /* _LINUX_EXT4_EXTENTS */
231 232
diff --git a/include/linux/firmware.h b/include/linux/firmware.h
index 33d8f2087b6e..4d10c7328d2d 100644
--- a/include/linux/firmware.h
+++ b/include/linux/firmware.h
@@ -10,7 +10,10 @@ struct firmware {
10 size_t size; 10 size_t size;
11 u8 *data; 11 u8 *data;
12}; 12};
13
13struct device; 14struct device;
15
16#if defined(CONFIG_FW_LOADER) || defined(CONFIG_FW_LOADER_MODULE)
14int request_firmware(const struct firmware **fw, const char *name, 17int request_firmware(const struct firmware **fw, const char *name,
15 struct device *device); 18 struct device *device);
16int request_firmware_nowait( 19int request_firmware_nowait(
@@ -19,4 +22,24 @@ int request_firmware_nowait(
19 void (*cont)(const struct firmware *fw, void *context)); 22 void (*cont)(const struct firmware *fw, void *context));
20 23
21void release_firmware(const struct firmware *fw); 24void release_firmware(const struct firmware *fw);
25#else
26static inline int request_firmware(const struct firmware **fw,
27 const char *name,
28 struct device *device)
29{
30 return -EINVAL;
31}
32static inline int request_firmware_nowait(
33 struct module *module, int uevent,
34 const char *name, struct device *device, void *context,
35 void (*cont)(const struct firmware *fw, void *context))
36{
37 return -EINVAL;
38}
39
40static inline void release_firmware(const struct firmware *fw)
41{
42}
43#endif
44
22#endif 45#endif
diff --git a/include/linux/futex.h b/include/linux/futex.h
index 90048fb28a38..586ab56a3ec3 100644
--- a/include/linux/futex.h
+++ b/include/linux/futex.h
@@ -167,6 +167,7 @@ union futex_key {
167#ifdef CONFIG_FUTEX 167#ifdef CONFIG_FUTEX
168extern void exit_robust_list(struct task_struct *curr); 168extern void exit_robust_list(struct task_struct *curr);
169extern void exit_pi_state_list(struct task_struct *curr); 169extern void exit_pi_state_list(struct task_struct *curr);
170extern int futex_cmpxchg_enabled;
170#else 171#else
171static inline void exit_robust_list(struct task_struct *curr) 172static inline void exit_robust_list(struct task_struct *curr)
172{ 173{
diff --git a/include/linux/genhd.h b/include/linux/genhd.h
index 09a3b18918c7..ecd2bf63fc84 100644
--- a/include/linux/genhd.h
+++ b/include/linux/genhd.h
@@ -18,11 +18,13 @@
18#define dev_to_disk(device) container_of(device, struct gendisk, dev) 18#define dev_to_disk(device) container_of(device, struct gendisk, dev)
19#define dev_to_part(device) container_of(device, struct hd_struct, dev) 19#define dev_to_part(device) container_of(device, struct hd_struct, dev)
20 20
21extern struct device_type disk_type;
22extern struct device_type part_type; 21extern struct device_type part_type;
23extern struct kobject *block_depr; 22extern struct kobject *block_depr;
24extern struct class block_class; 23extern struct class block_class;
25 24
25extern const struct seq_operations partitions_op;
26extern const struct seq_operations diskstats_op;
27
26enum { 28enum {
27/* These three have identical behaviour; use the second one if DOS FDISK gets 29/* These three have identical behaviour; use the second one if DOS FDISK gets
28 confused about extended/logical partitions starting past cylinder 1023. */ 30 confused about extended/logical partitions starting past cylinder 1023. */
@@ -53,24 +55,6 @@ enum {
53 UNIXWARE_PARTITION = 0x63, /* Same as GNU_HURD and SCO Unix */ 55 UNIXWARE_PARTITION = 0x63, /* Same as GNU_HURD and SCO Unix */
54}; 56};
55 57
56#ifndef __KERNEL__
57
58struct partition {
59 unsigned char boot_ind; /* 0x80 - active */
60 unsigned char head; /* starting head */
61 unsigned char sector; /* starting sector */
62 unsigned char cyl; /* starting cylinder */
63 unsigned char sys_ind; /* What partition type */
64 unsigned char end_head; /* end head */
65 unsigned char end_sector; /* end sector */
66 unsigned char end_cyl; /* end cylinder */
67 unsigned int start_sect; /* starting sector counting from 0 */
68 unsigned int nr_sects; /* nr of sectors in partition */
69} __attribute__((packed));
70
71#endif
72
73#ifdef __KERNEL__
74#include <linux/major.h> 58#include <linux/major.h>
75#include <linux/device.h> 59#include <linux/device.h>
76#include <linux/smp.h> 60#include <linux/smp.h>
@@ -226,7 +210,7 @@ static inline void part_stat_set_all(struct hd_struct *part, int value) {
226 sizeof(struct disk_stats)); 210 sizeof(struct disk_stats));
227} 211}
228 212
229#else 213#else /* !CONFIG_SMP */
230#define __disk_stat_add(gendiskp, field, addnd) \ 214#define __disk_stat_add(gendiskp, field, addnd) \
231 (gendiskp->dkstats.field += addnd) 215 (gendiskp->dkstats.field += addnd)
232#define disk_stat_read(gendiskp, field) (gendiskp->dkstats.field) 216#define disk_stat_read(gendiskp, field) (gendiskp->dkstats.field)
@@ -254,7 +238,7 @@ static inline void part_stat_set_all(struct hd_struct *part, int value)
254 memset(&part->dkstats, value, sizeof(struct disk_stats)); 238 memset(&part->dkstats, value, sizeof(struct disk_stats));
255} 239}
256 240
257#endif 241#endif /* CONFIG_SMP */
258 242
259#define disk_stat_add(gendiskp, field, addnd) \ 243#define disk_stat_add(gendiskp, field, addnd) \
260 do { \ 244 do { \
@@ -393,8 +377,6 @@ static inline void set_capacity(struct gendisk *disk, sector_t size)
393 disk->capacity = size; 377 disk->capacity = size;
394} 378}
395 379
396#endif /* __KERNEL__ */
397
398#ifdef CONFIG_SOLARIS_X86_PARTITION 380#ifdef CONFIG_SOLARIS_X86_PARTITION
399 381
400#define SOLARIS_X86_NUMSLICE 16 382#define SOLARIS_X86_NUMSLICE 16
@@ -538,8 +520,6 @@ struct unixware_disklabel {
538# define MINIX_NR_SUBPARTITIONS 4 520# define MINIX_NR_SUBPARTITIONS 4
539#endif /* CONFIG_MINIX_SUBPARTITION */ 521#endif /* CONFIG_MINIX_SUBPARTITION */
540 522
541#ifdef __KERNEL__
542
543#define ADDPART_FLAG_NONE 0 523#define ADDPART_FLAG_NONE 0
544#define ADDPART_FLAG_RAID 1 524#define ADDPART_FLAG_RAID 1
545#define ADDPART_FLAG_WHOLEDISK 2 525#define ADDPART_FLAG_WHOLEDISK 2
@@ -556,7 +536,6 @@ extern struct gendisk *alloc_disk_node(int minors, int node_id);
556extern struct gendisk *alloc_disk(int minors); 536extern struct gendisk *alloc_disk(int minors);
557extern struct kobject *get_disk(struct gendisk *disk); 537extern struct kobject *get_disk(struct gendisk *disk);
558extern void put_disk(struct gendisk *disk); 538extern void put_disk(struct gendisk *disk);
559extern void genhd_media_change_notify(struct gendisk *disk);
560extern void blk_register_region(dev_t devt, unsigned long range, 539extern void blk_register_region(dev_t devt, unsigned long range,
561 struct module *module, 540 struct module *module,
562 struct kobject *(*probe)(dev_t, int *, void *), 541 struct kobject *(*probe)(dev_t, int *, void *),
@@ -569,8 +548,6 @@ static inline struct block_device *bdget_disk(struct gendisk *disk, int index)
569 return bdget(MKDEV(disk->major, disk->first_minor) + index); 548 return bdget(MKDEV(disk->major, disk->first_minor) + index);
570} 549}
571 550
572#endif
573
574#else /* CONFIG_BLOCK */ 551#else /* CONFIG_BLOCK */
575 552
576static inline void printk_all_partitions(void) { } 553static inline void printk_all_partitions(void) { }
@@ -583,4 +560,4 @@ static inline dev_t blk_lookup_devt(const char *name)
583 560
584#endif /* CONFIG_BLOCK */ 561#endif /* CONFIG_BLOCK */
585 562
586#endif 563#endif /* _LINUX_GENHD_H */
diff --git a/include/linux/gpio.h b/include/linux/gpio.h
new file mode 100644
index 000000000000..4987a84078ef
--- /dev/null
+++ b/include/linux/gpio.h
@@ -0,0 +1,95 @@
1#ifndef __LINUX_GPIO_H
2#define __LINUX_GPIO_H
3
4/* see Documentation/gpio.txt */
5
6#ifdef CONFIG_GENERIC_GPIO
7#include <asm/gpio.h>
8
9#else
10
11/*
12 * Some platforms don't support the GPIO programming interface.
13 *
14 * In case some driver uses it anyway (it should normally have
15 * depended on GENERIC_GPIO), these routines help the compiler
16 * optimize out much GPIO-related code ... or trigger a runtime
17 * warning when something is wrongly called.
18 */
19
20static inline int gpio_is_valid(int number)
21{
22 return 0;
23}
24
25static inline int gpio_request(unsigned gpio, const char *label)
26{
27 return -ENOSYS;
28}
29
30static inline void gpio_free(unsigned gpio)
31{
32 /* GPIO can never have been requested */
33 WARN_ON(1);
34}
35
36static inline int gpio_direction_input(unsigned gpio)
37{
38 return -ENOSYS;
39}
40
41static inline int gpio_direction_output(unsigned gpio, int value)
42{
43 return -ENOSYS;
44}
45
46static inline int gpio_get_value(unsigned gpio)
47{
48 /* GPIO can never have been requested or set as {in,out}put */
49 WARN_ON(1);
50 return 0;
51}
52
53static inline void gpio_set_value(unsigned gpio, int value)
54{
55 /* GPIO can never have been requested or set as output */
56 WARN_ON(1);
57}
58
59static inline int gpio_cansleep(unsigned gpio)
60{
61 /* GPIO can never have been requested or set as {in,out}put */
62 WARN_ON(1);
63 return 0;
64}
65
66static inline int gpio_get_value_cansleep(unsigned gpio)
67{
68 /* GPIO can never have been requested or set as {in,out}put */
69 WARN_ON(1);
70 return 0;
71}
72
73static inline void gpio_set_value_cansleep(unsigned gpio, int value)
74{
75 /* GPIO can never have been requested or set as output */
76 WARN_ON(1);
77}
78
79static inline int gpio_to_irq(unsigned gpio)
80{
81 /* GPIO can never have been requested or set as input */
82 WARN_ON(1);
83 return -EINVAL;
84}
85
86static inline int irq_to_gpio(unsigned irq)
87{
88 /* irq can never have been returned from gpio_to_irq() */
89 WARN_ON(1);
90 return -EINVAL;
91}
92
93#endif
94
95#endif /* __LINUX_GPIO_H */
diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h
index 2961ec788046..49829988bfa0 100644
--- a/include/linux/hardirq.h
+++ b/include/linux/hardirq.h
@@ -109,6 +109,14 @@ static inline void account_system_vtime(struct task_struct *tsk)
109} 109}
110#endif 110#endif
111 111
112#if defined(CONFIG_PREEMPT_RCU) && defined(CONFIG_NO_HZ)
113extern void rcu_irq_enter(void);
114extern void rcu_irq_exit(void);
115#else
116# define rcu_irq_enter() do { } while (0)
117# define rcu_irq_exit() do { } while (0)
118#endif /* CONFIG_PREEMPT_RCU */
119
112/* 120/*
113 * It is safe to do non-atomic ops on ->hardirq_context, 121 * It is safe to do non-atomic ops on ->hardirq_context,
114 * because NMI handlers may not preempt and the ops are 122 * because NMI handlers may not preempt and the ops are
@@ -117,6 +125,7 @@ static inline void account_system_vtime(struct task_struct *tsk)
117 */ 125 */
118#define __irq_enter() \ 126#define __irq_enter() \
119 do { \ 127 do { \
128 rcu_irq_enter(); \
120 account_system_vtime(current); \ 129 account_system_vtime(current); \
121 add_preempt_count(HARDIRQ_OFFSET); \ 130 add_preempt_count(HARDIRQ_OFFSET); \
122 trace_hardirq_enter(); \ 131 trace_hardirq_enter(); \
@@ -135,6 +144,7 @@ extern void irq_enter(void);
135 trace_hardirq_exit(); \ 144 trace_hardirq_exit(); \
136 account_system_vtime(current); \ 145 account_system_vtime(current); \
137 sub_preempt_count(HARDIRQ_OFFSET); \ 146 sub_preempt_count(HARDIRQ_OFFSET); \
147 rcu_irq_exit(); \
138 } while (0) 148 } while (0)
139 149
140/* 150/*
diff --git a/include/linux/i2c.h b/include/linux/i2c.h
index 76014f8f3c60..365e0df3646b 100644
--- a/include/linux/i2c.h
+++ b/include/linux/i2c.h
@@ -271,9 +271,16 @@ extern void i2c_unregister_device(struct i2c_client *);
271 * This is done at arch_initcall time, before declaring any i2c adapters. 271 * This is done at arch_initcall time, before declaring any i2c adapters.
272 * Modules for add-on boards must use other calls. 272 * Modules for add-on boards must use other calls.
273 */ 273 */
274#ifdef CONFIG_I2C_BOARDINFO
274extern int 275extern int
275i2c_register_board_info(int busnum, struct i2c_board_info const *info, unsigned n); 276i2c_register_board_info(int busnum, struct i2c_board_info const *info, unsigned n);
276 277#else
278static inline int
279i2c_register_board_info(int busnum, struct i2c_board_info const *info, unsigned n)
280{
281 return 0;
282}
283#endif
277 284
278/* 285/*
279 * The following structs are for those who like to implement new bus drivers: 286 * The following structs are for those who like to implement new bus drivers:
@@ -598,7 +605,7 @@ I2C_CLIENT_MODULE_PARM(probe, "List of adapter,address pairs to scan " \
598 "additionally"); \ 605 "additionally"); \
599I2C_CLIENT_MODULE_PARM(ignore, "List of adapter,address pairs not to " \ 606I2C_CLIENT_MODULE_PARM(ignore, "List of adapter,address pairs not to " \
600 "scan"); \ 607 "scan"); \
601const static struct i2c_client_address_data addr_data = { \ 608static const struct i2c_client_address_data addr_data = { \
602 .normal_i2c = normal_i2c, \ 609 .normal_i2c = normal_i2c, \
603 .probe = probe, \ 610 .probe = probe, \
604 .ignore = ignore, \ 611 .ignore = ignore, \
diff --git a/include/linux/if_ether.h b/include/linux/if_ether.h
index 42dc6a3571ec..e157c1399b61 100644
--- a/include/linux/if_ether.h
+++ b/include/linux/if_ether.h
@@ -129,7 +129,8 @@ extern ssize_t sysfs_format_mac(char *buf, const unsigned char *addr, int len);
129/* 129/*
130 * Display a 6 byte device address (MAC) in a readable format. 130 * Display a 6 byte device address (MAC) in a readable format.
131 */ 131 */
132extern __pure char *print_mac(char *buf, const unsigned char *addr); 132extern char *print_mac(char *buf, const unsigned char *addr);
133#define MAC_FMT "%02x:%02x:%02x:%02x:%02x:%02x"
133#define MAC_BUF_SIZE 18 134#define MAC_BUF_SIZE 18
134#define DECLARE_MAC_BUF(var) char var[MAC_BUF_SIZE] __maybe_unused 135#define DECLARE_MAC_BUF(var) char var[MAC_BUF_SIZE] __maybe_unused
135 136
diff --git a/include/linux/iommu-helper.h b/include/linux/iommu-helper.h
index 4dd4c04ff2f4..c975caf75385 100644
--- a/include/linux/iommu-helper.h
+++ b/include/linux/iommu-helper.h
@@ -1,3 +1,6 @@
1extern int iommu_is_span_boundary(unsigned int index, unsigned int nr,
2 unsigned long shift,
3 unsigned long boundary_size);
1extern unsigned long iommu_area_alloc(unsigned long *map, unsigned long size, 4extern unsigned long iommu_area_alloc(unsigned long *map, unsigned long size,
2 unsigned long start, unsigned int nr, 5 unsigned long start, unsigned int nr,
3 unsigned long shift, 6 unsigned long shift,
diff --git a/include/linux/kprobes.h b/include/linux/kprobes.h
index 4a6ce82ba039..0f28486f6360 100644
--- a/include/linux/kprobes.h
+++ b/include/linux/kprobes.h
@@ -125,11 +125,11 @@ struct jprobe {
125DECLARE_PER_CPU(struct kprobe *, current_kprobe); 125DECLARE_PER_CPU(struct kprobe *, current_kprobe);
126DECLARE_PER_CPU(struct kprobe_ctlblk, kprobe_ctlblk); 126DECLARE_PER_CPU(struct kprobe_ctlblk, kprobe_ctlblk);
127 127
128#ifdef ARCH_SUPPORTS_KRETPROBES 128#ifdef CONFIG_KRETPROBES
129extern void arch_prepare_kretprobe(struct kretprobe_instance *ri, 129extern void arch_prepare_kretprobe(struct kretprobe_instance *ri,
130 struct pt_regs *regs); 130 struct pt_regs *regs);
131extern int arch_trampoline_kprobe(struct kprobe *p); 131extern int arch_trampoline_kprobe(struct kprobe *p);
132#else /* ARCH_SUPPORTS_KRETPROBES */ 132#else /* CONFIG_KRETPROBES */
133static inline void arch_prepare_kretprobe(struct kretprobe *rp, 133static inline void arch_prepare_kretprobe(struct kretprobe *rp,
134 struct pt_regs *regs) 134 struct pt_regs *regs)
135{ 135{
@@ -138,7 +138,7 @@ static inline int arch_trampoline_kprobe(struct kprobe *p)
138{ 138{
139 return 0; 139 return 0;
140} 140}
141#endif /* ARCH_SUPPORTS_KRETPROBES */ 141#endif /* CONFIG_KRETPROBES */
142/* 142/*
143 * Function-return probe - 143 * Function-return probe -
144 * Note: 144 * Note:
diff --git a/include/linux/kvm.h b/include/linux/kvm.h
index 4de4fd2d8607..c1ec04fd000d 100644
--- a/include/linux/kvm.h
+++ b/include/linux/kvm.h
@@ -221,6 +221,7 @@ struct kvm_vapic_addr {
221 * Get size for mmap(vcpu_fd) 221 * Get size for mmap(vcpu_fd)
222 */ 222 */
223#define KVM_GET_VCPU_MMAP_SIZE _IO(KVMIO, 0x04) /* in bytes */ 223#define KVM_GET_VCPU_MMAP_SIZE _IO(KVMIO, 0x04) /* in bytes */
224#define KVM_GET_SUPPORTED_CPUID _IOWR(KVMIO, 0x05, struct kvm_cpuid2)
224 225
225/* 226/*
226 * Extension capability list. 227 * Extension capability list.
@@ -230,8 +231,8 @@ struct kvm_vapic_addr {
230#define KVM_CAP_MMU_SHADOW_CACHE_CONTROL 2 231#define KVM_CAP_MMU_SHADOW_CACHE_CONTROL 2
231#define KVM_CAP_USER_MEMORY 3 232#define KVM_CAP_USER_MEMORY 3
232#define KVM_CAP_SET_TSS_ADDR 4 233#define KVM_CAP_SET_TSS_ADDR 4
233#define KVM_CAP_EXT_CPUID 5
234#define KVM_CAP_VAPIC 6 234#define KVM_CAP_VAPIC 6
235#define KVM_CAP_EXT_CPUID 7
235 236
236/* 237/*
237 * ioctls for VM fds 238 * ioctls for VM fds
@@ -249,7 +250,6 @@ struct kvm_vapic_addr {
249#define KVM_CREATE_VCPU _IO(KVMIO, 0x41) 250#define KVM_CREATE_VCPU _IO(KVMIO, 0x41)
250#define KVM_GET_DIRTY_LOG _IOW(KVMIO, 0x42, struct kvm_dirty_log) 251#define KVM_GET_DIRTY_LOG _IOW(KVMIO, 0x42, struct kvm_dirty_log)
251#define KVM_SET_MEMORY_ALIAS _IOW(KVMIO, 0x43, struct kvm_memory_alias) 252#define KVM_SET_MEMORY_ALIAS _IOW(KVMIO, 0x43, struct kvm_memory_alias)
252#define KVM_GET_SUPPORTED_CPUID _IOWR(KVMIO, 0x48, struct kvm_cpuid2)
253/* Device model IOC */ 253/* Device model IOC */
254#define KVM_CREATE_IRQCHIP _IO(KVMIO, 0x60) 254#define KVM_CREATE_IRQCHIP _IO(KVMIO, 0x60)
255#define KVM_IRQ_LINE _IOW(KVMIO, 0x61, struct kvm_irq_level) 255#define KVM_IRQ_LINE _IOW(KVMIO, 0x61, struct kvm_irq_level)
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
index ea4764b0a2f4..928b0d59e9ba 100644
--- a/include/linux/kvm_host.h
+++ b/include/linux/kvm_host.h
@@ -107,6 +107,7 @@ struct kvm_memory_slot {
107struct kvm { 107struct kvm {
108 struct mutex lock; /* protects the vcpus array and APIC accesses */ 108 struct mutex lock; /* protects the vcpus array and APIC accesses */
109 spinlock_t mmu_lock; 109 spinlock_t mmu_lock;
110 struct rw_semaphore slots_lock;
110 struct mm_struct *mm; /* userspace tied to this vm */ 111 struct mm_struct *mm; /* userspace tied to this vm */
111 int nmemslots; 112 int nmemslots;
112 struct kvm_memory_slot memslots[KVM_MEMORY_SLOTS + 113 struct kvm_memory_slot memslots[KVM_MEMORY_SLOTS +
diff --git a/include/linux/libata.h b/include/linux/libata.h
index ce7603a73156..a05f60013642 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -138,6 +138,7 @@ enum {
138 ATA_DFLAG_AN = (1 << 7), /* AN configured */ 138 ATA_DFLAG_AN = (1 << 7), /* AN configured */
139 ATA_DFLAG_HIPM = (1 << 8), /* device supports HIPM */ 139 ATA_DFLAG_HIPM = (1 << 8), /* device supports HIPM */
140 ATA_DFLAG_DIPM = (1 << 9), /* device supports DIPM */ 140 ATA_DFLAG_DIPM = (1 << 9), /* device supports DIPM */
141 ATA_DFLAG_DMADIR = (1 << 10), /* device requires DMADIR */
141 ATA_DFLAG_CFG_MASK = (1 << 12) - 1, 142 ATA_DFLAG_CFG_MASK = (1 << 12) - 1,
142 143
143 ATA_DFLAG_PIO = (1 << 12), /* device limited to PIO mode */ 144 ATA_DFLAG_PIO = (1 << 12), /* device limited to PIO mode */
diff --git a/include/linux/maple.h b/include/linux/maple.h
index 3f01e2bae1a1..d31e36ebb436 100644
--- a/include/linux/maple.h
+++ b/include/linux/maple.h
@@ -64,7 +64,6 @@ struct maple_driver {
64 int (*connect) (struct maple_device * dev); 64 int (*connect) (struct maple_device * dev);
65 void (*disconnect) (struct maple_device * dev); 65 void (*disconnect) (struct maple_device * dev);
66 struct device_driver drv; 66 struct device_driver drv;
67 int registered;
68}; 67};
69 68
70void maple_getcond_callback(struct maple_device *dev, 69void maple_getcond_callback(struct maple_device *dev,
diff --git a/include/linux/marker.h b/include/linux/marker.h
index 5df879dc3776..430f6adf9762 100644
--- a/include/linux/marker.h
+++ b/include/linux/marker.h
@@ -104,10 +104,16 @@ static inline void marker_update_probe_range(struct marker *begin,
104#define MARK_NOARGS " " 104#define MARK_NOARGS " "
105 105
106/* To be used for string format validity checking with gcc */ 106/* To be used for string format validity checking with gcc */
107static inline void __printf(1, 2) __mark_check_format(const char *fmt, ...) 107static inline void __printf(1, 2) ___mark_check_format(const char *fmt, ...)
108{ 108{
109} 109}
110 110
111#define __mark_check_format(format, args...) \
112 do { \
113 if (0) \
114 ___mark_check_format(format, ## args); \
115 } while (0)
116
111extern marker_probe_func __mark_empty_function; 117extern marker_probe_func __mark_empty_function;
112 118
113extern void marker_probe_cb(const struct marker *mdata, 119extern void marker_probe_cb(const struct marker *mdata,
diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h
index 925d57b236aa..8b1c4295848b 100644
--- a/include/linux/memcontrol.h
+++ b/include/linux/memcontrol.h
@@ -20,26 +20,25 @@
20#ifndef _LINUX_MEMCONTROL_H 20#ifndef _LINUX_MEMCONTROL_H
21#define _LINUX_MEMCONTROL_H 21#define _LINUX_MEMCONTROL_H
22 22
23#include <linux/rcupdate.h>
24#include <linux/mm.h>
25
26struct mem_cgroup; 23struct mem_cgroup;
27struct page_cgroup; 24struct page_cgroup;
28struct page; 25struct page;
29struct mm_struct; 26struct mm_struct;
30 27
31#ifdef CONFIG_CGROUP_MEM_CONT 28#ifdef CONFIG_CGROUP_MEM_RES_CTLR
32 29
33extern void mm_init_cgroup(struct mm_struct *mm, struct task_struct *p); 30extern void mm_init_cgroup(struct mm_struct *mm, struct task_struct *p);
34extern void mm_free_cgroup(struct mm_struct *mm); 31extern void mm_free_cgroup(struct mm_struct *mm);
35extern void page_assign_page_cgroup(struct page *page, 32
36 struct page_cgroup *pc); 33#define page_reset_bad_cgroup(page) ((page)->page_cgroup = 0)
34
37extern struct page_cgroup *page_get_page_cgroup(struct page *page); 35extern struct page_cgroup *page_get_page_cgroup(struct page *page);
38extern int mem_cgroup_charge(struct page *page, struct mm_struct *mm, 36extern int mem_cgroup_charge(struct page *page, struct mm_struct *mm,
39 gfp_t gfp_mask); 37 gfp_t gfp_mask);
40extern void mem_cgroup_uncharge(struct page_cgroup *pc); 38extern int mem_cgroup_cache_charge(struct page *page, struct mm_struct *mm,
39 gfp_t gfp_mask);
41extern void mem_cgroup_uncharge_page(struct page *page); 40extern void mem_cgroup_uncharge_page(struct page *page);
42extern void mem_cgroup_move_lists(struct page_cgroup *pc, bool active); 41extern void mem_cgroup_move_lists(struct page *page, bool active);
43extern unsigned long mem_cgroup_isolate_pages(unsigned long nr_to_scan, 42extern unsigned long mem_cgroup_isolate_pages(unsigned long nr_to_scan,
44 struct list_head *dst, 43 struct list_head *dst,
45 unsigned long *scanned, int order, 44 unsigned long *scanned, int order,
@@ -47,11 +46,9 @@ extern unsigned long mem_cgroup_isolate_pages(unsigned long nr_to_scan,
47 struct mem_cgroup *mem_cont, 46 struct mem_cgroup *mem_cont,
48 int active); 47 int active);
49extern void mem_cgroup_out_of_memory(struct mem_cgroup *mem, gfp_t gfp_mask); 48extern void mem_cgroup_out_of_memory(struct mem_cgroup *mem, gfp_t gfp_mask);
50extern int mem_cgroup_cache_charge(struct page *page, struct mm_struct *mm,
51 gfp_t gfp_mask);
52int task_in_mem_cgroup(struct task_struct *task, const struct mem_cgroup *mem); 49int task_in_mem_cgroup(struct task_struct *task, const struct mem_cgroup *mem);
53 50
54#define vm_match_cgroup(mm, cgroup) \ 51#define mm_match_cgroup(mm, cgroup) \
55 ((cgroup) == rcu_dereference((mm)->mem_cgroup)) 52 ((cgroup) == rcu_dereference((mm)->mem_cgroup))
56 53
57extern int mem_cgroup_prepare_migration(struct page *page); 54extern int mem_cgroup_prepare_migration(struct page *page);
@@ -75,7 +72,7 @@ extern long mem_cgroup_calc_reclaim_active(struct mem_cgroup *mem,
75extern long mem_cgroup_calc_reclaim_inactive(struct mem_cgroup *mem, 72extern long mem_cgroup_calc_reclaim_inactive(struct mem_cgroup *mem,
76 struct zone *zone, int priority); 73 struct zone *zone, int priority);
77 74
78#else /* CONFIG_CGROUP_MEM_CONT */ 75#else /* CONFIG_CGROUP_MEM_RES_CTLR */
79static inline void mm_init_cgroup(struct mm_struct *mm, 76static inline void mm_init_cgroup(struct mm_struct *mm,
80 struct task_struct *p) 77 struct task_struct *p)
81{ 78{
@@ -85,8 +82,7 @@ static inline void mm_free_cgroup(struct mm_struct *mm)
85{ 82{
86} 83}
87 84
88static inline void page_assign_page_cgroup(struct page *page, 85static inline void page_reset_bad_cgroup(struct page *page)
89 struct page_cgroup *pc)
90{ 86{
91} 87}
92 88
@@ -95,33 +91,27 @@ static inline struct page_cgroup *page_get_page_cgroup(struct page *page)
95 return NULL; 91 return NULL;
96} 92}
97 93
98static inline int mem_cgroup_charge(struct page *page, struct mm_struct *mm, 94static inline int mem_cgroup_charge(struct page *page,
99 gfp_t gfp_mask) 95 struct mm_struct *mm, gfp_t gfp_mask)
100{ 96{
101 return 0; 97 return 0;
102} 98}
103 99
104static inline void mem_cgroup_uncharge(struct page_cgroup *pc) 100static inline int mem_cgroup_cache_charge(struct page *page,
101 struct mm_struct *mm, gfp_t gfp_mask)
105{ 102{
103 return 0;
106} 104}
107 105
108static inline void mem_cgroup_uncharge_page(struct page *page) 106static inline void mem_cgroup_uncharge_page(struct page *page)
109{ 107{
110} 108}
111 109
112static inline void mem_cgroup_move_lists(struct page_cgroup *pc, 110static inline void mem_cgroup_move_lists(struct page *page, bool active)
113 bool active)
114{ 111{
115} 112}
116 113
117static inline int mem_cgroup_cache_charge(struct page *page, 114static inline int mm_match_cgroup(struct mm_struct *mm, struct mem_cgroup *mem)
118 struct mm_struct *mm,
119 gfp_t gfp_mask)
120{
121 return 0;
122}
123
124static inline int vm_match_cgroup(struct mm_struct *mm, struct mem_cgroup *mem)
125{ 115{
126 return 1; 116 return 1;
127} 117}
diff --git a/include/linux/memstick.h b/include/linux/memstick.h
index 334d059d6794..b7ee25888836 100644
--- a/include/linux/memstick.h
+++ b/include/linux/memstick.h
@@ -22,6 +22,8 @@ struct ms_status_register {
22 unsigned char reserved; 22 unsigned char reserved;
23 unsigned char interrupt; 23 unsigned char interrupt;
24#define MEMSTICK_INT_CMDNAK 0x0001 24#define MEMSTICK_INT_CMDNAK 0x0001
25#define MEMSTICK_INT_IOREQ 0x0008
26#define MEMSTICK_INT_IOBREQ 0x0010
25#define MEMSTICK_INT_BREQ 0x0020 27#define MEMSTICK_INT_BREQ 0x0020
26#define MEMSTICK_INT_ERR 0x0040 28#define MEMSTICK_INT_ERR 0x0040
27#define MEMSTICK_INT_CED 0x0080 29#define MEMSTICK_INT_CED 0x0080
@@ -47,13 +49,17 @@ struct ms_status_register {
47 49
48struct ms_id_register { 50struct ms_id_register {
49 unsigned char type; 51 unsigned char type;
50 unsigned char reserved; 52 unsigned char if_mode;
51 unsigned char category; 53 unsigned char category;
52 unsigned char class; 54 unsigned char class;
53} __attribute__((packed)); 55} __attribute__((packed));
54 56
55struct ms_param_register { 57struct ms_param_register {
56 unsigned char system; 58 unsigned char system;
59#define MEMSTICK_SYS_ATEN 0xc0
60#define MEMSTICK_SYS_BAMD 0x80
61#define MEMSTICK_SYS_PAM 0x08
62
57 unsigned char block_address_msb; 63 unsigned char block_address_msb;
58 unsigned short block_address; 64 unsigned short block_address;
59 unsigned char cp; 65 unsigned char cp;
@@ -90,16 +96,48 @@ struct ms_register {
90 96
91struct mspro_param_register { 97struct mspro_param_register {
92 unsigned char system; 98 unsigned char system;
99#define MEMSTICK_SYS_SERIAL 0x80
100#define MEMSTICK_SYS_PAR4 0x00
101#define MEMSTICK_SYS_PAR8 0x40
102
103 unsigned short data_count;
104 unsigned int data_address;
105 unsigned char tpc_param;
106} __attribute__((packed));
107
108struct mspro_io_info_register {
109 unsigned char version;
110 unsigned char io_category;
111 unsigned char current_req;
112 unsigned char card_opt_info;
113 unsigned char rdy_wait_time;
114} __attribute__((packed));
115
116struct mspro_io_func_register {
117 unsigned char func_enable;
118 unsigned char func_select;
119 unsigned char func_intmask;
120 unsigned char transfer_mode;
121} __attribute__((packed));
122
123struct mspro_io_cmd_register {
124 unsigned short tpc_param;
93 unsigned short data_count; 125 unsigned short data_count;
94 unsigned int data_address; 126 unsigned int data_address;
95 unsigned char cmd_param;
96} __attribute__((packed)); 127} __attribute__((packed));
97 128
98struct mspro_register { 129struct mspro_register {
99 struct ms_status_register status; 130 struct ms_status_register status;
100 struct ms_id_register id; 131 struct ms_id_register id;
101 unsigned char reserved[8]; 132 unsigned char reserved0[8];
102 struct mspro_param_register param; 133 struct mspro_param_register param;
134 unsigned char reserved1[8];
135 struct mspro_io_info_register io_info;
136 struct mspro_io_func_register io_func;
137 unsigned char reserved2[7];
138 struct mspro_io_cmd_register io_cmd;
139 unsigned char io_int;
140 unsigned char io_int_func;
103} __attribute__((packed)); 141} __attribute__((packed));
104 142
105struct ms_register_addr { 143struct ms_register_addr {
@@ -110,49 +148,55 @@ struct ms_register_addr {
110} __attribute__((packed)); 148} __attribute__((packed));
111 149
112enum { 150enum {
151 MS_TPC_READ_MG_STATUS = 0x01,
113 MS_TPC_READ_LONG_DATA = 0x02, 152 MS_TPC_READ_LONG_DATA = 0x02,
114 MS_TPC_READ_SHORT_DATA = 0x03, 153 MS_TPC_READ_SHORT_DATA = 0x03,
154 MS_TPC_READ_MG_DATA = 0x03,
115 MS_TPC_READ_REG = 0x04, 155 MS_TPC_READ_REG = 0x04,
116 MS_TPC_READ_IO_DATA = 0x05, /* unverified */ 156 MS_TPC_READ_QUAD_DATA = 0x05,
157 MS_TPC_READ_IO_DATA = 0x05,
117 MS_TPC_GET_INT = 0x07, 158 MS_TPC_GET_INT = 0x07,
118 MS_TPC_SET_RW_REG_ADRS = 0x08, 159 MS_TPC_SET_RW_REG_ADRS = 0x08,
119 MS_TPC_EX_SET_CMD = 0x09, 160 MS_TPC_EX_SET_CMD = 0x09,
120 MS_TPC_WRITE_IO_DATA = 0x0a, /* unverified */ 161 MS_TPC_WRITE_QUAD_DATA = 0x0a,
162 MS_TPC_WRITE_IO_DATA = 0x0a,
121 MS_TPC_WRITE_REG = 0x0b, 163 MS_TPC_WRITE_REG = 0x0b,
122 MS_TPC_WRITE_SHORT_DATA = 0x0c, 164 MS_TPC_WRITE_SHORT_DATA = 0x0c,
165 MS_TPC_WRITE_MG_DATA = 0x0c,
123 MS_TPC_WRITE_LONG_DATA = 0x0d, 166 MS_TPC_WRITE_LONG_DATA = 0x0d,
124 MS_TPC_SET_CMD = 0x0e 167 MS_TPC_SET_CMD = 0x0e
125}; 168};
126 169
127enum { 170enum {
128 MS_CMD_BLOCK_END = 0x33, 171 MS_CMD_BLOCK_END = 0x33,
129 MS_CMD_RESET = 0x3c, 172 MS_CMD_RESET = 0x3c,
130 MS_CMD_BLOCK_WRITE = 0x55, 173 MS_CMD_BLOCK_WRITE = 0x55,
131 MS_CMD_SLEEP = 0x5a, 174 MS_CMD_SLEEP = 0x5a,
132 MS_CMD_BLOCK_ERASE = 0x99, 175 MS_CMD_BLOCK_ERASE = 0x99,
133 MS_CMD_BLOCK_READ = 0xaa, 176 MS_CMD_BLOCK_READ = 0xaa,
134 MS_CMD_CLEAR_BUF = 0xc3, 177 MS_CMD_CLEAR_BUF = 0xc3,
135 MS_CMD_FLASH_STOP = 0xcc, 178 MS_CMD_FLASH_STOP = 0xcc,
136 MSPRO_CMD_FORMAT = 0x10, 179 MS_CMD_LOAD_ID = 0x60,
137 MSPRO_CMD_SLEEP = 0x11, 180 MS_CMD_CMP_ICV = 0x7f,
138 MSPRO_CMD_READ_DATA = 0x20, 181 MSPRO_CMD_FORMAT = 0x10,
139 MSPRO_CMD_WRITE_DATA = 0x21, 182 MSPRO_CMD_SLEEP = 0x11,
140 MSPRO_CMD_READ_ATRB = 0x24, 183 MSPRO_CMD_WAKEUP = 0x12,
141 MSPRO_CMD_STOP = 0x25, 184 MSPRO_CMD_READ_DATA = 0x20,
142 MSPRO_CMD_ERASE = 0x26, 185 MSPRO_CMD_WRITE_DATA = 0x21,
143 MSPRO_CMD_SET_IBA = 0x46, 186 MSPRO_CMD_READ_ATRB = 0x24,
144 MSPRO_CMD_SET_IBD = 0x47 187 MSPRO_CMD_STOP = 0x25,
145/* 188 MSPRO_CMD_ERASE = 0x26,
146 MSPRO_CMD_RESET 189 MSPRO_CMD_READ_QUAD = 0x27,
147 MSPRO_CMD_WAKEUP 190 MSPRO_CMD_WRITE_QUAD = 0x28,
148 MSPRO_CMD_IN_IO_DATA 191 MSPRO_CMD_SET_IBD = 0x46,
149 MSPRO_CMD_OUT_IO_DATA 192 MSPRO_CMD_GET_IBD = 0x47,
150 MSPRO_CMD_READ_IO_ATRB 193 MSPRO_CMD_IN_IO_DATA = 0xb0,
151 MSPRO_CMD_IN_IO_FIFO 194 MSPRO_CMD_OUT_IO_DATA = 0xb1,
152 MSPRO_CMD_OUT_IO_FIFO 195 MSPRO_CMD_READ_IO_ATRB = 0xb2,
153 MSPRO_CMD_IN_IOM 196 MSPRO_CMD_IN_IO_FIFO = 0xb3,
154 MSPRO_CMD_OUT_IOM 197 MSPRO_CMD_OUT_IO_FIFO = 0xb4,
155*/ 198 MSPRO_CMD_IN_IOM = 0xb5,
199 MSPRO_CMD_OUT_IOM = 0xb6,
156}; 200};
157 201
158/*** Driver structures and functions ***/ 202/*** Driver structures and functions ***/
@@ -165,7 +209,8 @@ enum memstick_param { MEMSTICK_POWER = 1, MEMSTICK_INTERFACE };
165#define MEMSTICK_POWER_ON 1 209#define MEMSTICK_POWER_ON 1
166 210
167#define MEMSTICK_SERIAL 0 211#define MEMSTICK_SERIAL 0
168#define MEMSTICK_PARALLEL 1 212#define MEMSTICK_PAR4 1
213#define MEMSTICK_PAR8 2
169 214
170struct memstick_host; 215struct memstick_host;
171struct memstick_driver; 216struct memstick_driver;
@@ -195,11 +240,7 @@ struct memstick_request {
195 unsigned char data_dir:1, 240 unsigned char data_dir:1,
196 need_card_int:1, 241 need_card_int:1,
197 get_int_reg:1, 242 get_int_reg:1,
198 io_type:2; 243 long_data:1;
199#define MEMSTICK_IO_NONE 0
200#define MEMSTICK_IO_VAL 1
201#define MEMSTICK_IO_SG 2
202
203 unsigned char int_reg; 244 unsigned char int_reg;
204 int error; 245 int error;
205 union { 246 union {
@@ -231,8 +272,9 @@ struct memstick_host {
231 struct mutex lock; 272 struct mutex lock;
232 unsigned int id; 273 unsigned int id;
233 unsigned int caps; 274 unsigned int caps;
234#define MEMSTICK_CAP_PARALLEL 1 275#define MEMSTICK_CAP_AUTO_GET_INT 1
235#define MEMSTICK_CAP_AUTO_GET_INT 2 276#define MEMSTICK_CAP_PAR4 2
277#define MEMSTICK_CAP_PAR8 4
236 278
237 struct work_struct media_checker; 279 struct work_struct media_checker;
238 struct class_device cdev; 280 struct class_device cdev;
@@ -270,6 +312,8 @@ int memstick_add_host(struct memstick_host *host);
270void memstick_remove_host(struct memstick_host *host); 312void memstick_remove_host(struct memstick_host *host);
271void memstick_free_host(struct memstick_host *host); 313void memstick_free_host(struct memstick_host *host);
272void memstick_detect_change(struct memstick_host *host); 314void memstick_detect_change(struct memstick_host *host);
315void memstick_suspend_host(struct memstick_host *host);
316void memstick_resume_host(struct memstick_host *host);
273 317
274void memstick_init_req_sg(struct memstick_request *mrq, unsigned char tpc, 318void memstick_init_req_sg(struct memstick_request *mrq, unsigned char tpc,
275 struct scatterlist *sg); 319 struct scatterlist *sg);
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 26c7124b841a..b695875d63e3 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -235,12 +235,21 @@ static inline int get_page_unless_zero(struct page *page)
235struct page *vmalloc_to_page(const void *addr); 235struct page *vmalloc_to_page(const void *addr);
236unsigned long vmalloc_to_pfn(const void *addr); 236unsigned long vmalloc_to_pfn(const void *addr);
237 237
238/* Determine if an address is within the vmalloc range */ 238/*
239 * Determine if an address is within the vmalloc range
240 *
241 * On nommu, vmalloc/vfree wrap through kmalloc/kfree directly, so there
242 * is no special casing required.
243 */
239static inline int is_vmalloc_addr(const void *x) 244static inline int is_vmalloc_addr(const void *x)
240{ 245{
246#ifdef CONFIG_MMU
241 unsigned long addr = (unsigned long)x; 247 unsigned long addr = (unsigned long)x;
242 248
243 return addr >= VMALLOC_START && addr < VMALLOC_END; 249 return addr >= VMALLOC_START && addr < VMALLOC_END;
250#else
251 return 0;
252#endif
244} 253}
245 254
246static inline struct page *compound_head(struct page *page) 255static inline struct page *compound_head(struct page *page)
@@ -1171,12 +1180,18 @@ static inline void enable_debug_pagealloc(void)
1171{ 1180{
1172 debug_pagealloc_enabled = 1; 1181 debug_pagealloc_enabled = 1;
1173} 1182}
1183#ifdef CONFIG_HIBERNATION
1184extern bool kernel_page_present(struct page *page);
1185#endif /* CONFIG_HIBERNATION */
1174#else 1186#else
1175static inline void 1187static inline void
1176kernel_map_pages(struct page *page, int numpages, int enable) {} 1188kernel_map_pages(struct page *page, int numpages, int enable) {}
1177static inline void enable_debug_pagealloc(void) 1189static inline void enable_debug_pagealloc(void)
1178{ 1190{
1179} 1191}
1192#ifdef CONFIG_HIBERNATION
1193static inline bool kernel_page_present(struct page *page) { return true; }
1194#endif /* CONFIG_HIBERNATION */
1180#endif 1195#endif
1181 1196
1182extern struct vm_area_struct *get_gate_vma(struct task_struct *tsk); 1197extern struct vm_area_struct *get_gate_vma(struct task_struct *tsk);
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
index bfee0bd1d435..af190ceab971 100644
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
@@ -64,10 +64,7 @@ struct page {
64#if NR_CPUS >= CONFIG_SPLIT_PTLOCK_CPUS 64#if NR_CPUS >= CONFIG_SPLIT_PTLOCK_CPUS
65 spinlock_t ptl; 65 spinlock_t ptl;
66#endif 66#endif
67 struct { 67 struct kmem_cache *slab; /* SLUB: Pointer to slab */
68 struct kmem_cache *slab; /* SLUB: Pointer to slab */
69 void *end; /* SLUB: end marker */
70 };
71 struct page *first_page; /* Compound tail pages */ 68 struct page *first_page; /* Compound tail pages */
72 }; 69 };
73 union { 70 union {
@@ -91,7 +88,7 @@ struct page {
91 void *virtual; /* Kernel virtual address (NULL if 88 void *virtual; /* Kernel virtual address (NULL if
92 not kmapped, ie. highmem) */ 89 not kmapped, ie. highmem) */
93#endif /* WANT_PAGE_VIRTUAL */ 90#endif /* WANT_PAGE_VIRTUAL */
94#ifdef CONFIG_CGROUP_MEM_CONT 91#ifdef CONFIG_CGROUP_MEM_RES_CTLR
95 unsigned long page_cgroup; 92 unsigned long page_cgroup;
96#endif 93#endif
97}; 94};
@@ -225,7 +222,7 @@ struct mm_struct {
225 /* aio bits */ 222 /* aio bits */
226 rwlock_t ioctx_list_lock; 223 rwlock_t ioctx_list_lock;
227 struct kioctx *ioctx_list; 224 struct kioctx *ioctx_list;
228#ifdef CONFIG_CGROUP_MEM_CONT 225#ifdef CONFIG_CGROUP_MEM_RES_CTLR
229 struct mem_cgroup *mem_cgroup; 226 struct mem_cgroup *mem_cgroup;
230#endif 227#endif
231}; 228};
diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h
index d74e79bacd2d..f0680c2bee73 100644
--- a/include/linux/netfilter.h
+++ b/include/linux/netfilter.h
@@ -31,7 +31,7 @@
31#define NF_VERDICT_QMASK 0xffff0000 31#define NF_VERDICT_QMASK 0xffff0000
32#define NF_VERDICT_QBITS 16 32#define NF_VERDICT_QBITS 16
33 33
34#define NF_QUEUE_NR(x) (((x << NF_VERDICT_QBITS) & NF_VERDICT_QMASK) | NF_QUEUE) 34#define NF_QUEUE_NR(x) ((((x) << NF_VERDICT_BITS) & NF_VERDICT_QMASK) | NF_QUEUE)
35 35
36/* only for userspace compatibility */ 36/* only for userspace compatibility */
37#ifndef __KERNEL__ 37#ifndef __KERNEL__
@@ -51,7 +51,7 @@ enum nf_inet_hooks {
51}; 51};
52 52
53union nf_inet_addr { 53union nf_inet_addr {
54 u_int32_t all[4]; 54 __u32 all[4];
55 __be32 ip; 55 __be32 ip;
56 __be32 ip6[4]; 56 __be32 ip6[4];
57 struct in_addr in; 57 struct in_addr in;
diff --git a/include/linux/netfilter/Kbuild b/include/linux/netfilter/Kbuild
index 91fef0cae42f..3aff513d12c8 100644
--- a/include/linux/netfilter/Kbuild
+++ b/include/linux/netfilter/Kbuild
@@ -30,7 +30,6 @@ header-y += xt_mark.h
30header-y += xt_multiport.h 30header-y += xt_multiport.h
31header-y += xt_owner.h 31header-y += xt_owner.h
32header-y += xt_pkttype.h 32header-y += xt_pkttype.h
33header-y += xt_policy.h
34header-y += xt_rateest.h 33header-y += xt_rateest.h
35header-y += xt_realm.h 34header-y += xt_realm.h
36header-y += xt_sctp.h 35header-y += xt_sctp.h
@@ -47,3 +46,4 @@ unifdef-y += nfnetlink.h
47unifdef-y += nfnetlink_compat.h 46unifdef-y += nfnetlink_compat.h
48unifdef-y += x_tables.h 47unifdef-y += x_tables.h
49unifdef-y += xt_physdev.h 48unifdef-y += xt_physdev.h
49unifdef-y += xt_policy.h
diff --git a/include/linux/netfilter/nfnetlink_compat.h b/include/linux/netfilter/nfnetlink_compat.h
index 02a42d875cf7..e1451760c9cd 100644
--- a/include/linux/netfilter/nfnetlink_compat.h
+++ b/include/linux/netfilter/nfnetlink_compat.h
@@ -1,6 +1,6 @@
1#ifndef _NFNETLINK_COMPAT_H 1#ifndef _NFNETLINK_COMPAT_H
2#define _NFNETLINK_COMPAT_H 2#define _NFNETLINK_COMPAT_H
3#ifndef __KERNEL 3#ifndef __KERNEL__
4/* Old nfnetlink macros for userspace */ 4/* Old nfnetlink macros for userspace */
5 5
6/* nfnetlink groups: Up to 32 maximum */ 6/* nfnetlink groups: Up to 32 maximum */
diff --git a/include/linux/netfilter/xt_hashlimit.h b/include/linux/netfilter/xt_hashlimit.h
index 58b818ee41ca..51b18d83b477 100644
--- a/include/linux/netfilter/xt_hashlimit.h
+++ b/include/linux/netfilter/xt_hashlimit.h
@@ -61,7 +61,6 @@ struct xt_hashlimit_mtinfo1 {
61 61
62 /* Used internally by the kernel */ 62 /* Used internally by the kernel */
63 struct xt_hashlimit_htable *hinfo __attribute__((aligned(8))); 63 struct xt_hashlimit_htable *hinfo __attribute__((aligned(8)));
64 struct xt_hashlimit_mtinfo1 *master __attribute__((aligned(8)));
65}; 64};
66 65
67#endif /*_XT_HASHLIMIT_H*/ 66#endif /*_XT_HASHLIMIT_H*/
diff --git a/include/linux/netpoll.h b/include/linux/netpoll.h
index a0525a1f4715..e3d79593fb3a 100644
--- a/include/linux/netpoll.h
+++ b/include/linux/netpoll.h
@@ -25,6 +25,7 @@ struct netpoll {
25 25
26struct netpoll_info { 26struct netpoll_info {
27 atomic_t refcnt; 27 atomic_t refcnt;
28 int rx_flags;
28 spinlock_t rx_lock; 29 spinlock_t rx_lock;
29 struct netpoll *rx_np; /* netpoll that registered an rx_hook */ 30 struct netpoll *rx_np; /* netpoll that registered an rx_hook */
30 struct sk_buff_head arp_tx; /* list of arp requests to reply to */ 31 struct sk_buff_head arp_tx; /* list of arp requests to reply to */
@@ -50,12 +51,12 @@ static inline int netpoll_rx(struct sk_buff *skb)
50 unsigned long flags; 51 unsigned long flags;
51 int ret = 0; 52 int ret = 0;
52 53
53 if (!npinfo || !npinfo->rx_np) 54 if (!npinfo || (!npinfo->rx_np && !npinfo->rx_flags))
54 return 0; 55 return 0;
55 56
56 spin_lock_irqsave(&npinfo->rx_lock, flags); 57 spin_lock_irqsave(&npinfo->rx_lock, flags);
57 /* check rx_np again with the lock held */ 58 /* check rx_flags again with the lock held */
58 if (npinfo->rx_np && __netpoll_rx(skb)) 59 if (npinfo->rx_flags && __netpoll_rx(skb))
59 ret = 1; 60 ret = 1;
60 spin_unlock_irqrestore(&npinfo->rx_lock, flags); 61 spin_unlock_irqrestore(&npinfo->rx_lock, flags);
61 62
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h
index a69ba80f2dfe..f4a0e4c218df 100644
--- a/include/linux/nfs_fs.h
+++ b/include/linux/nfs_fs.h
@@ -195,6 +195,7 @@ struct nfs_inode {
195#define NFS_INO_ADVISE_RDPLUS (1) /* advise readdirplus */ 195#define NFS_INO_ADVISE_RDPLUS (1) /* advise readdirplus */
196#define NFS_INO_STALE (2) /* possible stale inode */ 196#define NFS_INO_STALE (2) /* possible stale inode */
197#define NFS_INO_ACL_LRU_SET (3) /* Inode is on the LRU list */ 197#define NFS_INO_ACL_LRU_SET (3) /* Inode is on the LRU list */
198#define NFS_INO_MOUNTPOINT (4) /* inode is remote mountpoint */
198 199
199static inline struct nfs_inode *NFS_I(const struct inode *inode) 200static inline struct nfs_inode *NFS_I(const struct inode *inode)
200{ 201{
diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h
index bbad43fb8181..b5b30f1c1e59 100644
--- a/include/linux/page-flags.h
+++ b/include/linux/page-flags.h
@@ -266,7 +266,7 @@ static inline void SetPageUptodate(struct page *page)
266 266
267#define PG_head_tail_mask ((1L << PG_compound) | (1L << PG_reclaim)) 267#define PG_head_tail_mask ((1L << PG_compound) | (1L << PG_reclaim))
268 268
269#define PageTail(page) ((page->flags & PG_head_tail_mask) \ 269#define PageTail(page) (((page)->flags & PG_head_tail_mask) \
270 == PG_head_tail_mask) 270 == PG_head_tail_mask)
271 271
272static inline void __SetPageTail(struct page *page) 272static inline void __SetPageTail(struct page *page)
@@ -279,7 +279,7 @@ static inline void __ClearPageTail(struct page *page)
279 page->flags &= ~PG_head_tail_mask; 279 page->flags &= ~PG_head_tail_mask;
280} 280}
281 281
282#define PageHead(page) ((page->flags & PG_head_tail_mask) \ 282#define PageHead(page) (((page)->flags & PG_head_tail_mask) \
283 == (1L << PG_compound)) 283 == (1L << PG_compound))
284#define __SetPageHead(page) __SetPageCompound(page) 284#define __SetPageHead(page) __SetPageCompound(page)
285#define __ClearPageHead(page) __ClearPageCompound(page) 285#define __ClearPageHead(page) __ClearPageCompound(page)
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 87195b62de52..38eff1947750 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -389,6 +389,16 @@ struct pci_driver {
389#define to_pci_driver(drv) container_of(drv, struct pci_driver, driver) 389#define to_pci_driver(drv) container_of(drv, struct pci_driver, driver)
390 390
391/** 391/**
392 * DEFINE_PCI_DEVICE_TABLE - macro used to describe a pci device table
393 * @_table: device table name
394 *
395 * This macro is used to create a struct pci_device_id array (a device table)
396 * in a generic manner.
397 */
398#define DEFINE_PCI_DEVICE_TABLE(_table) \
399 const struct pci_device_id _table[] __devinitconst
400
401/**
392 * PCI_DEVICE - macro used to describe a specific pci device 402 * PCI_DEVICE - macro used to describe a specific pci device
393 * @vend: the 16 bit PCI Vendor ID 403 * @vend: the 16 bit PCI Vendor ID
394 * @dev: the 16 bit PCI Device ID 404 * @dev: the 16 bit PCI Device ID
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index 0519e53d5eb2..70eb3c803d47 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -2184,6 +2184,7 @@
2184#define PCI_DEVICE_ID_JMICRON_JMB366 0x2366 2184#define PCI_DEVICE_ID_JMICRON_JMB366 0x2366
2185#define PCI_DEVICE_ID_JMICRON_JMB368 0x2368 2185#define PCI_DEVICE_ID_JMICRON_JMB368 0x2368
2186#define PCI_DEVICE_ID_JMICRON_JMB38X_SD 0x2381 2186#define PCI_DEVICE_ID_JMICRON_JMB38X_SD 0x2381
2187#define PCI_DEVICE_ID_JMICRON_JMB38X_MS 0x2383
2187 2188
2188#define PCI_VENDOR_ID_KORENIX 0x1982 2189#define PCI_VENDOR_ID_KORENIX 0x1982
2189#define PCI_DEVICE_ID_KORENIX_JETCARDF0 0x1600 2190#define PCI_DEVICE_ID_KORENIX_JETCARDF0 0x1600
@@ -2374,6 +2375,12 @@
2374#define PCI_DEVICE_ID_INTEL_MCH_PC1 0x359a 2375#define PCI_DEVICE_ID_INTEL_MCH_PC1 0x359a
2375#define PCI_DEVICE_ID_INTEL_E7525_MCH 0x359e 2376#define PCI_DEVICE_ID_INTEL_E7525_MCH 0x359e
2376#define PCI_DEVICE_ID_INTEL_IOAT_CNB 0x360b 2377#define PCI_DEVICE_ID_INTEL_IOAT_CNB 0x360b
2378#define PCI_DEVICE_ID_INTEL_ICH10_0 0x3a14
2379#define PCI_DEVICE_ID_INTEL_ICH10_1 0x3a16
2380#define PCI_DEVICE_ID_INTEL_ICH10_2 0x3a18
2381#define PCI_DEVICE_ID_INTEL_ICH10_3 0x3a1a
2382#define PCI_DEVICE_ID_INTEL_ICH10_4 0x3a30
2383#define PCI_DEVICE_ID_INTEL_ICH10_5 0x3a60
2377#define PCI_DEVICE_ID_INTEL_IOAT_SNB 0x402f 2384#define PCI_DEVICE_ID_INTEL_IOAT_SNB 0x402f
2378#define PCI_DEVICE_ID_INTEL_IOAT_SCNB 0x65ff 2385#define PCI_DEVICE_ID_INTEL_IOAT_SCNB 0x65ff
2379#define PCI_DEVICE_ID_INTEL_TOLAPAI_0 0x5031 2386#define PCI_DEVICE_ID_INTEL_TOLAPAI_0 0x5031
diff --git a/include/linux/pm.h b/include/linux/pm.h
index eccf59ea2a77..015b735811b4 100644
--- a/include/linux/pm.h
+++ b/include/linux/pm.h
@@ -143,6 +143,9 @@ typedef struct pm_message {
143 * the upcoming system state (such as PCI_D3hot), and enable 143 * the upcoming system state (such as PCI_D3hot), and enable
144 * wakeup events as appropriate. 144 * wakeup events as appropriate.
145 * 145 *
146 * HIBERNATE Enter a low power device state appropriate for the hibernation
147 * state (eg. ACPI S4) and enable wakeup events as appropriate.
148 *
146 * FREEZE Quiesce operations so that a consistent image can be saved; 149 * FREEZE Quiesce operations so that a consistent image can be saved;
147 * but do NOT otherwise enter a low power device state, and do 150 * but do NOT otherwise enter a low power device state, and do
148 * NOT emit system wakeup events. 151 * NOT emit system wakeup events.
@@ -166,11 +169,15 @@ typedef struct pm_message {
166#define PM_EVENT_ON 0 169#define PM_EVENT_ON 0
167#define PM_EVENT_FREEZE 1 170#define PM_EVENT_FREEZE 1
168#define PM_EVENT_SUSPEND 2 171#define PM_EVENT_SUSPEND 2
169#define PM_EVENT_PRETHAW 3 172#define PM_EVENT_HIBERNATE 4
173#define PM_EVENT_PRETHAW 8
174
175#define PM_EVENT_SLEEP (PM_EVENT_SUSPEND | PM_EVENT_HIBERNATE)
170 176
171#define PMSG_FREEZE ((struct pm_message){ .event = PM_EVENT_FREEZE, }) 177#define PMSG_FREEZE ((struct pm_message){ .event = PM_EVENT_FREEZE, })
172#define PMSG_PRETHAW ((struct pm_message){ .event = PM_EVENT_PRETHAW, }) 178#define PMSG_PRETHAW ((struct pm_message){ .event = PM_EVENT_PRETHAW, })
173#define PMSG_SUSPEND ((struct pm_message){ .event = PM_EVENT_SUSPEND, }) 179#define PMSG_SUSPEND ((struct pm_message){ .event = PM_EVENT_SUSPEND, })
180#define PMSG_HIBERNATE ((struct pm_message){ .event = PM_EVENT_HIBERNATE, })
174#define PMSG_ON ((struct pm_message){ .event = PM_EVENT_ON, }) 181#define PMSG_ON ((struct pm_message){ .event = PM_EVENT_ON, })
175 182
176struct dev_pm_info { 183struct dev_pm_info {
diff --git a/include/linux/pmu.h b/include/linux/pmu.h
index 4c5f65392d36..cafe98d96948 100644
--- a/include/linux/pmu.h
+++ b/include/linux/pmu.h
@@ -147,8 +147,15 @@ extern void pmu_wait_complete(struct adb_request *req);
147/* For use before switching interrupts off for a long time; 147/* For use before switching interrupts off for a long time;
148 * warning: not stackable 148 * warning: not stackable
149 */ 149 */
150#if defined(CONFIG_ADB_PMU)
150extern void pmu_suspend(void); 151extern void pmu_suspend(void);
151extern void pmu_resume(void); 152extern void pmu_resume(void);
153#else
154static inline void pmu_suspend(void)
155{}
156static inline void pmu_resume(void)
157{}
158#endif
152 159
153extern void pmu_enable_irled(int on); 160extern void pmu_enable_irled(int on);
154 161
@@ -192,7 +199,7 @@ extern unsigned int pmu_power_flags;
192extern void pmu_backlight_init(void); 199extern void pmu_backlight_init(void);
193 200
194/* some code needs to know if the PMU was suspended for hibernation */ 201/* some code needs to know if the PMU was suspended for hibernation */
195#if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32) 202#if defined(CONFIG_SUSPEND) && defined(CONFIG_PPC32)
196extern int pmu_sys_suspended; 203extern int pmu_sys_suspended;
197#else 204#else
198/* if power management is not configured it can't be suspended */ 205/* if power management is not configured it can't be suspended */
diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h
index d9a9e718ad19..9b6c935f69cf 100644
--- a/include/linux/proc_fs.h
+++ b/include/linux/proc_fs.h
@@ -50,8 +50,6 @@ typedef int (read_proc_t)(char *page, char **start, off_t off,
50typedef int (write_proc_t)(struct file *file, const char __user *buffer, 50typedef int (write_proc_t)(struct file *file, const char __user *buffer,
51 unsigned long count, void *data); 51 unsigned long count, void *data);
52typedef int (get_info_t)(char *, char **, off_t, int); 52typedef int (get_info_t)(char *, char **, off_t, int);
53typedef struct proc_dir_entry *(shadow_proc_t)(struct task_struct *task,
54 struct proc_dir_entry *pde);
55 53
56struct proc_dir_entry { 54struct proc_dir_entry {
57 unsigned int low_ino; 55 unsigned int low_ino;
@@ -82,7 +80,6 @@ struct proc_dir_entry {
82 int pde_users; /* number of callers into module in progress */ 80 int pde_users; /* number of callers into module in progress */
83 spinlock_t pde_unload_lock; /* proc_fops checks and pde_users bumps */ 81 spinlock_t pde_unload_lock; /* proc_fops checks and pde_users bumps */
84 struct completion *pde_unload_completion; 82 struct completion *pde_unload_completion;
85 shadow_proc_t *shadow_proc;
86}; 83};
87 84
88struct kcore_list { 85struct kcore_list {
diff --git a/include/linux/raid/bitmap.h b/include/linux/raid/bitmap.h
index e51b531cd0b2..47fbcba11850 100644
--- a/include/linux/raid/bitmap.h
+++ b/include/linux/raid/bitmap.h
@@ -235,6 +235,8 @@ struct bitmap {
235 235
236 unsigned long flags; 236 unsigned long flags;
237 237
238 int allclean;
239
238 unsigned long max_write_behind; /* write-behind mode */ 240 unsigned long max_write_behind; /* write-behind mode */
239 atomic_t behind_writes; 241 atomic_t behind_writes;
240 242
diff --git a/include/linux/raid/md_k.h b/include/linux/raid/md_k.h
index 85a068bab625..7bb6d1abf71e 100644
--- a/include/linux/raid/md_k.h
+++ b/include/linux/raid/md_k.h
@@ -83,6 +83,7 @@ struct mdk_rdev_s
83#define BarriersNotsupp 5 /* BIO_RW_BARRIER is not supported */ 83#define BarriersNotsupp 5 /* BIO_RW_BARRIER is not supported */
84#define AllReserved 6 /* If whole device is reserved for 84#define AllReserved 6 /* If whole device is reserved for
85 * one array */ 85 * one array */
86#define AutoDetected 7 /* added by auto-detect */
86 87
87 int desc_nr; /* descriptor index in the superblock */ 88 int desc_nr; /* descriptor index in the superblock */
88 int raid_disk; /* role of device in array */ 89 int raid_disk; /* role of device in array */
diff --git a/include/linux/rcuclassic.h b/include/linux/rcuclassic.h
index 4d6624260b4c..b3dccd68629e 100644
--- a/include/linux/rcuclassic.h
+++ b/include/linux/rcuclassic.h
@@ -160,5 +160,8 @@ extern void rcu_restart_cpu(int cpu);
160extern long rcu_batches_completed(void); 160extern long rcu_batches_completed(void);
161extern long rcu_batches_completed_bh(void); 161extern long rcu_batches_completed_bh(void);
162 162
163#define rcu_enter_nohz() do { } while (0)
164#define rcu_exit_nohz() do { } while (0)
165
163#endif /* __KERNEL__ */ 166#endif /* __KERNEL__ */
164#endif /* __LINUX_RCUCLASSIC_H */ 167#endif /* __LINUX_RCUCLASSIC_H */
diff --git a/include/linux/rcupreempt.h b/include/linux/rcupreempt.h
index 60c2a033b19e..01152ed532c8 100644
--- a/include/linux/rcupreempt.h
+++ b/include/linux/rcupreempt.h
@@ -82,5 +82,27 @@ extern struct rcupreempt_trace *rcupreempt_trace_cpu(int cpu);
82 82
83struct softirq_action; 83struct softirq_action;
84 84
85#ifdef CONFIG_NO_HZ
86DECLARE_PER_CPU(long, dynticks_progress_counter);
87
88static inline void rcu_enter_nohz(void)
89{
90 __get_cpu_var(dynticks_progress_counter)++;
91 WARN_ON(__get_cpu_var(dynticks_progress_counter) & 0x1);
92 mb();
93}
94
95static inline void rcu_exit_nohz(void)
96{
97 mb();
98 __get_cpu_var(dynticks_progress_counter)++;
99 WARN_ON(!(__get_cpu_var(dynticks_progress_counter) & 0x1));
100}
101
102#else /* CONFIG_NO_HZ */
103#define rcu_enter_nohz() do { } while (0)
104#define rcu_exit_nohz() do { } while (0)
105#endif /* CONFIG_NO_HZ */
106
85#endif /* __KERNEL__ */ 107#endif /* __KERNEL__ */
86#endif /* __LINUX_RCUPREEMPT_H */ 108#endif /* __LINUX_RCUPREEMPT_H */
diff --git a/include/linux/sched.h b/include/linux/sched.h
index e217d188a102..11d8e9a74eff 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -242,6 +242,7 @@ struct task_struct;
242 242
243extern void sched_init(void); 243extern void sched_init(void);
244extern void sched_init_smp(void); 244extern void sched_init_smp(void);
245extern asmlinkage void schedule_tail(struct task_struct *prev);
245extern void init_idle(struct task_struct *idle, int cpu); 246extern void init_idle(struct task_struct *idle, int cpu);
246extern void init_idle_bootup_task(struct task_struct *idle); 247extern void init_idle_bootup_task(struct task_struct *idle);
247 248
@@ -898,6 +899,10 @@ struct sched_class {
898 int running); 899 int running);
899 void (*prio_changed) (struct rq *this_rq, struct task_struct *task, 900 void (*prio_changed) (struct rq *this_rq, struct task_struct *task,
900 int oldprio, int running); 901 int oldprio, int running);
902
903#ifdef CONFIG_FAIR_GROUP_SCHED
904 void (*moved_group) (struct task_struct *p);
905#endif
901}; 906};
902 907
903struct load_weight { 908struct load_weight {
@@ -1189,7 +1194,7 @@ struct task_struct {
1189 int softirq_context; 1194 int softirq_context;
1190#endif 1195#endif
1191#ifdef CONFIG_LOCKDEP 1196#ifdef CONFIG_LOCKDEP
1192# define MAX_LOCK_DEPTH 30UL 1197# define MAX_LOCK_DEPTH 48UL
1193 u64 curr_chain_key; 1198 u64 curr_chain_key;
1194 int lockdep_depth; 1199 int lockdep_depth;
1195 struct held_lock held_locks[MAX_LOCK_DEPTH]; 1200 struct held_lock held_locks[MAX_LOCK_DEPTH];
@@ -1541,10 +1546,6 @@ extern unsigned int sysctl_sched_child_runs_first;
1541extern unsigned int sysctl_sched_features; 1546extern unsigned int sysctl_sched_features;
1542extern unsigned int sysctl_sched_migration_cost; 1547extern unsigned int sysctl_sched_migration_cost;
1543extern unsigned int sysctl_sched_nr_migrate; 1548extern unsigned int sysctl_sched_nr_migrate;
1544#if defined(CONFIG_FAIR_GROUP_SCHED) && defined(CONFIG_SMP)
1545extern unsigned int sysctl_sched_min_bal_int_shares;
1546extern unsigned int sysctl_sched_max_bal_int_shares;
1547#endif
1548 1549
1549int sched_nr_latency_handler(struct ctl_table *table, int write, 1550int sched_nr_latency_handler(struct ctl_table *table, int write,
1550 struct file *file, void __user *buffer, size_t *length, 1551 struct file *file, void __user *buffer, size_t *length,
diff --git a/include/linux/security.h b/include/linux/security.h
index fe52cdeab0a6..b07357ca2137 100644
--- a/include/linux/security.h
+++ b/include/linux/security.h
@@ -34,12 +34,6 @@
34#include <linux/xfrm.h> 34#include <linux/xfrm.h>
35#include <net/flow.h> 35#include <net/flow.h>
36 36
37/* only a char in selinux superblock security struct flags */
38#define FSCONTEXT_MNT 0x01
39#define CONTEXT_MNT 0x02
40#define ROOTCONTEXT_MNT 0x04
41#define DEFCONTEXT_MNT 0x08
42
43extern unsigned securebits; 37extern unsigned securebits;
44 38
45struct ctl_table; 39struct ctl_table;
@@ -114,6 +108,32 @@ struct request_sock;
114 108
115#ifdef CONFIG_SECURITY 109#ifdef CONFIG_SECURITY
116 110
111struct security_mnt_opts {
112 char **mnt_opts;
113 int *mnt_opts_flags;
114 int num_mnt_opts;
115};
116
117static inline void security_init_mnt_opts(struct security_mnt_opts *opts)
118{
119 opts->mnt_opts = NULL;
120 opts->mnt_opts_flags = NULL;
121 opts->num_mnt_opts = 0;
122}
123
124static inline void security_free_mnt_opts(struct security_mnt_opts *opts)
125{
126 int i;
127 if (opts->mnt_opts)
128 for(i = 0; i < opts->num_mnt_opts; i++)
129 kfree(opts->mnt_opts[i]);
130 kfree(opts->mnt_opts);
131 opts->mnt_opts = NULL;
132 kfree(opts->mnt_opts_flags);
133 opts->mnt_opts_flags = NULL;
134 opts->num_mnt_opts = 0;
135}
136
117/** 137/**
118 * struct security_operations - main security structure 138 * struct security_operations - main security structure
119 * 139 *
@@ -262,19 +282,19 @@ struct request_sock;
262 * @sb_get_mnt_opts: 282 * @sb_get_mnt_opts:
263 * Get the security relevant mount options used for a superblock 283 * Get the security relevant mount options used for a superblock
264 * @sb the superblock to get security mount options from 284 * @sb the superblock to get security mount options from
265 * @mount_options array for pointers to mount options 285 * @opts binary data structure containing all lsm mount data
266 * @mount_flags array of ints specifying what each mount options is
267 * @num_opts number of options in the arrays
268 * @sb_set_mnt_opts: 286 * @sb_set_mnt_opts:
269 * Set the security relevant mount options used for a superblock 287 * Set the security relevant mount options used for a superblock
270 * @sb the superblock to set security mount options for 288 * @sb the superblock to set security mount options for
271 * @mount_options array for pointers to mount options 289 * @opts binary data structure containing all lsm mount data
272 * @mount_flags array of ints specifying what each mount options is
273 * @num_opts number of options in the arrays
274 * @sb_clone_mnt_opts: 290 * @sb_clone_mnt_opts:
275 * Copy all security options from a given superblock to another 291 * Copy all security options from a given superblock to another
276 * @oldsb old superblock which contain information to clone 292 * @oldsb old superblock which contain information to clone
277 * @newsb new superblock which needs filled in 293 * @newsb new superblock which needs filled in
294 * @sb_parse_opts_str:
295 * Parse a string of security data filling in the opts structure
296 * @options string containing all mount options known by the LSM
297 * @opts binary data structure usable by the LSM
278 * 298 *
279 * Security hooks for inode operations. 299 * Security hooks for inode operations.
280 * 300 *
@@ -1238,8 +1258,7 @@ struct security_operations {
1238 1258
1239 int (*sb_alloc_security) (struct super_block * sb); 1259 int (*sb_alloc_security) (struct super_block * sb);
1240 void (*sb_free_security) (struct super_block * sb); 1260 void (*sb_free_security) (struct super_block * sb);
1241 int (*sb_copy_data)(struct file_system_type *type, 1261 int (*sb_copy_data)(char *orig, char *copy);
1242 void *orig, void *copy);
1243 int (*sb_kern_mount) (struct super_block *sb, void *data); 1262 int (*sb_kern_mount) (struct super_block *sb, void *data);
1244 int (*sb_statfs) (struct dentry *dentry); 1263 int (*sb_statfs) (struct dentry *dentry);
1245 int (*sb_mount) (char *dev_name, struct nameidata * nd, 1264 int (*sb_mount) (char *dev_name, struct nameidata * nd,
@@ -1257,12 +1276,12 @@ struct security_operations {
1257 void (*sb_post_pivotroot) (struct nameidata * old_nd, 1276 void (*sb_post_pivotroot) (struct nameidata * old_nd,
1258 struct nameidata * new_nd); 1277 struct nameidata * new_nd);
1259 int (*sb_get_mnt_opts) (const struct super_block *sb, 1278 int (*sb_get_mnt_opts) (const struct super_block *sb,
1260 char ***mount_options, int **flags, 1279 struct security_mnt_opts *opts);
1261 int *num_opts); 1280 int (*sb_set_mnt_opts) (struct super_block *sb,
1262 int (*sb_set_mnt_opts) (struct super_block *sb, char **mount_options, 1281 struct security_mnt_opts *opts);
1263 int *flags, int num_opts);
1264 void (*sb_clone_mnt_opts) (const struct super_block *oldsb, 1282 void (*sb_clone_mnt_opts) (const struct super_block *oldsb,
1265 struct super_block *newsb); 1283 struct super_block *newsb);
1284 int (*sb_parse_opts_str) (char *options, struct security_mnt_opts *opts);
1266 1285
1267 int (*inode_alloc_security) (struct inode *inode); 1286 int (*inode_alloc_security) (struct inode *inode);
1268 void (*inode_free_security) (struct inode *inode); 1287 void (*inode_free_security) (struct inode *inode);
@@ -1507,7 +1526,7 @@ int security_bprm_check(struct linux_binprm *bprm);
1507int security_bprm_secureexec(struct linux_binprm *bprm); 1526int security_bprm_secureexec(struct linux_binprm *bprm);
1508int security_sb_alloc(struct super_block *sb); 1527int security_sb_alloc(struct super_block *sb);
1509void security_sb_free(struct super_block *sb); 1528void security_sb_free(struct super_block *sb);
1510int security_sb_copy_data(struct file_system_type *type, void *orig, void *copy); 1529int security_sb_copy_data(char *orig, char *copy);
1511int security_sb_kern_mount(struct super_block *sb, void *data); 1530int security_sb_kern_mount(struct super_block *sb, void *data);
1512int security_sb_statfs(struct dentry *dentry); 1531int security_sb_statfs(struct dentry *dentry);
1513int security_sb_mount(char *dev_name, struct nameidata *nd, 1532int security_sb_mount(char *dev_name, struct nameidata *nd,
@@ -1520,12 +1539,12 @@ void security_sb_post_remount(struct vfsmount *mnt, unsigned long flags, void *d
1520void security_sb_post_addmount(struct vfsmount *mnt, struct nameidata *mountpoint_nd); 1539void security_sb_post_addmount(struct vfsmount *mnt, struct nameidata *mountpoint_nd);
1521int security_sb_pivotroot(struct nameidata *old_nd, struct nameidata *new_nd); 1540int security_sb_pivotroot(struct nameidata *old_nd, struct nameidata *new_nd);
1522void security_sb_post_pivotroot(struct nameidata *old_nd, struct nameidata *new_nd); 1541void security_sb_post_pivotroot(struct nameidata *old_nd, struct nameidata *new_nd);
1523int security_sb_get_mnt_opts(const struct super_block *sb, char ***mount_options, 1542int security_sb_get_mnt_opts(const struct super_block *sb,
1524 int **flags, int *num_opts); 1543 struct security_mnt_opts *opts);
1525int security_sb_set_mnt_opts(struct super_block *sb, char **mount_options, 1544int security_sb_set_mnt_opts(struct super_block *sb, struct security_mnt_opts *opts);
1526 int *flags, int num_opts);
1527void security_sb_clone_mnt_opts(const struct super_block *oldsb, 1545void security_sb_clone_mnt_opts(const struct super_block *oldsb,
1528 struct super_block *newsb); 1546 struct super_block *newsb);
1547int security_sb_parse_opts_str(char *options, struct security_mnt_opts *opts);
1529 1548
1530int security_inode_alloc(struct inode *inode); 1549int security_inode_alloc(struct inode *inode);
1531void security_inode_free(struct inode *inode); 1550void security_inode_free(struct inode *inode);
@@ -1635,6 +1654,16 @@ int security_secctx_to_secid(char *secdata, u32 seclen, u32 *secid);
1635void security_release_secctx(char *secdata, u32 seclen); 1654void security_release_secctx(char *secdata, u32 seclen);
1636 1655
1637#else /* CONFIG_SECURITY */ 1656#else /* CONFIG_SECURITY */
1657struct security_mnt_opts {
1658};
1659
1660static inline void security_init_mnt_opts(struct security_mnt_opts *opts)
1661{
1662}
1663
1664static inline void security_free_mnt_opts(struct security_mnt_opts *opts)
1665{
1666}
1638 1667
1639/* 1668/*
1640 * This is the default capabilities functionality. Most of these functions 1669 * This is the default capabilities functionality. Most of these functions
@@ -1762,8 +1791,7 @@ static inline int security_sb_alloc (struct super_block *sb)
1762static inline void security_sb_free (struct super_block *sb) 1791static inline void security_sb_free (struct super_block *sb)
1763{ } 1792{ }
1764 1793
1765static inline int security_sb_copy_data (struct file_system_type *type, 1794static inline int security_sb_copy_data (char *orig, char *copy)
1766 void *orig, void *copy)
1767{ 1795{
1768 return 0; 1796 return 0;
1769} 1797}
@@ -1819,6 +1847,27 @@ static inline int security_sb_pivotroot (struct nameidata *old_nd,
1819static inline void security_sb_post_pivotroot (struct nameidata *old_nd, 1847static inline void security_sb_post_pivotroot (struct nameidata *old_nd,
1820 struct nameidata *new_nd) 1848 struct nameidata *new_nd)
1821{ } 1849{ }
1850static inline int security_sb_get_mnt_opts(const struct super_block *sb,
1851 struct security_mnt_opts *opts)
1852{
1853 security_init_mnt_opts(opts);
1854 return 0;
1855}
1856
1857static inline int security_sb_set_mnt_opts(struct super_block *sb,
1858 struct security_mnt_opts *opts)
1859{
1860 return 0;
1861}
1862
1863static inline void security_sb_clone_mnt_opts(const struct super_block *oldsb,
1864 struct super_block *newsb)
1865{ }
1866
1867static inline int security_sb_parse_opts_str(char *options, struct security_mnt_opts *opts)
1868{
1869 return 0;
1870}
1822 1871
1823static inline int security_inode_alloc (struct inode *inode) 1872static inline int security_inode_alloc (struct inode *inode)
1824{ 1873{
diff --git a/include/linux/serial_sci.h b/include/linux/serial_sci.h
new file mode 100644
index 000000000000..893cc53486bc
--- /dev/null
+++ b/include/linux/serial_sci.h
@@ -0,0 +1,32 @@
1#ifndef __LINUX_SERIAL_SCI_H
2#define __LINUX_SERIAL_SCI_H
3
4#include <linux/serial_core.h>
5
6/*
7 * Generic header for SuperH SCI(F) (used by sh/sh64/h8300 and related parts)
8 */
9
10/* Offsets into the sci_port->irqs array */
11enum {
12 SCIx_ERI_IRQ,
13 SCIx_RXI_IRQ,
14 SCIx_TXI_IRQ,
15 SCIx_BRI_IRQ,
16 SCIx_NR_IRQS,
17};
18
19/*
20 * Platform device specific platform_data struct
21 */
22struct plat_sci_port {
23 void __iomem *membase; /* io cookie */
24 unsigned long mapbase; /* resource base */
25 unsigned int irqs[SCIx_NR_IRQS]; /* ERI, RXI, TXI, BRI */
26 unsigned int type; /* SCI / SCIF / IRDA */
27 upf_t flags; /* UPF_* flags */
28};
29
30int early_sci_setup(struct uart_port *port);
31
32#endif /* __LINUX_SERIAL_SCI_H */
diff --git a/include/linux/slab_def.h b/include/linux/slab_def.h
index fcc48096ee64..39c3a5eb8ebe 100644
--- a/include/linux/slab_def.h
+++ b/include/linux/slab_def.h
@@ -41,7 +41,7 @@ static inline void *kmalloc(size_t size, gfp_t flags)
41 goto found; \ 41 goto found; \
42 else \ 42 else \
43 i++; 43 i++;
44#include "kmalloc_sizes.h" 44#include <linux/kmalloc_sizes.h>
45#undef CACHE 45#undef CACHE
46 { 46 {
47 extern void __you_cannot_kmalloc_that_much(void); 47 extern void __you_cannot_kmalloc_that_much(void);
@@ -75,7 +75,7 @@ static inline void *kmalloc_node(size_t size, gfp_t flags, int node)
75 goto found; \ 75 goto found; \
76 else \ 76 else \
77 i++; 77 i++;
78#include "kmalloc_sizes.h" 78#include <linux/kmalloc_sizes.h>
79#undef CACHE 79#undef CACHE
80 { 80 {
81 extern void __you_cannot_kmalloc_that_much(void); 81 extern void __you_cannot_kmalloc_that_much(void);
diff --git a/include/linux/slub_def.h b/include/linux/slub_def.h
index 57deecc79d52..b00c1c73eb0a 100644
--- a/include/linux/slub_def.h
+++ b/include/linux/slub_def.h
@@ -61,7 +61,7 @@ struct kmem_cache {
61 int size; /* The size of an object including meta data */ 61 int size; /* The size of an object including meta data */
62 int objsize; /* The size of an object without meta data */ 62 int objsize; /* The size of an object without meta data */
63 int offset; /* Free pointer offset. */ 63 int offset; /* Free pointer offset. */
64 int order; 64 int order; /* Current preferred allocation order */
65 65
66 /* 66 /*
67 * Avoid an extra cache line for UP, SMP and for the node local to 67 * Avoid an extra cache line for UP, SMP and for the node local to
@@ -138,11 +138,11 @@ static __always_inline int kmalloc_index(size_t size)
138 if (size <= 512) return 9; 138 if (size <= 512) return 9;
139 if (size <= 1024) return 10; 139 if (size <= 1024) return 10;
140 if (size <= 2 * 1024) return 11; 140 if (size <= 2 * 1024) return 11;
141 if (size <= 4 * 1024) return 12;
141/* 142/*
142 * The following is only needed to support architectures with a larger page 143 * The following is only needed to support architectures with a larger page
143 * size than 4k. 144 * size than 4k.
144 */ 145 */
145 if (size <= 4 * 1024) return 12;
146 if (size <= 8 * 1024) return 13; 146 if (size <= 8 * 1024) return 13;
147 if (size <= 16 * 1024) return 14; 147 if (size <= 16 * 1024) return 14;
148 if (size <= 32 * 1024) return 15; 148 if (size <= 32 * 1024) return 15;
diff --git a/include/linux/sm501-regs.h b/include/linux/sm501-regs.h
index 64236b73c724..d53642d2d899 100644
--- a/include/linux/sm501-regs.h
+++ b/include/linux/sm501-regs.h
@@ -129,11 +129,14 @@
129 129
130#define SM501_DEVICEID_SM501 (0x05010000) 130#define SM501_DEVICEID_SM501 (0x05010000)
131#define SM501_DEVICEID_IDMASK (0xffff0000) 131#define SM501_DEVICEID_IDMASK (0xffff0000)
132#define SM501_DEVICEID_REVMASK (0x000000ff)
132 133
133#define SM501_PLLCLOCK_COUNT (0x000064) 134#define SM501_PLLCLOCK_COUNT (0x000064)
134#define SM501_MISC_TIMING (0x000068) 135#define SM501_MISC_TIMING (0x000068)
135#define SM501_CURRENT_SDRAM_CLOCK (0x00006C) 136#define SM501_CURRENT_SDRAM_CLOCK (0x00006C)
136 137
138#define SM501_PROGRAMMABLE_PLL_CONTROL (0x000074)
139
137/* GPIO base */ 140/* GPIO base */
138#define SM501_GPIO (0x010000) 141#define SM501_GPIO (0x010000)
139#define SM501_GPIO_DATA_LOW (0x00) 142#define SM501_GPIO_DATA_LOW (0x00)
diff --git a/include/linux/sm501.h b/include/linux/sm501.h
index 932a9efee8a5..bca134544700 100644
--- a/include/linux/sm501.h
+++ b/include/linux/sm501.h
@@ -24,7 +24,8 @@ extern int sm501_unit_power(struct device *dev,
24extern unsigned long sm501_set_clock(struct device *dev, 24extern unsigned long sm501_set_clock(struct device *dev,
25 int clksrc, unsigned long freq); 25 int clksrc, unsigned long freq);
26 26
27extern unsigned long sm501_find_clock(int clksrc, unsigned long req_freq); 27extern unsigned long sm501_find_clock(struct device *dev,
28 int clksrc, unsigned long req_freq);
28 29
29/* sm501_misc_control 30/* sm501_misc_control
30 * 31 *
diff --git a/include/linux/ssb/ssb.h b/include/linux/ssb/ssb.h
index 9d5da8b2ccf9..20add65215af 100644
--- a/include/linux/ssb/ssb.h
+++ b/include/linux/ssb/ssb.h
@@ -282,6 +282,13 @@ struct ssb_bus {
282 struct ssb_boardinfo boardinfo; 282 struct ssb_boardinfo boardinfo;
283 /* Contents of the SPROM. */ 283 /* Contents of the SPROM. */
284 struct ssb_sprom sprom; 284 struct ssb_sprom sprom;
285 /* If the board has a cardbus slot, this is set to true. */
286 bool has_cardbus_slot;
287
288#ifdef CONFIG_SSB_EMBEDDED
289 /* Lock for GPIO register access. */
290 spinlock_t gpio_lock;
291#endif /* EMBEDDED */
285 292
286 /* Internal-only stuff follows. Do not touch. */ 293 /* Internal-only stuff follows. Do not touch. */
287 struct list_head list; 294 struct list_head list;
@@ -294,8 +301,13 @@ struct ssb_bus {
294 301
295/* The initialization-invariants. */ 302/* The initialization-invariants. */
296struct ssb_init_invariants { 303struct ssb_init_invariants {
304 /* Versioning information about the PCB. */
297 struct ssb_boardinfo boardinfo; 305 struct ssb_boardinfo boardinfo;
306 /* The SPROM information. That's either stored in an
307 * EEPROM or NVRAM on the board. */
298 struct ssb_sprom sprom; 308 struct ssb_sprom sprom;
309 /* If the board has a cardbus slot, this is set to true. */
310 bool has_cardbus_slot;
299}; 311};
300/* Type of function to fetch the invariants. */ 312/* Type of function to fetch the invariants. */
301typedef int (*ssb_invariants_func_t)(struct ssb_bus *bus, 313typedef int (*ssb_invariants_func_t)(struct ssb_bus *bus,
diff --git a/include/linux/ssb/ssb_driver_chipcommon.h b/include/linux/ssb/ssb_driver_chipcommon.h
index 4cb995494662..536851b946f6 100644
--- a/include/linux/ssb/ssb_driver_chipcommon.h
+++ b/include/linux/ssb/ssb_driver_chipcommon.h
@@ -51,9 +51,12 @@
51#define SSB_CHIPCO_CAP_JTAGM 0x00400000 /* JTAG master present */ 51#define SSB_CHIPCO_CAP_JTAGM 0x00400000 /* JTAG master present */
52#define SSB_CHIPCO_CAP_BROM 0x00800000 /* Internal boot ROM active */ 52#define SSB_CHIPCO_CAP_BROM 0x00800000 /* Internal boot ROM active */
53#define SSB_CHIPCO_CAP_64BIT 0x08000000 /* 64-bit Backplane */ 53#define SSB_CHIPCO_CAP_64BIT 0x08000000 /* 64-bit Backplane */
54#define SSB_CHIPCO_CAP_PMU 0x10000000 /* PMU available (rev >= 20) */
55#define SSB_CHIPCO_CAP_ECI 0x20000000 /* ECI available (rev >= 20) */
54#define SSB_CHIPCO_CORECTL 0x0008 56#define SSB_CHIPCO_CORECTL 0x0008
55#define SSB_CHIPCO_CORECTL_UARTCLK0 0x00000001 /* Drive UART with internal clock */ 57#define SSB_CHIPCO_CORECTL_UARTCLK0 0x00000001 /* Drive UART with internal clock */
56#define SSB_CHIPCO_CORECTL_SE 0x00000002 /* sync clk out enable (corerev >= 3) */ 58#define SSB_CHIPCO_CORECTL_SE 0x00000002 /* sync clk out enable (corerev >= 3) */
59#define SSB_CHIPCO_CORECTL_UARTCLKEN 0x00000008 /* UART clock enable (rev >= 21) */
57#define SSB_CHIPCO_BIST 0x000C 60#define SSB_CHIPCO_BIST 0x000C
58#define SSB_CHIPCO_OTPS 0x0010 /* OTP status */ 61#define SSB_CHIPCO_OTPS 0x0010 /* OTP status */
59#define SSB_CHIPCO_OTPS_PROGFAIL 0x80000000 62#define SSB_CHIPCO_OTPS_PROGFAIL 0x80000000
@@ -357,6 +360,11 @@ struct ssb_chipcommon {
357 u16 fast_pwrup_delay; 360 u16 fast_pwrup_delay;
358}; 361};
359 362
363static inline bool ssb_chipco_available(struct ssb_chipcommon *cc)
364{
365 return (cc->dev != NULL);
366}
367
360extern void ssb_chipcommon_init(struct ssb_chipcommon *cc); 368extern void ssb_chipcommon_init(struct ssb_chipcommon *cc);
361 369
362#include <linux/pm.h> 370#include <linux/pm.h>
@@ -382,11 +390,13 @@ extern void ssb_chipco_set_clockmode(struct ssb_chipcommon *cc,
382extern void ssb_chipco_watchdog_timer_set(struct ssb_chipcommon *cc, 390extern void ssb_chipco_watchdog_timer_set(struct ssb_chipcommon *cc,
383 u32 ticks); 391 u32 ticks);
384 392
393/* Chipcommon GPIO pin access. */
385u32 ssb_chipco_gpio_in(struct ssb_chipcommon *cc, u32 mask); 394u32 ssb_chipco_gpio_in(struct ssb_chipcommon *cc, u32 mask);
386 395u32 ssb_chipco_gpio_out(struct ssb_chipcommon *cc, u32 mask, u32 value);
387void ssb_chipco_gpio_out(struct ssb_chipcommon *cc, u32 mask, u32 value); 396u32 ssb_chipco_gpio_outen(struct ssb_chipcommon *cc, u32 mask, u32 value);
388 397u32 ssb_chipco_gpio_control(struct ssb_chipcommon *cc, u32 mask, u32 value);
389void ssb_chipco_gpio_outen(struct ssb_chipcommon *cc, u32 mask, u32 value); 398u32 ssb_chipco_gpio_intmask(struct ssb_chipcommon *cc, u32 mask, u32 value);
399u32 ssb_chipco_gpio_polarity(struct ssb_chipcommon *cc, u32 mask, u32 value);
390 400
391#ifdef CONFIG_SSB_SERIAL 401#ifdef CONFIG_SSB_SERIAL
392extern int ssb_chipco_serial_init(struct ssb_chipcommon *cc, 402extern int ssb_chipco_serial_init(struct ssb_chipcommon *cc,
diff --git a/include/linux/ssb/ssb_driver_extif.h b/include/linux/ssb/ssb_driver_extif.h
index a9164357b5ae..91161f0aa22b 100644
--- a/include/linux/ssb/ssb_driver_extif.h
+++ b/include/linux/ssb/ssb_driver_extif.h
@@ -171,11 +171,15 @@ extern void ssb_extif_get_clockcontrol(struct ssb_extif *extif,
171extern void ssb_extif_timing_init(struct ssb_extif *extif, 171extern void ssb_extif_timing_init(struct ssb_extif *extif,
172 unsigned long ns); 172 unsigned long ns);
173 173
174u32 ssb_extif_gpio_in(struct ssb_extif *extif, u32 mask); 174extern void ssb_extif_watchdog_timer_set(struct ssb_extif *extif,
175 175 u32 ticks);
176void ssb_extif_gpio_out(struct ssb_extif *extif, u32 mask, u32 value);
177 176
178void ssb_extif_gpio_outen(struct ssb_extif *extif, u32 mask, u32 value); 177/* Extif GPIO pin access */
178u32 ssb_extif_gpio_in(struct ssb_extif *extif, u32 mask);
179u32 ssb_extif_gpio_out(struct ssb_extif *extif, u32 mask, u32 value);
180u32 ssb_extif_gpio_outen(struct ssb_extif *extif, u32 mask, u32 value);
181u32 ssb_extif_gpio_polarity(struct ssb_extif *extif, u32 mask, u32 value);
182u32 ssb_extif_gpio_intmask(struct ssb_extif *extif, u32 mask, u32 value);
179 183
180#ifdef CONFIG_SSB_SERIAL 184#ifdef CONFIG_SSB_SERIAL
181extern int ssb_extif_serial_init(struct ssb_extif *extif, 185extern int ssb_extif_serial_init(struct ssb_extif *extif,
@@ -200,5 +204,11 @@ void ssb_extif_get_clockcontrol(struct ssb_extif *extif,
200{ 204{
201} 205}
202 206
207static inline
208void ssb_extif_watchdog_timer_set(struct ssb_extif *extif,
209 u32 ticks)
210{
211}
212
203#endif /* CONFIG_SSB_DRIVER_EXTIF */ 213#endif /* CONFIG_SSB_DRIVER_EXTIF */
204#endif /* LINUX_SSB_EXTIFCORE_H_ */ 214#endif /* LINUX_SSB_EXTIFCORE_H_ */
diff --git a/include/linux/ssb/ssb_driver_pci.h b/include/linux/ssb/ssb_driver_pci.h
index 9cfffb7b1a27..5e25bac4ed31 100644
--- a/include/linux/ssb/ssb_driver_pci.h
+++ b/include/linux/ssb/ssb_driver_pci.h
@@ -51,6 +51,11 @@
51#define SSB_PCICORE_SBTOPCI1_MASK 0xFC000000 51#define SSB_PCICORE_SBTOPCI1_MASK 0xFC000000
52#define SSB_PCICORE_SBTOPCI2 0x0108 /* Backplane to PCI translation 2 (sbtopci2) */ 52#define SSB_PCICORE_SBTOPCI2 0x0108 /* Backplane to PCI translation 2 (sbtopci2) */
53#define SSB_PCICORE_SBTOPCI2_MASK 0xC0000000 53#define SSB_PCICORE_SBTOPCI2_MASK 0xC0000000
54#define SSB_PCICORE_PCICFG0 0x0400 /* PCI config space 0 (rev >= 8) */
55#define SSB_PCICORE_PCICFG1 0x0500 /* PCI config space 1 (rev >= 8) */
56#define SSB_PCICORE_PCICFG2 0x0600 /* PCI config space 2 (rev >= 8) */
57#define SSB_PCICORE_PCICFG3 0x0700 /* PCI config space 3 (rev >= 8) */
58#define SSB_PCICORE_SPROM(wordoffset) (0x0800 + ((wordoffset) * 2)) /* SPROM shadow area (72 bytes) */
54 59
55/* SBtoPCIx */ 60/* SBtoPCIx */
56#define SSB_PCICORE_SBTOPCI_MEM 0x00000000 61#define SSB_PCICORE_SBTOPCI_MEM 0x00000000
diff --git a/include/linux/ssb/ssb_embedded.h b/include/linux/ssb/ssb_embedded.h
new file mode 100644
index 000000000000..8d8dedff059d
--- /dev/null
+++ b/include/linux/ssb/ssb_embedded.h
@@ -0,0 +1,18 @@
1#ifndef LINUX_SSB_EMBEDDED_H_
2#define LINUX_SSB_EMBEDDED_H_
3
4#include <linux/types.h>
5#include <linux/ssb/ssb.h>
6
7
8extern int ssb_watchdog_timer_set(struct ssb_bus *bus, u32 ticks);
9
10/* Generic GPIO API */
11u32 ssb_gpio_in(struct ssb_bus *bus, u32 mask);
12u32 ssb_gpio_out(struct ssb_bus *bus, u32 mask, u32 value);
13u32 ssb_gpio_outen(struct ssb_bus *bus, u32 mask, u32 value);
14u32 ssb_gpio_control(struct ssb_bus *bus, u32 mask, u32 value);
15u32 ssb_gpio_intmask(struct ssb_bus *bus, u32 mask, u32 value);
16u32 ssb_gpio_polarity(struct ssb_bus *bus, u32 mask, u32 value);
17
18#endif /* LINUX_SSB_EMBEDDED_H_ */
diff --git a/include/linux/tifm.h b/include/linux/tifm.h
index da76ed85f595..848c0f392541 100644
--- a/include/linux/tifm.h
+++ b/include/linux/tifm.h
@@ -70,9 +70,9 @@ enum {
70 70
71#define TIFM_FIFO_ENABLE 0x00000001 71#define TIFM_FIFO_ENABLE 0x00000001
72#define TIFM_FIFO_READY 0x00000001 72#define TIFM_FIFO_READY 0x00000001
73#define TIFM_FIFO_MORE 0x00000008
73#define TIFM_FIFO_INT_SETALL 0x0000ffff 74#define TIFM_FIFO_INT_SETALL 0x0000ffff
74#define TIFM_FIFO_INTMASK 0x00000005 75#define TIFM_FIFO_INTMASK 0x00000005
75#define TIFM_FIFO_SIZE 0x00000200
76 76
77#define TIFM_DMA_RESET 0x00000002 77#define TIFM_DMA_RESET 0x00000002
78#define TIFM_DMA_TX 0x00008000 78#define TIFM_DMA_TX 0x00008000
diff --git a/include/linux/time.h b/include/linux/time.h
index 2091a19f1655..d32ef0ad4c0a 100644
--- a/include/linux/time.h
+++ b/include/linux/time.h
@@ -174,6 +174,10 @@ static inline void timespec_add_ns(struct timespec *a, u64 ns)
174{ 174{
175 ns += a->tv_nsec; 175 ns += a->tv_nsec;
176 while(unlikely(ns >= NSEC_PER_SEC)) { 176 while(unlikely(ns >= NSEC_PER_SEC)) {
177 /* The following asm() prevents the compiler from
178 * optimising this loop into a modulo operation. */
179 asm("" : "+r"(ns));
180
177 ns -= NSEC_PER_SEC; 181 ns -= NSEC_PER_SEC;
178 a->tv_sec++; 182 a->tv_sec++;
179 } 183 }
diff --git a/include/linux/timex.h b/include/linux/timex.h
index c3f374786a43..8ea3e71ba7fa 100644
--- a/include/linux/timex.h
+++ b/include/linux/timex.h
@@ -232,14 +232,7 @@ static inline int ntp_synced(void)
232#else 232#else
233#define NTP_INTERVAL_FREQ (HZ) 233#define NTP_INTERVAL_FREQ (HZ)
234#endif 234#endif
235 235#define NTP_INTERVAL_LENGTH (NSEC_PER_SEC/NTP_INTERVAL_FREQ)
236#define CLOCK_TICK_OVERFLOW (LATCH * HZ - CLOCK_TICK_RATE)
237#define CLOCK_TICK_ADJUST (((s64)CLOCK_TICK_OVERFLOW * NSEC_PER_SEC) / \
238 (s64)CLOCK_TICK_RATE)
239
240/* Because using NSEC_PER_SEC would be too easy */
241#define NTP_INTERVAL_LENGTH ((((s64)TICK_USEC * NSEC_PER_USEC * USER_HZ) + \
242 CLOCK_TICK_ADJUST) / NTP_INTERVAL_FREQ)
243 236
244/* Returns how long ticks are at present, in ns / 2^(SHIFT_SCALE-10). */ 237/* Returns how long ticks are at present, in ns / 2^(SHIFT_SCALE-10). */
245extern u64 current_tick_length(void); 238extern u64 current_tick_length(void);
diff --git a/include/linux/usb.h b/include/linux/usb.h
index 2372e2e6b527..583e0481dfa0 100644
--- a/include/linux/usb.h
+++ b/include/linux/usb.h
@@ -94,10 +94,9 @@ enum usb_interface_condition {
94 * @altsetting: array of interface structures, one for each alternate 94 * @altsetting: array of interface structures, one for each alternate
95 * setting that may be selected. Each one includes a set of 95 * setting that may be selected. Each one includes a set of
96 * endpoint configurations. They will be in no particular order. 96 * endpoint configurations. They will be in no particular order.
97 * @num_altsetting: number of altsettings defined.
98 * @cur_altsetting: the current altsetting. 97 * @cur_altsetting: the current altsetting.
98 * @num_altsetting: number of altsettings defined.
99 * @intf_assoc: interface association descriptor 99 * @intf_assoc: interface association descriptor
100 * @driver: the USB driver that is bound to this interface.
101 * @minor: the minor number assigned to this interface, if this 100 * @minor: the minor number assigned to this interface, if this
102 * interface is bound to a driver that uses the USB major number. 101 * interface is bound to a driver that uses the USB major number.
103 * If this interface does not use the USB major, this field should 102 * If this interface does not use the USB major, this field should
@@ -781,8 +780,7 @@ static inline int usb_endpoint_is_isoc_out(
781 .idVendor = (vend), \ 780 .idVendor = (vend), \
782 .idProduct = (prod) 781 .idProduct = (prod)
783/** 782/**
784 * USB_DEVICE_VER - macro used to describe a specific usb device with a 783 * USB_DEVICE_VER - describe a specific usb device with a version range
785 * version range
786 * @vend: the 16 bit USB Vendor ID 784 * @vend: the 16 bit USB Vendor ID
787 * @prod: the 16 bit USB Product ID 785 * @prod: the 16 bit USB Product ID
788 * @lo: the bcdDevice_lo value 786 * @lo: the bcdDevice_lo value
@@ -799,8 +797,7 @@ static inline int usb_endpoint_is_isoc_out(
799 .bcdDevice_hi = (hi) 797 .bcdDevice_hi = (hi)
800 798
801/** 799/**
802 * USB_DEVICE_INTERFACE_PROTOCOL - macro used to describe a usb 800 * USB_DEVICE_INTERFACE_PROTOCOL - describe a usb device with a specific interface protocol
803 * device with a specific interface protocol
804 * @vend: the 16 bit USB Vendor ID 801 * @vend: the 16 bit USB Vendor ID
805 * @prod: the 16 bit USB Product ID 802 * @prod: the 16 bit USB Product ID
806 * @pr: bInterfaceProtocol value 803 * @pr: bInterfaceProtocol value
@@ -846,8 +843,7 @@ static inline int usb_endpoint_is_isoc_out(
846 .bInterfaceProtocol = (pr) 843 .bInterfaceProtocol = (pr)
847 844
848/** 845/**
849 * USB_DEVICE_AND_INTERFACE_INFO - macro used to describe a specific usb device 846 * USB_DEVICE_AND_INTERFACE_INFO - describe a specific usb device with a class of usb interfaces
850 * with a class of usb interfaces
851 * @vend: the 16 bit USB Vendor ID 847 * @vend: the 16 bit USB Vendor ID
852 * @prod: the 16 bit USB Product ID 848 * @prod: the 16 bit USB Product ID
853 * @cl: bInterfaceClass value 849 * @cl: bInterfaceClass value
diff --git a/include/linux/usb/Kbuild b/include/linux/usb/Kbuild
index b8cba1dcb2c6..42e84fc315e3 100644
--- a/include/linux/usb/Kbuild
+++ b/include/linux/usb/Kbuild
@@ -3,5 +3,5 @@ header-y += cdc.h
3header-y += ch9.h 3header-y += ch9.h
4header-y += gadgetfs.h 4header-y += gadgetfs.h
5header-y += midi.h 5header-y += midi.h
6unifdef-y += g_printer.h 6header-y += g_printer.h
7 7
diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h
index aa3047ff00d1..f3295296b435 100644
--- a/include/linux/usb/gadget.h
+++ b/include/linux/usb/gadget.h
@@ -15,8 +15,6 @@
15#ifndef __LINUX_USB_GADGET_H 15#ifndef __LINUX_USB_GADGET_H
16#define __LINUX_USB_GADGET_H 16#define __LINUX_USB_GADGET_H
17 17
18#ifdef __KERNEL__
19
20struct usb_ep; 18struct usb_ep;
21 19
22/** 20/**
@@ -848,6 +846,4 @@ extern struct usb_ep *usb_ep_autoconfig(struct usb_gadget *,
848 846
849extern void usb_ep_autoconfig_reset(struct usb_gadget *) __devinit; 847extern void usb_ep_autoconfig_reset(struct usb_gadget *) __devinit;
850 848
851#endif /* __KERNEL__ */
852
853#endif /* __LINUX_USB_GADGET_H */ 849#endif /* __LINUX_USB_GADGET_H */
diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h
index 75370ec0923e..9f1b4b46151e 100644
--- a/include/linux/vmstat.h
+++ b/include/linux/vmstat.h
@@ -246,8 +246,7 @@ static inline void __dec_zone_state(struct zone *zone, enum zone_stat_item item)
246static inline void __dec_zone_page_state(struct page *page, 246static inline void __dec_zone_page_state(struct page *page,
247 enum zone_stat_item item) 247 enum zone_stat_item item)
248{ 248{
249 atomic_long_dec(&page_zone(page)->vm_stat[item]); 249 __dec_zone_state(page_zone(page), item);
250 atomic_long_dec(&vm_stat[item]);
251} 250}
252 251
253/* 252/*