aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/Kbuild1
-rw-r--r--include/linux/aio_abi.h1
-rw-r--r--include/linux/atalk.h1
-rw-r--r--include/linux/atmbr2684.h1
-rw-r--r--include/linux/auto_fs4.h1
-rw-r--r--include/linux/bfs_fs.h3
-rw-r--r--include/linux/bio.h55
-rw-r--r--include/linux/blkdev.h8
-rw-r--r--include/linux/blktrace_api.h1
-rw-r--r--include/linux/can/bcm.h2
-rw-r--r--include/linux/capability.h8
-rw-r--r--include/linux/cdrom.h1
-rw-r--r--include/linux/cgroup.h1
-rw-r--r--include/linux/cgroupstats.h1
-rw-r--r--include/linux/clockchips.h1
-rw-r--r--include/linux/debugfs.h7
-rw-r--r--include/linux/dlm_plock.h2
-rw-r--r--include/linux/dmaengine.h11
-rw-r--r--include/linux/dmi.h3
-rw-r--r--include/linux/dn.h2
-rw-r--r--include/linux/dvb/audio.h5
-rw-r--r--include/linux/dvb/dmx.h2
-rw-r--r--include/linux/dvb/frontend.h3
-rw-r--r--include/linux/dvb/net.h3
-rw-r--r--include/linux/dvb/video.h7
-rw-r--r--include/linux/edd.h2
-rw-r--r--include/linux/efs_fs_sb.h1
-rw-r--r--include/linux/elf-fdpic.h2
-rw-r--r--include/linux/elf.h3
-rw-r--r--include/linux/errqueue.h2
-rw-r--r--include/linux/genetlink.h1
-rw-r--r--include/linux/gfs2_ondisk.h2
-rw-r--r--include/linux/hid.h2
-rw-r--r--include/linux/hiddev.h2
-rw-r--r--include/linux/i2c-id.h61
-rw-r--r--include/linux/i2c.h8
-rw-r--r--include/linux/icmpv6.h1
-rw-r--r--include/linux/if_addr.h1
-rw-r--r--include/linux/if_addrlabel.h2
-rw-r--r--include/linux/if_fc.h1
-rw-r--r--include/linux/if_frad.h10
-rw-r--r--include/linux/if_hippi.h1
-rw-r--r--include/linux/if_link.h1
-rw-r--r--include/linux/if_ppp.h1
-rw-r--r--include/linux/if_strip.h2
-rw-r--r--include/linux/if_tr.h1
-rw-r--r--include/linux/igmp.h1
-rw-r--r--include/linux/inet_diag.h2
-rw-r--r--include/linux/init_task.h6
-rw-r--r--include/linux/ip6_tunnel.h2
-rw-r--r--include/linux/ipv6.h1
-rw-r--r--include/linux/ipv6_route.h2
-rw-r--r--include/linux/ipx.h1
-rw-r--r--include/linux/irda.h2
-rw-r--r--include/linux/jbd2.h3
-rw-r--r--include/linux/klist.h2
-rw-r--r--include/linux/kprobes.h47
-rw-r--r--include/linux/libata.h2
-rw-r--r--include/linux/minix_fs.h1
-rw-r--r--include/linux/mod_devicetable.h7
-rw-r--r--include/linux/module.h25
-rw-r--r--include/linux/msdos_fs.h1
-rw-r--r--include/linux/neighbour.h1
-rw-r--r--include/linux/netfilter/xt_conntrack.h1
-rw-r--r--include/linux/nfs_idmap.h2
-rw-r--r--include/linux/nfsd/export.h3
-rw-r--r--include/linux/nfsd/nfsfh.h3
-rw-r--r--include/linux/nfsd/syscall.h3
-rw-r--r--include/linux/nubus.h1
-rw-r--r--include/linux/pci.h5
-rw-r--r--include/linux/pci_ids.h5
-rw-r--r--include/linux/phonet.h2
-rw-r--r--include/linux/pkt_cls.h1
-rw-r--r--include/linux/pkt_sched.h2
-rw-r--r--include/linux/ppp_defs.h2
-rw-r--r--include/linux/quotaops.h2
-rw-r--r--include/linux/raid/md_p.h2
-rw-r--r--include/linux/random.h1
-rw-r--r--include/linux/rtnetlink.h1
-rw-r--r--include/linux/sched.h33
-rw-r--r--include/linux/signalfd.h1
-rw-r--r--include/linux/slab_def.h10
-rw-r--r--include/linux/sound.h2
-rw-r--r--include/linux/spi/spidev.h1
-rw-r--r--include/linux/suspend.h2
-rw-r--r--include/linux/synclink.h2
-rw-r--r--include/linux/syscalls.h5
-rw-r--r--include/linux/taskstats.h2
-rw-r--r--include/linux/tc_act/tc_gact.h1
-rw-r--r--include/linux/tc_act/tc_mirred.h1
-rw-r--r--include/linux/tc_act/tc_pedit.h1
-rw-r--r--include/linux/tc_ematch/tc_em_cmp.h1
-rw-r--r--include/linux/tc_ematch/tc_em_meta.h1
-rw-r--r--include/linux/tc_ematch/tc_em_nbyte.h1
-rw-r--r--include/linux/tc_ematch/tc_em_text.h1
-rw-r--r--include/linux/usb.h2
-rw-r--r--include/linux/usb/cdc.h2
-rw-r--r--include/linux/usb/gadgetfs.h2
-rw-r--r--include/linux/usb/usbnet.h4
-rw-r--r--include/linux/video_decoder.h2
-rw-r--r--include/linux/video_encoder.h2
-rw-r--r--include/linux/videodev.h1
-rw-r--r--include/linux/virtio_blk.h1
-rw-r--r--include/linux/virtio_console.h1
-rw-r--r--include/linux/virtio_net.h1
-rw-r--r--include/linux/workqueue.h12
106 files changed, 300 insertions, 175 deletions
diff --git a/include/linux/Kbuild b/include/linux/Kbuild
index 12e9a2957caf..2124c063a7ef 100644
--- a/include/linux/Kbuild
+++ b/include/linux/Kbuild
@@ -41,6 +41,7 @@ header-y += baycom.h
41header-y += bfs_fs.h 41header-y += bfs_fs.h
42header-y += blkpg.h 42header-y += blkpg.h
43header-y += bpqether.h 43header-y += bpqether.h
44header-y += bsg.h
44header-y += can.h 45header-y += can.h
45header-y += cdk.h 46header-y += cdk.h
46header-y += chio.h 47header-y += chio.h
diff --git a/include/linux/aio_abi.h b/include/linux/aio_abi.h
index 9e0172931315..2c8731664180 100644
--- a/include/linux/aio_abi.h
+++ b/include/linux/aio_abi.h
@@ -27,6 +27,7 @@
27#ifndef __LINUX__AIO_ABI_H 27#ifndef __LINUX__AIO_ABI_H
28#define __LINUX__AIO_ABI_H 28#define __LINUX__AIO_ABI_H
29 29
30#include <linux/types.h>
30#include <asm/byteorder.h> 31#include <asm/byteorder.h>
31 32
32typedef unsigned long aio_context_t; 33typedef unsigned long aio_context_t;
diff --git a/include/linux/atalk.h b/include/linux/atalk.h
index e9ebac2e2ecc..d34c187432ed 100644
--- a/include/linux/atalk.h
+++ b/include/linux/atalk.h
@@ -1,6 +1,7 @@
1#ifndef __LINUX_ATALK_H__ 1#ifndef __LINUX_ATALK_H__
2#define __LINUX_ATALK_H__ 2#define __LINUX_ATALK_H__
3 3
4#include <linux/types.h>
4#include <asm/byteorder.h> 5#include <asm/byteorder.h>
5 6
6/* 7/*
diff --git a/include/linux/atmbr2684.h b/include/linux/atmbr2684.h
index 52bf72affbba..fdb2629b6189 100644
--- a/include/linux/atmbr2684.h
+++ b/include/linux/atmbr2684.h
@@ -1,6 +1,7 @@
1#ifndef _LINUX_ATMBR2684_H 1#ifndef _LINUX_ATMBR2684_H
2#define _LINUX_ATMBR2684_H 2#define _LINUX_ATMBR2684_H
3 3
4#include <linux/types.h>
4#include <linux/atm.h> 5#include <linux/atm.h>
5#include <linux/if.h> /* For IFNAMSIZ */ 6#include <linux/if.h> /* For IFNAMSIZ */
6 7
diff --git a/include/linux/auto_fs4.h b/include/linux/auto_fs4.h
index 55fa478bd639..8b49ac48a5b7 100644
--- a/include/linux/auto_fs4.h
+++ b/include/linux/auto_fs4.h
@@ -12,6 +12,7 @@
12#define _LINUX_AUTO_FS4_H 12#define _LINUX_AUTO_FS4_H
13 13
14/* Include common v3 definitions */ 14/* Include common v3 definitions */
15#include <linux/types.h>
15#include <linux/auto_fs.h> 16#include <linux/auto_fs.h>
16 17
17/* autofs v4 definitions */ 18/* autofs v4 definitions */
diff --git a/include/linux/bfs_fs.h b/include/linux/bfs_fs.h
index 8ed6dfdcd783..1c0b355aa515 100644
--- a/include/linux/bfs_fs.h
+++ b/include/linux/bfs_fs.h
@@ -6,6 +6,8 @@
6#ifndef _LINUX_BFS_FS_H 6#ifndef _LINUX_BFS_FS_H
7#define _LINUX_BFS_FS_H 7#define _LINUX_BFS_FS_H
8 8
9#include <linux/types.h>
10
9#define BFS_BSIZE_BITS 9 11#define BFS_BSIZE_BITS 9
10#define BFS_BSIZE (1<<BFS_BSIZE_BITS) 12#define BFS_BSIZE (1<<BFS_BSIZE_BITS)
11 13
@@ -17,7 +19,6 @@
17#define BFS_VDIR 2L 19#define BFS_VDIR 2L
18#define BFS_VREG 1L 20#define BFS_VREG 1L
19 21
20
21/* BFS inode layout on disk */ 22/* BFS inode layout on disk */
22struct bfs_inode { 23struct bfs_inode {
23 __le16 i_ino; 24 __le16 i_ino;
diff --git a/include/linux/bio.h b/include/linux/bio.h
index 18462c5b8fff..2aa283ab062b 100644
--- a/include/linux/bio.h
+++ b/include/linux/bio.h
@@ -144,7 +144,7 @@ struct bio {
144 * bit 1 -- rw-ahead when set 144 * bit 1 -- rw-ahead when set
145 * bit 2 -- barrier 145 * bit 2 -- barrier
146 * Insert a serialization point in the IO queue, forcing previously 146 * Insert a serialization point in the IO queue, forcing previously
147 * submitted IO to be completed before this oen is issued. 147 * submitted IO to be completed before this one is issued.
148 * bit 3 -- synchronous I/O hint: the block layer will unplug immediately 148 * bit 3 -- synchronous I/O hint: the block layer will unplug immediately
149 * Note that this does NOT indicate that the IO itself is sync, just 149 * Note that this does NOT indicate that the IO itself is sync, just
150 * that the block layer will not postpone issue of this IO by plugging. 150 * that the block layer will not postpone issue of this IO by plugging.
@@ -163,12 +163,33 @@ struct bio {
163#define BIO_RW 0 /* Must match RW in req flags (blkdev.h) */ 163#define BIO_RW 0 /* Must match RW in req flags (blkdev.h) */
164#define BIO_RW_AHEAD 1 /* Must match FAILFAST in req flags */ 164#define BIO_RW_AHEAD 1 /* Must match FAILFAST in req flags */
165#define BIO_RW_BARRIER 2 165#define BIO_RW_BARRIER 2
166#define BIO_RW_SYNC 3 166#define BIO_RW_SYNCIO 3
167#define BIO_RW_META 4 167#define BIO_RW_UNPLUG 4
168#define BIO_RW_DISCARD 5 168#define BIO_RW_META 5
169#define BIO_RW_FAILFAST_DEV 6 169#define BIO_RW_DISCARD 6
170#define BIO_RW_FAILFAST_TRANSPORT 7 170#define BIO_RW_FAILFAST_DEV 7
171#define BIO_RW_FAILFAST_DRIVER 8 171#define BIO_RW_FAILFAST_TRANSPORT 8
172#define BIO_RW_FAILFAST_DRIVER 9
173
174#define BIO_RW_SYNC (BIO_RW_SYNCIO | BIO_RW_UNPLUG)
175
176#define bio_rw_flagged(bio, flag) ((bio)->bi_rw & (1 << (flag)))
177
178/*
179 * Old defines, these should eventually be replaced by direct usage of
180 * bio_rw_flagged()
181 */
182#define bio_barrier(bio) bio_rw_flagged(bio, BIO_RW_BARRIER)
183#define bio_sync(bio) bio_rw_flagged(bio, BIO_RW_SYNCIO)
184#define bio_unplug(bio) bio_rw_flagged(bio, BIO_RW_UNPLUG)
185#define bio_failfast_dev(bio) bio_rw_flagged(bio, BIO_RW_FAILFAST_DEV)
186#define bio_failfast_transport(bio) \
187 bio_rw_flagged(bio, BIO_RW_FAILFAST_TRANSPORT)
188#define bio_failfast_driver(bio) \
189 bio_rw_flagged(bio, BIO_RW_FAILFAST_DRIVER)
190#define bio_rw_ahead(bio) bio_rw_flagged(bio, BIO_RW_AHEAD)
191#define bio_rw_meta(bio) bio_rw_flagged(bio, BIO_RW_META)
192#define bio_discard(bio) bio_rw_flagged(bio, BIO_RW_DISCARD)
172 193
173/* 194/*
174 * upper 16 bits of bi_rw define the io priority of this bio 195 * upper 16 bits of bi_rw define the io priority of this bio
@@ -193,15 +214,6 @@ struct bio {
193#define bio_offset(bio) bio_iovec((bio))->bv_offset 214#define bio_offset(bio) bio_iovec((bio))->bv_offset
194#define bio_segments(bio) ((bio)->bi_vcnt - (bio)->bi_idx) 215#define bio_segments(bio) ((bio)->bi_vcnt - (bio)->bi_idx)
195#define bio_sectors(bio) ((bio)->bi_size >> 9) 216#define bio_sectors(bio) ((bio)->bi_size >> 9)
196#define bio_barrier(bio) ((bio)->bi_rw & (1 << BIO_RW_BARRIER))
197#define bio_sync(bio) ((bio)->bi_rw & (1 << BIO_RW_SYNC))
198#define bio_failfast_dev(bio) ((bio)->bi_rw & (1 << BIO_RW_FAILFAST_DEV))
199#define bio_failfast_transport(bio) \
200 ((bio)->bi_rw & (1 << BIO_RW_FAILFAST_TRANSPORT))
201#define bio_failfast_driver(bio) ((bio)->bi_rw & (1 << BIO_RW_FAILFAST_DRIVER))
202#define bio_rw_ahead(bio) ((bio)->bi_rw & (1 << BIO_RW_AHEAD))
203#define bio_rw_meta(bio) ((bio)->bi_rw & (1 << BIO_RW_META))
204#define bio_discard(bio) ((bio)->bi_rw & (1 << BIO_RW_DISCARD))
205#define bio_empty_barrier(bio) (bio_barrier(bio) && !bio_has_data(bio) && !bio_discard(bio)) 217#define bio_empty_barrier(bio) (bio_barrier(bio) && !bio_has_data(bio) && !bio_discard(bio))
206 218
207static inline unsigned int bio_cur_sectors(struct bio *bio) 219static inline unsigned int bio_cur_sectors(struct bio *bio)
@@ -312,7 +324,6 @@ struct bio_integrity_payload {
312 void *bip_buf; /* generated integrity data */ 324 void *bip_buf; /* generated integrity data */
313 bio_end_io_t *bip_end_io; /* saved I/O completion fn */ 325 bio_end_io_t *bip_end_io; /* saved I/O completion fn */
314 326
315 int bip_error; /* saved I/O error */
316 unsigned int bip_size; 327 unsigned int bip_size;
317 328
318 unsigned short bip_pool; /* pool the ivec came from */ 329 unsigned short bip_pool; /* pool the ivec came from */
@@ -440,12 +451,13 @@ extern struct biovec_slab bvec_slabs[BIOVEC_NR_POOLS] __read_mostly;
440 451
441#ifdef CONFIG_HIGHMEM 452#ifdef CONFIG_HIGHMEM
442/* 453/*
443 * remember to add offset! and never ever reenable interrupts between a 454 * remember never ever reenable interrupts between a bvec_kmap_irq and
444 * bvec_kmap_irq and bvec_kunmap_irq!! 455 * bvec_kunmap_irq!
445 * 456 *
446 * This function MUST be inlined - it plays with the CPU interrupt flags. 457 * This function MUST be inlined - it plays with the CPU interrupt flags.
447 */ 458 */
448static inline char *bvec_kmap_irq(struct bio_vec *bvec, unsigned long *flags) 459static __always_inline char *bvec_kmap_irq(struct bio_vec *bvec,
460 unsigned long *flags)
449{ 461{
450 unsigned long addr; 462 unsigned long addr;
451 463
@@ -461,7 +473,8 @@ static inline char *bvec_kmap_irq(struct bio_vec *bvec, unsigned long *flags)
461 return (char *) addr + bvec->bv_offset; 473 return (char *) addr + bvec->bv_offset;
462} 474}
463 475
464static inline void bvec_kunmap_irq(char *buffer, unsigned long *flags) 476static __always_inline void bvec_kunmap_irq(char *buffer,
477 unsigned long *flags)
465{ 478{
466 unsigned long ptr = (unsigned long) buffer & PAGE_MASK; 479 unsigned long ptr = (unsigned long) buffer & PAGE_MASK;
467 480
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 044467ef7b11..dcaa0fd84b02 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -108,6 +108,7 @@ enum rq_flag_bits {
108 __REQ_RW_META, /* metadata io request */ 108 __REQ_RW_META, /* metadata io request */
109 __REQ_COPY_USER, /* contains copies of user pages */ 109 __REQ_COPY_USER, /* contains copies of user pages */
110 __REQ_INTEGRITY, /* integrity metadata has been remapped */ 110 __REQ_INTEGRITY, /* integrity metadata has been remapped */
111 __REQ_UNPLUG, /* unplug queue on submission */
111 __REQ_NR_BITS, /* stops here */ 112 __REQ_NR_BITS, /* stops here */
112}; 113};
113 114
@@ -134,6 +135,7 @@ enum rq_flag_bits {
134#define REQ_RW_META (1 << __REQ_RW_META) 135#define REQ_RW_META (1 << __REQ_RW_META)
135#define REQ_COPY_USER (1 << __REQ_COPY_USER) 136#define REQ_COPY_USER (1 << __REQ_COPY_USER)
136#define REQ_INTEGRITY (1 << __REQ_INTEGRITY) 137#define REQ_INTEGRITY (1 << __REQ_INTEGRITY)
138#define REQ_UNPLUG (1 << __REQ_UNPLUG)
137 139
138#define BLK_MAX_CDB 16 140#define BLK_MAX_CDB 16
139 141
@@ -449,6 +451,11 @@ struct request_queue
449#define QUEUE_FLAG_STACKABLE 13 /* supports request stacking */ 451#define QUEUE_FLAG_STACKABLE 13 /* supports request stacking */
450#define QUEUE_FLAG_NONROT 14 /* non-rotational device (SSD) */ 452#define QUEUE_FLAG_NONROT 14 /* non-rotational device (SSD) */
451#define QUEUE_FLAG_VIRT QUEUE_FLAG_NONROT /* paravirt device */ 453#define QUEUE_FLAG_VIRT QUEUE_FLAG_NONROT /* paravirt device */
454#define QUEUE_FLAG_IO_STAT 15 /* do IO stats */
455
456#define QUEUE_FLAG_DEFAULT ((1 << QUEUE_FLAG_IO_STAT) | \
457 (1 << QUEUE_FLAG_CLUSTER) | \
458 (1 << QUEUE_FLAG_STACKABLE))
452 459
453static inline int queue_is_locked(struct request_queue *q) 460static inline int queue_is_locked(struct request_queue *q)
454{ 461{
@@ -565,6 +572,7 @@ enum {
565#define blk_queue_stopped(q) test_bit(QUEUE_FLAG_STOPPED, &(q)->queue_flags) 572#define blk_queue_stopped(q) test_bit(QUEUE_FLAG_STOPPED, &(q)->queue_flags)
566#define blk_queue_nomerges(q) test_bit(QUEUE_FLAG_NOMERGES, &(q)->queue_flags) 573#define blk_queue_nomerges(q) test_bit(QUEUE_FLAG_NOMERGES, &(q)->queue_flags)
567#define blk_queue_nonrot(q) test_bit(QUEUE_FLAG_NONROT, &(q)->queue_flags) 574#define blk_queue_nonrot(q) test_bit(QUEUE_FLAG_NONROT, &(q)->queue_flags)
575#define blk_queue_io_stat(q) test_bit(QUEUE_FLAG_IO_STAT, &(q)->queue_flags)
568#define blk_queue_flushing(q) ((q)->ordseq) 576#define blk_queue_flushing(q) ((q)->ordseq)
569#define blk_queue_stackable(q) \ 577#define blk_queue_stackable(q) \
570 test_bit(QUEUE_FLAG_STACKABLE, &(q)->queue_flags) 578 test_bit(QUEUE_FLAG_STACKABLE, &(q)->queue_flags)
diff --git a/include/linux/blktrace_api.h b/include/linux/blktrace_api.h
index 59b4b2e8ab67..ed12e8fd8cf7 100644
--- a/include/linux/blktrace_api.h
+++ b/include/linux/blktrace_api.h
@@ -1,6 +1,7 @@
1#ifndef BLKTRACE_H 1#ifndef BLKTRACE_H
2#define BLKTRACE_H 2#define BLKTRACE_H
3 3
4#include <linux/types.h>
4#ifdef __KERNEL__ 5#ifdef __KERNEL__
5#include <linux/blkdev.h> 6#include <linux/blkdev.h>
6#include <linux/relay.h> 7#include <linux/relay.h>
diff --git a/include/linux/can/bcm.h b/include/linux/can/bcm.h
index 7f293273c444..1432b278c52d 100644
--- a/include/linux/can/bcm.h
+++ b/include/linux/can/bcm.h
@@ -14,6 +14,8 @@
14#ifndef CAN_BCM_H 14#ifndef CAN_BCM_H
15#define CAN_BCM_H 15#define CAN_BCM_H
16 16
17#include <linux/types.h>
18
17/** 19/**
18 * struct bcm_msg_head - head of messages to/from the broadcast manager 20 * struct bcm_msg_head - head of messages to/from the broadcast manager
19 * @opcode: opcode, see enum below. 21 * @opcode: opcode, see enum below.
diff --git a/include/linux/capability.h b/include/linux/capability.h
index 02bdb768d43b..1b9872556131 100644
--- a/include/linux/capability.h
+++ b/include/linux/capability.h
@@ -69,10 +69,6 @@ typedef struct __user_cap_data_struct {
69#define VFS_CAP_U32 VFS_CAP_U32_2 69#define VFS_CAP_U32 VFS_CAP_U32_2
70#define VFS_CAP_REVISION VFS_CAP_REVISION_2 70#define VFS_CAP_REVISION VFS_CAP_REVISION_2
71 71
72#ifdef CONFIG_SECURITY_FILE_CAPABILITIES
73extern int file_caps_enabled;
74#endif
75
76struct vfs_cap_data { 72struct vfs_cap_data {
77 __le32 magic_etc; /* Little endian */ 73 __le32 magic_etc; /* Little endian */
78 struct { 74 struct {
@@ -96,6 +92,10 @@ struct vfs_cap_data {
96#define _KERNEL_CAPABILITY_VERSION _LINUX_CAPABILITY_VERSION_3 92#define _KERNEL_CAPABILITY_VERSION _LINUX_CAPABILITY_VERSION_3
97#define _KERNEL_CAPABILITY_U32S _LINUX_CAPABILITY_U32S_3 93#define _KERNEL_CAPABILITY_U32S _LINUX_CAPABILITY_U32S_3
98 94
95#ifdef CONFIG_SECURITY_FILE_CAPABILITIES
96extern int file_caps_enabled;
97#endif
98
99typedef struct kernel_cap_struct { 99typedef struct kernel_cap_struct {
100 __u32 cap[_KERNEL_CAPABILITY_U32S]; 100 __u32 cap[_KERNEL_CAPABILITY_U32S];
101} kernel_cap_t; 101} kernel_cap_t;
diff --git a/include/linux/cdrom.h b/include/linux/cdrom.h
index 0b49e08d3cb0..78e904796622 100644
--- a/include/linux/cdrom.h
+++ b/include/linux/cdrom.h
@@ -11,6 +11,7 @@
11#ifndef _LINUX_CDROM_H 11#ifndef _LINUX_CDROM_H
12#define _LINUX_CDROM_H 12#define _LINUX_CDROM_H
13 13
14#include <linux/types.h>
14#include <asm/byteorder.h> 15#include <asm/byteorder.h>
15 16
16/******************************************************* 17/*******************************************************
diff --git a/include/linux/cgroup.h b/include/linux/cgroup.h
index e267e62827bb..e4e8e117d27d 100644
--- a/include/linux/cgroup.h
+++ b/include/linux/cgroup.h
@@ -99,6 +99,7 @@ static inline bool css_tryget(struct cgroup_subsys_state *css)
99 while (!atomic_inc_not_zero(&css->refcnt)) { 99 while (!atomic_inc_not_zero(&css->refcnt)) {
100 if (test_bit(CSS_REMOVED, &css->flags)) 100 if (test_bit(CSS_REMOVED, &css->flags))
101 return false; 101 return false;
102 cpu_relax();
102 } 103 }
103 return true; 104 return true;
104} 105}
diff --git a/include/linux/cgroupstats.h b/include/linux/cgroupstats.h
index 4f53abf6855d..3753c33160d1 100644
--- a/include/linux/cgroupstats.h
+++ b/include/linux/cgroupstats.h
@@ -15,6 +15,7 @@
15#ifndef _LINUX_CGROUPSTATS_H 15#ifndef _LINUX_CGROUPSTATS_H
16#define _LINUX_CGROUPSTATS_H 16#define _LINUX_CGROUPSTATS_H
17 17
18#include <linux/types.h>
18#include <linux/taskstats.h> 19#include <linux/taskstats.h>
19 20
20/* 21/*
diff --git a/include/linux/clockchips.h b/include/linux/clockchips.h
index cea153697ec7..3a1dbba4d3ae 100644
--- a/include/linux/clockchips.h
+++ b/include/linux/clockchips.h
@@ -36,6 +36,7 @@ enum clock_event_nofitiers {
36 CLOCK_EVT_NOTIFY_BROADCAST_EXIT, 36 CLOCK_EVT_NOTIFY_BROADCAST_EXIT,
37 CLOCK_EVT_NOTIFY_SUSPEND, 37 CLOCK_EVT_NOTIFY_SUSPEND,
38 CLOCK_EVT_NOTIFY_RESUME, 38 CLOCK_EVT_NOTIFY_RESUME,
39 CLOCK_EVT_NOTIFY_CPU_DYING,
39 CLOCK_EVT_NOTIFY_CPU_DEAD, 40 CLOCK_EVT_NOTIFY_CPU_DEAD,
40}; 41};
41 42
diff --git a/include/linux/debugfs.h b/include/linux/debugfs.h
index 23936b16426b..af0e01d4c663 100644
--- a/include/linux/debugfs.h
+++ b/include/linux/debugfs.h
@@ -162,6 +162,13 @@ static inline struct dentry *debugfs_create_x32(const char *name, mode_t mode,
162 return ERR_PTR(-ENODEV); 162 return ERR_PTR(-ENODEV);
163} 163}
164 164
165static inline struct dentry *debugfs_create_size_t(const char *name, mode_t mode,
166 struct dentry *parent,
167 size_t *value)
168{
169 return ERR_PTR(-ENODEV);
170}
171
165static inline struct dentry *debugfs_create_bool(const char *name, mode_t mode, 172static inline struct dentry *debugfs_create_bool(const char *name, mode_t mode,
166 struct dentry *parent, 173 struct dentry *parent,
167 u32 *value) 174 u32 *value)
diff --git a/include/linux/dlm_plock.h b/include/linux/dlm_plock.h
index 18d5fdbceb74..2dd21243104f 100644
--- a/include/linux/dlm_plock.h
+++ b/include/linux/dlm_plock.h
@@ -9,6 +9,8 @@
9#ifndef __DLM_PLOCK_DOT_H__ 9#ifndef __DLM_PLOCK_DOT_H__
10#define __DLM_PLOCK_DOT_H__ 10#define __DLM_PLOCK_DOT_H__
11 11
12#include <linux/types.h>
13
12#define DLM_PLOCK_MISC_NAME "dlm_plock" 14#define DLM_PLOCK_MISC_NAME "dlm_plock"
13 15
14#define DLM_PLOCK_VERSION_MAJOR 1 16#define DLM_PLOCK_VERSION_MAJOR 1
diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h
index c73f1e2b59b7..3e0f64c335c8 100644
--- a/include/linux/dmaengine.h
+++ b/include/linux/dmaengine.h
@@ -297,6 +297,11 @@ static inline void async_tx_ack(struct dma_async_tx_descriptor *tx)
297 tx->flags |= DMA_CTRL_ACK; 297 tx->flags |= DMA_CTRL_ACK;
298} 298}
299 299
300static inline void async_tx_clear_ack(struct dma_async_tx_descriptor *tx)
301{
302 tx->flags &= ~DMA_CTRL_ACK;
303}
304
300static inline bool async_tx_test_ack(struct dma_async_tx_descriptor *tx) 305static inline bool async_tx_test_ack(struct dma_async_tx_descriptor *tx)
301{ 306{
302 return (tx->flags & DMA_CTRL_ACK) == DMA_CTRL_ACK; 307 return (tx->flags & DMA_CTRL_ACK) == DMA_CTRL_ACK;
@@ -400,11 +405,16 @@ static inline enum dma_status dma_async_is_complete(dma_cookie_t cookie,
400enum dma_status dma_sync_wait(struct dma_chan *chan, dma_cookie_t cookie); 405enum dma_status dma_sync_wait(struct dma_chan *chan, dma_cookie_t cookie);
401#ifdef CONFIG_DMA_ENGINE 406#ifdef CONFIG_DMA_ENGINE
402enum dma_status dma_wait_for_async_tx(struct dma_async_tx_descriptor *tx); 407enum dma_status dma_wait_for_async_tx(struct dma_async_tx_descriptor *tx);
408void dma_issue_pending_all(void);
403#else 409#else
404static inline enum dma_status dma_wait_for_async_tx(struct dma_async_tx_descriptor *tx) 410static inline enum dma_status dma_wait_for_async_tx(struct dma_async_tx_descriptor *tx)
405{ 411{
406 return DMA_SUCCESS; 412 return DMA_SUCCESS;
407} 413}
414static inline void dma_issue_pending_all(void)
415{
416 do { } while (0);
417}
408#endif 418#endif
409 419
410/* --- DMA device --- */ 420/* --- DMA device --- */
@@ -413,7 +423,6 @@ int dma_async_device_register(struct dma_device *device);
413void dma_async_device_unregister(struct dma_device *device); 423void dma_async_device_unregister(struct dma_device *device);
414void dma_run_dependencies(struct dma_async_tx_descriptor *tx); 424void dma_run_dependencies(struct dma_async_tx_descriptor *tx);
415struct dma_chan *dma_find_channel(enum dma_transaction_type tx_type); 425struct dma_chan *dma_find_channel(enum dma_transaction_type tx_type);
416void dma_issue_pending_all(void);
417#define dma_request_channel(mask, x, y) __dma_request_channel(&(mask), x, y) 426#define dma_request_channel(mask, x, y) __dma_request_channel(&(mask), x, y)
418struct dma_chan *__dma_request_channel(dma_cap_mask_t *mask, dma_filter_fn fn, void *fn_param); 427struct dma_chan *__dma_request_channel(dma_cap_mask_t *mask, dma_filter_fn fn, void *fn_param);
419void dma_release_channel(struct dma_chan *chan); 428void dma_release_channel(struct dma_chan *chan);
diff --git a/include/linux/dmi.h b/include/linux/dmi.h
index 34161907b2f8..d741b9ceb0e0 100644
--- a/include/linux/dmi.h
+++ b/include/linux/dmi.h
@@ -38,6 +38,7 @@ struct dmi_device {
38#ifdef CONFIG_DMI 38#ifdef CONFIG_DMI
39 39
40extern int dmi_check_system(const struct dmi_system_id *list); 40extern int dmi_check_system(const struct dmi_system_id *list);
41const struct dmi_system_id *dmi_first_match(const struct dmi_system_id *list);
41extern const char * dmi_get_system_info(int field); 42extern const char * dmi_get_system_info(int field);
42extern const struct dmi_device * dmi_find_device(int type, const char *name, 43extern const struct dmi_device * dmi_find_device(int type, const char *name,
43 const struct dmi_device *from); 44 const struct dmi_device *from);
@@ -64,6 +65,8 @@ static inline int dmi_walk(void (*decode)(const struct dmi_header *))
64 { return -1; } 65 { return -1; }
65static inline bool dmi_match(enum dmi_field f, const char *str) 66static inline bool dmi_match(enum dmi_field f, const char *str)
66 { return false; } 67 { return false; }
68static inline const struct dmi_system_id *
69 dmi_first_match(const struct dmi_system_id *list) { return NULL; }
67 70
68#endif 71#endif
69 72
diff --git a/include/linux/dn.h b/include/linux/dn.h
index 02bba040fcfb..fe9990823193 100644
--- a/include/linux/dn.h
+++ b/include/linux/dn.h
@@ -1,6 +1,8 @@
1#ifndef _LINUX_DN_H 1#ifndef _LINUX_DN_H
2#define _LINUX_DN_H 2#define _LINUX_DN_H
3 3
4#include <linux/types.h>
5
4/* 6/*
5 7
6 DECnet Data Structures and Constants 8 DECnet Data Structures and Constants
diff --git a/include/linux/dvb/audio.h b/include/linux/dvb/audio.h
index 89412e18f571..bb0df2aaebfa 100644
--- a/include/linux/dvb/audio.h
+++ b/include/linux/dvb/audio.h
@@ -24,12 +24,7 @@
24#ifndef _DVBAUDIO_H_ 24#ifndef _DVBAUDIO_H_
25#define _DVBAUDIO_H_ 25#define _DVBAUDIO_H_
26 26
27#ifdef __KERNEL__
28#include <linux/types.h> 27#include <linux/types.h>
29#else
30#include <stdint.h>
31#endif
32
33 28
34typedef enum { 29typedef enum {
35 AUDIO_SOURCE_DEMUX, /* Select the demux as the main source */ 30 AUDIO_SOURCE_DEMUX, /* Select the demux as the main source */
diff --git a/include/linux/dvb/dmx.h b/include/linux/dvb/dmx.h
index 402fb7a8d922..fef943738a24 100644
--- a/include/linux/dvb/dmx.h
+++ b/include/linux/dvb/dmx.h
@@ -24,7 +24,7 @@
24#ifndef _DVBDMX_H_ 24#ifndef _DVBDMX_H_
25#define _DVBDMX_H_ 25#define _DVBDMX_H_
26 26
27#include <asm/types.h> 27#include <linux/types.h>
28#ifdef __KERNEL__ 28#ifdef __KERNEL__
29#include <linux/time.h> 29#include <linux/time.h>
30#else 30#else
diff --git a/include/linux/dvb/frontend.h b/include/linux/dvb/frontend.h
index 55026b1a40bd..51c8d2d49e42 100644
--- a/include/linux/dvb/frontend.h
+++ b/include/linux/dvb/frontend.h
@@ -26,8 +26,7 @@
26#ifndef _DVBFRONTEND_H_ 26#ifndef _DVBFRONTEND_H_
27#define _DVBFRONTEND_H_ 27#define _DVBFRONTEND_H_
28 28
29#include <asm/types.h> 29#include <linux/types.h>
30
31 30
32typedef enum fe_type { 31typedef enum fe_type {
33 FE_QPSK, 32 FE_QPSK,
diff --git a/include/linux/dvb/net.h b/include/linux/dvb/net.h
index 5be474bf0d2b..f451e7eb0b0b 100644
--- a/include/linux/dvb/net.h
+++ b/include/linux/dvb/net.h
@@ -24,8 +24,7 @@
24#ifndef _DVBNET_H_ 24#ifndef _DVBNET_H_
25#define _DVBNET_H_ 25#define _DVBNET_H_
26 26
27#include <asm/types.h> 27#include <linux/types.h>
28
29 28
30struct dvb_net_if { 29struct dvb_net_if {
31 __u16 pid; 30 __u16 pid;
diff --git a/include/linux/dvb/video.h b/include/linux/dvb/video.h
index 50839fe9e39e..bd49c3ebf916 100644
--- a/include/linux/dvb/video.h
+++ b/include/linux/dvb/video.h
@@ -24,17 +24,14 @@
24#ifndef _DVBVIDEO_H_ 24#ifndef _DVBVIDEO_H_
25#define _DVBVIDEO_H_ 25#define _DVBVIDEO_H_
26 26
27#include <linux/compiler.h>
28
29#ifdef __KERNEL__
30#include <linux/types.h> 27#include <linux/types.h>
28#ifdef __KERNEL__
29#include <linux/compiler.h>
31#else 30#else
32#include <asm/types.h>
33#include <stdint.h> 31#include <stdint.h>
34#include <time.h> 32#include <time.h>
35#endif 33#endif
36 34
37
38typedef enum { 35typedef enum {
39 VIDEO_FORMAT_4_3, /* Select 4:3 format */ 36 VIDEO_FORMAT_4_3, /* Select 4:3 format */
40 VIDEO_FORMAT_16_9, /* Select 16:9 format. */ 37 VIDEO_FORMAT_16_9, /* Select 16:9 format. */
diff --git a/include/linux/edd.h b/include/linux/edd.h
index 5d747c5cd0fe..4cbd0fe9df08 100644
--- a/include/linux/edd.h
+++ b/include/linux/edd.h
@@ -30,6 +30,8 @@
30#ifndef _LINUX_EDD_H 30#ifndef _LINUX_EDD_H
31#define _LINUX_EDD_H 31#define _LINUX_EDD_H
32 32
33#include <linux/types.h>
34
33#define EDDNR 0x1e9 /* addr of number of edd_info structs at EDDBUF 35#define EDDNR 0x1e9 /* addr of number of edd_info structs at EDDBUF
34 in boot_params - treat this as 1 byte */ 36 in boot_params - treat this as 1 byte */
35#define EDDBUF 0xd00 /* addr of edd_info structs in boot_params */ 37#define EDDBUF 0xd00 /* addr of edd_info structs in boot_params */
diff --git a/include/linux/efs_fs_sb.h b/include/linux/efs_fs_sb.h
index ff1945e37790..a01be90c58cc 100644
--- a/include/linux/efs_fs_sb.h
+++ b/include/linux/efs_fs_sb.h
@@ -9,6 +9,7 @@
9#ifndef __EFS_FS_SB_H__ 9#ifndef __EFS_FS_SB_H__
10#define __EFS_FS_SB_H__ 10#define __EFS_FS_SB_H__
11 11
12#include <linux/types.h>
12#include <linux/magic.h> 13#include <linux/magic.h>
13 14
14/* EFS superblock magic numbers */ 15/* EFS superblock magic numbers */
diff --git a/include/linux/elf-fdpic.h b/include/linux/elf-fdpic.h
index 9f5b7456bff3..7cd2e80cebc8 100644
--- a/include/linux/elf-fdpic.h
+++ b/include/linux/elf-fdpic.h
@@ -58,11 +58,13 @@ struct elf_fdpic_params {
58#define ELF_FDPIC_FLAG_PRESENT 0x80000000 /* T if this object is present */ 58#define ELF_FDPIC_FLAG_PRESENT 0x80000000 /* T if this object is present */
59}; 59};
60 60
61#ifdef __KERNEL__
61#ifdef CONFIG_MMU 62#ifdef CONFIG_MMU
62extern void elf_fdpic_arch_lay_out_mm(struct elf_fdpic_params *exec_params, 63extern void elf_fdpic_arch_lay_out_mm(struct elf_fdpic_params *exec_params,
63 struct elf_fdpic_params *interp_params, 64 struct elf_fdpic_params *interp_params,
64 unsigned long *start_stack, 65 unsigned long *start_stack,
65 unsigned long *start_brk); 66 unsigned long *start_brk);
66#endif 67#endif
68#endif /* __KERNEL__ */
67 69
68#endif /* _LINUX_ELF_FDPIC_H */ 70#endif /* _LINUX_ELF_FDPIC_H */
diff --git a/include/linux/elf.h b/include/linux/elf.h
index 0b61ca41a044..45a937be6d38 100644
--- a/include/linux/elf.h
+++ b/include/linux/elf.h
@@ -377,6 +377,7 @@ typedef struct elf64_note {
377 Elf64_Word n_type; /* Content type */ 377 Elf64_Word n_type; /* Content type */
378} Elf64_Nhdr; 378} Elf64_Nhdr;
379 379
380#ifdef __KERNEL__
380#if ELF_CLASS == ELFCLASS32 381#if ELF_CLASS == ELFCLASS32
381 382
382extern Elf32_Dyn _DYNAMIC []; 383extern Elf32_Dyn _DYNAMIC [];
@@ -404,5 +405,5 @@ static inline int elf_coredump_extra_notes_write(struct file *file,
404extern int elf_coredump_extra_notes_size(void); 405extern int elf_coredump_extra_notes_size(void);
405extern int elf_coredump_extra_notes_write(struct file *file, loff_t *foffset); 406extern int elf_coredump_extra_notes_write(struct file *file, loff_t *foffset);
406#endif 407#endif
407 408#endif /* __KERNEL__ */
408#endif /* _LINUX_ELF_H */ 409#endif /* _LINUX_ELF_H */
diff --git a/include/linux/errqueue.h b/include/linux/errqueue.h
index 92f8d4fab32b..ceb1454b6977 100644
--- a/include/linux/errqueue.h
+++ b/include/linux/errqueue.h
@@ -1,6 +1,8 @@
1#ifndef _LINUX_ERRQUEUE_H 1#ifndef _LINUX_ERRQUEUE_H
2#define _LINUX_ERRQUEUE_H 1 2#define _LINUX_ERRQUEUE_H 1
3 3
4#include <linux/types.h>
5
4struct sock_extended_err 6struct sock_extended_err
5{ 7{
6 __u32 ee_errno; 8 __u32 ee_errno;
diff --git a/include/linux/genetlink.h b/include/linux/genetlink.h
index 7da02c93002b..b834ef6d59fa 100644
--- a/include/linux/genetlink.h
+++ b/include/linux/genetlink.h
@@ -1,6 +1,7 @@
1#ifndef __LINUX_GENERIC_NETLINK_H 1#ifndef __LINUX_GENERIC_NETLINK_H
2#define __LINUX_GENERIC_NETLINK_H 2#define __LINUX_GENERIC_NETLINK_H
3 3
4#include <linux/types.h>
4#include <linux/netlink.h> 5#include <linux/netlink.h>
5 6
6#define GENL_NAMSIZ 16 /* length of family name */ 7#define GENL_NAMSIZ 16 /* length of family name */
diff --git a/include/linux/gfs2_ondisk.h b/include/linux/gfs2_ondisk.h
index 14d0df0b5749..c56b4bce56d0 100644
--- a/include/linux/gfs2_ondisk.h
+++ b/include/linux/gfs2_ondisk.h
@@ -10,6 +10,8 @@
10#ifndef __GFS2_ONDISK_DOT_H__ 10#ifndef __GFS2_ONDISK_DOT_H__
11#define __GFS2_ONDISK_DOT_H__ 11#define __GFS2_ONDISK_DOT_H__
12 12
13#include <linux/types.h>
14
13#define GFS2_MAGIC 0x01161970 15#define GFS2_MAGIC 0x01161970
14#define GFS2_BASIC_BLOCK 512 16#define GFS2_BASIC_BLOCK 512
15#define GFS2_BASIC_BLOCK_SHIFT 9 17#define GFS2_BASIC_BLOCK_SHIFT 9
diff --git a/include/linux/hid.h b/include/linux/hid.h
index 81aa84d60c6b..fa8ee9cef7be 100644
--- a/include/linux/hid.h
+++ b/include/linux/hid.h
@@ -791,6 +791,7 @@ dbg_hid(const char *fmt, ...)
791 __FILE__ , ## arg) 791 __FILE__ , ## arg)
792#endif /* HID_FF */ 792#endif /* HID_FF */
793 793
794#ifdef __KERNEL__
794#ifdef CONFIG_HID_COMPAT 795#ifdef CONFIG_HID_COMPAT
795#define HID_COMPAT_LOAD_DRIVER(name) \ 796#define HID_COMPAT_LOAD_DRIVER(name) \
796/* prototype to avoid sparse warning */ \ 797/* prototype to avoid sparse warning */ \
@@ -804,6 +805,7 @@ EXPORT_SYMBOL(hid_compat_##name)
804 extern void hid_compat_##name(void); \ 805 extern void hid_compat_##name(void); \
805 hid_compat_##name(); \ 806 hid_compat_##name(); \
806} while (0) 807} while (0)
808#endif /* __KERNEL__ */
807 809
808#endif 810#endif
809 811
diff --git a/include/linux/hiddev.h b/include/linux/hiddev.h
index c760ae0eb6a1..bb6f58baf319 100644
--- a/include/linux/hiddev.h
+++ b/include/linux/hiddev.h
@@ -27,6 +27,8 @@
27 * Vojtech Pavlik, Ucitelska 1576, Prague 8, 182 00 Czech Republic 27 * Vojtech Pavlik, Ucitelska 1576, Prague 8, 182 00 Czech Republic
28 */ 28 */
29 29
30#include <linux/types.h>
31
30/* 32/*
31 * The event structure itself 33 * The event structure itself
32 */ 34 */
diff --git a/include/linux/i2c-id.h b/include/linux/i2c-id.h
index 01d67ba9e985..1ffc23bc5d1e 100644
--- a/include/linux/i2c-id.h
+++ b/include/linux/i2c-id.h
@@ -40,9 +40,7 @@
40#define I2C_DRIVERID_SAA7185B 13 /* video encoder */ 40#define I2C_DRIVERID_SAA7185B 13 /* video encoder */
41#define I2C_DRIVERID_SAA7110 22 /* video decoder */ 41#define I2C_DRIVERID_SAA7110 22 /* video decoder */
42#define I2C_DRIVERID_SAA5249 24 /* SAA5249 and compatibles */ 42#define I2C_DRIVERID_SAA5249 24 /* SAA5249 and compatibles */
43#define I2C_DRIVERID_PCF8583 25 /* real time clock */
44#define I2C_DRIVERID_TDA7432 27 /* Stereo sound processor */ 43#define I2C_DRIVERID_TDA7432 27 /* Stereo sound processor */
45#define I2C_DRIVERID_TVMIXER 28 /* Mixer driver for tv cards */
46#define I2C_DRIVERID_TVAUDIO 29 /* Generic TV sound driver */ 44#define I2C_DRIVERID_TVAUDIO 29 /* Generic TV sound driver */
47#define I2C_DRIVERID_TDA9875 32 /* TV sound decoder chip */ 45#define I2C_DRIVERID_TDA9875 32 /* TV sound decoder chip */
48#define I2C_DRIVERID_BT819 40 /* video decoder */ 46#define I2C_DRIVERID_BT819 40 /* video decoder */
@@ -54,7 +52,6 @@
54#define I2C_DRIVERID_SAA7191 57 /* video decoder */ 52#define I2C_DRIVERID_SAA7191 57 /* video decoder */
55#define I2C_DRIVERID_INDYCAM 58 /* SGI IndyCam */ 53#define I2C_DRIVERID_INDYCAM 58 /* SGI IndyCam */
56#define I2C_DRIVERID_OVCAMCHIP 61 /* OmniVision CMOS image sens. */ 54#define I2C_DRIVERID_OVCAMCHIP 61 /* OmniVision CMOS image sens. */
57#define I2C_DRIVERID_MAX6900 63 /* MAX6900 real-time clock */
58#define I2C_DRIVERID_SAA6752HS 67 /* MPEG2 encoder */ 55#define I2C_DRIVERID_SAA6752HS 67 /* MPEG2 encoder */
59#define I2C_DRIVERID_TVEEPROM 68 /* TV EEPROM */ 56#define I2C_DRIVERID_TVEEPROM 68 /* TV EEPROM */
60#define I2C_DRIVERID_WM8775 69 /* wm8775 audio processor */ 57#define I2C_DRIVERID_WM8775 69 /* wm8775 audio processor */
@@ -62,23 +59,16 @@
62#define I2C_DRIVERID_CX25840 71 /* cx2584x video encoder */ 59#define I2C_DRIVERID_CX25840 71 /* cx2584x video encoder */
63#define I2C_DRIVERID_SAA7127 72 /* saa7127 video encoder */ 60#define I2C_DRIVERID_SAA7127 72 /* saa7127 video encoder */
64#define I2C_DRIVERID_SAA711X 73 /* saa711x video encoders */ 61#define I2C_DRIVERID_SAA711X 73 /* saa711x video encoders */
65#define I2C_DRIVERID_AKITAIOEXP 74 /* IO Expander on Sharp SL-C1000 */
66#define I2C_DRIVERID_INFRARED 75 /* I2C InfraRed on Video boards */ 62#define I2C_DRIVERID_INFRARED 75 /* I2C InfraRed on Video boards */
67#define I2C_DRIVERID_TVP5150 76 /* TVP5150 video decoder */ 63#define I2C_DRIVERID_TVP5150 76 /* TVP5150 video decoder */
68#define I2C_DRIVERID_WM8739 77 /* wm8739 audio processor */ 64#define I2C_DRIVERID_WM8739 77 /* wm8739 audio processor */
69#define I2C_DRIVERID_UPD64083 78 /* upd64083 video processor */ 65#define I2C_DRIVERID_UPD64083 78 /* upd64083 video processor */
70#define I2C_DRIVERID_UPD64031A 79 /* upd64031a video processor */ 66#define I2C_DRIVERID_UPD64031A 79 /* upd64031a video processor */
71#define I2C_DRIVERID_SAA717X 80 /* saa717x video encoder */ 67#define I2C_DRIVERID_SAA717X 80 /* saa717x video encoder */
72#define I2C_DRIVERID_DS1672 81 /* Dallas/Maxim DS1672 RTC */
73#define I2C_DRIVERID_BT866 85 /* Conexant bt866 video encoder */ 68#define I2C_DRIVERID_BT866 85 /* Conexant bt866 video encoder */
74#define I2C_DRIVERID_KS0127 86 /* Samsung ks0127 video decoder */ 69#define I2C_DRIVERID_KS0127 86 /* Samsung ks0127 video decoder */
75#define I2C_DRIVERID_TLV320AIC23B 87 /* TI TLV320AIC23B audio codec */ 70#define I2C_DRIVERID_TLV320AIC23B 87 /* TI TLV320AIC23B audio codec */
76#define I2C_DRIVERID_WM8731 89 /* Wolfson WM8731 audio codec */
77#define I2C_DRIVERID_WM8750 90 /* Wolfson WM8750 audio codec */
78#define I2C_DRIVERID_WM8753 91 /* Wolfson WM8753 audio codec */
79#define I2C_DRIVERID_LM4857 92 /* LM4857 Audio Amplifier */
80#define I2C_DRIVERID_VP27SMPX 93 /* Panasonic VP27s tuner internal MPX */ 71#define I2C_DRIVERID_VP27SMPX 93 /* Panasonic VP27s tuner internal MPX */
81#define I2C_DRIVERID_CS4270 94 /* Cirrus Logic 4270 audio codec */
82#define I2C_DRIVERID_M52790 95 /* Mitsubishi M52790SP/FP AV switch */ 72#define I2C_DRIVERID_M52790 95 /* Mitsubishi M52790SP/FP AV switch */
83#define I2C_DRIVERID_CS5345 96 /* cs5345 audio processor */ 73#define I2C_DRIVERID_CS5345 96 /* cs5345 audio processor */
84 74
@@ -89,74 +79,23 @@
89 */ 79 */
90 80
91/* --- Bit algorithm adapters */ 81/* --- Bit algorithm adapters */
92#define I2C_HW_B_LP 0x010000 /* Parallel port Philips style */
93#define I2C_HW_B_BT848 0x010005 /* BT848 video boards */ 82#define I2C_HW_B_BT848 0x010005 /* BT848 video boards */
94#define I2C_HW_B_VIA 0x010007 /* Via vt82c586b */
95#define I2C_HW_B_HYDRA 0x010008 /* Apple Hydra Mac I/O */
96#define I2C_HW_B_I810 0x01000a /* Intel I810 */
97#define I2C_HW_B_VOO 0x01000b /* 3dfx Voodoo 3 / Banshee */
98#define I2C_HW_B_SCX200 0x01000e /* Nat'l Semi SCx200 I2C */
99#define I2C_HW_B_RIVA 0x010010 /* Riva based graphics cards */ 83#define I2C_HW_B_RIVA 0x010010 /* Riva based graphics cards */
100#define I2C_HW_B_IOC 0x010011 /* IOC bit-wiggling */
101#define I2C_HW_B_IXP2000 0x010016 /* GPIO on IXP2000 systems */
102#define I2C_HW_B_ZR36067 0x010019 /* Zoran-36057/36067 based boards */ 84#define I2C_HW_B_ZR36067 0x010019 /* Zoran-36057/36067 based boards */
103#define I2C_HW_B_PCILYNX 0x01001a /* TI PCILynx I2C adapter */
104#define I2C_HW_B_CX2388x 0x01001b /* connexant 2388x based tv cards */ 85#define I2C_HW_B_CX2388x 0x01001b /* connexant 2388x based tv cards */
105#define I2C_HW_B_NVIDIA 0x01001c /* nvidia framebuffer driver */
106#define I2C_HW_B_SAVAGE 0x01001d /* savage framebuffer driver */
107#define I2C_HW_B_RADEON 0x01001e /* radeon framebuffer driver */
108#define I2C_HW_B_EM28XX 0x01001f /* em28xx video capture cards */ 86#define I2C_HW_B_EM28XX 0x01001f /* em28xx video capture cards */
109#define I2C_HW_B_CX2341X 0x010020 /* Conexant CX2341X MPEG encoder cards */ 87#define I2C_HW_B_CX2341X 0x010020 /* Conexant CX2341X MPEG encoder cards */
110#define I2C_HW_B_INTELFB 0x010021 /* intel framebuffer driver */
111#define I2C_HW_B_CX23885 0x010022 /* conexant 23885 based tv cards (bus1) */ 88#define I2C_HW_B_CX23885 0x010022 /* conexant 23885 based tv cards (bus1) */
112#define I2C_HW_B_AU0828 0x010023 /* auvitek au0828 usb bridge */ 89#define I2C_HW_B_AU0828 0x010023 /* auvitek au0828 usb bridge */
113 90
114/* --- PCF 8584 based algorithms */
115#define I2C_HW_P_ELEK 0x020002 /* Elektor ISA Bus inteface card */
116
117/* --- PCA 9564 based algorithms */
118#define I2C_HW_A_ISA 0x1a0000 /* generic ISA Bus interface card */
119
120/* --- PowerPC on-chip adapters */
121#define I2C_HW_OCP 0x120000 /* IBM on-chip I2C adapter */
122
123/* --- Broadcom SiByte adapters */
124#define I2C_HW_SIBYTE 0x150000
125
126/* --- SGI adapters */ 91/* --- SGI adapters */
127#define I2C_HW_SGI_VINO 0x160000 92#define I2C_HW_SGI_VINO 0x160000
128 93
129/* --- XSCALE on-chip adapters */
130#define I2C_HW_IOP3XX 0x140000
131
132/* --- Au1550 PSC adapters adapters */
133#define I2C_HW_AU1550_PSC 0x1b0000
134
135/* --- SMBus only adapters */ 94/* --- SMBus only adapters */
136#define I2C_HW_SMBUS_PIIX4 0x040000
137#define I2C_HW_SMBUS_ALI15X3 0x040001
138#define I2C_HW_SMBUS_VIA2 0x040002
139#define I2C_HW_SMBUS_I801 0x040004
140#define I2C_HW_SMBUS_AMD756 0x040005
141#define I2C_HW_SMBUS_SIS5595 0x040006
142#define I2C_HW_SMBUS_ALI1535 0x040007
143#define I2C_HW_SMBUS_SIS630 0x040008
144#define I2C_HW_SMBUS_SIS96X 0x040009
145#define I2C_HW_SMBUS_AMD8111 0x04000a
146#define I2C_HW_SMBUS_SCX200 0x04000b
147#define I2C_HW_SMBUS_NFORCE2 0x04000c
148#define I2C_HW_SMBUS_W9968CF 0x04000d 95#define I2C_HW_SMBUS_W9968CF 0x04000d
149#define I2C_HW_SMBUS_OV511 0x04000e /* OV511(+) USB 1.1 webcam ICs */ 96#define I2C_HW_SMBUS_OV511 0x04000e /* OV511(+) USB 1.1 webcam ICs */
150#define I2C_HW_SMBUS_OV518 0x04000f /* OV518(+) USB 1.1 webcam ICs */ 97#define I2C_HW_SMBUS_OV518 0x04000f /* OV518(+) USB 1.1 webcam ICs */
151#define I2C_HW_SMBUS_CAFE 0x040012 /* Marvell 88ALP01 "CAFE" cam */ 98#define I2C_HW_SMBUS_CAFE 0x040012 /* Marvell 88ALP01 "CAFE" cam */
152#define I2C_HW_SMBUS_ALI1563 0x040013
153
154/* --- MCP107 adapter */
155#define I2C_HW_MPC107 0x0d0000
156
157/* --- Embedded adapters */
158#define I2C_HW_MV64XXX 0x190000
159#define I2C_HW_BLACKFIN 0x190001 /* ADI Blackfin I2C TWI driver */
160 99
161/* --- Miscellaneous adapters */ 100/* --- Miscellaneous adapters */
162#define I2C_HW_SAA7146 0x060000 /* SAA7146 video decoder bus */ 101#define I2C_HW_SAA7146 0x060000 /* SAA7146 video decoder bus */
diff --git a/include/linux/i2c.h b/include/linux/i2c.h
index 20873d402467..fcfbfea3af72 100644
--- a/include/linux/i2c.h
+++ b/include/linux/i2c.h
@@ -151,7 +151,7 @@ struct i2c_driver {
151 * has been dynamically allocated by the driver in the function above, 151 * has been dynamically allocated by the driver in the function above,
152 * it must be freed here. (LEGACY I2C DRIVERS ONLY) 152 * it must be freed here. (LEGACY I2C DRIVERS ONLY)
153 */ 153 */
154 int (*detach_client)(struct i2c_client *); 154 int (*detach_client)(struct i2c_client *) __deprecated;
155 155
156 /* Standard driver model interfaces, for "new style" i2c drivers. 156 /* Standard driver model interfaces, for "new style" i2c drivers.
157 * With the driver model, device enumeration is NEVER done by drivers; 157 * With the driver model, device enumeration is NEVER done by drivers;
@@ -429,8 +429,10 @@ static inline int i2c_add_driver(struct i2c_driver *driver)
429 return i2c_register_driver(THIS_MODULE, driver); 429 return i2c_register_driver(THIS_MODULE, driver);
430} 430}
431 431
432extern int i2c_attach_client(struct i2c_client *); 432/* These are deprecated, your driver should use the standard .probe()
433extern int i2c_detach_client(struct i2c_client *); 433 * and .remove() methods instead. */
434extern int __deprecated i2c_attach_client(struct i2c_client *);
435extern int __deprecated i2c_detach_client(struct i2c_client *);
434 436
435extern struct i2c_client *i2c_use_client(struct i2c_client *client); 437extern struct i2c_client *i2c_use_client(struct i2c_client *client);
436extern void i2c_release_client(struct i2c_client *client); 438extern void i2c_release_client(struct i2c_client *client);
diff --git a/include/linux/icmpv6.h b/include/linux/icmpv6.h
index a93a8dd33118..10d701eec484 100644
--- a/include/linux/icmpv6.h
+++ b/include/linux/icmpv6.h
@@ -1,6 +1,7 @@
1#ifndef _LINUX_ICMPV6_H 1#ifndef _LINUX_ICMPV6_H
2#define _LINUX_ICMPV6_H 2#define _LINUX_ICMPV6_H
3 3
4#include <linux/types.h>
4#include <asm/byteorder.h> 5#include <asm/byteorder.h>
5 6
6struct icmp6hdr { 7struct icmp6hdr {
diff --git a/include/linux/if_addr.h b/include/linux/if_addr.h
index 43f3bedaafd3..a60c821be44c 100644
--- a/include/linux/if_addr.h
+++ b/include/linux/if_addr.h
@@ -1,6 +1,7 @@
1#ifndef __LINUX_IF_ADDR_H 1#ifndef __LINUX_IF_ADDR_H
2#define __LINUX_IF_ADDR_H 2#define __LINUX_IF_ADDR_H
3 3
4#include <linux/types.h>
4#include <linux/netlink.h> 5#include <linux/netlink.h>
5 6
6struct ifaddrmsg 7struct ifaddrmsg
diff --git a/include/linux/if_addrlabel.h b/include/linux/if_addrlabel.h
index 9fe79c95dd28..89571f65d6de 100644
--- a/include/linux/if_addrlabel.h
+++ b/include/linux/if_addrlabel.h
@@ -10,6 +10,8 @@
10#ifndef __LINUX_IF_ADDRLABEL_H 10#ifndef __LINUX_IF_ADDRLABEL_H
11#define __LINUX_IF_ADDRLABEL_H 11#define __LINUX_IF_ADDRLABEL_H
12 12
13#include <linux/types.h>
14
13struct ifaddrlblmsg 15struct ifaddrlblmsg
14{ 16{
15 __u8 ifal_family; /* Address family */ 17 __u8 ifal_family; /* Address family */
diff --git a/include/linux/if_fc.h b/include/linux/if_fc.h
index 376a34ea4723..6ed7f1bf35c8 100644
--- a/include/linux/if_fc.h
+++ b/include/linux/if_fc.h
@@ -20,6 +20,7 @@
20#ifndef _LINUX_IF_FC_H 20#ifndef _LINUX_IF_FC_H
21#define _LINUX_IF_FC_H 21#define _LINUX_IF_FC_H
22 22
23#include <linux/types.h>
23 24
24#define FC_ALEN 6 /* Octets in one ethernet addr */ 25#define FC_ALEN 6 /* Octets in one ethernet addr */
25#define FC_HLEN (sizeof(struct fch_hdr)+sizeof(struct fcllc)) 26#define FC_HLEN (sizeof(struct fch_hdr)+sizeof(struct fcllc))
diff --git a/include/linux/if_frad.h b/include/linux/if_frad.h
index 5c34240de746..60e16a551dd6 100644
--- a/include/linux/if_frad.h
+++ b/include/linux/if_frad.h
@@ -26,8 +26,6 @@
26 26
27#include <linux/if.h> 27#include <linux/if.h>
28 28
29#if defined(CONFIG_DLCI) || defined(CONFIG_DLCI_MODULE)
30
31/* Structures and constants associated with the DLCI device driver */ 29/* Structures and constants associated with the DLCI device driver */
32 30
33struct dlci_add 31struct dlci_add
@@ -127,6 +125,8 @@ struct frad_conf
127 125
128#ifdef __KERNEL__ 126#ifdef __KERNEL__
129 127
128#if defined(CONFIG_DLCI) || defined(CONFIG_DLCI_MODULE)
129
130/* these are the fields of an RFC 1490 header */ 130/* these are the fields of an RFC 1490 header */
131struct frhdr 131struct frhdr
132{ 132{
@@ -190,12 +190,10 @@ struct frad_local
190 int buffer; /* current buffer for S508 firmware */ 190 int buffer; /* current buffer for S508 firmware */
191}; 191};
192 192
193#endif /* __KERNEL__ */
194
195#endif /* CONFIG_DLCI || CONFIG_DLCI_MODULE */ 193#endif /* CONFIG_DLCI || CONFIG_DLCI_MODULE */
196 194
197#ifdef __KERNEL__
198extern void dlci_ioctl_set(int (*hook)(unsigned int, void __user *)); 195extern void dlci_ioctl_set(int (*hook)(unsigned int, void __user *));
199#endif 196
197#endif /* __KERNEL__ */
200 198
201#endif 199#endif
diff --git a/include/linux/if_hippi.h b/include/linux/if_hippi.h
index f0f23516bb59..4a7c9940b080 100644
--- a/include/linux/if_hippi.h
+++ b/include/linux/if_hippi.h
@@ -22,6 +22,7 @@
22#ifndef _LINUX_IF_HIPPI_H 22#ifndef _LINUX_IF_HIPPI_H
23#define _LINUX_IF_HIPPI_H 23#define _LINUX_IF_HIPPI_H
24 24
25#include <linux/types.h>
25#include <asm/byteorder.h> 26#include <asm/byteorder.h>
26 27
27/* 28/*
diff --git a/include/linux/if_link.h b/include/linux/if_link.h
index f9032c88716a..176c5182c515 100644
--- a/include/linux/if_link.h
+++ b/include/linux/if_link.h
@@ -1,6 +1,7 @@
1#ifndef _LINUX_IF_LINK_H 1#ifndef _LINUX_IF_LINK_H
2#define _LINUX_IF_LINK_H 2#define _LINUX_IF_LINK_H
3 3
4#include <linux/types.h>
4#include <linux/netlink.h> 5#include <linux/netlink.h>
5 6
6/* The struct should be in sync with struct net_device_stats */ 7/* The struct should be in sync with struct net_device_stats */
diff --git a/include/linux/if_ppp.h b/include/linux/if_ppp.h
index c3b1f8562709..fcef103aa3f6 100644
--- a/include/linux/if_ppp.h
+++ b/include/linux/if_ppp.h
@@ -33,6 +33,7 @@
33#ifndef _IF_PPP_H_ 33#ifndef _IF_PPP_H_
34#define _IF_PPP_H_ 34#define _IF_PPP_H_
35 35
36#include <linux/types.h>
36#include <linux/compiler.h> 37#include <linux/compiler.h>
37 38
38/* 39/*
diff --git a/include/linux/if_strip.h b/include/linux/if_strip.h
index fb5c5c98442f..6526a6235832 100644
--- a/include/linux/if_strip.h
+++ b/include/linux/if_strip.h
@@ -18,6 +18,8 @@
18#ifndef __LINUX_STRIP_H 18#ifndef __LINUX_STRIP_H
19#define __LINUX_STRIP_H 19#define __LINUX_STRIP_H
20 20
21#include <linux/types.h>
22
21typedef struct { 23typedef struct {
22 __u8 c[6]; 24 __u8 c[6];
23} MetricomAddress; 25} MetricomAddress;
diff --git a/include/linux/if_tr.h b/include/linux/if_tr.h
index 5bcec8b2c5e2..fc23aeb0f201 100644
--- a/include/linux/if_tr.h
+++ b/include/linux/if_tr.h
@@ -19,6 +19,7 @@
19#ifndef _LINUX_IF_TR_H 19#ifndef _LINUX_IF_TR_H
20#define _LINUX_IF_TR_H 20#define _LINUX_IF_TR_H
21 21
22#include <linux/types.h>
22#include <asm/byteorder.h> /* For __be16 */ 23#include <asm/byteorder.h> /* For __be16 */
23 24
24/* IEEE 802.5 Token-Ring magic constants. The frame sizes omit the preamble 25/* IEEE 802.5 Token-Ring magic constants. The frame sizes omit the preamble
diff --git a/include/linux/igmp.h b/include/linux/igmp.h
index f734a0ba0698..92fbd8cbd68f 100644
--- a/include/linux/igmp.h
+++ b/include/linux/igmp.h
@@ -16,6 +16,7 @@
16#ifndef _LINUX_IGMP_H 16#ifndef _LINUX_IGMP_H
17#define _LINUX_IGMP_H 17#define _LINUX_IGMP_H
18 18
19#include <linux/types.h>
19#include <asm/byteorder.h> 20#include <asm/byteorder.h>
20 21
21/* 22/*
diff --git a/include/linux/inet_diag.h b/include/linux/inet_diag.h
index 6e8bc548635a..bc8c49022084 100644
--- a/include/linux/inet_diag.h
+++ b/include/linux/inet_diag.h
@@ -1,6 +1,8 @@
1#ifndef _INET_DIAG_H_ 1#ifndef _INET_DIAG_H_
2#define _INET_DIAG_H_ 1 2#define _INET_DIAG_H_ 1
3 3
4#include <linux/types.h>
5
4/* Just some random number */ 6/* Just some random number */
5#define TCPDIAG_GETSOCK 18 7#define TCPDIAG_GETSOCK 18
6#define DCCPDIAG_GETSOCK 19 8#define DCCPDIAG_GETSOCK 19
diff --git a/include/linux/init_task.h b/include/linux/init_task.h
index 2f3c2d4ef73b..ea0ea1a4c36f 100644
--- a/include/linux/init_task.h
+++ b/include/linux/init_task.h
@@ -48,6 +48,12 @@ extern struct fs_struct init_fs;
48 .posix_timers = LIST_HEAD_INIT(sig.posix_timers), \ 48 .posix_timers = LIST_HEAD_INIT(sig.posix_timers), \
49 .cpu_timers = INIT_CPU_TIMERS(sig.cpu_timers), \ 49 .cpu_timers = INIT_CPU_TIMERS(sig.cpu_timers), \
50 .rlim = INIT_RLIMITS, \ 50 .rlim = INIT_RLIMITS, \
51 .cputime = { .totals = { \
52 .utime = cputime_zero, \
53 .stime = cputime_zero, \
54 .sum_exec_runtime = 0, \
55 .lock = __SPIN_LOCK_UNLOCKED(sig.cputime.totals.lock), \
56 }, }, \
51} 57}
52 58
53extern struct nsproxy init_nsproxy; 59extern struct nsproxy init_nsproxy;
diff --git a/include/linux/ip6_tunnel.h b/include/linux/ip6_tunnel.h
index 1e7cc4af40de..acb9ad684d63 100644
--- a/include/linux/ip6_tunnel.h
+++ b/include/linux/ip6_tunnel.h
@@ -1,6 +1,8 @@
1#ifndef _IP6_TUNNEL_H 1#ifndef _IP6_TUNNEL_H
2#define _IP6_TUNNEL_H 2#define _IP6_TUNNEL_H
3 3
4#include <linux/types.h>
5
4#define IPV6_TLV_TNL_ENCAP_LIMIT 4 6#define IPV6_TLV_TNL_ENCAP_LIMIT 4
5#define IPV6_DEFAULT_TNL_ENCAP_LIMIT 4 7#define IPV6_DEFAULT_TNL_ENCAP_LIMIT 4
6 8
diff --git a/include/linux/ipv6.h b/include/linux/ipv6.h
index 0b816cae533e..476d9464ac82 100644
--- a/include/linux/ipv6.h
+++ b/include/linux/ipv6.h
@@ -1,6 +1,7 @@
1#ifndef _IPV6_H 1#ifndef _IPV6_H
2#define _IPV6_H 2#define _IPV6_H
3 3
4#include <linux/types.h>
4#include <linux/in6.h> 5#include <linux/in6.h>
5#include <asm/byteorder.h> 6#include <asm/byteorder.h>
6 7
diff --git a/include/linux/ipv6_route.h b/include/linux/ipv6_route.h
index b323ff577967..1e7d8af2defe 100644
--- a/include/linux/ipv6_route.h
+++ b/include/linux/ipv6_route.h
@@ -13,6 +13,8 @@
13#ifndef _LINUX_IPV6_ROUTE_H 13#ifndef _LINUX_IPV6_ROUTE_H
14#define _LINUX_IPV6_ROUTE_H 14#define _LINUX_IPV6_ROUTE_H
15 15
16#include <linux/types.h>
17
16#define RTF_DEFAULT 0x00010000 /* default - learned via ND */ 18#define RTF_DEFAULT 0x00010000 /* default - learned via ND */
17#define RTF_ALLONLINK 0x00020000 /* (deprecated and will be removed) 19#define RTF_ALLONLINK 0x00020000 /* (deprecated and will be removed)
18 fallback, no routers on link */ 20 fallback, no routers on link */
diff --git a/include/linux/ipx.h b/include/linux/ipx.h
index eb19b4ea84f4..aabb1d294025 100644
--- a/include/linux/ipx.h
+++ b/include/linux/ipx.h
@@ -1,5 +1,6 @@
1#ifndef _IPX_H_ 1#ifndef _IPX_H_
2#define _IPX_H_ 2#define _IPX_H_
3#include <linux/types.h>
3#include <linux/sockios.h> 4#include <linux/sockios.h>
4#include <linux/socket.h> 5#include <linux/socket.h>
5#define IPX_NODE_LEN 6 6#define IPX_NODE_LEN 6
diff --git a/include/linux/irda.h b/include/linux/irda.h
index 28f88ecba344..00bdad0e8515 100644
--- a/include/linux/irda.h
+++ b/include/linux/irda.h
@@ -25,6 +25,8 @@
25#ifndef KERNEL_IRDA_H 25#ifndef KERNEL_IRDA_H
26#define KERNEL_IRDA_H 26#define KERNEL_IRDA_H
27 27
28#include <linux/types.h>
29
28/* Please do *not* add any #include in this file, this file is 30/* Please do *not* add any #include in this file, this file is
29 * included as-is in user space. 31 * included as-is in user space.
30 * Please fix the calling file to properly included needed files before 32 * Please fix the calling file to properly included needed files before
diff --git a/include/linux/jbd2.h b/include/linux/jbd2.h
index b45109c61fba..b28b37eb11c6 100644
--- a/include/linux/jbd2.h
+++ b/include/linux/jbd2.h
@@ -308,7 +308,8 @@ void buffer_assertion_failure(struct buffer_head *bh);
308 int val = (expr); \ 308 int val = (expr); \
309 if (!val) { \ 309 if (!val) { \
310 printk(KERN_ERR \ 310 printk(KERN_ERR \
311 "EXT3-fs unexpected failure: %s;\n",# expr); \ 311 "JBD2 unexpected failure: %s: %s;\n", \
312 __func__, #expr); \
312 printk(KERN_ERR why "\n"); \ 313 printk(KERN_ERR why "\n"); \
313 } \ 314 } \
314 val; \ 315 val; \
diff --git a/include/linux/klist.h b/include/linux/klist.h
index d5a27af9dba5..e91a4e59b771 100644
--- a/include/linux/klist.h
+++ b/include/linux/klist.h
@@ -22,7 +22,7 @@ struct klist {
22 struct list_head k_list; 22 struct list_head k_list;
23 void (*get)(struct klist_node *); 23 void (*get)(struct klist_node *);
24 void (*put)(struct klist_node *); 24 void (*put)(struct klist_node *);
25}; 25} __attribute__ ((aligned (4)));
26 26
27#define KLIST_INIT(_name, _get, _put) \ 27#define KLIST_INIT(_name, _get, _put) \
28 { .k_lock = __SPIN_LOCK_UNLOCKED(_name.k_lock), \ 28 { .k_lock = __SPIN_LOCK_UNLOCKED(_name.k_lock), \
diff --git a/include/linux/kprobes.h b/include/linux/kprobes.h
index d6ea19e314bb..32851eef48f0 100644
--- a/include/linux/kprobes.h
+++ b/include/linux/kprobes.h
@@ -49,6 +49,13 @@
49 49
50/* Attach to insert probes on any functions which should be ignored*/ 50/* Attach to insert probes on any functions which should be ignored*/
51#define __kprobes __attribute__((__section__(".kprobes.text"))) notrace 51#define __kprobes __attribute__((__section__(".kprobes.text"))) notrace
52#else /* CONFIG_KPROBES */
53typedef int kprobe_opcode_t;
54struct arch_specific_insn {
55 int dummy;
56};
57#define __kprobes notrace
58#endif /* CONFIG_KPROBES */
52 59
53struct kprobe; 60struct kprobe;
54struct pt_regs; 61struct pt_regs;
@@ -131,23 +138,6 @@ struct jprobe {
131/* For backward compatibility with old code using JPROBE_ENTRY() */ 138/* For backward compatibility with old code using JPROBE_ENTRY() */
132#define JPROBE_ENTRY(handler) (handler) 139#define JPROBE_ENTRY(handler) (handler)
133 140
134DECLARE_PER_CPU(struct kprobe *, current_kprobe);
135DECLARE_PER_CPU(struct kprobe_ctlblk, kprobe_ctlblk);
136
137#ifdef CONFIG_KRETPROBES
138extern void arch_prepare_kretprobe(struct kretprobe_instance *ri,
139 struct pt_regs *regs);
140extern int arch_trampoline_kprobe(struct kprobe *p);
141#else /* CONFIG_KRETPROBES */
142static inline void arch_prepare_kretprobe(struct kretprobe *rp,
143 struct pt_regs *regs)
144{
145}
146static inline int arch_trampoline_kprobe(struct kprobe *p)
147{
148 return 0;
149}
150#endif /* CONFIG_KRETPROBES */
151/* 141/*
152 * Function-return probe - 142 * Function-return probe -
153 * Note: 143 * Note:
@@ -188,6 +178,25 @@ struct kprobe_blackpoint {
188 unsigned long range; 178 unsigned long range;
189}; 179};
190 180
181#ifdef CONFIG_KPROBES
182DECLARE_PER_CPU(struct kprobe *, current_kprobe);
183DECLARE_PER_CPU(struct kprobe_ctlblk, kprobe_ctlblk);
184
185#ifdef CONFIG_KRETPROBES
186extern void arch_prepare_kretprobe(struct kretprobe_instance *ri,
187 struct pt_regs *regs);
188extern int arch_trampoline_kprobe(struct kprobe *p);
189#else /* CONFIG_KRETPROBES */
190static inline void arch_prepare_kretprobe(struct kretprobe *rp,
191 struct pt_regs *regs)
192{
193}
194static inline int arch_trampoline_kprobe(struct kprobe *p)
195{
196 return 0;
197}
198#endif /* CONFIG_KRETPROBES */
199
191extern struct kretprobe_blackpoint kretprobe_blacklist[]; 200extern struct kretprobe_blackpoint kretprobe_blacklist[];
192 201
193static inline void kretprobe_assert(struct kretprobe_instance *ri, 202static inline void kretprobe_assert(struct kretprobe_instance *ri,
@@ -264,10 +273,6 @@ void recycle_rp_inst(struct kretprobe_instance *ri, struct hlist_head *head);
264 273
265#else /* CONFIG_KPROBES */ 274#else /* CONFIG_KPROBES */
266 275
267#define __kprobes notrace
268struct jprobe;
269struct kretprobe;
270
271static inline struct kprobe *get_kprobe(void *addr) 276static inline struct kprobe *get_kprobe(void *addr)
272{ 277{
273 return NULL; 278 return NULL;
diff --git a/include/linux/libata.h b/include/linux/libata.h
index 2c6bd66209ff..bca3ba25f52a 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -187,6 +187,8 @@ enum {
187 ATA_FLAG_PIO_POLLING = (1 << 9), /* use polling PIO if LLD 187 ATA_FLAG_PIO_POLLING = (1 << 9), /* use polling PIO if LLD
188 * doesn't handle PIO interrupts */ 188 * doesn't handle PIO interrupts */
189 ATA_FLAG_NCQ = (1 << 10), /* host supports NCQ */ 189 ATA_FLAG_NCQ = (1 << 10), /* host supports NCQ */
190 ATA_FLAG_NO_POWEROFF_SPINDOWN = (1 << 11), /* don't spindown before poweroff */
191 ATA_FLAG_NO_HIBERNATE_SPINDOWN = (1 << 12), /* don't spindown before hibernation */
190 ATA_FLAG_DEBUGMSG = (1 << 13), 192 ATA_FLAG_DEBUGMSG = (1 << 13),
191 ATA_FLAG_IGN_SIMPLEX = (1 << 15), /* ignore SIMPLEX */ 193 ATA_FLAG_IGN_SIMPLEX = (1 << 15), /* ignore SIMPLEX */
192 ATA_FLAG_NO_IORDY = (1 << 16), /* controller lacks iordy */ 194 ATA_FLAG_NO_IORDY = (1 << 16), /* controller lacks iordy */
diff --git a/include/linux/minix_fs.h b/include/linux/minix_fs.h
index 0e39745f5111..13fe09e0576a 100644
--- a/include/linux/minix_fs.h
+++ b/include/linux/minix_fs.h
@@ -1,6 +1,7 @@
1#ifndef _LINUX_MINIX_FS_H 1#ifndef _LINUX_MINIX_FS_H
2#define _LINUX_MINIX_FS_H 2#define _LINUX_MINIX_FS_H
3 3
4#include <linux/types.h>
4#include <linux/magic.h> 5#include <linux/magic.h>
5 6
6/* 7/*
diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h
index 97b91d1abb43..fde86671f48f 100644
--- a/include/linux/mod_devicetable.h
+++ b/include/linux/mod_devicetable.h
@@ -443,6 +443,13 @@ struct dmi_system_id {
443 struct dmi_strmatch matches[4]; 443 struct dmi_strmatch matches[4];
444 void *driver_data; 444 void *driver_data;
445}; 445};
446/*
447 * struct dmi_device_id appears during expansion of
448 * "MODULE_DEVICE_TABLE(dmi, x)". Compiler doesn't look inside it
449 * but this is enough for gcc 3.4.6 to error out:
450 * error: storage size of '__mod_dmi_device_table' isn't known
451 */
452#define dmi_device_id dmi_system_id
446#endif 453#endif
447 454
448#define DMI_MATCH(a, b) { a, b } 455#define DMI_MATCH(a, b) { a, b }
diff --git a/include/linux/module.h b/include/linux/module.h
index 4f7ea12463d3..f3b8329eb5b8 100644
--- a/include/linux/module.h
+++ b/include/linux/module.h
@@ -219,11 +219,6 @@ void *__symbol_get_gpl(const char *symbol);
219 219
220#endif 220#endif
221 221
222struct module_ref
223{
224 local_t count;
225} ____cacheline_aligned;
226
227enum module_state 222enum module_state
228{ 223{
229 MODULE_STATE_LIVE, 224 MODULE_STATE_LIVE,
@@ -344,8 +339,11 @@ struct module
344 /* Destruction function. */ 339 /* Destruction function. */
345 void (*exit)(void); 340 void (*exit)(void);
346 341
347 /* Reference counts */ 342#ifdef CONFIG_SMP
348 struct module_ref ref[NR_CPUS]; 343 char *refptr;
344#else
345 local_t ref;
346#endif
349#endif 347#endif
350}; 348};
351#ifndef MODULE_ARCH_INIT 349#ifndef MODULE_ARCH_INIT
@@ -395,13 +393,22 @@ void __symbol_put(const char *symbol);
395#define symbol_put(x) __symbol_put(MODULE_SYMBOL_PREFIX #x) 393#define symbol_put(x) __symbol_put(MODULE_SYMBOL_PREFIX #x)
396void symbol_put_addr(void *addr); 394void symbol_put_addr(void *addr);
397 395
396static inline local_t *__module_ref_addr(struct module *mod, int cpu)
397{
398#ifdef CONFIG_SMP
399 return (local_t *) (mod->refptr + per_cpu_offset(cpu));
400#else
401 return &mod->ref;
402#endif
403}
404
398/* Sometimes we know we already have a refcount, and it's easier not 405/* Sometimes we know we already have a refcount, and it's easier not
399 to handle the error case (which only happens with rmmod --wait). */ 406 to handle the error case (which only happens with rmmod --wait). */
400static inline void __module_get(struct module *module) 407static inline void __module_get(struct module *module)
401{ 408{
402 if (module) { 409 if (module) {
403 BUG_ON(module_refcount(module) == 0); 410 BUG_ON(module_refcount(module) == 0);
404 local_inc(&module->ref[get_cpu()].count); 411 local_inc(__module_ref_addr(module, get_cpu()));
405 put_cpu(); 412 put_cpu();
406 } 413 }
407} 414}
@@ -413,7 +420,7 @@ static inline int try_module_get(struct module *module)
413 if (module) { 420 if (module) {
414 unsigned int cpu = get_cpu(); 421 unsigned int cpu = get_cpu();
415 if (likely(module_is_live(module))) 422 if (likely(module_is_live(module)))
416 local_inc(&module->ref[cpu].count); 423 local_inc(__module_ref_addr(module, cpu));
417 else 424 else
418 ret = 0; 425 ret = 0;
419 put_cpu(); 426 put_cpu();
diff --git a/include/linux/msdos_fs.h b/include/linux/msdos_fs.h
index e0a9b207920d..ce38f1caa5e1 100644
--- a/include/linux/msdos_fs.h
+++ b/include/linux/msdos_fs.h
@@ -1,6 +1,7 @@
1#ifndef _LINUX_MSDOS_FS_H 1#ifndef _LINUX_MSDOS_FS_H
2#define _LINUX_MSDOS_FS_H 2#define _LINUX_MSDOS_FS_H
3 3
4#include <linux/types.h>
4#include <linux/magic.h> 5#include <linux/magic.h>
5#include <asm/byteorder.h> 6#include <asm/byteorder.h>
6 7
diff --git a/include/linux/neighbour.h b/include/linux/neighbour.h
index bd3bbf668cdb..8730d5dae1bc 100644
--- a/include/linux/neighbour.h
+++ b/include/linux/neighbour.h
@@ -1,6 +1,7 @@
1#ifndef __LINUX_NEIGHBOUR_H 1#ifndef __LINUX_NEIGHBOUR_H
2#define __LINUX_NEIGHBOUR_H 2#define __LINUX_NEIGHBOUR_H
3 3
4#include <linux/types.h>
4#include <linux/netlink.h> 5#include <linux/netlink.h>
5 6
6struct ndmsg 7struct ndmsg
diff --git a/include/linux/netfilter/xt_conntrack.h b/include/linux/netfilter/xt_conntrack.h
index f3fd83e46bab..8f5345275393 100644
--- a/include/linux/netfilter/xt_conntrack.h
+++ b/include/linux/netfilter/xt_conntrack.h
@@ -5,6 +5,7 @@
5#ifndef _XT_CONNTRACK_H 5#ifndef _XT_CONNTRACK_H
6#define _XT_CONNTRACK_H 6#define _XT_CONNTRACK_H
7 7
8#include <linux/types.h>
8#include <linux/netfilter/nf_conntrack_tuple_common.h> 9#include <linux/netfilter/nf_conntrack_tuple_common.h>
9 10
10#define XT_CONNTRACK_STATE_BIT(ctinfo) (1 << ((ctinfo)%IP_CT_IS_REPLY+1)) 11#define XT_CONNTRACK_STATE_BIT(ctinfo) (1 << ((ctinfo)%IP_CT_IS_REPLY+1))
diff --git a/include/linux/nfs_idmap.h b/include/linux/nfs_idmap.h
index 15a9f3b7289a..91a1c24e0cbf 100644
--- a/include/linux/nfs_idmap.h
+++ b/include/linux/nfs_idmap.h
@@ -37,6 +37,8 @@
37#ifndef NFS_IDMAP_H 37#ifndef NFS_IDMAP_H
38#define NFS_IDMAP_H 38#define NFS_IDMAP_H
39 39
40#include <linux/types.h>
41
40/* XXX from bits/utmp.h */ 42/* XXX from bits/utmp.h */
41#define IDMAP_NAMESZ 128 43#define IDMAP_NAMESZ 128
42 44
diff --git a/include/linux/nfsd/export.h b/include/linux/nfsd/export.h
index 5431512b2757..bcd0201589f8 100644
--- a/include/linux/nfsd/export.h
+++ b/include/linux/nfsd/export.h
@@ -10,9 +10,8 @@
10#ifndef NFSD_EXPORT_H 10#ifndef NFSD_EXPORT_H
11#define NFSD_EXPORT_H 11#define NFSD_EXPORT_H
12 12
13#include <asm/types.h>
14#ifdef __KERNEL__
15# include <linux/types.h> 13# include <linux/types.h>
14#ifdef __KERNEL__
16# include <linux/in.h> 15# include <linux/in.h>
17#endif 16#endif
18 17
diff --git a/include/linux/nfsd/nfsfh.h b/include/linux/nfsd/nfsfh.h
index b2e093870bc6..fa317f6c154b 100644
--- a/include/linux/nfsd/nfsfh.h
+++ b/include/linux/nfsd/nfsfh.h
@@ -14,9 +14,8 @@
14#ifndef _LINUX_NFSD_FH_H 14#ifndef _LINUX_NFSD_FH_H
15#define _LINUX_NFSD_FH_H 15#define _LINUX_NFSD_FH_H
16 16
17#include <asm/types.h>
18#ifdef __KERNEL__
19# include <linux/types.h> 17# include <linux/types.h>
18#ifdef __KERNEL__
20# include <linux/string.h> 19# include <linux/string.h>
21# include <linux/fs.h> 20# include <linux/fs.h>
22#endif 21#endif
diff --git a/include/linux/nfsd/syscall.h b/include/linux/nfsd/syscall.h
index 4e439765b705..7a3b565b898f 100644
--- a/include/linux/nfsd/syscall.h
+++ b/include/linux/nfsd/syscall.h
@@ -9,9 +9,8 @@
9#ifndef NFSD_SYSCALL_H 9#ifndef NFSD_SYSCALL_H
10#define NFSD_SYSCALL_H 10#define NFSD_SYSCALL_H
11 11
12#include <asm/types.h>
13#ifdef __KERNEL__
14# include <linux/types.h> 12# include <linux/types.h>
13#ifdef __KERNEL__
15# include <linux/in.h> 14# include <linux/in.h>
16#endif 15#endif
17#include <linux/posix_types.h> 16#include <linux/posix_types.h>
diff --git a/include/linux/nubus.h b/include/linux/nubus.h
index c4355076d1a5..7382af374731 100644
--- a/include/linux/nubus.h
+++ b/include/linux/nubus.h
@@ -12,6 +12,7 @@
12#ifndef LINUX_NUBUS_H 12#ifndef LINUX_NUBUS_H
13#define LINUX_NUBUS_H 13#define LINUX_NUBUS_H
14 14
15#include <linux/types.h>
15#ifdef __KERNEL__ 16#ifdef __KERNEL__
16#include <asm/nubus.h> 17#include <asm/nubus.h>
17#endif 18#endif
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 80f8b8b65fde..48890cf3f96e 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -117,6 +117,10 @@ typedef int __bitwise pci_power_t;
117#define PCI_UNKNOWN ((pci_power_t __force) 5) 117#define PCI_UNKNOWN ((pci_power_t __force) 5)
118#define PCI_POWER_ERROR ((pci_power_t __force) -1) 118#define PCI_POWER_ERROR ((pci_power_t __force) -1)
119 119
120#define PCI_PM_D2_DELAY 200
121#define PCI_PM_D3_WAIT 10
122#define PCI_PM_BUS_WAIT 50
123
120/** The pci_channel state describes connectivity between the CPU and 124/** The pci_channel state describes connectivity between the CPU and
121 * the pci device. If some PCI bus between here and the pci device 125 * the pci device. If some PCI bus between here and the pci device
122 * has crashed or locked up, this info is reflected here. 126 * has crashed or locked up, this info is reflected here.
@@ -252,6 +256,7 @@ struct pci_dev {
252 unsigned int ari_enabled:1; /* ARI forwarding */ 256 unsigned int ari_enabled:1; /* ARI forwarding */
253 unsigned int is_managed:1; 257 unsigned int is_managed:1;
254 unsigned int is_pcie:1; 258 unsigned int is_pcie:1;
259 unsigned int state_saved:1;
255 pci_dev_flags_t dev_flags; 260 pci_dev_flags_t dev_flags;
256 atomic_t enable_cnt; /* pci_enable_device has been called */ 261 atomic_t enable_cnt; /* pci_enable_device has been called */
257 262
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index d56ad9c21c09..52a9fe08451c 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -1357,6 +1357,7 @@
1357#define PCI_DEVICE_ID_VIA_8783_0 0x3208 1357#define PCI_DEVICE_ID_VIA_8783_0 0x3208
1358#define PCI_DEVICE_ID_VIA_8237 0x3227 1358#define PCI_DEVICE_ID_VIA_8237 0x3227
1359#define PCI_DEVICE_ID_VIA_8251 0x3287 1359#define PCI_DEVICE_ID_VIA_8251 0x3287
1360#define PCI_DEVICE_ID_VIA_8261 0x3402
1360#define PCI_DEVICE_ID_VIA_8237A 0x3337 1361#define PCI_DEVICE_ID_VIA_8237A 0x3337
1361#define PCI_DEVICE_ID_VIA_8237S 0x3372 1362#define PCI_DEVICE_ID_VIA_8237S 0x3372
1362#define PCI_DEVICE_ID_VIA_SATA_EIDE 0x5324 1363#define PCI_DEVICE_ID_VIA_SATA_EIDE 0x5324
@@ -1366,10 +1367,13 @@
1366#define PCI_DEVICE_ID_VIA_CX700 0x8324 1367#define PCI_DEVICE_ID_VIA_CX700 0x8324
1367#define PCI_DEVICE_ID_VIA_CX700_IDE 0x0581 1368#define PCI_DEVICE_ID_VIA_CX700_IDE 0x0581
1368#define PCI_DEVICE_ID_VIA_VX800 0x8353 1369#define PCI_DEVICE_ID_VIA_VX800 0x8353
1370#define PCI_DEVICE_ID_VIA_VX855 0x8409
1369#define PCI_DEVICE_ID_VIA_8371_1 0x8391 1371#define PCI_DEVICE_ID_VIA_8371_1 0x8391
1370#define PCI_DEVICE_ID_VIA_82C598_1 0x8598 1372#define PCI_DEVICE_ID_VIA_82C598_1 0x8598
1371#define PCI_DEVICE_ID_VIA_838X_1 0xB188 1373#define PCI_DEVICE_ID_VIA_838X_1 0xB188
1372#define PCI_DEVICE_ID_VIA_83_87XX_1 0xB198 1374#define PCI_DEVICE_ID_VIA_83_87XX_1 0xB198
1375#define PCI_DEVICE_ID_VIA_C409_IDE 0XC409
1376#define PCI_DEVICE_ID_VIA_ANON 0xFFFF
1373 1377
1374#define PCI_VENDOR_ID_SIEMENS 0x110A 1378#define PCI_VENDOR_ID_SIEMENS 0x110A
1375#define PCI_DEVICE_ID_SIEMENS_DSCC4 0x2102 1379#define PCI_DEVICE_ID_SIEMENS_DSCC4 0x2102
@@ -2421,6 +2425,7 @@
2421#define PCI_DEVICE_ID_INTEL_ICH7_0 0x27b8 2425#define PCI_DEVICE_ID_INTEL_ICH7_0 0x27b8
2422#define PCI_DEVICE_ID_INTEL_ICH7_1 0x27b9 2426#define PCI_DEVICE_ID_INTEL_ICH7_1 0x27b9
2423#define PCI_DEVICE_ID_INTEL_ICH7_30 0x27b0 2427#define PCI_DEVICE_ID_INTEL_ICH7_30 0x27b0
2428#define PCI_DEVICE_ID_INTEL_TGP_LPC 0x27bc
2424#define PCI_DEVICE_ID_INTEL_ICH7_31 0x27bd 2429#define PCI_DEVICE_ID_INTEL_ICH7_31 0x27bd
2425#define PCI_DEVICE_ID_INTEL_ICH7_17 0x27da 2430#define PCI_DEVICE_ID_INTEL_ICH7_17 0x27da
2426#define PCI_DEVICE_ID_INTEL_ICH7_19 0x27dd 2431#define PCI_DEVICE_ID_INTEL_ICH7_19 0x27dd
diff --git a/include/linux/phonet.h b/include/linux/phonet.h
index 4157faa857b6..ee5e3c9e2bca 100644
--- a/include/linux/phonet.h
+++ b/include/linux/phonet.h
@@ -23,6 +23,8 @@
23#ifndef LINUX_PHONET_H 23#ifndef LINUX_PHONET_H
24#define LINUX_PHONET_H 24#define LINUX_PHONET_H
25 25
26#include <linux/types.h>
27
26/* Automatic protocol selection */ 28/* Automatic protocol selection */
27#define PN_PROTO_TRANSPORT 0 29#define PN_PROTO_TRANSPORT 0
28/* Phonet datagram socket */ 30/* Phonet datagram socket */
diff --git a/include/linux/pkt_cls.h b/include/linux/pkt_cls.h
index e6aa8482ad7a..3c842edff388 100644
--- a/include/linux/pkt_cls.h
+++ b/include/linux/pkt_cls.h
@@ -1,6 +1,7 @@
1#ifndef __LINUX_PKT_CLS_H 1#ifndef __LINUX_PKT_CLS_H
2#define __LINUX_PKT_CLS_H 2#define __LINUX_PKT_CLS_H
3 3
4#include <linux/types.h>
4#include <linux/pkt_sched.h> 5#include <linux/pkt_sched.h>
5 6
6/* I think i could have done better macros ; for now this is stolen from 7/* I think i could have done better macros ; for now this is stolen from
diff --git a/include/linux/pkt_sched.h b/include/linux/pkt_sched.h
index e3f133adba78..b2648e8e4987 100644
--- a/include/linux/pkt_sched.h
+++ b/include/linux/pkt_sched.h
@@ -1,6 +1,8 @@
1#ifndef __LINUX_PKT_SCHED_H 1#ifndef __LINUX_PKT_SCHED_H
2#define __LINUX_PKT_SCHED_H 2#define __LINUX_PKT_SCHED_H
3 3
4#include <linux/types.h>
5
4/* Logical priority bands not depending on specific packet scheduler. 6/* Logical priority bands not depending on specific packet scheduler.
5 Every scheduler will map them to real traffic classes, if it has 7 Every scheduler will map them to real traffic classes, if it has
6 no more precise mechanism to classify packets. 8 no more precise mechanism to classify packets.
diff --git a/include/linux/ppp_defs.h b/include/linux/ppp_defs.h
index 6e8adc77522c..1c866bda2018 100644
--- a/include/linux/ppp_defs.h
+++ b/include/linux/ppp_defs.h
@@ -25,6 +25,8 @@
25 * OR MODIFICATIONS. 25 * OR MODIFICATIONS.
26 */ 26 */
27 27
28#include <linux/types.h>
29
28/* 30/*
29 * ==FILEVERSION 20000114== 31 * ==FILEVERSION 20000114==
30 * 32 *
diff --git a/include/linux/quotaops.h b/include/linux/quotaops.h
index 21b781a3350f..0b35b3a1be05 100644
--- a/include/linux/quotaops.h
+++ b/include/linux/quotaops.h
@@ -24,10 +24,8 @@ void sync_dquots(struct super_block *sb, int type);
24 24
25int dquot_initialize(struct inode *inode, int type); 25int dquot_initialize(struct inode *inode, int type);
26int dquot_drop(struct inode *inode); 26int dquot_drop(struct inode *inode);
27int dquot_drop_locked(struct inode *inode);
28struct dquot *dqget(struct super_block *sb, unsigned int id, int type); 27struct dquot *dqget(struct super_block *sb, unsigned int id, int type);
29void dqput(struct dquot *dquot); 28void dqput(struct dquot *dquot);
30int dquot_is_cached(struct super_block *sb, unsigned int id, int type);
31int dquot_scan_active(struct super_block *sb, 29int dquot_scan_active(struct super_block *sb,
32 int (*fn)(struct dquot *dquot, unsigned long priv), 30 int (*fn)(struct dquot *dquot, unsigned long priv),
33 unsigned long priv); 31 unsigned long priv);
diff --git a/include/linux/raid/md_p.h b/include/linux/raid/md_p.h
index 9491026afe66..6ba830fa8538 100644
--- a/include/linux/raid/md_p.h
+++ b/include/linux/raid/md_p.h
@@ -15,6 +15,8 @@
15#ifndef _MD_P_H 15#ifndef _MD_P_H
16#define _MD_P_H 16#define _MD_P_H
17 17
18#include <linux/types.h>
19
18/* 20/*
19 * RAID superblock. 21 * RAID superblock.
20 * 22 *
diff --git a/include/linux/random.h b/include/linux/random.h
index 407ea3646f8f..25d02fe5c9b5 100644
--- a/include/linux/random.h
+++ b/include/linux/random.h
@@ -7,6 +7,7 @@
7#ifndef _LINUX_RANDOM_H 7#ifndef _LINUX_RANDOM_H
8#define _LINUX_RANDOM_H 8#define _LINUX_RANDOM_H
9 9
10#include <linux/types.h>
10#include <linux/ioctl.h> 11#include <linux/ioctl.h>
11#include <linux/irqnr.h> 12#include <linux/irqnr.h>
12 13
diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h
index e88f7058b3a1..1e5f6730ff31 100644
--- a/include/linux/rtnetlink.h
+++ b/include/linux/rtnetlink.h
@@ -1,6 +1,7 @@
1#ifndef __LINUX_RTNETLINK_H 1#ifndef __LINUX_RTNETLINK_H
2#define __LINUX_RTNETLINK_H 2#define __LINUX_RTNETLINK_H
3 3
4#include <linux/types.h>
4#include <linux/netlink.h> 5#include <linux/netlink.h>
5#include <linux/if_link.h> 6#include <linux/if_link.h>
6#include <linux/if_addr.h> 7#include <linux/if_addr.h>
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 33085b88f87b..f3c23cf11abc 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -295,6 +295,9 @@ extern void sched_show_task(struct task_struct *p);
295extern void softlockup_tick(void); 295extern void softlockup_tick(void);
296extern void touch_softlockup_watchdog(void); 296extern void touch_softlockup_watchdog(void);
297extern void touch_all_softlockup_watchdogs(void); 297extern void touch_all_softlockup_watchdogs(void);
298extern int proc_dosoftlockup_thresh(struct ctl_table *table, int write,
299 struct file *filp, void __user *buffer,
300 size_t *lenp, loff_t *ppos);
298extern unsigned int softlockup_panic; 301extern unsigned int softlockup_panic;
299extern unsigned long sysctl_hung_task_check_count; 302extern unsigned long sysctl_hung_task_check_count;
300extern unsigned long sysctl_hung_task_timeout_secs; 303extern unsigned long sysctl_hung_task_timeout_secs;
@@ -452,6 +455,7 @@ struct task_cputime {
452 cputime_t utime; 455 cputime_t utime;
453 cputime_t stime; 456 cputime_t stime;
454 unsigned long long sum_exec_runtime; 457 unsigned long long sum_exec_runtime;
458 spinlock_t lock;
455}; 459};
456/* Alternate field names when used to cache expirations. */ 460/* Alternate field names when used to cache expirations. */
457#define prof_exp stime 461#define prof_exp stime
@@ -467,7 +471,7 @@ struct task_cputime {
467 * used for thread group CPU clock calculations. 471 * used for thread group CPU clock calculations.
468 */ 472 */
469struct thread_group_cputime { 473struct thread_group_cputime {
470 struct task_cputime *totals; 474 struct task_cputime totals;
471}; 475};
472 476
473/* 477/*
@@ -628,7 +632,6 @@ struct user_struct {
628 atomic_t inotify_devs; /* How many inotify devs does this user have opened? */ 632 atomic_t inotify_devs; /* How many inotify devs does this user have opened? */
629#endif 633#endif
630#ifdef CONFIG_EPOLL 634#ifdef CONFIG_EPOLL
631 atomic_t epoll_devs; /* The number of epoll descriptors currently open */
632 atomic_t epoll_watches; /* The number of file descriptors currently watched */ 635 atomic_t epoll_watches; /* The number of file descriptors currently watched */
633#endif 636#endif
634#ifdef CONFIG_POSIX_MQUEUE 637#ifdef CONFIG_POSIX_MQUEUE
@@ -2182,24 +2185,30 @@ static inline int spin_needbreak(spinlock_t *lock)
2182 * Thread group CPU time accounting. 2185 * Thread group CPU time accounting.
2183 */ 2186 */
2184 2187
2185extern int thread_group_cputime_alloc(struct task_struct *); 2188static inline
2186extern void thread_group_cputime(struct task_struct *, struct task_cputime *); 2189void thread_group_cputime(struct task_struct *tsk, struct task_cputime *times)
2187
2188static inline void thread_group_cputime_init(struct signal_struct *sig)
2189{ 2190{
2190 sig->cputime.totals = NULL; 2191 struct task_cputime *totals = &tsk->signal->cputime.totals;
2192 unsigned long flags;
2193
2194 spin_lock_irqsave(&totals->lock, flags);
2195 *times = *totals;
2196 spin_unlock_irqrestore(&totals->lock, flags);
2191} 2197}
2192 2198
2193static inline int thread_group_cputime_clone_thread(struct task_struct *curr) 2199static inline void thread_group_cputime_init(struct signal_struct *sig)
2194{ 2200{
2195 if (curr->signal->cputime.totals) 2201 sig->cputime.totals = (struct task_cputime){
2196 return 0; 2202 .utime = cputime_zero,
2197 return thread_group_cputime_alloc(curr); 2203 .stime = cputime_zero,
2204 .sum_exec_runtime = 0,
2205 };
2206
2207 spin_lock_init(&sig->cputime.totals.lock);
2198} 2208}
2199 2209
2200static inline void thread_group_cputime_free(struct signal_struct *sig) 2210static inline void thread_group_cputime_free(struct signal_struct *sig)
2201{ 2211{
2202 free_percpu(sig->cputime.totals);
2203} 2212}
2204 2213
2205/* 2214/*
diff --git a/include/linux/signalfd.h b/include/linux/signalfd.h
index bef0c46d4713..b363b916c909 100644
--- a/include/linux/signalfd.h
+++ b/include/linux/signalfd.h
@@ -8,6 +8,7 @@
8#ifndef _LINUX_SIGNALFD_H 8#ifndef _LINUX_SIGNALFD_H
9#define _LINUX_SIGNALFD_H 9#define _LINUX_SIGNALFD_H
10 10
11#include <linux/types.h>
11/* For O_CLOEXEC and O_NONBLOCK */ 12/* For O_CLOEXEC and O_NONBLOCK */
12#include <linux/fcntl.h> 13#include <linux/fcntl.h>
13 14
diff --git a/include/linux/slab_def.h b/include/linux/slab_def.h
index 455f9affea9a..f4523651fa42 100644
--- a/include/linux/slab_def.h
+++ b/include/linux/slab_def.h
@@ -62,10 +62,7 @@ static __always_inline void *kmalloc(size_t size, gfp_t flags)
62 i++; 62 i++;
63#include <linux/kmalloc_sizes.h> 63#include <linux/kmalloc_sizes.h>
64#undef CACHE 64#undef CACHE
65 { 65 return NULL;
66 extern void __you_cannot_kmalloc_that_much(void);
67 __you_cannot_kmalloc_that_much();
68 }
69found: 66found:
70#ifdef CONFIG_ZONE_DMA 67#ifdef CONFIG_ZONE_DMA
71 if (flags & GFP_DMA) 68 if (flags & GFP_DMA)
@@ -120,10 +117,7 @@ static __always_inline void *kmalloc_node(size_t size, gfp_t flags, int node)
120 i++; 117 i++;
121#include <linux/kmalloc_sizes.h> 118#include <linux/kmalloc_sizes.h>
122#undef CACHE 119#undef CACHE
123 { 120 return NULL;
124 extern void __you_cannot_kmalloc_that_much(void);
125 __you_cannot_kmalloc_that_much();
126 }
127found: 121found:
128#ifdef CONFIG_ZONE_DMA 122#ifdef CONFIG_ZONE_DMA
129 if (flags & GFP_DMA) 123 if (flags & GFP_DMA)
diff --git a/include/linux/sound.h b/include/linux/sound.h
index 9e2a94feed6b..44dcf0570432 100644
--- a/include/linux/sound.h
+++ b/include/linux/sound.h
@@ -25,6 +25,7 @@
25#define SND_DEV_AMIDI 13 /* Like /dev/midi (obsolete) */ 25#define SND_DEV_AMIDI 13 /* Like /dev/midi (obsolete) */
26#define SND_DEV_ADMMIDI 14 /* Like /dev/dmmidi (onsolete) */ 26#define SND_DEV_ADMMIDI 14 /* Like /dev/dmmidi (onsolete) */
27 27
28#ifdef __KERNEL__
28/* 29/*
29 * Sound core interface functions 30 * Sound core interface functions
30 */ 31 */
@@ -40,3 +41,4 @@ extern void unregister_sound_special(int unit);
40extern void unregister_sound_mixer(int unit); 41extern void unregister_sound_mixer(int unit);
41extern void unregister_sound_midi(int unit); 42extern void unregister_sound_midi(int unit);
42extern void unregister_sound_dsp(int unit); 43extern void unregister_sound_dsp(int unit);
44#endif /* __KERNEL__ */
diff --git a/include/linux/spi/spidev.h b/include/linux/spi/spidev.h
index c93ef9d42a01..95251ccd5a07 100644
--- a/include/linux/spi/spidev.h
+++ b/include/linux/spi/spidev.h
@@ -22,6 +22,7 @@
22#ifndef SPIDEV_H 22#ifndef SPIDEV_H
23#define SPIDEV_H 23#define SPIDEV_H
24 24
25#include <linux/types.h>
25 26
26/* User space versions of kernel symbols for SPI clocking modes, 27/* User space versions of kernel symbols for SPI clocking modes,
27 * matching <linux/spi/spi.h> 28 * matching <linux/spi/spi.h>
diff --git a/include/linux/suspend.h b/include/linux/suspend.h
index 2b409c44db83..c7d9bb1832ba 100644
--- a/include/linux/suspend.h
+++ b/include/linux/suspend.h
@@ -237,6 +237,7 @@ extern int hibernate_nvs_alloc(void);
237extern void hibernate_nvs_free(void); 237extern void hibernate_nvs_free(void);
238extern void hibernate_nvs_save(void); 238extern void hibernate_nvs_save(void);
239extern void hibernate_nvs_restore(void); 239extern void hibernate_nvs_restore(void);
240extern bool system_entering_hibernation(void);
240#else /* CONFIG_HIBERNATION */ 241#else /* CONFIG_HIBERNATION */
241static inline int swsusp_page_is_forbidden(struct page *p) { return 0; } 242static inline int swsusp_page_is_forbidden(struct page *p) { return 0; }
242static inline void swsusp_set_page_free(struct page *p) {} 243static inline void swsusp_set_page_free(struct page *p) {}
@@ -252,6 +253,7 @@ static inline int hibernate_nvs_alloc(void) { return 0; }
252static inline void hibernate_nvs_free(void) {} 253static inline void hibernate_nvs_free(void) {}
253static inline void hibernate_nvs_save(void) {} 254static inline void hibernate_nvs_save(void) {}
254static inline void hibernate_nvs_restore(void) {} 255static inline void hibernate_nvs_restore(void) {}
256static inline bool system_entering_hibernation(void) { return false; }
255#endif /* CONFIG_HIBERNATION */ 257#endif /* CONFIG_HIBERNATION */
256 258
257#ifdef CONFIG_PM_SLEEP 259#ifdef CONFIG_PM_SLEEP
diff --git a/include/linux/synclink.h b/include/linux/synclink.h
index c844a229acc9..99b8bdb17b2b 100644
--- a/include/linux/synclink.h
+++ b/include/linux/synclink.h
@@ -13,6 +13,8 @@
13#define _SYNCLINK_H_ 13#define _SYNCLINK_H_
14#define SYNCLINK_H_VERSION 3.6 14#define SYNCLINK_H_VERSION 3.6
15 15
16#include <linux/types.h>
17
16#define BIT0 0x0001 18#define BIT0 0x0001
17#define BIT1 0x0002 19#define BIT1 0x0002
18#define BIT2 0x0004 20#define BIT2 0x0004
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
index 16875f89e6a7..0eda02ff2414 100644
--- a/include/linux/syscalls.h
+++ b/include/linux/syscalls.h
@@ -108,9 +108,14 @@ struct old_linux_dirent;
108 asm ("\t.globl " #alias "\n\t.set " #alias ", " #name "\n" \ 108 asm ("\t.globl " #alias "\n\t.set " #alias ", " #name "\n" \
109 "\t.globl ." #alias "\n\t.set ." #alias ", ." #name) 109 "\t.globl ." #alias "\n\t.set ." #alias ", ." #name)
110#else 110#else
111#ifdef CONFIG_ALPHA
112#define SYSCALL_ALIAS(alias, name) \
113 asm ( #alias " = " #name "\n\t.globl " #alias)
114#else
111#define SYSCALL_ALIAS(alias, name) \ 115#define SYSCALL_ALIAS(alias, name) \
112 asm ("\t.globl " #alias "\n\t.set " #alias ", " #name) 116 asm ("\t.globl " #alias "\n\t.set " #alias ", " #name)
113#endif 117#endif
118#endif
114 119
115#ifdef CONFIG_HAVE_SYSCALL_WRAPPERS 120#ifdef CONFIG_HAVE_SYSCALL_WRAPPERS
116 121
diff --git a/include/linux/taskstats.h b/include/linux/taskstats.h
index 18269e956a71..341dddb55090 100644
--- a/include/linux/taskstats.h
+++ b/include/linux/taskstats.h
@@ -16,6 +16,8 @@
16#ifndef _LINUX_TASKSTATS_H 16#ifndef _LINUX_TASKSTATS_H
17#define _LINUX_TASKSTATS_H 17#define _LINUX_TASKSTATS_H
18 18
19#include <linux/types.h>
20
19/* Format for per-task data returned to userland when 21/* Format for per-task data returned to userland when
20 * - a task exits 22 * - a task exits
21 * - listener requests stats for a task 23 * - listener requests stats for a task
diff --git a/include/linux/tc_act/tc_gact.h b/include/linux/tc_act/tc_gact.h
index 23a03eb630db..e895c0a39629 100644
--- a/include/linux/tc_act/tc_gact.h
+++ b/include/linux/tc_act/tc_gact.h
@@ -1,6 +1,7 @@
1#ifndef __LINUX_TC_GACT_H 1#ifndef __LINUX_TC_GACT_H
2#define __LINUX_TC_GACT_H 2#define __LINUX_TC_GACT_H
3 3
4#include <linux/types.h>
4#include <linux/pkt_cls.h> 5#include <linux/pkt_cls.h>
5 6
6#define TCA_ACT_GACT 5 7#define TCA_ACT_GACT 5
diff --git a/include/linux/tc_act/tc_mirred.h b/include/linux/tc_act/tc_mirred.h
index 71d63409d568..0a99ab60d610 100644
--- a/include/linux/tc_act/tc_mirred.h
+++ b/include/linux/tc_act/tc_mirred.h
@@ -1,6 +1,7 @@
1#ifndef __LINUX_TC_MIR_H 1#ifndef __LINUX_TC_MIR_H
2#define __LINUX_TC_MIR_H 2#define __LINUX_TC_MIR_H
3 3
4#include <linux/types.h>
4#include <linux/pkt_cls.h> 5#include <linux/pkt_cls.h>
5 6
6#define TCA_ACT_MIRRED 8 7#define TCA_ACT_MIRRED 8
diff --git a/include/linux/tc_act/tc_pedit.h b/include/linux/tc_act/tc_pedit.h
index 83e56e32e8e0..54ce9064115a 100644
--- a/include/linux/tc_act/tc_pedit.h
+++ b/include/linux/tc_act/tc_pedit.h
@@ -1,6 +1,7 @@
1#ifndef __LINUX_TC_PED_H 1#ifndef __LINUX_TC_PED_H
2#define __LINUX_TC_PED_H 2#define __LINUX_TC_PED_H
3 3
4#include <linux/types.h>
4#include <linux/pkt_cls.h> 5#include <linux/pkt_cls.h>
5 6
6#define TCA_ACT_PEDIT 7 7#define TCA_ACT_PEDIT 7
diff --git a/include/linux/tc_ematch/tc_em_cmp.h b/include/linux/tc_ematch/tc_em_cmp.h
index c7f4d43618fd..38e7f7b25ec2 100644
--- a/include/linux/tc_ematch/tc_em_cmp.h
+++ b/include/linux/tc_ematch/tc_em_cmp.h
@@ -1,6 +1,7 @@
1#ifndef __LINUX_TC_EM_CMP_H 1#ifndef __LINUX_TC_EM_CMP_H
2#define __LINUX_TC_EM_CMP_H 2#define __LINUX_TC_EM_CMP_H
3 3
4#include <linux/types.h>
4#include <linux/pkt_cls.h> 5#include <linux/pkt_cls.h>
5 6
6struct tcf_em_cmp 7struct tcf_em_cmp
diff --git a/include/linux/tc_ematch/tc_em_meta.h b/include/linux/tc_ematch/tc_em_meta.h
index c50d2ba5caf0..dcfb733fa1f6 100644
--- a/include/linux/tc_ematch/tc_em_meta.h
+++ b/include/linux/tc_ematch/tc_em_meta.h
@@ -1,6 +1,7 @@
1#ifndef __LINUX_TC_EM_META_H 1#ifndef __LINUX_TC_EM_META_H
2#define __LINUX_TC_EM_META_H 2#define __LINUX_TC_EM_META_H
3 3
4#include <linux/types.h>
4#include <linux/pkt_cls.h> 5#include <linux/pkt_cls.h>
5 6
6enum 7enum
diff --git a/include/linux/tc_ematch/tc_em_nbyte.h b/include/linux/tc_ematch/tc_em_nbyte.h
index f19d1f58ec9d..9ed8c2e58488 100644
--- a/include/linux/tc_ematch/tc_em_nbyte.h
+++ b/include/linux/tc_ematch/tc_em_nbyte.h
@@ -1,6 +1,7 @@
1#ifndef __LINUX_TC_EM_NBYTE_H 1#ifndef __LINUX_TC_EM_NBYTE_H
2#define __LINUX_TC_EM_NBYTE_H 2#define __LINUX_TC_EM_NBYTE_H
3 3
4#include <linux/types.h>
4#include <linux/pkt_cls.h> 5#include <linux/pkt_cls.h>
5 6
6struct tcf_em_nbyte 7struct tcf_em_nbyte
diff --git a/include/linux/tc_ematch/tc_em_text.h b/include/linux/tc_ematch/tc_em_text.h
index 7cd43e99c7f5..d12a73a225fc 100644
--- a/include/linux/tc_ematch/tc_em_text.h
+++ b/include/linux/tc_ematch/tc_em_text.h
@@ -1,6 +1,7 @@
1#ifndef __LINUX_TC_EM_TEXT_H 1#ifndef __LINUX_TC_EM_TEXT_H
2#define __LINUX_TC_EM_TEXT_H 2#define __LINUX_TC_EM_TEXT_H
3 3
4#include <linux/types.h>
4#include <linux/pkt_cls.h> 5#include <linux/pkt_cls.h>
5 6
6#define TC_EM_TEXT_ALGOSIZ 16 7#define TC_EM_TEXT_ALGOSIZ 16
diff --git a/include/linux/usb.h b/include/linux/usb.h
index 85ee9be9361e..88079fd60235 100644
--- a/include/linux/usb.h
+++ b/include/linux/usb.h
@@ -418,6 +418,8 @@ struct usb_tt;
418 * @autosuspend_disabled: autosuspend disabled by the user 418 * @autosuspend_disabled: autosuspend disabled by the user
419 * @autoresume_disabled: autoresume disabled by the user 419 * @autoresume_disabled: autoresume disabled by the user
420 * @skip_sys_resume: skip the next system resume 420 * @skip_sys_resume: skip the next system resume
421 * @wusb_dev: if this is a Wireless USB device, link to the WUSB
422 * specific data for the device.
421 * 423 *
422 * Notes: 424 * Notes:
423 * Usbcore drivers should not set usbdev->state directly. Instead use 425 * Usbcore drivers should not set usbdev->state directly. Instead use
diff --git a/include/linux/usb/cdc.h b/include/linux/usb/cdc.h
index 18a729343ffa..3c86ed25a04c 100644
--- a/include/linux/usb/cdc.h
+++ b/include/linux/usb/cdc.h
@@ -9,6 +9,8 @@
9#ifndef __LINUX_USB_CDC_H 9#ifndef __LINUX_USB_CDC_H
10#define __LINUX_USB_CDC_H 10#define __LINUX_USB_CDC_H
11 11
12#include <linux/types.h>
13
12#define USB_CDC_SUBCLASS_ACM 0x02 14#define USB_CDC_SUBCLASS_ACM 0x02
13#define USB_CDC_SUBCLASS_ETHERNET 0x06 15#define USB_CDC_SUBCLASS_ETHERNET 0x06
14#define USB_CDC_SUBCLASS_WHCM 0x08 16#define USB_CDC_SUBCLASS_WHCM 0x08
diff --git a/include/linux/usb/gadgetfs.h b/include/linux/usb/gadgetfs.h
index ea45f265ec05..612102e4d75e 100644
--- a/include/linux/usb/gadgetfs.h
+++ b/include/linux/usb/gadgetfs.h
@@ -18,7 +18,7 @@
18#ifndef __LINUX_USB_GADGETFS_H 18#ifndef __LINUX_USB_GADGETFS_H
19#define __LINUX_USB_GADGETFS_H 19#define __LINUX_USB_GADGETFS_H
20 20
21#include <asm/types.h> 21#include <linux/types.h>
22#include <asm/ioctl.h> 22#include <asm/ioctl.h>
23 23
24#include <linux/usb/ch9.h> 24#include <linux/usb/ch9.h>
diff --git a/include/linux/usb/usbnet.h b/include/linux/usb/usbnet.h
index ba09fe88adda..7d3822243074 100644
--- a/include/linux/usb/usbnet.h
+++ b/include/linux/usb/usbnet.h
@@ -197,7 +197,9 @@ extern int usbnet_nway_reset(struct net_device *net);
197#define devdbg(usbnet, fmt, arg...) \ 197#define devdbg(usbnet, fmt, arg...) \
198 printk(KERN_DEBUG "%s: " fmt "\n" , (usbnet)->net->name , ## arg) 198 printk(KERN_DEBUG "%s: " fmt "\n" , (usbnet)->net->name , ## arg)
199#else 199#else
200#define devdbg(usbnet, fmt, arg...) do {} while(0) 200#define devdbg(usbnet, fmt, arg...) \
201 ({ if (0) printk(KERN_DEBUG "%s: " fmt "\n" , (usbnet)->net->name , \
202 ## arg); 0; })
201#endif 203#endif
202 204
203#define deverr(usbnet, fmt, arg...) \ 205#define deverr(usbnet, fmt, arg...) \
diff --git a/include/linux/video_decoder.h b/include/linux/video_decoder.h
index 121e26da2c18..e26c0c86a6ea 100644
--- a/include/linux/video_decoder.h
+++ b/include/linux/video_decoder.h
@@ -1,6 +1,8 @@
1#ifndef _LINUX_VIDEO_DECODER_H 1#ifndef _LINUX_VIDEO_DECODER_H
2#define _LINUX_VIDEO_DECODER_H 2#define _LINUX_VIDEO_DECODER_H
3 3
4#include <linux/types.h>
5
4#define HAVE_VIDEO_DECODER 1 6#define HAVE_VIDEO_DECODER 1
5 7
6struct video_decoder_capability { /* this name is too long */ 8struct video_decoder_capability { /* this name is too long */
diff --git a/include/linux/video_encoder.h b/include/linux/video_encoder.h
index 4b0e6907a7b4..b7b6423bbb8a 100644
--- a/include/linux/video_encoder.h
+++ b/include/linux/video_encoder.h
@@ -1,6 +1,8 @@
1#ifndef _LINUX_VIDEO_ENCODER_H 1#ifndef _LINUX_VIDEO_ENCODER_H
2#define _LINUX_VIDEO_ENCODER_H 2#define _LINUX_VIDEO_ENCODER_H
3 3
4#include <linux/types.h>
5
4struct video_encoder_capability { /* this name is too long */ 6struct video_encoder_capability { /* this name is too long */
5 __u32 flags; 7 __u32 flags;
6#define VIDEO_ENCODER_PAL 1 /* can encode PAL signal */ 8#define VIDEO_ENCODER_PAL 1 /* can encode PAL signal */
diff --git a/include/linux/videodev.h b/include/linux/videodev.h
index 15a653d41132..837f392fbe97 100644
--- a/include/linux/videodev.h
+++ b/include/linux/videodev.h
@@ -12,6 +12,7 @@
12#ifndef __LINUX_VIDEODEV_H 12#ifndef __LINUX_VIDEODEV_H
13#define __LINUX_VIDEODEV_H 13#define __LINUX_VIDEODEV_H
14 14
15#include <linux/types.h>
15#include <linux/ioctl.h> 16#include <linux/ioctl.h>
16#include <linux/videodev2.h> 17#include <linux/videodev2.h>
17 18
diff --git a/include/linux/virtio_blk.h b/include/linux/virtio_blk.h
index c1aef85243bf..94c56d29869d 100644
--- a/include/linux/virtio_blk.h
+++ b/include/linux/virtio_blk.h
@@ -2,6 +2,7 @@
2#define _LINUX_VIRTIO_BLK_H 2#define _LINUX_VIRTIO_BLK_H
3/* This header is BSD licensed so anyone can use the definitions to implement 3/* This header is BSD licensed so anyone can use the definitions to implement
4 * compatible drivers/servers. */ 4 * compatible drivers/servers. */
5#include <linux/types.h>
5#include <linux/virtio_config.h> 6#include <linux/virtio_config.h>
6 7
7/* The ID for virtio_block */ 8/* The ID for virtio_block */
diff --git a/include/linux/virtio_console.h b/include/linux/virtio_console.h
index 7615ffcdd555..dc161115ae35 100644
--- a/include/linux/virtio_console.h
+++ b/include/linux/virtio_console.h
@@ -1,5 +1,6 @@
1#ifndef _LINUX_VIRTIO_CONSOLE_H 1#ifndef _LINUX_VIRTIO_CONSOLE_H
2#define _LINUX_VIRTIO_CONSOLE_H 2#define _LINUX_VIRTIO_CONSOLE_H
3#include <linux/types.h>
3#include <linux/virtio_config.h> 4#include <linux/virtio_config.h>
4/* This header, excluding the #ifdef __KERNEL__ part, is BSD licensed so 5/* This header, excluding the #ifdef __KERNEL__ part, is BSD licensed so
5 * anyone can use the definitions to implement compatible drivers/servers. */ 6 * anyone can use the definitions to implement compatible drivers/servers. */
diff --git a/include/linux/virtio_net.h b/include/linux/virtio_net.h
index 5cdd0aa8bde9..3efa86c3ecb3 100644
--- a/include/linux/virtio_net.h
+++ b/include/linux/virtio_net.h
@@ -2,6 +2,7 @@
2#define _LINUX_VIRTIO_NET_H 2#define _LINUX_VIRTIO_NET_H
3/* This header is BSD licensed so anyone can use the definitions to implement 3/* This header is BSD licensed so anyone can use the definitions to implement
4 * compatible drivers/servers. */ 4 * compatible drivers/servers. */
5#include <linux/types.h>
5#include <linux/virtio_config.h> 6#include <linux/virtio_config.h>
6 7
7/* The ID for virtio_net */ 8/* The ID for virtio_net */
diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h
index b36291130f22..3cd51e579ab1 100644
--- a/include/linux/workqueue.h
+++ b/include/linux/workqueue.h
@@ -118,12 +118,24 @@ struct execute_work {
118 init_timer(&(_work)->timer); \ 118 init_timer(&(_work)->timer); \
119 } while (0) 119 } while (0)
120 120
121#define INIT_DELAYED_WORK_ON_STACK(_work, _func) \
122 do { \
123 INIT_WORK(&(_work)->work, (_func)); \
124 init_timer_on_stack(&(_work)->timer); \
125 } while (0)
126
121#define INIT_DELAYED_WORK_DEFERRABLE(_work, _func) \ 127#define INIT_DELAYED_WORK_DEFERRABLE(_work, _func) \
122 do { \ 128 do { \
123 INIT_WORK(&(_work)->work, (_func)); \ 129 INIT_WORK(&(_work)->work, (_func)); \
124 init_timer_deferrable(&(_work)->timer); \ 130 init_timer_deferrable(&(_work)->timer); \
125 } while (0) 131 } while (0)
126 132
133#define INIT_DELAYED_WORK_ON_STACK(_work, _func) \
134 do { \
135 INIT_WORK(&(_work)->work, (_func)); \
136 init_timer_on_stack(&(_work)->timer); \
137 } while (0)
138
127/** 139/**
128 * work_pending - Find out whether a work item is currently pending 140 * work_pending - Find out whether a work item is currently pending
129 * @work: The work item in question 141 * @work: The work item in question