aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorSteven Whitehouse <steve@men-an-tol.chygwyn.com>2006-02-23 04:49:43 -0500
committerSteven Whitehouse <swhiteho@redhat.com>2006-02-23 04:49:43 -0500
commitd35462b4bb847b68321c55e95c926aa485aecce2 (patch)
treeb08e18bf6e672633402871ee763102fdb5e63229 /include/linux
parent91ffd7db71e7451f89941a8f428b4daa2a7c1e38 (diff)
parent9e956c2dac9bec602ed1ba29181b45ba6d2b6448 (diff)
Merge branch 'master'
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/acpi.h5
-rw-r--r--include/linux/agpgart.h3
-rw-r--r--include/linux/bitops.h2
-rw-r--r--include/linux/blkdev.h6
-rw-r--r--include/linux/compat.h20
-rw-r--r--include/linux/configfs.h2
-rw-r--r--include/linux/cpufreq.h3
-rw-r--r--include/linux/cpumask.h3
-rw-r--r--include/linux/dcache.h3
-rw-r--r--include/linux/device-mapper.h2
-rw-r--r--include/linux/dvb/video.h2
-rw-r--r--include/linux/elevator.h1
-rw-r--r--include/linux/elfcore.h1
-rw-r--r--include/linux/fs.h8
-rw-r--r--include/linux/fuse.h16
-rw-r--r--include/linux/hrtimer.h6
-rw-r--r--include/linux/i2c.h3
-rw-r--r--include/linux/i2o.h6
-rw-r--r--include/linux/ide.h2
-rw-r--r--include/linux/io.h25
-rw-r--r--include/linux/ioc3.h2
-rw-r--r--include/linux/jbd.h13
-rw-r--r--include/linux/kbd_kern.h7
-rw-r--r--include/linux/kernel.h7
-rw-r--r--include/linux/kexec.h1
-rw-r--r--include/linux/kobject.h6
-rw-r--r--include/linux/ktime.h16
-rw-r--r--include/linux/libata.h16
-rw-r--r--include/linux/list.h14
-rw-r--r--include/linux/lockd/lockd.h8
-rw-r--r--include/linux/mm.h8
-rw-r--r--include/linux/mmc/mmc.h35
-rw-r--r--include/linux/mmc/protocol.h2
-rw-r--r--include/linux/mmzone.h13
-rw-r--r--include/linux/mtd/map.h1
-rw-r--r--include/linux/namespace.h1
-rw-r--r--include/linux/netfilter.h21
-rw-r--r--include/linux/netfilter/x_tables.h16
-rw-r--r--include/linux/netfilter_ipv4.h2
-rw-r--r--include/linux/netfilter_ipv4/ipt_connbytes.h4
-rw-r--r--include/linux/netfilter_ipv4/ipt_policy.h22
-rw-r--r--include/linux/netfilter_ipv6/ip6t_policy.h22
-rw-r--r--include/linux/netlink.h3
-rw-r--r--include/linux/nfs_fs.h2
-rw-r--r--include/linux/nodemask.h1
-rw-r--r--include/linux/parport.h6
-rw-r--r--include/linux/pci.h2
-rw-r--r--include/linux/pci_ids.h23
-rw-r--r--include/linux/pktcdvd.h8
-rw-r--r--include/linux/posix-timers.h1
-rw-r--r--include/linux/ptrace.h1
-rw-r--r--include/linux/quotaops.h1
-rw-r--r--include/linux/rcupdate.h5
-rw-r--r--include/linux/reboot.h3
-rw-r--r--include/linux/reiserfs_acl.h6
-rw-r--r--include/linux/reiserfs_fs.h16
-rw-r--r--include/linux/reiserfs_fs_sb.h1
-rw-r--r--include/linux/reiserfs_xattr.h2
-rw-r--r--include/linux/rmap.h5
-rw-r--r--include/linux/sched.h7
-rw-r--r--include/linux/security.h23
-rw-r--r--include/linux/serial_8250.h2
-rw-r--r--include/linux/serial_core.h72
-rw-r--r--include/linux/slab.h7
-rw-r--r--include/linux/smp.h1
-rw-r--r--include/linux/sunrpc/auth.h10
-rw-r--r--include/linux/suspend.h8
-rw-r--r--include/linux/swap.h11
-rw-r--r--include/linux/syscalls.h35
-rw-r--r--include/linux/sysctl.h4
-rw-r--r--include/linux/time.h27
-rw-r--r--include/linux/timex.h3
-rw-r--r--include/linux/tty.h4
-rw-r--r--include/linux/tty_flip.h9
-rw-r--r--include/linux/types.h2
-rw-r--r--include/linux/ufs_fs.h14
-rw-r--r--include/linux/ufs_fs_sb.h2
-rw-r--r--include/linux/usb_ch9.h6
-rw-r--r--include/linux/videodev2.h7
79 files changed, 491 insertions, 205 deletions
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 026c3c011dc0..d3bc25e6d27d 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -427,7 +427,8 @@ extern int acpi_mp_config;
427extern struct acpi_table_mcfg_config *pci_mmcfg_config; 427extern struct acpi_table_mcfg_config *pci_mmcfg_config;
428extern int pci_mmcfg_config_num; 428extern int pci_mmcfg_config_num;
429 429
430extern int sbf_port ; 430extern int sbf_port;
431extern unsigned long acpi_video_flags;
431 432
432#else /* !CONFIG_ACPI */ 433#else /* !CONFIG_ACPI */
433 434
@@ -435,7 +436,7 @@ extern int sbf_port ;
435 436
436#endif /* !CONFIG_ACPI */ 437#endif /* !CONFIG_ACPI */
437 438
438int acpi_register_gsi (u32 gsi, int edge_level, int active_high_low); 439int acpi_register_gsi (u32 gsi, int triggering, int polarity);
439int acpi_gsi_to_irq (u32 gsi, unsigned int *irq); 440int acpi_gsi_to_irq (u32 gsi, unsigned int *irq);
440 441
441/* 442/*
diff --git a/include/linux/agpgart.h b/include/linux/agpgart.h
index 17a17c55a17f..6d59c8efe3be 100644
--- a/include/linux/agpgart.h
+++ b/include/linux/agpgart.h
@@ -111,6 +111,7 @@ typedef struct _agp_unbind {
111} agp_unbind; 111} agp_unbind;
112 112
113#else /* __KERNEL__ */ 113#else /* __KERNEL__ */
114#include <linux/mutex.h>
114 115
115#define AGPGART_MINOR 175 116#define AGPGART_MINOR 175
116 117
@@ -201,7 +202,7 @@ struct agp_file_private {
201}; 202};
202 203
203struct agp_front_data { 204struct agp_front_data {
204 struct semaphore agp_mutex; 205 struct mutex agp_mutex;
205 struct agp_controller *current_controller; 206 struct agp_controller *current_controller;
206 struct agp_controller *controllers; 207 struct agp_controller *controllers;
207 struct agp_file_private *file_priv_list; 208 struct agp_file_private *file_priv_list;
diff --git a/include/linux/bitops.h b/include/linux/bitops.h
index 6a2a19f14bb2..208650b1ad3a 100644
--- a/include/linux/bitops.h
+++ b/include/linux/bitops.h
@@ -81,7 +81,7 @@ static inline int generic_fls64(__u64 x)
81{ 81{
82 __u32 h = x >> 32; 82 __u32 h = x >> 32;
83 if (h) 83 if (h)
84 return fls(x) + 32; 84 return fls(h) + 32;
85 return fls(x); 85 return fls(x);
86} 86}
87 87
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 02a585faa62c..860e7a485a5f 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -392,8 +392,8 @@ struct request_queue
392 unsigned int nr_congestion_off; 392 unsigned int nr_congestion_off;
393 unsigned int nr_batching; 393 unsigned int nr_batching;
394 394
395 unsigned short max_sectors; 395 unsigned int max_sectors;
396 unsigned short max_hw_sectors; 396 unsigned int max_hw_sectors;
397 unsigned short max_phys_segments; 397 unsigned short max_phys_segments;
398 unsigned short max_hw_segments; 398 unsigned short max_hw_segments;
399 unsigned short hardsect_size; 399 unsigned short hardsect_size;
@@ -697,7 +697,7 @@ extern request_queue_t *blk_init_queue(request_fn_proc *, spinlock_t *);
697extern void blk_cleanup_queue(request_queue_t *); 697extern void blk_cleanup_queue(request_queue_t *);
698extern void blk_queue_make_request(request_queue_t *, make_request_fn *); 698extern void blk_queue_make_request(request_queue_t *, make_request_fn *);
699extern void blk_queue_bounce_limit(request_queue_t *, u64); 699extern void blk_queue_bounce_limit(request_queue_t *, u64);
700extern void blk_queue_max_sectors(request_queue_t *, unsigned short); 700extern void blk_queue_max_sectors(request_queue_t *, unsigned int);
701extern void blk_queue_max_phys_segments(request_queue_t *, unsigned short); 701extern void blk_queue_max_phys_segments(request_queue_t *, unsigned short);
702extern void blk_queue_max_hw_segments(request_queue_t *, unsigned short); 702extern void blk_queue_max_hw_segments(request_queue_t *, unsigned short);
703extern void blk_queue_max_segment_size(request_queue_t *, unsigned int); 703extern void blk_queue_max_segment_size(request_queue_t *, unsigned int);
diff --git a/include/linux/compat.h b/include/linux/compat.h
index f9ca534787e2..c9ab2a26348c 100644
--- a/include/linux/compat.h
+++ b/include/linux/compat.h
@@ -161,5 +161,25 @@ int copy_siginfo_to_user32(struct compat_siginfo __user *to, siginfo_t *from);
161int get_compat_sigevent(struct sigevent *event, 161int get_compat_sigevent(struct sigevent *event,
162 const struct compat_sigevent __user *u_event); 162 const struct compat_sigevent __user *u_event);
163 163
164static inline int compat_timeval_compare(struct compat_timeval *lhs,
165 struct compat_timeval *rhs)
166{
167 if (lhs->tv_sec < rhs->tv_sec)
168 return -1;
169 if (lhs->tv_sec > rhs->tv_sec)
170 return 1;
171 return lhs->tv_usec - rhs->tv_usec;
172}
173
174static inline int compat_timespec_compare(struct compat_timespec *lhs,
175 struct compat_timespec *rhs)
176{
177 if (lhs->tv_sec < rhs->tv_sec)
178 return -1;
179 if (lhs->tv_sec > rhs->tv_sec)
180 return 1;
181 return lhs->tv_nsec - rhs->tv_nsec;
182}
183
164#endif /* CONFIG_COMPAT */ 184#endif /* CONFIG_COMPAT */
165#endif /* _LINUX_COMPAT_H */ 185#endif /* _LINUX_COMPAT_H */
diff --git a/include/linux/configfs.h b/include/linux/configfs.h
index acffb8c9073a..a7f015027535 100644
--- a/include/linux/configfs.h
+++ b/include/linux/configfs.h
@@ -126,7 +126,7 @@ extern struct config_item *config_group_find_obj(struct config_group *, const ch
126 126
127 127
128struct configfs_attribute { 128struct configfs_attribute {
129 char *ca_name; 129 const char *ca_name;
130 struct module *ca_owner; 130 struct module *ca_owner;
131 mode_t ca_mode; 131 mode_t ca_mode;
132}; 132};
diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h
index c31650df9241..17866d7e2b71 100644
--- a/include/linux/cpufreq.h
+++ b/include/linux/cpufreq.h
@@ -14,6 +14,7 @@
14#ifndef _LINUX_CPUFREQ_H 14#ifndef _LINUX_CPUFREQ_H
15#define _LINUX_CPUFREQ_H 15#define _LINUX_CPUFREQ_H
16 16
17#include <linux/mutex.h>
17#include <linux/config.h> 18#include <linux/config.h>
18#include <linux/notifier.h> 19#include <linux/notifier.h>
19#include <linux/threads.h> 20#include <linux/threads.h>
@@ -82,7 +83,7 @@ struct cpufreq_policy {
82 unsigned int policy; /* see above */ 83 unsigned int policy; /* see above */
83 struct cpufreq_governor *governor; /* see below */ 84 struct cpufreq_governor *governor; /* see below */
84 85
85 struct semaphore lock; /* CPU ->setpolicy or ->target may 86 struct mutex lock; /* CPU ->setpolicy or ->target may
86 only be called once a time */ 87 only be called once a time */
87 88
88 struct work_struct update; /* if update_policy() needs to be 89 struct work_struct update; /* if update_policy() needs to be
diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h
index 13e9f4a3ab26..60e56c6e03dd 100644
--- a/include/linux/cpumask.h
+++ b/include/linux/cpumask.h
@@ -84,7 +84,6 @@
84#include <linux/kernel.h> 84#include <linux/kernel.h>
85#include <linux/threads.h> 85#include <linux/threads.h>
86#include <linux/bitmap.h> 86#include <linux/bitmap.h>
87#include <asm/bug.h>
88 87
89typedef struct { DECLARE_BITMAP(bits, NR_CPUS); } cpumask_t; 88typedef struct { DECLARE_BITMAP(bits, NR_CPUS); } cpumask_t;
90extern cpumask_t _unused_cpumask_arg_; 89extern cpumask_t _unused_cpumask_arg_;
@@ -329,7 +328,7 @@ static inline void __cpus_remap(cpumask_t *dstp, const cpumask_t *srcp,
329 * bitmap of size NR_CPUS. 328 * bitmap of size NR_CPUS.
330 * 329 *
331 * #ifdef CONFIG_HOTPLUG_CPU 330 * #ifdef CONFIG_HOTPLUG_CPU
332 * cpu_possible_map - all NR_CPUS bits set 331 * cpu_possible_map - has bit 'cpu' set iff cpu is populatable
333 * cpu_present_map - has bit 'cpu' set iff cpu is populated 332 * cpu_present_map - has bit 'cpu' set iff cpu is populated
334 * cpu_online_map - has bit 'cpu' set iff cpu available to scheduler 333 * cpu_online_map - has bit 'cpu' set iff cpu available to scheduler
335 * #else 334 * #else
diff --git a/include/linux/dcache.h b/include/linux/dcache.h
index a3ed5e059d47..4361f3789975 100644
--- a/include/linux/dcache.h
+++ b/include/linux/dcache.h
@@ -8,7 +8,6 @@
8#include <linux/spinlock.h> 8#include <linux/spinlock.h>
9#include <linux/cache.h> 9#include <linux/cache.h>
10#include <linux/rcupdate.h> 10#include <linux/rcupdate.h>
11#include <asm/bug.h>
12 11
13struct nameidata; 12struct nameidata;
14struct vfsmount; 13struct vfsmount;
@@ -108,7 +107,9 @@ struct dentry {
108 struct dentry_operations *d_op; 107 struct dentry_operations *d_op;
109 struct super_block *d_sb; /* The root of the dentry tree */ 108 struct super_block *d_sb; /* The root of the dentry tree */
110 void *d_fsdata; /* fs-specific data */ 109 void *d_fsdata; /* fs-specific data */
110#ifdef CONFIG_PROFILING
111 struct dcookie_struct *d_cookie; /* cookie, if any */ 111 struct dcookie_struct *d_cookie; /* cookie, if any */
112#endif
112 int d_mounted; 113 int d_mounted;
113 unsigned char d_iname[DNAME_INLINE_LEN_MIN]; /* small names */ 114 unsigned char d_iname[DNAME_INLINE_LEN_MIN]; /* small names */
114}; 115};
diff --git a/include/linux/device-mapper.h b/include/linux/device-mapper.h
index 83c7d207b80e..51e0e95a421a 100644
--- a/include/linux/device-mapper.h
+++ b/include/linux/device-mapper.h
@@ -91,7 +91,7 @@ struct target_type {
91}; 91};
92 92
93struct io_restrictions { 93struct io_restrictions {
94 unsigned short max_sectors; 94 unsigned int max_sectors;
95 unsigned short max_phys_segments; 95 unsigned short max_phys_segments;
96 unsigned short max_hw_segments; 96 unsigned short max_hw_segments;
97 unsigned short hardsect_size; 97 unsigned short hardsect_size;
diff --git a/include/linux/dvb/video.h b/include/linux/dvb/video.h
index b1999bfeaa56..b81e58b2ebf8 100644
--- a/include/linux/dvb/video.h
+++ b/include/linux/dvb/video.h
@@ -135,7 +135,7 @@ typedef struct video_spu {
135 135
136typedef struct video_spu_palette { /* SPU Palette information */ 136typedef struct video_spu_palette { /* SPU Palette information */
137 int length; 137 int length;
138 uint8_t *palette; 138 uint8_t __user *palette;
139} video_spu_palette_t; 139} video_spu_palette_t;
140 140
141 141
diff --git a/include/linux/elevator.h b/include/linux/elevator.h
index 23fe746a1d51..18cf1f3e1184 100644
--- a/include/linux/elevator.h
+++ b/include/linux/elevator.h
@@ -82,6 +82,7 @@ struct elevator_queue
82extern void elv_dispatch_sort(request_queue_t *, struct request *); 82extern void elv_dispatch_sort(request_queue_t *, struct request *);
83extern void elv_add_request(request_queue_t *, struct request *, int, int); 83extern void elv_add_request(request_queue_t *, struct request *, int, int);
84extern void __elv_add_request(request_queue_t *, struct request *, int, int); 84extern void __elv_add_request(request_queue_t *, struct request *, int, int);
85extern void elv_insert(request_queue_t *, struct request *, int);
85extern int elv_merge(request_queue_t *, struct request **, struct bio *); 86extern int elv_merge(request_queue_t *, struct request **, struct bio *);
86extern void elv_merge_requests(request_queue_t *, struct request *, 87extern void elv_merge_requests(request_queue_t *, struct request *,
87 struct request *); 88 struct request *);
diff --git a/include/linux/elfcore.h b/include/linux/elfcore.h
index dbd7bb4a33b7..0cf0bea010fe 100644
--- a/include/linux/elfcore.h
+++ b/include/linux/elfcore.h
@@ -5,6 +5,7 @@
5#include <linux/signal.h> 5#include <linux/signal.h>
6#include <linux/time.h> 6#include <linux/time.h>
7#include <linux/user.h> 7#include <linux/user.h>
8#include <linux/ptrace.h>
8 9
9struct elf_siginfo 10struct elf_siginfo
10{ 11{
diff --git a/include/linux/fs.h b/include/linux/fs.h
index ec09d5ed9aab..56e01fb7ecda 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -363,6 +363,8 @@ struct address_space_operations {
363 loff_t offset, unsigned long nr_segs); 363 loff_t offset, unsigned long nr_segs);
364 struct page* (*get_xip_page)(struct address_space *, sector_t, 364 struct page* (*get_xip_page)(struct address_space *, sector_t,
365 int); 365 int);
366 /* migrate the contents of a page to the specified target */
367 int (*migratepage) (struct page *, struct page *);
366}; 368};
367 369
368struct backing_dev_info; 370struct backing_dev_info;
@@ -1722,6 +1724,12 @@ extern void simple_release_fs(struct vfsmount **mount, int *count);
1722 1724
1723extern ssize_t simple_read_from_buffer(void __user *, size_t, loff_t *, const void *, size_t); 1725extern ssize_t simple_read_from_buffer(void __user *, size_t, loff_t *, const void *, size_t);
1724 1726
1727#ifdef CONFIG_MIGRATION
1728extern int buffer_migrate_page(struct page *, struct page *);
1729#else
1730#define buffer_migrate_page NULL
1731#endif
1732
1725extern int inode_change_ok(struct inode *, struct iattr *); 1733extern int inode_change_ok(struct inode *, struct iattr *);
1726extern int __must_check inode_setattr(struct inode *, struct iattr *); 1734extern int __must_check inode_setattr(struct inode *, struct iattr *);
1727 1735
diff --git a/include/linux/fuse.h b/include/linux/fuse.h
index 528959c52f1b..5425b60021e3 100644
--- a/include/linux/fuse.h
+++ b/include/linux/fuse.h
@@ -14,7 +14,7 @@
14#define FUSE_KERNEL_VERSION 7 14#define FUSE_KERNEL_VERSION 7
15 15
16/** Minor version number of this interface */ 16/** Minor version number of this interface */
17#define FUSE_KERNEL_MINOR_VERSION 5 17#define FUSE_KERNEL_MINOR_VERSION 6
18 18
19/** The node ID of the root inode */ 19/** The node ID of the root inode */
20#define FUSE_ROOT_ID 1 20#define FUSE_ROOT_ID 1
@@ -58,6 +58,9 @@ struct fuse_kstatfs {
58 __u32 spare[6]; 58 __u32 spare[6];
59}; 59};
60 60
61/**
62 * Bitmasks for fuse_setattr_in.valid
63 */
61#define FATTR_MODE (1 << 0) 64#define FATTR_MODE (1 << 0)
62#define FATTR_UID (1 << 1) 65#define FATTR_UID (1 << 1)
63#define FATTR_GID (1 << 2) 66#define FATTR_GID (1 << 2)
@@ -75,6 +78,11 @@ struct fuse_kstatfs {
75#define FOPEN_DIRECT_IO (1 << 0) 78#define FOPEN_DIRECT_IO (1 << 0)
76#define FOPEN_KEEP_CACHE (1 << 1) 79#define FOPEN_KEEP_CACHE (1 << 1)
77 80
81/**
82 * INIT request/reply flags
83 */
84#define FUSE_ASYNC_READ (1 << 0)
85
78enum fuse_opcode { 86enum fuse_opcode {
79 FUSE_LOOKUP = 1, 87 FUSE_LOOKUP = 1,
80 FUSE_FORGET = 2, /* no reply */ 88 FUSE_FORGET = 2, /* no reply */
@@ -247,12 +255,16 @@ struct fuse_access_in {
247struct fuse_init_in { 255struct fuse_init_in {
248 __u32 major; 256 __u32 major;
249 __u32 minor; 257 __u32 minor;
258 __u32 max_readahead;
259 __u32 flags;
250}; 260};
251 261
252struct fuse_init_out { 262struct fuse_init_out {
253 __u32 major; 263 __u32 major;
254 __u32 minor; 264 __u32 minor;
255 __u32 unused[3]; 265 __u32 max_readahead;
266 __u32 flags;
267 __u32 unused;
256 __u32 max_write; 268 __u32 max_write;
257}; 269};
258 270
diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h
index 089bfb1fa01a..6361544bb6ae 100644
--- a/include/linux/hrtimer.h
+++ b/include/linux/hrtimer.h
@@ -40,6 +40,7 @@ enum hrtimer_restart {
40enum hrtimer_state { 40enum hrtimer_state {
41 HRTIMER_INACTIVE, /* Timer is inactive */ 41 HRTIMER_INACTIVE, /* Timer is inactive */
42 HRTIMER_EXPIRED, /* Timer is expired */ 42 HRTIMER_EXPIRED, /* Timer is expired */
43 HRTIMER_RUNNING, /* Timer is running the callback function */
43 HRTIMER_PENDING, /* Timer is pending */ 44 HRTIMER_PENDING, /* Timer is pending */
44}; 45};
45 46
@@ -100,9 +101,8 @@ struct hrtimer_base {
100/* Exported timer functions: */ 101/* Exported timer functions: */
101 102
102/* Initialize timers: */ 103/* Initialize timers: */
103extern void hrtimer_init(struct hrtimer *timer, const clockid_t which_clock); 104extern void hrtimer_init(struct hrtimer *timer, clockid_t which_clock,
104extern void hrtimer_rebase(struct hrtimer *timer, const clockid_t which_clock); 105 enum hrtimer_mode mode);
105
106 106
107/* Basic timer operations: */ 107/* Basic timer operations: */
108extern int hrtimer_start(struct hrtimer *timer, ktime_t tim, 108extern int hrtimer_start(struct hrtimer *timer, ktime_t tim,
diff --git a/include/linux/i2c.h b/include/linux/i2c.h
index 7863a59bd598..63f1d63cc1d8 100644
--- a/include/linux/i2c.h
+++ b/include/linux/i2c.h
@@ -100,6 +100,9 @@ extern s32 i2c_smbus_write_block_data(struct i2c_client * client,
100/* Returns the number of read bytes */ 100/* Returns the number of read bytes */
101extern s32 i2c_smbus_read_i2c_block_data(struct i2c_client * client, 101extern s32 i2c_smbus_read_i2c_block_data(struct i2c_client * client,
102 u8 command, u8 *values); 102 u8 command, u8 *values);
103extern s32 i2c_smbus_write_i2c_block_data(struct i2c_client * client,
104 u8 command, u8 length,
105 u8 *values);
103 106
104/* 107/*
105 * A driver is capable of handling one or more physical devices present on 108 * A driver is capable of handling one or more physical devices present on
diff --git a/include/linux/i2o.h b/include/linux/i2o.h
index 9ba806796667..5a9d8c599171 100644
--- a/include/linux/i2o.h
+++ b/include/linux/i2o.h
@@ -1115,9 +1115,11 @@ static inline struct i2o_message *i2o_msg_get(struct i2o_controller *c)
1115 return ERR_PTR(-ENOMEM); 1115 return ERR_PTR(-ENOMEM);
1116 1116
1117 mmsg->mfa = readl(c->in_port); 1117 mmsg->mfa = readl(c->in_port);
1118 if (mmsg->mfa == I2O_QUEUE_EMPTY) { 1118 if (unlikely(mmsg->mfa >= c->in_queue.len)) {
1119 mempool_free(mmsg, c->in_msg.mempool); 1119 mempool_free(mmsg, c->in_msg.mempool);
1120 return ERR_PTR(-EBUSY); 1120 if(mmsg->mfa == I2O_QUEUE_EMPTY)
1121 return ERR_PTR(-EBUSY);
1122 return ERR_PTR(-EFAULT);
1121 } 1123 }
1122 1124
1123 return &mmsg->msg; 1125 return &mmsg->msg;
diff --git a/include/linux/ide.h b/include/linux/ide.h
index 110b3cfac021..a7fc4cc79b23 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -582,7 +582,6 @@ typedef struct ide_drive_s {
582 unsigned noprobe : 1; /* from: hdx=noprobe */ 582 unsigned noprobe : 1; /* from: hdx=noprobe */
583 unsigned removable : 1; /* 1 if need to do check_media_change */ 583 unsigned removable : 1; /* 1 if need to do check_media_change */
584 unsigned attach : 1; /* needed for removable devices */ 584 unsigned attach : 1; /* needed for removable devices */
585 unsigned is_flash : 1; /* 1 if probed as flash */
586 unsigned forced_geom : 1; /* 1 if hdx=c,h,s was given at boot */ 585 unsigned forced_geom : 1; /* 1 if hdx=c,h,s was given at boot */
587 unsigned no_unmask : 1; /* disallow setting unmask bit */ 586 unsigned no_unmask : 1; /* disallow setting unmask bit */
588 unsigned no_io_32bit : 1; /* disallow enabling 32bit I/O */ 587 unsigned no_io_32bit : 1; /* disallow enabling 32bit I/O */
@@ -1006,7 +1005,6 @@ extern ide_hwif_t ide_hwifs[]; /* master data repository */
1006extern int noautodma; 1005extern int noautodma;
1007 1006
1008extern int ide_end_request (ide_drive_t *drive, int uptodate, int nrsecs); 1007extern int ide_end_request (ide_drive_t *drive, int uptodate, int nrsecs);
1009extern int __ide_end_request (ide_drive_t *drive, struct request *rq, int uptodate, int nrsecs);
1010 1008
1011/* 1009/*
1012 * This is used on exit from the driver to designate the next irq handler 1010 * This is used on exit from the driver to designate the next irq handler
diff --git a/include/linux/io.h b/include/linux/io.h
new file mode 100644
index 000000000000..85533ec5aaa1
--- /dev/null
+++ b/include/linux/io.h
@@ -0,0 +1,25 @@
1/*
2 * Copyright 2006 PathScale, Inc. All Rights Reserved.
3 *
4 * This file is free software; you can redistribute it and/or modify
5 * it under the terms of version 2 of the GNU General Public License
6 * as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software Foundation,
15 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
16 */
17
18#ifndef _LINUX_IO_H
19#define _LINUX_IO_H
20
21#include <asm/io.h>
22
23void __iowrite32_copy(void __iomem *to, const void *from, size_t count);
24
25#endif /* _LINUX_IO_H */
diff --git a/include/linux/ioc3.h b/include/linux/ioc3.h
index e7906a72a4f1..da7c09e4ede6 100644
--- a/include/linux/ioc3.h
+++ b/include/linux/ioc3.h
@@ -27,7 +27,7 @@ struct ioc3_driver_data {
27 int id; /* IOC3 sequence number */ 27 int id; /* IOC3 sequence number */
28 /* PCI mapping */ 28 /* PCI mapping */
29 unsigned long pma; /* physical address */ 29 unsigned long pma; /* physical address */
30 struct __iomem ioc3 *vma; /* pointer to registers */ 30 struct ioc3 __iomem *vma; /* pointer to registers */
31 struct pci_dev *pdev; /* PCI device */ 31 struct pci_dev *pdev; /* PCI device */
32 /* IRQ stuff */ 32 /* IRQ stuff */
33 int dual_irq; /* set if separate IRQs are used */ 33 int dual_irq; /* set if separate IRQs are used */
diff --git a/include/linux/jbd.h b/include/linux/jbd.h
index 558cb4c26ec9..41ee79962bb2 100644
--- a/include/linux/jbd.h
+++ b/include/linux/jbd.h
@@ -23,6 +23,7 @@
23#define jfs_debug jbd_debug 23#define jfs_debug jbd_debug
24#else 24#else
25 25
26#include <linux/types.h>
26#include <linux/buffer_head.h> 27#include <linux/buffer_head.h>
27#include <linux/journal-head.h> 28#include <linux/journal-head.h>
28#include <linux/stddef.h> 29#include <linux/stddef.h>
@@ -238,7 +239,6 @@ typedef struct journal_superblock_s
238 239
239#include <linux/fs.h> 240#include <linux/fs.h>
240#include <linux/sched.h> 241#include <linux/sched.h>
241#include <asm/bug.h>
242 242
243#define JBD_ASSERTIONS 243#define JBD_ASSERTIONS
244#ifdef JBD_ASSERTIONS 244#ifdef JBD_ASSERTIONS
@@ -498,12 +498,6 @@ struct transaction_s
498 struct journal_head *t_checkpoint_list; 498 struct journal_head *t_checkpoint_list;
499 499
500 /* 500 /*
501 * Doubly-linked circular list of all buffers submitted for IO while
502 * checkpointing. [j_list_lock]
503 */
504 struct journal_head *t_checkpoint_io_list;
505
506 /*
507 * Doubly-linked circular list of temporary buffers currently undergoing 501 * Doubly-linked circular list of temporary buffers currently undergoing
508 * IO in the log [j_list_lock] 502 * IO in the log [j_list_lock]
509 */ 503 */
@@ -618,6 +612,7 @@ struct transaction_s
618 * @j_wbuf: array of buffer_heads for journal_commit_transaction 612 * @j_wbuf: array of buffer_heads for journal_commit_transaction
619 * @j_wbufsize: maximum number of buffer_heads allowed in j_wbuf, the 613 * @j_wbufsize: maximum number of buffer_heads allowed in j_wbuf, the
620 * number that will fit in j_blocksize 614 * number that will fit in j_blocksize
615 * @j_last_sync_writer: most recent pid which did a synchronous write
621 * @j_private: An opaque pointer to fs-private information. 616 * @j_private: An opaque pointer to fs-private information.
622 */ 617 */
623 618
@@ -807,6 +802,8 @@ struct journal_s
807 struct buffer_head **j_wbuf; 802 struct buffer_head **j_wbuf;
808 int j_wbufsize; 803 int j_wbufsize;
809 804
805 pid_t j_last_sync_writer;
806
810 /* 807 /*
811 * An opaque pointer to fs-private information. ext3 puts its 808 * An opaque pointer to fs-private information. ext3 puts its
812 * superblock pointer here 809 * superblock pointer here
@@ -849,7 +846,7 @@ extern void journal_commit_transaction(journal_t *);
849 846
850/* Checkpoint list management */ 847/* Checkpoint list management */
851int __journal_clean_checkpoint_list(journal_t *journal); 848int __journal_clean_checkpoint_list(journal_t *journal);
852int __journal_remove_checkpoint(struct journal_head *); 849void __journal_remove_checkpoint(struct journal_head *);
853void __journal_insert_checkpoint(struct journal_head *, transaction_t *); 850void __journal_insert_checkpoint(struct journal_head *, transaction_t *);
854 851
855/* Buffer IO */ 852/* Buffer IO */
diff --git a/include/linux/kbd_kern.h b/include/linux/kbd_kern.h
index 45f625d7d0b2..e87c32a5c86a 100644
--- a/include/linux/kbd_kern.h
+++ b/include/linux/kbd_kern.h
@@ -151,6 +151,13 @@ extern unsigned int keymap_count;
151 151
152static inline void con_schedule_flip(struct tty_struct *t) 152static inline void con_schedule_flip(struct tty_struct *t)
153{ 153{
154 unsigned long flags;
155 spin_lock_irqsave(&t->buf.lock, flags);
156 if (t->buf.tail != NULL) {
157 t->buf.tail->active = 0;
158 t->buf.tail->commit = t->buf.tail->used;
159 }
160 spin_unlock_irqrestore(&t->buf.lock, flags);
154 schedule_work(&t->buf.work); 161 schedule_work(&t->buf.work);
155} 162}
156 163
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index a5363324cf95..3b507bf05d09 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -185,6 +185,7 @@ extern enum system_states {
185 SYSTEM_HALT, 185 SYSTEM_HALT,
186 SYSTEM_POWER_OFF, 186 SYSTEM_POWER_OFF,
187 SYSTEM_RESTART, 187 SYSTEM_RESTART,
188 SYSTEM_SUSPEND_DISK,
188} system_state; 189} system_state;
189 190
190#define TAINT_PROPRIETARY_MODULE (1<<0) 191#define TAINT_PROPRIETARY_MODULE (1<<0)
@@ -325,12 +326,6 @@ struct sysinfo {
325/* Force a compilation error if condition is true */ 326/* Force a compilation error if condition is true */
326#define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)])) 327#define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)]))
327 328
328#ifdef CONFIG_SYSCTL
329extern int randomize_va_space;
330#else
331#define randomize_va_space 1
332#endif
333
334/* Trap pasters of __FUNCTION__ at compile-time */ 329/* Trap pasters of __FUNCTION__ at compile-time */
335#define __FUNCTION__ (__func__) 330#define __FUNCTION__ (__func__)
336 331
diff --git a/include/linux/kexec.h b/include/linux/kexec.h
index a311f58c8a7c..cfb3410e32b1 100644
--- a/include/linux/kexec.h
+++ b/include/linux/kexec.h
@@ -6,6 +6,7 @@
6#include <linux/list.h> 6#include <linux/list.h>
7#include <linux/linkage.h> 7#include <linux/linkage.h>
8#include <linux/compat.h> 8#include <linux/compat.h>
9#include <linux/ioport.h>
9#include <asm/kexec.h> 10#include <asm/kexec.h>
10 11
11/* Verify architecture specific macros are defined */ 12/* Verify architecture specific macros are defined */
diff --git a/include/linux/kobject.h b/include/linux/kobject.h
index 2a8d8da70961..c374b5fa8d3b 100644
--- a/include/linux/kobject.h
+++ b/include/linux/kobject.h
@@ -41,8 +41,10 @@ enum kobject_action {
41 KOBJ_ADD = (__force kobject_action_t) 0x01, /* exclusive to core */ 41 KOBJ_ADD = (__force kobject_action_t) 0x01, /* exclusive to core */
42 KOBJ_REMOVE = (__force kobject_action_t) 0x02, /* exclusive to core */ 42 KOBJ_REMOVE = (__force kobject_action_t) 0x02, /* exclusive to core */
43 KOBJ_CHANGE = (__force kobject_action_t) 0x03, /* device state change */ 43 KOBJ_CHANGE = (__force kobject_action_t) 0x03, /* device state change */
44 KOBJ_OFFLINE = (__force kobject_action_t) 0x04, /* device offline */ 44 KOBJ_MOUNT = (__force kobject_action_t) 0x04, /* mount event for block devices (broken) */
45 KOBJ_ONLINE = (__force kobject_action_t) 0x05, /* device online */ 45 KOBJ_UMOUNT = (__force kobject_action_t) 0x05, /* umount event for block devices (broken) */
46 KOBJ_OFFLINE = (__force kobject_action_t) 0x06, /* device offline */
47 KOBJ_ONLINE = (__force kobject_action_t) 0x07, /* device online */
46}; 48};
47 49
48struct kobject { 50struct kobject {
diff --git a/include/linux/ktime.h b/include/linux/ktime.h
index 1bd6552cc341..f3dec45ef874 100644
--- a/include/linux/ktime.h
+++ b/include/linux/ktime.h
@@ -10,6 +10,12 @@
10 * 10 *
11 * Started by: Thomas Gleixner and Ingo Molnar 11 * Started by: Thomas Gleixner and Ingo Molnar
12 * 12 *
13 * Credits:
14 *
15 * Roman Zippel provided the ideas and primary code snippets of
16 * the ktime_t union and further simplifications of the original
17 * code.
18 *
13 * For licencing details see kernel-base/COPYING 19 * For licencing details see kernel-base/COPYING
14 */ 20 */
15#ifndef _LINUX_KTIME_H 21#ifndef _LINUX_KTIME_H
@@ -90,10 +96,16 @@ static inline ktime_t ktime_set(const long secs, const unsigned long nsecs)
90 ({ (ktime_t){ .tv64 = (kt).tv64 + (nsval) }; }) 96 ({ (ktime_t){ .tv64 = (kt).tv64 + (nsval) }; })
91 97
92/* convert a timespec to ktime_t format: */ 98/* convert a timespec to ktime_t format: */
93#define timespec_to_ktime(ts) ktime_set((ts).tv_sec, (ts).tv_nsec) 99static inline ktime_t timespec_to_ktime(struct timespec ts)
100{
101 return ktime_set(ts.tv_sec, ts.tv_nsec);
102}
94 103
95/* convert a timeval to ktime_t format: */ 104/* convert a timeval to ktime_t format: */
96#define timeval_to_ktime(tv) ktime_set((tv).tv_sec, (tv).tv_usec * 1000) 105static inline ktime_t timeval_to_ktime(struct timeval tv)
106{
107 return ktime_set(tv.tv_sec, tv.tv_usec * NSEC_PER_USEC);
108}
97 109
98/* Map the ktime_t to timespec conversion to ns_to_timespec function */ 110/* Map the ktime_t to timespec conversion to ns_to_timespec function */
99#define ktime_to_timespec(kt) ns_to_timespec((kt).tv64) 111#define ktime_to_timespec(kt) ns_to_timespec((kt).tv64)
diff --git a/include/linux/libata.h b/include/linux/libata.h
index 9e5db2949c58..c91be5e64ede 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -557,17 +557,29 @@ ata_sg_is_last(struct scatterlist *sg, struct ata_queued_cmd *qc)
557} 557}
558 558
559static inline struct scatterlist * 559static inline struct scatterlist *
560ata_qc_first_sg(struct ata_queued_cmd *qc)
561{
562 if (qc->n_elem)
563 return qc->__sg;
564 if (qc->pad_len)
565 return &qc->pad_sgent;
566 return NULL;
567}
568
569static inline struct scatterlist *
560ata_qc_next_sg(struct scatterlist *sg, struct ata_queued_cmd *qc) 570ata_qc_next_sg(struct scatterlist *sg, struct ata_queued_cmd *qc)
561{ 571{
562 if (sg == &qc->pad_sgent) 572 if (sg == &qc->pad_sgent)
563 return NULL; 573 return NULL;
564 if (++sg - qc->__sg < qc->n_elem) 574 if (++sg - qc->__sg < qc->n_elem)
565 return sg; 575 return sg;
566 return qc->pad_len ? &qc->pad_sgent : NULL; 576 if (qc->pad_len)
577 return &qc->pad_sgent;
578 return NULL;
567} 579}
568 580
569#define ata_for_each_sg(sg, qc) \ 581#define ata_for_each_sg(sg, qc) \
570 for (sg = qc->__sg; sg; sg = ata_qc_next_sg(sg, qc)) 582 for (sg = ata_qc_first_sg(qc); sg; sg = ata_qc_next_sg(sg, qc))
571 583
572static inline unsigned int ata_tag_valid(unsigned int tag) 584static inline unsigned int ata_tag_valid(unsigned int tag)
573{ 585{
diff --git a/include/linux/list.h b/include/linux/list.h
index 945daa1f13dd..47208bd99f9e 100644
--- a/include/linux/list.h
+++ b/include/linux/list.h
@@ -34,9 +34,11 @@ struct list_head {
34#define LIST_HEAD(name) \ 34#define LIST_HEAD(name) \
35 struct list_head name = LIST_HEAD_INIT(name) 35 struct list_head name = LIST_HEAD_INIT(name)
36 36
37#define INIT_LIST_HEAD(ptr) do { \ 37static inline void INIT_LIST_HEAD(struct list_head *list)
38 (ptr)->next = (ptr); (ptr)->prev = (ptr); \ 38{
39} while (0) 39 list->next = list;
40 list->prev = list;
41}
40 42
41/* 43/*
42 * Insert a new entry between two known consecutive entries. 44 * Insert a new entry between two known consecutive entries.
@@ -534,7 +536,11 @@ struct hlist_node {
534#define HLIST_HEAD_INIT { .first = NULL } 536#define HLIST_HEAD_INIT { .first = NULL }
535#define HLIST_HEAD(name) struct hlist_head name = { .first = NULL } 537#define HLIST_HEAD(name) struct hlist_head name = { .first = NULL }
536#define INIT_HLIST_HEAD(ptr) ((ptr)->first = NULL) 538#define INIT_HLIST_HEAD(ptr) ((ptr)->first = NULL)
537#define INIT_HLIST_NODE(ptr) ((ptr)->next = NULL, (ptr)->pprev = NULL) 539static inline void INIT_HLIST_NODE(struct hlist_node *h)
540{
541 h->next = NULL;
542 h->pprev = NULL;
543}
538 544
539static inline int hlist_unhashed(const struct hlist_node *h) 545static inline int hlist_unhashed(const struct hlist_node *h)
540{ 546{
diff --git a/include/linux/lockd/lockd.h b/include/linux/lockd/lockd.h
index 95c8fea293ba..ef21ed296039 100644
--- a/include/linux/lockd/lockd.h
+++ b/include/linux/lockd/lockd.h
@@ -84,6 +84,7 @@ struct nlm_rqst {
84 struct nlm_args a_args; /* arguments */ 84 struct nlm_args a_args; /* arguments */
85 struct nlm_res a_res; /* result */ 85 struct nlm_res a_res; /* result */
86 struct nlm_wait * a_block; 86 struct nlm_wait * a_block;
87 unsigned int a_retries; /* Retry count */
87 char a_owner[NLMCLNT_OHSIZE]; 88 char a_owner[NLMCLNT_OHSIZE];
88}; 89};
89 90
@@ -148,8 +149,7 @@ struct nlm_rqst * nlmclnt_alloc_call(void);
148int nlmclnt_prepare_block(struct nlm_rqst *req, struct nlm_host *host, struct file_lock *fl); 149int nlmclnt_prepare_block(struct nlm_rqst *req, struct nlm_host *host, struct file_lock *fl);
149void nlmclnt_finish_block(struct nlm_rqst *req); 150void nlmclnt_finish_block(struct nlm_rqst *req);
150long nlmclnt_block(struct nlm_rqst *req, long timeout); 151long nlmclnt_block(struct nlm_rqst *req, long timeout);
151int nlmclnt_cancel(struct nlm_host *, struct file_lock *); 152u32 nlmclnt_grant(const struct sockaddr_in *addr, const struct nlm_lock *);
152u32 nlmclnt_grant(struct nlm_lock *);
153void nlmclnt_recovery(struct nlm_host *, u32); 153void nlmclnt_recovery(struct nlm_host *, u32);
154int nlmclnt_reclaim(struct nlm_host *, struct file_lock *); 154int nlmclnt_reclaim(struct nlm_host *, struct file_lock *);
155int nlmclnt_setgrantargs(struct nlm_rqst *, struct nlm_lock *); 155int nlmclnt_setgrantargs(struct nlm_rqst *, struct nlm_lock *);
@@ -204,7 +204,7 @@ nlmsvc_file_inode(struct nlm_file *file)
204 * Compare two host addresses (needs modifying for ipv6) 204 * Compare two host addresses (needs modifying for ipv6)
205 */ 205 */
206static __inline__ int 206static __inline__ int
207nlm_cmp_addr(struct sockaddr_in *sin1, struct sockaddr_in *sin2) 207nlm_cmp_addr(const struct sockaddr_in *sin1, const struct sockaddr_in *sin2)
208{ 208{
209 return sin1->sin_addr.s_addr == sin2->sin_addr.s_addr; 209 return sin1->sin_addr.s_addr == sin2->sin_addr.s_addr;
210} 210}
@@ -214,7 +214,7 @@ nlm_cmp_addr(struct sockaddr_in *sin1, struct sockaddr_in *sin2)
214 * When the second lock is of type F_UNLCK, this acts like a wildcard. 214 * When the second lock is of type F_UNLCK, this acts like a wildcard.
215 */ 215 */
216static __inline__ int 216static __inline__ int
217nlm_compare_locks(struct file_lock *fl1, struct file_lock *fl2) 217nlm_compare_locks(const struct file_lock *fl1, const struct file_lock *fl2)
218{ 218{
219 return fl1->fl_pid == fl2->fl_pid 219 return fl1->fl_pid == fl2->fl_pid
220 && fl1->fl_start == fl2->fl_start 220 && fl1->fl_start == fl2->fl_start
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 85854b867463..498ff8778fb6 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -303,7 +303,7 @@ struct page {
303 */ 303 */
304#define put_page_testzero(p) \ 304#define put_page_testzero(p) \
305 ({ \ 305 ({ \
306 BUG_ON(page_count(p) == 0); \ 306 BUG_ON(atomic_read(&(p)->_count) == -1);\
307 atomic_add_negative(-1, &(p)->_count); \ 307 atomic_add_negative(-1, &(p)->_count); \
308 }) 308 })
309 309
@@ -1051,5 +1051,11 @@ int shrink_slab(unsigned long scanned, gfp_t gfp_mask,
1051void drop_pagecache(void); 1051void drop_pagecache(void);
1052void drop_slab(void); 1052void drop_slab(void);
1053 1053
1054#ifndef CONFIG_MMU
1055#define randomize_va_space 0
1056#else
1057extern int randomize_va_space;
1058#endif
1059
1054#endif /* __KERNEL__ */ 1060#endif /* __KERNEL__ */
1055#endif /* _LINUX_MM_H */ 1061#endif /* _LINUX_MM_H */
diff --git a/include/linux/mmc/mmc.h b/include/linux/mmc/mmc.h
index ccd3e13de1e8..bdc556d88498 100644
--- a/include/linux/mmc/mmc.h
+++ b/include/linux/mmc/mmc.h
@@ -21,24 +21,35 @@ struct mmc_command {
21 u32 arg; 21 u32 arg;
22 u32 resp[4]; 22 u32 resp[4];
23 unsigned int flags; /* expected response type */ 23 unsigned int flags; /* expected response type */
24#define MMC_RSP_NONE (0 << 0) 24#define MMC_RSP_PRESENT (1 << 0)
25#define MMC_RSP_SHORT (1 << 0) 25#define MMC_RSP_136 (1 << 1) /* 136 bit response */
26#define MMC_RSP_LONG (2 << 0) 26#define MMC_RSP_CRC (1 << 2) /* expect valid crc */
27#define MMC_RSP_MASK (3 << 0) 27#define MMC_RSP_BUSY (1 << 3) /* card may send busy */
28#define MMC_RSP_CRC (1 << 3) /* expect valid crc */ 28#define MMC_RSP_OPCODE (1 << 4) /* response contains opcode */
29#define MMC_RSP_BUSY (1 << 4) /* card may send busy */ 29#define MMC_CMD_MASK (3 << 5) /* command type */
30#define MMC_RSP_OPCODE (1 << 5) /* response contains opcode */ 30#define MMC_CMD_AC (0 << 5)
31#define MMC_CMD_ADTC (1 << 5)
32#define MMC_CMD_BC (2 << 5)
33#define MMC_CMD_BCR (3 << 5)
31 34
32/* 35/*
33 * These are the response types, and correspond to valid bit 36 * These are the response types, and correspond to valid bit
34 * patterns of the above flags. One additional valid pattern 37 * patterns of the above flags. One additional valid pattern
35 * is all zeros, which means we don't expect a response. 38 * is all zeros, which means we don't expect a response.
36 */ 39 */
37#define MMC_RSP_R1 (MMC_RSP_SHORT|MMC_RSP_CRC|MMC_RSP_OPCODE) 40#define MMC_RSP_NONE (0)
38#define MMC_RSP_R1B (MMC_RSP_SHORT|MMC_RSP_CRC|MMC_RSP_OPCODE|MMC_RSP_BUSY) 41#define MMC_RSP_R1 (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE)
39#define MMC_RSP_R2 (MMC_RSP_LONG|MMC_RSP_CRC) 42#define MMC_RSP_R1B (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE|MMC_RSP_BUSY)
40#define MMC_RSP_R3 (MMC_RSP_SHORT) 43#define MMC_RSP_R2 (MMC_RSP_PRESENT|MMC_RSP_136|MMC_RSP_CRC)
41#define MMC_RSP_R6 (MMC_RSP_SHORT|MMC_RSP_CRC) 44#define MMC_RSP_R3 (MMC_RSP_PRESENT)
45#define MMC_RSP_R6 (MMC_RSP_PRESENT|MMC_RSP_CRC)
46
47#define mmc_resp_type(cmd) ((cmd)->flags & (MMC_RSP_PRESENT|MMC_RSP_136|MMC_RSP_CRC|MMC_RSP_BUSY|MMC_RSP_OPCODE))
48
49/*
50 * These are the command types.
51 */
52#define mmc_cmd_type(cmd) ((cmd)->flags & MMC_CMD_MASK)
42 53
43 unsigned int retries; /* max number of retries */ 54 unsigned int retries; /* max number of retries */
44 unsigned int error; /* command error */ 55 unsigned int error; /* command error */
diff --git a/include/linux/mmc/protocol.h b/include/linux/mmc/protocol.h
index a14dc306545b..81c3f77f652c 100644
--- a/include/linux/mmc/protocol.h
+++ b/include/linux/mmc/protocol.h
@@ -79,7 +79,7 @@
79/* SD commands type argument response */ 79/* SD commands type argument response */
80 /* class 8 */ 80 /* class 8 */
81/* This is basically the same command as for MMC with some quirks. */ 81/* This is basically the same command as for MMC with some quirks. */
82#define SD_SEND_RELATIVE_ADDR 3 /* ac R6 */ 82#define SD_SEND_RELATIVE_ADDR 3 /* bcr R6 */
83 83
84 /* Application commands */ 84 /* Application commands */
85#define SD_APP_SET_BUS_WIDTH 6 /* ac [1:0] bus width R1 */ 85#define SD_APP_SET_BUS_WIDTH 6 /* ac [1:0] bus width R1 */
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index 93a849f742db..ebfc238cc243 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -91,10 +91,21 @@ struct per_cpu_pageset {
91 * be 8 (2 ** 3) zonelists. GFP_ZONETYPES defines the number of possible 91 * be 8 (2 ** 3) zonelists. GFP_ZONETYPES defines the number of possible
92 * combinations of zone modifiers in "zone modifier space". 92 * combinations of zone modifiers in "zone modifier space".
93 * 93 *
94 * As an optimisation any zone modifier bits which are only valid when
95 * no other zone modifier bits are set (loners) should be placed in
96 * the highest order bits of this field. This allows us to reduce the
97 * extent of the zonelists thus saving space. For example in the case
98 * of three zone modifier bits, we could require up to eight zonelists.
99 * If the left most zone modifier is a "loner" then the highest valid
100 * zonelist would be four allowing us to allocate only five zonelists.
101 * Use the first form for GFP_ZONETYPES when the left most bit is not
102 * a "loner", otherwise use the second.
103 *
94 * NOTE! Make sure this matches the zones in <linux/gfp.h> 104 * NOTE! Make sure this matches the zones in <linux/gfp.h>
95 */ 105 */
96#define GFP_ZONEMASK 0x07 106#define GFP_ZONEMASK 0x07
97#define GFP_ZONETYPES 5 107/* #define GFP_ZONETYPES (GFP_ZONEMASK + 1) */ /* Non-loner */
108#define GFP_ZONETYPES ((GFP_ZONEMASK + 1) / 2 + 1) /* Loner */
98 109
99/* 110/*
100 * On machines where it is needed (eg PCs) we divide physical memory 111 * On machines where it is needed (eg PCs) we divide physical memory
diff --git a/include/linux/mtd/map.h b/include/linux/mtd/map.h
index fedfbc8a287f..7dfd6e1fcde7 100644
--- a/include/linux/mtd/map.h
+++ b/include/linux/mtd/map.h
@@ -15,7 +15,6 @@
15#include <asm/unaligned.h> 15#include <asm/unaligned.h>
16#include <asm/system.h> 16#include <asm/system.h>
17#include <asm/io.h> 17#include <asm/io.h>
18#include <asm/bug.h>
19 18
20#ifdef CONFIG_MTD_MAP_BANK_WIDTH_1 19#ifdef CONFIG_MTD_MAP_BANK_WIDTH_1
21#define map_bankwidth(map) 1 20#define map_bankwidth(map) 1
diff --git a/include/linux/namespace.h b/include/linux/namespace.h
index 6731977c4c13..3abc8e3b4879 100644
--- a/include/linux/namespace.h
+++ b/include/linux/namespace.h
@@ -15,6 +15,7 @@ struct namespace {
15 15
16extern int copy_namespace(int, struct task_struct *); 16extern int copy_namespace(int, struct task_struct *);
17extern void __put_namespace(struct namespace *namespace); 17extern void __put_namespace(struct namespace *namespace);
18extern struct namespace *dup_namespace(struct task_struct *, struct fs_struct *);
18 19
19static inline void put_namespace(struct namespace *namespace) 20static inline void put_namespace(struct namespace *namespace)
20{ 21{
diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h
index 4cf6088625c1..468896939843 100644
--- a/include/linux/netfilter.h
+++ b/include/linux/netfilter.h
@@ -184,8 +184,11 @@ static inline int nf_hook_thresh(int pf, unsigned int hook,
184 struct sk_buff **pskb, 184 struct sk_buff **pskb,
185 struct net_device *indev, 185 struct net_device *indev,
186 struct net_device *outdev, 186 struct net_device *outdev,
187 int (*okfn)(struct sk_buff *), int thresh) 187 int (*okfn)(struct sk_buff *), int thresh,
188 int cond)
188{ 189{
190 if (!cond)
191 return 1;
189#ifndef CONFIG_NETFILTER_DEBUG 192#ifndef CONFIG_NETFILTER_DEBUG
190 if (list_empty(&nf_hooks[pf][hook])) 193 if (list_empty(&nf_hooks[pf][hook]))
191 return 1; 194 return 1;
@@ -197,7 +200,7 @@ static inline int nf_hook(int pf, unsigned int hook, struct sk_buff **pskb,
197 struct net_device *indev, struct net_device *outdev, 200 struct net_device *indev, struct net_device *outdev,
198 int (*okfn)(struct sk_buff *)) 201 int (*okfn)(struct sk_buff *))
199{ 202{
200 return nf_hook_thresh(pf, hook, pskb, indev, outdev, okfn, INT_MIN); 203 return nf_hook_thresh(pf, hook, pskb, indev, outdev, okfn, INT_MIN, 1);
201} 204}
202 205
203/* Activate hook; either okfn or kfree_skb called, unless a hook 206/* Activate hook; either okfn or kfree_skb called, unless a hook
@@ -224,7 +227,13 @@ static inline int nf_hook(int pf, unsigned int hook, struct sk_buff **pskb,
224 227
225#define NF_HOOK_THRESH(pf, hook, skb, indev, outdev, okfn, thresh) \ 228#define NF_HOOK_THRESH(pf, hook, skb, indev, outdev, okfn, thresh) \
226({int __ret; \ 229({int __ret; \
227if ((__ret=nf_hook_thresh(pf, hook, &(skb), indev, outdev, okfn, thresh)) == 1)\ 230if ((__ret=nf_hook_thresh(pf, hook, &(skb), indev, outdev, okfn, thresh, 1)) == 1)\
231 __ret = (okfn)(skb); \
232__ret;})
233
234#define NF_HOOK_COND(pf, hook, skb, indev, outdev, okfn, cond) \
235({int __ret; \
236if ((__ret=nf_hook_thresh(pf, hook, &(skb), indev, outdev, okfn, INT_MIN, cond)) == 1)\
228 __ret = (okfn)(skb); \ 237 __ret = (okfn)(skb); \
229__ret;}) 238__ret;})
230 239
@@ -295,11 +304,13 @@ extern struct proc_dir_entry *proc_net_netfilter;
295 304
296#else /* !CONFIG_NETFILTER */ 305#else /* !CONFIG_NETFILTER */
297#define NF_HOOK(pf, hook, skb, indev, outdev, okfn) (okfn)(skb) 306#define NF_HOOK(pf, hook, skb, indev, outdev, okfn) (okfn)(skb)
307#define NF_HOOK_COND(pf, hook, skb, indev, outdev, okfn, cond) (okfn)(skb)
298static inline int nf_hook_thresh(int pf, unsigned int hook, 308static inline int nf_hook_thresh(int pf, unsigned int hook,
299 struct sk_buff **pskb, 309 struct sk_buff **pskb,
300 struct net_device *indev, 310 struct net_device *indev,
301 struct net_device *outdev, 311 struct net_device *outdev,
302 int (*okfn)(struct sk_buff *), int thresh) 312 int (*okfn)(struct sk_buff *), int thresh,
313 int cond)
303{ 314{
304 return okfn(*pskb); 315 return okfn(*pskb);
305} 316}
@@ -307,7 +318,7 @@ static inline int nf_hook(int pf, unsigned int hook, struct sk_buff **pskb,
307 struct net_device *indev, struct net_device *outdev, 318 struct net_device *indev, struct net_device *outdev,
308 int (*okfn)(struct sk_buff *)) 319 int (*okfn)(struct sk_buff *))
309{ 320{
310 return okfn(*pskb); 321 return 1;
311} 322}
312static inline void nf_ct_attach(struct sk_buff *new, struct sk_buff *skb) {} 323static inline void nf_ct_attach(struct sk_buff *new, struct sk_buff *skb) {}
313struct flowi; 324struct flowi;
diff --git a/include/linux/netfilter/x_tables.h b/include/linux/netfilter/x_tables.h
index 59ff6c430cf6..6500d4e59d46 100644
--- a/include/linux/netfilter/x_tables.h
+++ b/include/linux/netfilter/x_tables.h
@@ -19,7 +19,21 @@ struct xt_get_revision
19/* For standard target */ 19/* For standard target */
20#define XT_RETURN (-NF_REPEAT - 1) 20#define XT_RETURN (-NF_REPEAT - 1)
21 21
22#define XT_ALIGN(s) (((s) + (__alignof__(u_int64_t)-1)) & ~(__alignof__(u_int64_t)-1)) 22/* this is a dummy structure to find out the alignment requirement for a struct
23 * containing all the fundamental data types that are used in ipt_entry,
24 * ip6t_entry and arpt_entry. This sucks, and it is a hack. It will be my
25 * personal pleasure to remove it -HW
26 */
27struct _xt_align
28{
29 u_int8_t u8;
30 u_int16_t u16;
31 u_int32_t u32;
32 u_int64_t u64;
33};
34
35#define XT_ALIGN(s) (((s) + (__alignof__(struct _xt_align)-1)) \
36 & ~(__alignof__(struct _xt_align)-1))
23 37
24/* Standard return verdict, or do jump. */ 38/* Standard return verdict, or do jump. */
25#define XT_STANDARD_TARGET "" 39#define XT_STANDARD_TARGET ""
diff --git a/include/linux/netfilter_ipv4.h b/include/linux/netfilter_ipv4.h
index fdc4a9527343..43c09d790b83 100644
--- a/include/linux/netfilter_ipv4.h
+++ b/include/linux/netfilter_ipv4.h
@@ -79,7 +79,7 @@ enum nf_ip_hook_priorities {
79 79
80#ifdef __KERNEL__ 80#ifdef __KERNEL__
81extern int ip_route_me_harder(struct sk_buff **pskb); 81extern int ip_route_me_harder(struct sk_buff **pskb);
82 82extern int ip_xfrm_me_harder(struct sk_buff **pskb);
83#endif /*__KERNEL__*/ 83#endif /*__KERNEL__*/
84 84
85#endif /*__LINUX_IP_NETFILTER_H*/ 85#endif /*__LINUX_IP_NETFILTER_H*/
diff --git a/include/linux/netfilter_ipv4/ipt_connbytes.h b/include/linux/netfilter_ipv4/ipt_connbytes.h
index b04dfa3083c9..f63e6ee91113 100644
--- a/include/linux/netfilter_ipv4/ipt_connbytes.h
+++ b/include/linux/netfilter_ipv4/ipt_connbytes.h
@@ -1,10 +1,10 @@
1#ifndef _IPT_CONNBYTES_H 1#ifndef _IPT_CONNBYTES_H
2#define _IPT_CONNBYTES_H 2#define _IPT_CONNBYTES_H
3 3
4#include <net/netfilter/xt_connbytes.h> 4#include <linux/netfilter/xt_connbytes.h>
5#define ipt_connbytes_what xt_connbytes_what 5#define ipt_connbytes_what xt_connbytes_what
6 6
7#define IPT_CONNBYTES_PKTS XT_CONNBYTES_PACKETS 7#define IPT_CONNBYTES_PKTS XT_CONNBYTES_PKTS
8#define IPT_CONNBYTES_BYTES XT_CONNBYTES_BYTES 8#define IPT_CONNBYTES_BYTES XT_CONNBYTES_BYTES
9#define IPT_CONNBYTES_AVGPKT XT_CONNBYTES_AVGPKT 9#define IPT_CONNBYTES_AVGPKT XT_CONNBYTES_AVGPKT
10 10
diff --git a/include/linux/netfilter_ipv4/ipt_policy.h b/include/linux/netfilter_ipv4/ipt_policy.h
index 7fd1bec453f1..a3f6eff39d33 100644
--- a/include/linux/netfilter_ipv4/ipt_policy.h
+++ b/include/linux/netfilter_ipv4/ipt_policy.h
@@ -27,16 +27,22 @@ struct ipt_policy_spec
27 reqid:1; 27 reqid:1;
28}; 28};
29 29
30union ipt_policy_addr
31{
32 struct in_addr a4;
33 struct in6_addr a6;
34};
35
30struct ipt_policy_elem 36struct ipt_policy_elem
31{ 37{
32 u_int32_t saddr; 38 union ipt_policy_addr saddr;
33 u_int32_t smask; 39 union ipt_policy_addr smask;
34 u_int32_t daddr; 40 union ipt_policy_addr daddr;
35 u_int32_t dmask; 41 union ipt_policy_addr dmask;
36 u_int32_t spi; 42 u_int32_t spi;
37 u_int32_t reqid; 43 u_int32_t reqid;
38 u_int8_t proto; 44 u_int8_t proto;
39 u_int8_t mode; 45 u_int8_t mode;
40 46
41 struct ipt_policy_spec match; 47 struct ipt_policy_spec match;
42 struct ipt_policy_spec invert; 48 struct ipt_policy_spec invert;
diff --git a/include/linux/netfilter_ipv6/ip6t_policy.h b/include/linux/netfilter_ipv6/ip6t_policy.h
index 5a93afcd2ff1..671bd818300f 100644
--- a/include/linux/netfilter_ipv6/ip6t_policy.h
+++ b/include/linux/netfilter_ipv6/ip6t_policy.h
@@ -27,16 +27,22 @@ struct ip6t_policy_spec
27 reqid:1; 27 reqid:1;
28}; 28};
29 29
30union ip6t_policy_addr
31{
32 struct in_addr a4;
33 struct in6_addr a6;
34};
35
30struct ip6t_policy_elem 36struct ip6t_policy_elem
31{ 37{
32 struct in6_addr saddr; 38 union ip6t_policy_addr saddr;
33 struct in6_addr smask; 39 union ip6t_policy_addr smask;
34 struct in6_addr daddr; 40 union ip6t_policy_addr daddr;
35 struct in6_addr dmask; 41 union ip6t_policy_addr dmask;
36 u_int32_t spi; 42 u_int32_t spi;
37 u_int32_t reqid; 43 u_int32_t reqid;
38 u_int8_t proto; 44 u_int8_t proto;
39 u_int8_t mode; 45 u_int8_t mode;
40 46
41 struct ip6t_policy_spec match; 47 struct ip6t_policy_spec match;
42 struct ip6t_policy_spec invert; 48 struct ip6t_policy_spec invert;
diff --git a/include/linux/netlink.h b/include/linux/netlink.h
index 6a2ccf78a356..c256ebe2a7b4 100644
--- a/include/linux/netlink.h
+++ b/include/linux/netlink.h
@@ -160,7 +160,8 @@ extern int netlink_unregister_notifier(struct notifier_block *nb);
160 160
161/* finegrained unicast helpers: */ 161/* finegrained unicast helpers: */
162struct sock *netlink_getsockbyfilp(struct file *filp); 162struct sock *netlink_getsockbyfilp(struct file *filp);
163int netlink_attachskb(struct sock *sk, struct sk_buff *skb, int nonblock, long timeo); 163int netlink_attachskb(struct sock *sk, struct sk_buff *skb, int nonblock,
164 long timeo, struct sock *ssk);
164void netlink_detachskb(struct sock *sk, struct sk_buff *skb); 165void netlink_detachskb(struct sock *sk, struct sk_buff *skb);
165int netlink_sendskb(struct sock *sk, struct sk_buff *skb, int protocol); 166int netlink_sendskb(struct sock *sk, struct sk_buff *skb, int protocol);
166 167
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h
index 547d649b274e..b4dc6e2e10c9 100644
--- a/include/linux/nfs_fs.h
+++ b/include/linux/nfs_fs.h
@@ -398,7 +398,7 @@ extern struct inode_operations nfs_symlink_inode_operations;
398extern int nfs_register_sysctl(void); 398extern int nfs_register_sysctl(void);
399extern void nfs_unregister_sysctl(void); 399extern void nfs_unregister_sysctl(void);
400#else 400#else
401#define nfs_register_sysctl() do { } while(0) 401#define nfs_register_sysctl() 0
402#define nfs_unregister_sysctl() do { } while(0) 402#define nfs_unregister_sysctl() do { } while(0)
403#endif 403#endif
404 404
diff --git a/include/linux/nodemask.h b/include/linux/nodemask.h
index 4726ef7ba8e8..b959a4525cbd 100644
--- a/include/linux/nodemask.h
+++ b/include/linux/nodemask.h
@@ -84,7 +84,6 @@
84#include <linux/threads.h> 84#include <linux/threads.h>
85#include <linux/bitmap.h> 85#include <linux/bitmap.h>
86#include <linux/numa.h> 86#include <linux/numa.h>
87#include <asm/bug.h>
88 87
89typedef struct { DECLARE_BITMAP(bits, MAX_NUMNODES); } nodemask_t; 88typedef struct { DECLARE_BITMAP(bits, MAX_NUMNODES); } nodemask_t;
90extern nodemask_t _unused_nodemask_arg_; 89extern nodemask_t _unused_nodemask_arg_;
diff --git a/include/linux/parport.h b/include/linux/parport.h
index f67f838a3a1f..008d736a6c9a 100644
--- a/include/linux/parport.h
+++ b/include/linux/parport.h
@@ -128,6 +128,11 @@ struct amiga_parport_state {
128 unsigned char statusdir;/* ciab.ddrb & 7 */ 128 unsigned char statusdir;/* ciab.ddrb & 7 */
129}; 129};
130 130
131struct ip32_parport_state {
132 unsigned int dcr;
133 unsigned int ecr;
134};
135
131struct parport_state { 136struct parport_state {
132 union { 137 union {
133 struct pc_parport_state pc; 138 struct pc_parport_state pc;
@@ -135,6 +140,7 @@ struct parport_state {
135 struct ax_parport_state ax; 140 struct ax_parport_state ax;
136 struct amiga_parport_state amiga; 141 struct amiga_parport_state amiga;
137 /* Atari has not state. */ 142 /* Atari has not state. */
143 struct ip32_parport_state ip32;
138 void *misc; 144 void *misc;
139 } u; 145 } u;
140}; 146};
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 0a44072383ec..fe1a2b02fc55 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -406,7 +406,6 @@ struct pci_dev *pci_find_device_reverse (unsigned int vendor, unsigned int devic
406struct pci_dev *pci_find_slot (unsigned int bus, unsigned int devfn); 406struct pci_dev *pci_find_slot (unsigned int bus, unsigned int devfn);
407int pci_find_capability (struct pci_dev *dev, int cap); 407int pci_find_capability (struct pci_dev *dev, int cap);
408int pci_find_next_capability (struct pci_dev *dev, u8 pos, int cap); 408int pci_find_next_capability (struct pci_dev *dev, u8 pos, int cap);
409int pci_find_ext_capability (struct pci_dev *dev, int cap);
410struct pci_bus * pci_find_next_bus(const struct pci_bus *from); 409struct pci_bus * pci_find_next_bus(const struct pci_bus *from);
411 410
412struct pci_dev *pci_get_device (unsigned int vendor, unsigned int device, struct pci_dev *from); 411struct pci_dev *pci_get_device (unsigned int vendor, unsigned int device, struct pci_dev *from);
@@ -626,7 +625,6 @@ static inline int pci_register_driver(struct pci_driver *drv) { return 0;}
626static inline void pci_unregister_driver(struct pci_driver *drv) { } 625static inline void pci_unregister_driver(struct pci_driver *drv) { }
627static inline int pci_find_capability (struct pci_dev *dev, int cap) {return 0; } 626static inline int pci_find_capability (struct pci_dev *dev, int cap) {return 0; }
628static inline int pci_find_next_capability (struct pci_dev *dev, u8 post, int cap) { return 0; } 627static inline int pci_find_next_capability (struct pci_dev *dev, u8 post, int cap) { return 0; }
629static inline int pci_find_ext_capability (struct pci_dev *dev, int cap) {return 0; }
630static inline const struct pci_device_id *pci_match_device(const struct pci_device_id *ids, const struct pci_dev *dev) { return NULL; } 628static inline const struct pci_device_id *pci_match_device(const struct pci_device_id *ids, const struct pci_dev *dev) { return NULL; }
631 629
632/* Power management related routines */ 630/* Power management related routines */
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index ecc1fc1f0f04..82b83da25d77 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -394,14 +394,9 @@
394#define PCI_DEVICE_ID_NS_SC1100_SMI 0x0511 394#define PCI_DEVICE_ID_NS_SC1100_SMI 0x0511
395#define PCI_DEVICE_ID_NS_SC1100_XBUS 0x0515 395#define PCI_DEVICE_ID_NS_SC1100_XBUS 0x0515
396#define PCI_DEVICE_ID_NS_87410 0xd001 396#define PCI_DEVICE_ID_NS_87410 0xd001
397#define PCI_DEVICE_ID_NS_CS5535_IDE 0x002d
398 397
399#define PCI_DEVICE_ID_NS_CS5535_HOST_BRIDGE 0x0028 398#define PCI_DEVICE_ID_NS_CS5535_HOST_BRIDGE 0x0028
400#define PCI_DEVICE_ID_NS_CS5535_ISA_BRIDGE 0x002b 399#define PCI_DEVICE_ID_NS_CS5535_ISA_BRIDGE 0x002b
401#define PCI_DEVICE_ID_NS_CS5535_IDE 0x002d
402#define PCI_DEVICE_ID_NS_CS5535_AUDIO 0x002e
403#define PCI_DEVICE_ID_NS_CS5535_USB 0x002f
404#define PCI_DEVICE_ID_NS_CS5535_VIDEO 0x0030
405 400
406#define PCI_VENDOR_ID_TSENG 0x100c 401#define PCI_VENDOR_ID_TSENG 0x100c
407#define PCI_DEVICE_ID_TSENG_W32P_2 0x3202 402#define PCI_DEVICE_ID_TSENG_W32P_2 0x3202
@@ -511,8 +506,6 @@
511#define PCI_DEVICE_ID_AMD_CS5536_UOC 0x2097 506#define PCI_DEVICE_ID_AMD_CS5536_UOC 0x2097
512#define PCI_DEVICE_ID_AMD_CS5536_IDE 0x209A 507#define PCI_DEVICE_ID_AMD_CS5536_IDE 0x209A
513 508
514#define PCI_DEVICE_ID_AMD_CS5536_IDE 0x209A
515
516#define PCI_DEVICE_ID_AMD_LX_VIDEO 0x2081 509#define PCI_DEVICE_ID_AMD_LX_VIDEO 0x2081
517#define PCI_DEVICE_ID_AMD_LX_AES 0x2082 510#define PCI_DEVICE_ID_AMD_LX_AES 0x2082
518 511
@@ -1094,6 +1087,7 @@
1094#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_MX_440_8X 0x0181 1087#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_MX_440_8X 0x0181
1095#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_MX_440SE_8X 0x0182 1088#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_MX_440SE_8X 0x0182
1096#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_MX_420_8X 0x0183 1089#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_MX_420_8X 0x0183
1090#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_MX_4000 0x0185
1097#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_448_GO 0x0186 1091#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_448_GO 0x0186
1098#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_488_GO 0x0187 1092#define PCI_DEVICE_ID_NVIDIA_GEFORCE4_488_GO 0x0187
1099#define PCI_DEVICE_ID_NVIDIA_QUADRO4_580_XGL 0x0188 1093#define PCI_DEVICE_ID_NVIDIA_QUADRO4_580_XGL 0x0188
@@ -1677,6 +1671,9 @@
1677#define PCI_DEVICE_ID_SIIG_2S1P_20x_550 0x2060 1671#define PCI_DEVICE_ID_SIIG_2S1P_20x_550 0x2060
1678#define PCI_DEVICE_ID_SIIG_2S1P_20x_650 0x2061 1672#define PCI_DEVICE_ID_SIIG_2S1P_20x_650 0x2061
1679#define PCI_DEVICE_ID_SIIG_2S1P_20x_850 0x2062 1673#define PCI_DEVICE_ID_SIIG_2S1P_20x_850 0x2062
1674#define PCI_DEVICE_ID_SIIG_8S_20x_550 0x2080
1675#define PCI_DEVICE_ID_SIIG_8S_20x_650 0x2081
1676#define PCI_DEVICE_ID_SIIG_8S_20x_850 0x2082
1680#define PCI_SUBDEVICE_ID_SIIG_QUARTET_SERIAL 0x2050 1677#define PCI_SUBDEVICE_ID_SIIG_QUARTET_SERIAL 0x2050
1681 1678
1682#define PCI_VENDOR_ID_RADISYS 0x1331 1679#define PCI_VENDOR_ID_RADISYS 0x1331
@@ -1836,6 +1833,7 @@
1836#define PCI_VENDOR_ID_AFAVLAB 0x14db 1833#define PCI_VENDOR_ID_AFAVLAB 0x14db
1837#define PCI_DEVICE_ID_AFAVLAB_P028 0x2180 1834#define PCI_DEVICE_ID_AFAVLAB_P028 0x2180
1838#define PCI_DEVICE_ID_AFAVLAB_P030 0x2182 1835#define PCI_DEVICE_ID_AFAVLAB_P030 0x2182
1836#define PCI_SUBDEVICE_ID_AFAVLAB_P061 0x2150
1839 1837
1840#define PCI_VENDOR_ID_BROADCOM 0x14e4 1838#define PCI_VENDOR_ID_BROADCOM 0x14e4
1841#define PCI_DEVICE_ID_TIGON3_5752 0x1600 1839#define PCI_DEVICE_ID_TIGON3_5752 0x1600
@@ -2065,6 +2063,7 @@
2065#define PCI_DEVICE_ID_INTEL_82801EB_5 0x24d5 2063#define PCI_DEVICE_ID_INTEL_82801EB_5 0x24d5
2066#define PCI_DEVICE_ID_INTEL_82801EB_6 0x24d6 2064#define PCI_DEVICE_ID_INTEL_82801EB_6 0x24d6
2067#define PCI_DEVICE_ID_INTEL_82801EB_11 0x24db 2065#define PCI_DEVICE_ID_INTEL_82801EB_11 0x24db
2066#define PCI_DEVICE_ID_INTEL_82801EB_13 0x24dd
2068#define PCI_DEVICE_ID_INTEL_ESB_1 0x25a1 2067#define PCI_DEVICE_ID_INTEL_ESB_1 0x25a1
2069#define PCI_DEVICE_ID_INTEL_ESB_2 0x25a2 2068#define PCI_DEVICE_ID_INTEL_ESB_2 0x25a2
2070#define PCI_DEVICE_ID_INTEL_ESB_4 0x25a4 2069#define PCI_DEVICE_ID_INTEL_ESB_4 0x25a4
@@ -2085,6 +2084,8 @@
2085#define PCI_DEVICE_ID_INTEL_82915GM_IG 0x2592 2084#define PCI_DEVICE_ID_INTEL_82915GM_IG 0x2592
2086#define PCI_DEVICE_ID_INTEL_82945G_HB 0x2770 2085#define PCI_DEVICE_ID_INTEL_82945G_HB 0x2770
2087#define PCI_DEVICE_ID_INTEL_82945G_IG 0x2772 2086#define PCI_DEVICE_ID_INTEL_82945G_IG 0x2772
2087#define PCI_DEVICE_ID_INTEL_82945GM_HB 0x27A0
2088#define PCI_DEVICE_ID_INTEL_82945GM_IG 0x27A2
2088#define PCI_DEVICE_ID_INTEL_ICH6_0 0x2640 2089#define PCI_DEVICE_ID_INTEL_ICH6_0 0x2640
2089#define PCI_DEVICE_ID_INTEL_ICH6_1 0x2641 2090#define PCI_DEVICE_ID_INTEL_ICH6_1 0x2641
2090#define PCI_DEVICE_ID_INTEL_ICH6_2 0x2642 2091#define PCI_DEVICE_ID_INTEL_ICH6_2 0x2642
@@ -2104,6 +2105,13 @@
2104#define PCI_DEVICE_ID_INTEL_ICH7_19 0x27dd 2105#define PCI_DEVICE_ID_INTEL_ICH7_19 0x27dd
2105#define PCI_DEVICE_ID_INTEL_ICH7_20 0x27de 2106#define PCI_DEVICE_ID_INTEL_ICH7_20 0x27de
2106#define PCI_DEVICE_ID_INTEL_ICH7_21 0x27df 2107#define PCI_DEVICE_ID_INTEL_ICH7_21 0x27df
2108#define PCI_DEVICE_ID_INTEL_ICH8_0 0x2810
2109#define PCI_DEVICE_ID_INTEL_ICH8_1 0x2811
2110#define PCI_DEVICE_ID_INTEL_ICH8_2 0x2812
2111#define PCI_DEVICE_ID_INTEL_ICH8_3 0x2814
2112#define PCI_DEVICE_ID_INTEL_ICH8_4 0x2815
2113#define PCI_DEVICE_ID_INTEL_ICH8_5 0x283e
2114#define PCI_DEVICE_ID_INTEL_ICH8_6 0x2850
2107#define PCI_DEVICE_ID_INTEL_82855PM_HB 0x3340 2115#define PCI_DEVICE_ID_INTEL_82855PM_HB 0x3340
2108#define PCI_DEVICE_ID_INTEL_82830_HB 0x3575 2116#define PCI_DEVICE_ID_INTEL_82830_HB 0x3575
2109#define PCI_DEVICE_ID_INTEL_82830_CGC 0x3577 2117#define PCI_DEVICE_ID_INTEL_82830_CGC 0x3577
@@ -2147,6 +2155,7 @@
2147#define PCI_DEVICE_ID_INTEL_82443GX_2 0x71a2 2155#define PCI_DEVICE_ID_INTEL_82443GX_2 0x71a2
2148#define PCI_DEVICE_ID_INTEL_82372FB_1 0x7601 2156#define PCI_DEVICE_ID_INTEL_82372FB_1 0x7601
2149#define PCI_DEVICE_ID_INTEL_82454GX 0x84c4 2157#define PCI_DEVICE_ID_INTEL_82454GX 0x84c4
2158#define PCI_DEVICE_ID_INTEL_82450GX 0x84c5
2150#define PCI_DEVICE_ID_INTEL_82451NX 0x84ca 2159#define PCI_DEVICE_ID_INTEL_82451NX 0x84ca
2151#define PCI_DEVICE_ID_INTEL_82454NX 0x84cb 2160#define PCI_DEVICE_ID_INTEL_82454NX 0x84cb
2152#define PCI_DEVICE_ID_INTEL_84460GX 0x84ea 2161#define PCI_DEVICE_ID_INTEL_84460GX 0x84ea
diff --git a/include/linux/pktcdvd.h b/include/linux/pktcdvd.h
index 2c177e4c8f22..8a94c717c266 100644
--- a/include/linux/pktcdvd.h
+++ b/include/linux/pktcdvd.h
@@ -114,7 +114,7 @@ struct pkt_ctrl_command {
114 114
115struct packet_settings 115struct packet_settings
116{ 116{
117 __u8 size; /* packet size in (512 byte) sectors */ 117 __u32 size; /* packet size in (512 byte) sectors */
118 __u8 fp; /* fixed packets */ 118 __u8 fp; /* fixed packets */
119 __u8 link_loss; /* the rest is specified 119 __u8 link_loss; /* the rest is specified
120 * as per Mt Fuji */ 120 * as per Mt Fuji */
@@ -169,8 +169,8 @@ struct packet_iosched
169#if (PAGE_SIZE % CD_FRAMESIZE) != 0 169#if (PAGE_SIZE % CD_FRAMESIZE) != 0
170#error "PAGE_SIZE must be a multiple of CD_FRAMESIZE" 170#error "PAGE_SIZE must be a multiple of CD_FRAMESIZE"
171#endif 171#endif
172#define PACKET_MAX_SIZE 32 172#define PACKET_MAX_SIZE 128
173#define PAGES_PER_PACKET (PACKET_MAX_SIZE * CD_FRAMESIZE / PAGE_SIZE) 173#define FRAMES_PER_PAGE (PAGE_SIZE / CD_FRAMESIZE)
174#define PACKET_MAX_SECTORS (PACKET_MAX_SIZE * CD_FRAMESIZE >> 9) 174#define PACKET_MAX_SECTORS (PACKET_MAX_SIZE * CD_FRAMESIZE >> 9)
175 175
176enum packet_data_state { 176enum packet_data_state {
@@ -219,7 +219,7 @@ struct packet_data
219 atomic_t io_errors; /* Number of read/write errors during IO */ 219 atomic_t io_errors; /* Number of read/write errors during IO */
220 220
221 struct bio *r_bios[PACKET_MAX_SIZE]; /* bios to use during data gathering */ 221 struct bio *r_bios[PACKET_MAX_SIZE]; /* bios to use during data gathering */
222 struct page *pages[PAGES_PER_PACKET]; 222 struct page *pages[PACKET_MAX_SIZE / FRAMES_PER_PAGE];
223 223
224 int cache_valid; /* If non-zero, the data for the zone defined */ 224 int cache_valid; /* If non-zero, the data for the zone defined */
225 /* by the sector variable is completely cached */ 225 /* by the sector variable is completely cached */
diff --git a/include/linux/posix-timers.h b/include/linux/posix-timers.h
index 54faf5236da0..95572c434bc9 100644
--- a/include/linux/posix-timers.h
+++ b/include/linux/posix-timers.h
@@ -84,7 +84,6 @@ struct k_clock {
84void register_posix_clock(const clockid_t clock_id, struct k_clock *new_clock); 84void register_posix_clock(const clockid_t clock_id, struct k_clock *new_clock);
85 85
86/* error handlers for timer_create, nanosleep and settime */ 86/* error handlers for timer_create, nanosleep and settime */
87int do_posix_clock_notimer_create(struct k_itimer *timer);
88int do_posix_clock_nonanosleep(const clockid_t, int flags, struct timespec *, 87int do_posix_clock_nonanosleep(const clockid_t, int flags, struct timespec *,
89 struct timespec __user *); 88 struct timespec __user *);
90int do_posix_clock_nosettime(const clockid_t, struct timespec *tp); 89int do_posix_clock_nosettime(const clockid_t, struct timespec *tp);
diff --git a/include/linux/ptrace.h b/include/linux/ptrace.h
index 9d5cd106b344..0d36750fc0f1 100644
--- a/include/linux/ptrace.h
+++ b/include/linux/ptrace.h
@@ -84,6 +84,7 @@ extern int ptrace_readdata(struct task_struct *tsk, unsigned long src, char __us
84extern int ptrace_writedata(struct task_struct *tsk, char __user *src, unsigned long dst, int len); 84extern int ptrace_writedata(struct task_struct *tsk, char __user *src, unsigned long dst, int len);
85extern int ptrace_attach(struct task_struct *tsk); 85extern int ptrace_attach(struct task_struct *tsk);
86extern int ptrace_detach(struct task_struct *, unsigned int); 86extern int ptrace_detach(struct task_struct *, unsigned int);
87extern void __ptrace_detach(struct task_struct *, unsigned int);
87extern void ptrace_disable(struct task_struct *); 88extern void ptrace_disable(struct task_struct *);
88extern int ptrace_check_attach(struct task_struct *task, int kill); 89extern int ptrace_check_attach(struct task_struct *task, int kill);
89extern int ptrace_request(struct task_struct *child, long request, long addr, long data); 90extern int ptrace_request(struct task_struct *child, long request, long addr, long data);
diff --git a/include/linux/quotaops.h b/include/linux/quotaops.h
index 4f34d3d60f2e..21e5a9124856 100644
--- a/include/linux/quotaops.h
+++ b/include/linux/quotaops.h
@@ -190,7 +190,6 @@ static __inline__ int DQUOT_OFF(struct super_block *sb)
190 */ 190 */
191#define sb_dquot_ops (NULL) 191#define sb_dquot_ops (NULL)
192#define sb_quotactl_ops (NULL) 192#define sb_quotactl_ops (NULL)
193#define sync_dquots_dev(dev,type) (NULL)
194#define DQUOT_INIT(inode) do { } while(0) 193#define DQUOT_INIT(inode) do { } while(0)
195#define DQUOT_DROP(inode) do { } while(0) 194#define DQUOT_DROP(inode) do { } while(0)
196#define DQUOT_ALLOC_INODE(inode) (0) 195#define DQUOT_ALLOC_INODE(inode) (0)
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
index 981f9aa43353..b87aefa082e2 100644
--- a/include/linux/rcupdate.h
+++ b/include/linux/rcupdate.h
@@ -240,11 +240,14 @@ extern int rcu_pending(int cpu);
240 * This means that all preempt_disable code sequences, including NMI and 240 * This means that all preempt_disable code sequences, including NMI and
241 * hardware-interrupt handlers, in progress on entry will have completed 241 * hardware-interrupt handlers, in progress on entry will have completed
242 * before this primitive returns. However, this does not guarantee that 242 * before this primitive returns. However, this does not guarantee that
243 * softirq handlers will have completed, since in some kernels 243 * softirq handlers will have completed, since in some kernels, these
244 * handlers can run in process context, and can block.
244 * 245 *
245 * This primitive provides the guarantees made by the (deprecated) 246 * This primitive provides the guarantees made by the (deprecated)
246 * synchronize_kernel() API. In contrast, synchronize_rcu() only 247 * synchronize_kernel() API. In contrast, synchronize_rcu() only
247 * guarantees that rcu_read_lock() sections will have completed. 248 * guarantees that rcu_read_lock() sections will have completed.
249 * In "classic RCU", these two guarantees happen to be one and
250 * the same, but can differ in realtime RCU implementations.
248 */ 251 */
249#define synchronize_sched() synchronize_rcu() 252#define synchronize_sched() synchronize_rcu()
250 253
diff --git a/include/linux/reboot.h b/include/linux/reboot.h
index 7ab2cdb83ef0..015297ff73fa 100644
--- a/include/linux/reboot.h
+++ b/include/linux/reboot.h
@@ -60,8 +60,7 @@ extern void machine_crash_shutdown(struct pt_regs *);
60 */ 60 */
61 61
62extern void kernel_restart_prepare(char *cmd); 62extern void kernel_restart_prepare(char *cmd);
63extern void kernel_halt_prepare(void); 63extern void kernel_shutdown_prepare(enum system_states state);
64extern void kernel_power_off_prepare(void);
65 64
66extern void kernel_restart(char *cmd); 65extern void kernel_restart(char *cmd);
67extern void kernel_halt(void); 66extern void kernel_halt(void);
diff --git a/include/linux/reiserfs_acl.h b/include/linux/reiserfs_acl.h
index 0a3605099c44..806ec5b06707 100644
--- a/include/linux/reiserfs_acl.h
+++ b/include/linux/reiserfs_acl.h
@@ -58,9 +58,13 @@ extern struct reiserfs_xattr_handler posix_acl_default_handler;
58extern struct reiserfs_xattr_handler posix_acl_access_handler; 58extern struct reiserfs_xattr_handler posix_acl_access_handler;
59#else 59#else
60 60
61#define reiserfs_get_acl NULL
62#define reiserfs_cache_default_acl(inode) 0 61#define reiserfs_cache_default_acl(inode) 0
63 62
63static inline struct posix_acl *reiserfs_get_acl(struct inode *inode, int type)
64{
65 return NULL;
66}
67
64static inline int reiserfs_xattr_posix_acl_init(void) 68static inline int reiserfs_xattr_posix_acl_init(void)
65{ 69{
66 return 0; 70 return 0;
diff --git a/include/linux/reiserfs_fs.h b/include/linux/reiserfs_fs.h
index e276c5ba2bb7..7d51149bd793 100644
--- a/include/linux/reiserfs_fs.h
+++ b/include/linux/reiserfs_fs.h
@@ -1971,22 +1971,6 @@ extern struct file_operations reiserfs_file_operations;
1971extern struct address_space_operations reiserfs_address_space_operations; 1971extern struct address_space_operations reiserfs_address_space_operations;
1972 1972
1973/* fix_nodes.c */ 1973/* fix_nodes.c */
1974#ifdef CONFIG_REISERFS_CHECK
1975void *reiserfs_kmalloc(size_t size, gfp_t flags, struct super_block *s);
1976void reiserfs_kfree(const void *vp, size_t size, struct super_block *s);
1977#else
1978static inline void *reiserfs_kmalloc(size_t size, int flags,
1979 struct super_block *s)
1980{
1981 return kmalloc(size, flags);
1982}
1983
1984static inline void reiserfs_kfree(const void *vp, size_t size,
1985 struct super_block *s)
1986{
1987 kfree(vp);
1988}
1989#endif
1990 1974
1991int fix_nodes(int n_op_mode, struct tree_balance *p_s_tb, 1975int fix_nodes(int n_op_mode, struct tree_balance *p_s_tb,
1992 struct item_head *p_s_ins_ih, const void *); 1976 struct item_head *p_s_ins_ih, const void *);
diff --git a/include/linux/reiserfs_fs_sb.h b/include/linux/reiserfs_fs_sb.h
index 3e68592e52e9..31b4c0bd4fa0 100644
--- a/include/linux/reiserfs_fs_sb.h
+++ b/include/linux/reiserfs_fs_sb.h
@@ -382,7 +382,6 @@ struct reiserfs_sb_info {
382 on-disk FS format */ 382 on-disk FS format */
383 383
384 /* session statistics */ 384 /* session statistics */
385 int s_kmallocs;
386 int s_disk_reads; 385 int s_disk_reads;
387 int s_disk_writes; 386 int s_disk_writes;
388 int s_fix_nodes; 387 int s_fix_nodes;
diff --git a/include/linux/reiserfs_xattr.h b/include/linux/reiserfs_xattr.h
index c84354e8374c..87280eb6083d 100644
--- a/include/linux/reiserfs_xattr.h
+++ b/include/linux/reiserfs_xattr.h
@@ -43,8 +43,6 @@ int reiserfs_delete_xattrs(struct inode *inode);
43int reiserfs_chown_xattrs(struct inode *inode, struct iattr *attrs); 43int reiserfs_chown_xattrs(struct inode *inode, struct iattr *attrs);
44int reiserfs_xattr_init(struct super_block *sb, int mount_flags); 44int reiserfs_xattr_init(struct super_block *sb, int mount_flags);
45int reiserfs_permission(struct inode *inode, int mask, struct nameidata *nd); 45int reiserfs_permission(struct inode *inode, int mask, struct nameidata *nd);
46int reiserfs_permission_locked(struct inode *inode, int mask,
47 struct nameidata *nd);
48 46
49int reiserfs_xattr_del(struct inode *, const char *); 47int reiserfs_xattr_del(struct inode *, const char *);
50int reiserfs_xattr_get(const struct inode *, const char *, void *, size_t); 48int reiserfs_xattr_get(const struct inode *, const char *, void *, size_t);
diff --git a/include/linux/rmap.h b/include/linux/rmap.h
index 9d6fbeef2104..d6b9bcd1384c 100644
--- a/include/linux/rmap.h
+++ b/include/linux/rmap.h
@@ -91,7 +91,8 @@ static inline void page_dup_rmap(struct page *page)
91 * Called from mm/vmscan.c to handle paging out 91 * Called from mm/vmscan.c to handle paging out
92 */ 92 */
93int page_referenced(struct page *, int is_locked); 93int page_referenced(struct page *, int is_locked);
94int try_to_unmap(struct page *); 94int try_to_unmap(struct page *, int ignore_refs);
95void remove_from_swap(struct page *page);
95 96
96/* 97/*
97 * Called from mm/filemap_xip.c to unmap empty zero page 98 * Called from mm/filemap_xip.c to unmap empty zero page
@@ -111,7 +112,7 @@ unsigned long page_address_in_vma(struct page *, struct vm_area_struct *);
111#define anon_vma_link(vma) do {} while (0) 112#define anon_vma_link(vma) do {} while (0)
112 113
113#define page_referenced(page,l) TestClearPageReferenced(page) 114#define page_referenced(page,l) TestClearPageReferenced(page)
114#define try_to_unmap(page) SWAP_FAIL 115#define try_to_unmap(page, refs) SWAP_FAIL
115 116
116#endif /* CONFIG_MMU */ 117#endif /* CONFIG_MMU */
117 118
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 0cfcd1c7865e..b6f51e3a38ec 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -697,12 +697,9 @@ struct task_struct {
697 697
698 int lock_depth; /* BKL lock depth */ 698 int lock_depth; /* BKL lock depth */
699 699
700#if defined(CONFIG_SMP) 700#if defined(CONFIG_SMP) && defined(__ARCH_WANT_UNLOCKED_CTXSW)
701 int last_waker_cpu; /* CPU that last woke this task up */
702#if defined(__ARCH_WANT_UNLOCKED_CTXSW)
703 int oncpu; 701 int oncpu;
704#endif 702#endif
705#endif
706 int prio, static_prio; 703 int prio, static_prio;
707 struct list_head run_list; 704 struct list_head run_list;
708 prio_array_t *array; 705 prio_array_t *array;
@@ -1098,7 +1095,7 @@ extern struct sigqueue *sigqueue_alloc(void);
1098extern void sigqueue_free(struct sigqueue *); 1095extern void sigqueue_free(struct sigqueue *);
1099extern int send_sigqueue(int, struct sigqueue *, struct task_struct *); 1096extern int send_sigqueue(int, struct sigqueue *, struct task_struct *);
1100extern int send_group_sigqueue(int, struct sigqueue *, struct task_struct *); 1097extern int send_group_sigqueue(int, struct sigqueue *, struct task_struct *);
1101extern int do_sigaction(int, const struct k_sigaction *, struct k_sigaction *); 1098extern int do_sigaction(int, struct k_sigaction *, struct k_sigaction *);
1102extern int do_sigaltstack(const stack_t __user *, stack_t __user *, unsigned long); 1099extern int do_sigaltstack(const stack_t __user *, stack_t __user *, unsigned long);
1103 1100
1104/* These can be the second arg to send_sig_info/send_group_sig_info. */ 1101/* These can be the second arg to send_sig_info/send_group_sig_info. */
diff --git a/include/linux/security.h b/include/linux/security.h
index ef753654daa5..7cbef482e13a 100644
--- a/include/linux/security.h
+++ b/include/linux/security.h
@@ -1499,15 +1499,11 @@ static inline void security_sb_post_pivotroot (struct nameidata *old_nd,
1499 1499
1500static inline int security_inode_alloc (struct inode *inode) 1500static inline int security_inode_alloc (struct inode *inode)
1501{ 1501{
1502 if (unlikely (IS_PRIVATE (inode)))
1503 return 0;
1504 return security_ops->inode_alloc_security (inode); 1502 return security_ops->inode_alloc_security (inode);
1505} 1503}
1506 1504
1507static inline void security_inode_free (struct inode *inode) 1505static inline void security_inode_free (struct inode *inode)
1508{ 1506{
1509 if (unlikely (IS_PRIVATE (inode)))
1510 return;
1511 security_ops->inode_free_security (inode); 1507 security_ops->inode_free_security (inode);
1512} 1508}
1513 1509
@@ -2617,6 +2613,25 @@ static inline int security_netlink_recv (struct sk_buff *skb)
2617 return cap_netlink_recv (skb); 2613 return cap_netlink_recv (skb);
2618} 2614}
2619 2615
2616static inline struct dentry *securityfs_create_dir(const char *name,
2617 struct dentry *parent)
2618{
2619 return ERR_PTR(-ENODEV);
2620}
2621
2622static inline struct dentry *securityfs_create_file(const char *name,
2623 mode_t mode,
2624 struct dentry *parent,
2625 void *data,
2626 struct file_operations *fops)
2627{
2628 return ERR_PTR(-ENODEV);
2629}
2630
2631static inline void securityfs_remove(struct dentry *dentry)
2632{
2633}
2634
2620#endif /* CONFIG_SECURITY */ 2635#endif /* CONFIG_SECURITY */
2621 2636
2622#ifdef CONFIG_SECURITY_NETWORK 2637#ifdef CONFIG_SECURITY_NETWORK
diff --git a/include/linux/serial_8250.h b/include/linux/serial_8250.h
index cee302aefdb7..73b464f0926a 100644
--- a/include/linux/serial_8250.h
+++ b/include/linux/serial_8250.h
@@ -26,7 +26,7 @@ struct plat_serial8250_port {
26 unsigned char regshift; /* register shift */ 26 unsigned char regshift; /* register shift */
27 unsigned char iotype; /* UPIO_* */ 27 unsigned char iotype; /* UPIO_* */
28 unsigned char hub6; 28 unsigned char hub6;
29 unsigned int flags; /* UPF_* flags */ 29 upf_t flags; /* UPF_* flags */
30}; 30};
31 31
32/* 32/*
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
index ec351005bf9d..4041122dabfc 100644
--- a/include/linux/serial_core.h
+++ b/include/linux/serial_core.h
@@ -203,6 +203,8 @@ struct uart_icount {
203 __u32 buf_overrun; 203 __u32 buf_overrun;
204}; 204};
205 205
206typedef unsigned int __bitwise__ upf_t;
207
206struct uart_port { 208struct uart_port {
207 spinlock_t lock; /* port lock */ 209 spinlock_t lock; /* port lock */
208 unsigned int iobase; /* in/out[bwl] */ 210 unsigned int iobase; /* in/out[bwl] */
@@ -230,36 +232,34 @@ struct uart_port {
230 unsigned long sysrq; /* sysrq timeout */ 232 unsigned long sysrq; /* sysrq timeout */
231#endif 233#endif
232 234
233 unsigned int flags; 235 upf_t flags;
234 236
235#define UPF_FOURPORT (1 << 1) 237#define UPF_FOURPORT ((__force upf_t) (1 << 1))
236#define UPF_SAK (1 << 2) 238#define UPF_SAK ((__force upf_t) (1 << 2))
237#define UPF_SPD_MASK (0x1030) 239#define UPF_SPD_MASK ((__force upf_t) (0x1030))
238#define UPF_SPD_HI (0x0010) 240#define UPF_SPD_HI ((__force upf_t) (0x0010))
239#define UPF_SPD_VHI (0x0020) 241#define UPF_SPD_VHI ((__force upf_t) (0x0020))
240#define UPF_SPD_CUST (0x0030) 242#define UPF_SPD_CUST ((__force upf_t) (0x0030))
241#define UPF_SPD_SHI (0x1000) 243#define UPF_SPD_SHI ((__force upf_t) (0x1000))
242#define UPF_SPD_WARP (0x1010) 244#define UPF_SPD_WARP ((__force upf_t) (0x1010))
243#define UPF_SKIP_TEST (1 << 6) 245#define UPF_SKIP_TEST ((__force upf_t) (1 << 6))
244#define UPF_AUTO_IRQ (1 << 7) 246#define UPF_AUTO_IRQ ((__force upf_t) (1 << 7))
245#define UPF_HARDPPS_CD (1 << 11) 247#define UPF_HARDPPS_CD ((__force upf_t) (1 << 11))
246#define UPF_LOW_LATENCY (1 << 13) 248#define UPF_LOW_LATENCY ((__force upf_t) (1 << 13))
247#define UPF_BUGGY_UART (1 << 14) 249#define UPF_BUGGY_UART ((__force upf_t) (1 << 14))
248#define UPF_AUTOPROBE (1 << 15) 250#define UPF_MAGIC_MULTIPLIER ((__force upf_t) (1 << 16))
249#define UPF_MAGIC_MULTIPLIER (1 << 16) 251#define UPF_CONS_FLOW ((__force upf_t) (1 << 23))
250#define UPF_BOOT_ONLYMCA (1 << 22) 252#define UPF_SHARE_IRQ ((__force upf_t) (1 << 24))
251#define UPF_CONS_FLOW (1 << 23) 253#define UPF_BOOT_AUTOCONF ((__force upf_t) (1 << 28))
252#define UPF_SHARE_IRQ (1 << 24) 254#define UPF_IOREMAP ((__force upf_t) (1 << 31))
253#define UPF_BOOT_AUTOCONF (1 << 28) 255
254#define UPF_IOREMAP (1 << 31) 256#define UPF_CHANGE_MASK ((__force upf_t) (0x17fff))
255 257#define UPF_USR_MASK ((__force upf_t) (UPF_SPD_MASK|UPF_LOW_LATENCY))
256#define UPF_CHANGE_MASK (0x17fff)
257#define UPF_USR_MASK (UPF_SPD_MASK|UPF_LOW_LATENCY)
258 258
259 unsigned int mctrl; /* current modem ctrl settings */ 259 unsigned int mctrl; /* current modem ctrl settings */
260 unsigned int timeout; /* character-based timeout */ 260 unsigned int timeout; /* character-based timeout */
261 unsigned int type; /* port type */ 261 unsigned int type; /* port type */
262 struct uart_ops *ops; 262 const struct uart_ops *ops;
263 unsigned int custom_divisor; 263 unsigned int custom_divisor;
264 unsigned int line; /* port index */ 264 unsigned int line; /* port index */
265 unsigned long mapbase; /* for ioremap */ 265 unsigned long mapbase; /* for ioremap */
@@ -289,6 +289,9 @@ struct uart_state {
289}; 289};
290 290
291#define UART_XMIT_SIZE PAGE_SIZE 291#define UART_XMIT_SIZE PAGE_SIZE
292
293typedef unsigned int __bitwise__ uif_t;
294
292/* 295/*
293 * This is the state information which is only valid when the port 296 * This is the state information which is only valid when the port
294 * is open; it may be freed by the core driver once the device has 297 * is open; it may be freed by the core driver once the device has
@@ -298,17 +301,16 @@ struct uart_state {
298struct uart_info { 301struct uart_info {
299 struct tty_struct *tty; 302 struct tty_struct *tty;
300 struct circ_buf xmit; 303 struct circ_buf xmit;
301 unsigned int flags; 304 uif_t flags;
302 305
303/* 306/*
304 * These are the flags that specific to info->flags, and reflect our 307 * Definitions for info->flags. These are _private_ to serial_core, and
305 * internal state. They can not be accessed via port->flags. Low 308 * are specific to this structure. They may be queried by low level drivers.
306 * level drivers must not change these, but may query them instead.
307 */ 309 */
308#define UIF_CHECK_CD (1 << 25) 310#define UIF_CHECK_CD ((__force uif_t) (1 << 25))
309#define UIF_CTS_FLOW (1 << 26) 311#define UIF_CTS_FLOW ((__force uif_t) (1 << 26))
310#define UIF_NORMAL_ACTIVE (1 << 29) 312#define UIF_NORMAL_ACTIVE ((__force uif_t) (1 << 29))
311#define UIF_INITIALIZED (1 << 31) 313#define UIF_INITIALIZED ((__force uif_t) (1 << 31))
312 314
313 int blocked_open; 315 int blocked_open;
314 316
@@ -430,7 +432,7 @@ static inline int uart_handle_break(struct uart_port *port)
430 port->sysrq = 0; 432 port->sysrq = 0;
431 } 433 }
432#endif 434#endif
433 if (info->flags & UPF_SAK) 435 if (port->flags & UPF_SAK)
434 do_SAK(info->tty); 436 do_SAK(info->tty);
435 return 0; 437 return 0;
436} 438}
diff --git a/include/linux/slab.h b/include/linux/slab.h
index 1fb77a9cc148..8cf52939d0ab 100644
--- a/include/linux/slab.h
+++ b/include/linux/slab.h
@@ -76,7 +76,14 @@ struct cache_sizes {
76 kmem_cache_t *cs_dmacachep; 76 kmem_cache_t *cs_dmacachep;
77}; 77};
78extern struct cache_sizes malloc_sizes[]; 78extern struct cache_sizes malloc_sizes[];
79
80#ifndef CONFIG_DEBUG_SLAB
79extern void *__kmalloc(size_t, gfp_t); 81extern void *__kmalloc(size_t, gfp_t);
82#else
83extern void *__kmalloc_track_caller(size_t, gfp_t, void*);
84#define __kmalloc(size, flags) \
85 __kmalloc_track_caller(size, flags, __builtin_return_address(0))
86#endif
80 87
81static inline void *kmalloc(size_t size, gfp_t flags) 88static inline void *kmalloc(size_t size, gfp_t flags)
82{ 89{
diff --git a/include/linux/smp.h b/include/linux/smp.h
index 9dfa3ee769ae..44153fdf73fc 100644
--- a/include/linux/smp.h
+++ b/include/linux/smp.h
@@ -17,7 +17,6 @@ extern void cpu_idle(void);
17#include <linux/compiler.h> 17#include <linux/compiler.h>
18#include <linux/thread_info.h> 18#include <linux/thread_info.h>
19#include <asm/smp.h> 19#include <asm/smp.h>
20#include <asm/bug.h>
21 20
22/* 21/*
23 * main cross-CPU interfaces, handles INIT, TLB flush, STOP, etc. 22 * main cross-CPU interfaces, handles INIT, TLB flush, STOP, etc.
diff --git a/include/linux/sunrpc/auth.h b/include/linux/sunrpc/auth.h
index b68c11a2d6dd..be4772ed43c0 100644
--- a/include/linux/sunrpc/auth.h
+++ b/include/linux/sunrpc/auth.h
@@ -48,7 +48,7 @@ struct rpc_cred {
48 48
49 /* per-flavor data */ 49 /* per-flavor data */
50}; 50};
51#define RPCAUTH_CRED_LOCKED 0x0001 51#define RPCAUTH_CRED_NEW 0x0001
52#define RPCAUTH_CRED_UPTODATE 0x0002 52#define RPCAUTH_CRED_UPTODATE 0x0002
53 53
54#define RPCAUTH_CRED_MAGIC 0x0f4aa4f0 54#define RPCAUTH_CRED_MAGIC 0x0f4aa4f0
@@ -83,9 +83,10 @@ struct rpc_auth {
83 struct rpc_cred_cache * au_credcache; 83 struct rpc_cred_cache * au_credcache;
84 /* per-flavor data */ 84 /* per-flavor data */
85}; 85};
86#define RPC_AUTH_PROC_CREDS 0x0010 /* process creds (including 86
87 * uid/gid, fs[ug]id, gids) 87/* Flags for rpcauth_lookupcred() */
88 */ 88#define RPCAUTH_LOOKUP_NEW 0x01 /* Accept an uninitialised cred */
89#define RPCAUTH_LOOKUP_ROOTCREDS 0x02 /* This really ought to go! */
89 90
90/* 91/*
91 * Client authentication ops 92 * Client authentication ops
@@ -105,6 +106,7 @@ struct rpc_authops {
105 106
106struct rpc_credops { 107struct rpc_credops {
107 const char * cr_name; /* Name of the auth flavour */ 108 const char * cr_name; /* Name of the auth flavour */
109 int (*cr_init)(struct rpc_auth *, struct rpc_cred *);
108 void (*crdestroy)(struct rpc_cred *); 110 void (*crdestroy)(struct rpc_cred *);
109 111
110 int (*crmatch)(struct auth_cred *, struct rpc_cred *, int); 112 int (*crmatch)(struct auth_cred *, struct rpc_cred *, int);
diff --git a/include/linux/suspend.h b/include/linux/suspend.h
index 5dc94e777fab..37c1c76fd547 100644
--- a/include/linux/suspend.h
+++ b/include/linux/suspend.h
@@ -43,16 +43,20 @@ extern void mark_free_pages(struct zone *zone);
43/* kernel/power/swsusp.c */ 43/* kernel/power/swsusp.c */
44extern int software_suspend(void); 44extern int software_suspend(void);
45 45
46#if defined(CONFIG_VT) && defined(CONFIG_VT_CONSOLE)
46extern int pm_prepare_console(void); 47extern int pm_prepare_console(void);
47extern void pm_restore_console(void); 48extern void pm_restore_console(void);
48 49#else
50static inline int pm_prepare_console(void) { return 0; }
51static inline void pm_restore_console(void) {}
52#endif /* defined(CONFIG_VT) && defined(CONFIG_VT_CONSOLE) */
49#else 53#else
50static inline int software_suspend(void) 54static inline int software_suspend(void)
51{ 55{
52 printk("Warning: fake suspend called\n"); 56 printk("Warning: fake suspend called\n");
53 return -EPERM; 57 return -EPERM;
54} 58}
55#endif 59#endif /* CONFIG_PM */
56 60
57#ifdef CONFIG_SUSPEND_SMP 61#ifdef CONFIG_SUSPEND_SMP
58extern void disable_nonboot_cpus(void); 62extern void disable_nonboot_cpus(void);
diff --git a/include/linux/swap.h b/include/linux/swap.h
index 4a99e4a7fbf3..d572b19afb7d 100644
--- a/include/linux/swap.h
+++ b/include/linux/swap.h
@@ -147,7 +147,7 @@ struct swap_list_t {
147#define vm_swap_full() (nr_swap_pages*2 < total_swap_pages) 147#define vm_swap_full() (nr_swap_pages*2 < total_swap_pages)
148 148
149/* linux/mm/oom_kill.c */ 149/* linux/mm/oom_kill.c */
150extern void out_of_memory(gfp_t gfp_mask, int order); 150extern void out_of_memory(struct zonelist *zonelist, gfp_t gfp_mask, int order);
151 151
152/* linux/mm/memory.c */ 152/* linux/mm/memory.c */
153extern void swapin_readahead(swp_entry_t, unsigned long, struct vm_area_struct *); 153extern void swapin_readahead(swp_entry_t, unsigned long, struct vm_area_struct *);
@@ -178,6 +178,7 @@ extern int vm_swappiness;
178 178
179#ifdef CONFIG_NUMA 179#ifdef CONFIG_NUMA
180extern int zone_reclaim_mode; 180extern int zone_reclaim_mode;
181extern int zone_reclaim_interval;
181extern int zone_reclaim(struct zone *, gfp_t, unsigned int); 182extern int zone_reclaim(struct zone *, gfp_t, unsigned int);
182#else 183#else
183#define zone_reclaim_mode 0 184#define zone_reclaim_mode 0
@@ -190,13 +191,20 @@ static inline int zone_reclaim(struct zone *z, gfp_t mask, unsigned int order)
190#ifdef CONFIG_MIGRATION 191#ifdef CONFIG_MIGRATION
191extern int isolate_lru_page(struct page *p); 192extern int isolate_lru_page(struct page *p);
192extern int putback_lru_pages(struct list_head *l); 193extern int putback_lru_pages(struct list_head *l);
194extern int migrate_page(struct page *, struct page *);
195extern void migrate_page_copy(struct page *, struct page *);
196extern int migrate_page_remove_references(struct page *, struct page *, int);
193extern int migrate_pages(struct list_head *l, struct list_head *t, 197extern int migrate_pages(struct list_head *l, struct list_head *t,
194 struct list_head *moved, struct list_head *failed); 198 struct list_head *moved, struct list_head *failed);
199extern int fail_migrate_page(struct page *, struct page *);
195#else 200#else
196static inline int isolate_lru_page(struct page *p) { return -ENOSYS; } 201static inline int isolate_lru_page(struct page *p) { return -ENOSYS; }
197static inline int putback_lru_pages(struct list_head *l) { return 0; } 202static inline int putback_lru_pages(struct list_head *l) { return 0; }
198static inline int migrate_pages(struct list_head *l, struct list_head *t, 203static inline int migrate_pages(struct list_head *l, struct list_head *t,
199 struct list_head *moved, struct list_head *failed) { return -ENOSYS; } 204 struct list_head *moved, struct list_head *failed) { return -ENOSYS; }
205/* Possible settings for the migrate_page() method in address_operations */
206#define migrate_page NULL
207#define fail_migrate_page NULL
200#endif 208#endif
201 209
202#ifdef CONFIG_MMU 210#ifdef CONFIG_MMU
@@ -245,6 +253,7 @@ extern int remove_exclusive_swap_page(struct page *);
245struct backing_dev_info; 253struct backing_dev_info;
246 254
247extern spinlock_t swap_lock; 255extern spinlock_t swap_lock;
256extern int remove_vma_swap(struct vm_area_struct *vma, struct page *page);
248 257
249/* linux/mm/thrash.c */ 258/* linux/mm/thrash.c */
250extern struct mm_struct * swap_token_mm; 259extern struct mm_struct * swap_token_mm;
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
index e666d6070569..d73501ba7e44 100644
--- a/include/linux/syscalls.h
+++ b/include/linux/syscalls.h
@@ -50,6 +50,8 @@ struct timezone;
50struct tms; 50struct tms;
51struct utimbuf; 51struct utimbuf;
52struct mq_attr; 52struct mq_attr;
53struct compat_stat;
54struct compat_timeval;
53 55
54#include <linux/config.h> 56#include <linux/config.h>
55#include <linux/types.h> 57#include <linux/types.h>
@@ -534,4 +536,37 @@ asmlinkage long sys_spu_run(int fd, __u32 __user *unpc,
534asmlinkage long sys_spu_create(const char __user *name, 536asmlinkage long sys_spu_create(const char __user *name,
535 unsigned int flags, mode_t mode); 537 unsigned int flags, mode_t mode);
536 538
539asmlinkage long sys_mknodat(int dfd, const char __user * filename, int mode,
540 unsigned dev);
541asmlinkage long sys_mkdirat(int dfd, const char __user * pathname, int mode);
542asmlinkage long sys_unlinkat(int dfd, const char __user * pathname, int flag);
543asmlinkage long sys_symlinkat(const char __user * oldname,
544 int newdfd, const char __user * newname);
545asmlinkage long sys_linkat(int olddfd, const char __user *oldname,
546 int newdfd, const char __user *newname);
547asmlinkage long sys_renameat(int olddfd, const char __user * oldname,
548 int newdfd, const char __user * newname);
549asmlinkage long sys_futimesat(int dfd, char __user *filename,
550 struct timeval __user *utimes);
551asmlinkage long sys_faccessat(int dfd, const char __user *filename, int mode);
552asmlinkage long sys_fchmodat(int dfd, const char __user * filename,
553 mode_t mode);
554asmlinkage long sys_fchownat(int dfd, const char __user *filename, uid_t user,
555 gid_t group, int flag);
556asmlinkage long sys_openat(int dfd, const char __user *filename, int flags,
557 int mode);
558asmlinkage long sys_newfstatat(int dfd, char __user *filename,
559 struct stat __user *statbuf, int flag);
560asmlinkage long sys_fstatat64(int dfd, char __user *filename,
561 struct stat64 __user *statbuf, int flag);
562asmlinkage long sys_readlinkat(int dfd, const char __user *path, char __user *buf,
563 int bufsiz);
564asmlinkage long compat_sys_futimesat(unsigned int dfd, char __user *filename,
565 struct compat_timeval __user *t);
566asmlinkage long compat_sys_newfstatat(unsigned int dfd, char __user * filename,
567 struct compat_stat __user *statbuf,
568 int flag);
569asmlinkage long compat_sys_openat(unsigned int dfd, const char __user *filename,
570 int flags, int mode);
571
537#endif 572#endif
diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h
index 8352a7ce5895..0e92bf7ec28e 100644
--- a/include/linux/sysctl.h
+++ b/include/linux/sysctl.h
@@ -146,6 +146,7 @@ enum
146 KERN_RANDOMIZE=68, /* int: randomize virtual address space */ 146 KERN_RANDOMIZE=68, /* int: randomize virtual address space */
147 KERN_SETUID_DUMPABLE=69, /* int: behaviour of dumps for setuid core */ 147 KERN_SETUID_DUMPABLE=69, /* int: behaviour of dumps for setuid core */
148 KERN_SPIN_RETRY=70, /* int: number of spinlock retries */ 148 KERN_SPIN_RETRY=70, /* int: number of spinlock retries */
149 KERN_ACPI_VIDEO_FLAGS=71, /* int: flags for setting up video after ACPI sleep */
149}; 150};
150 151
151 152
@@ -182,7 +183,8 @@ enum
182 VM_SWAP_TOKEN_TIMEOUT=28, /* default time for token time out */ 183 VM_SWAP_TOKEN_TIMEOUT=28, /* default time for token time out */
183 VM_DROP_PAGECACHE=29, /* int: nuke lots of pagecache */ 184 VM_DROP_PAGECACHE=29, /* int: nuke lots of pagecache */
184 VM_PERCPU_PAGELIST_FRACTION=30,/* int: fraction of pages in each percpu_pagelist */ 185 VM_PERCPU_PAGELIST_FRACTION=30,/* int: fraction of pages in each percpu_pagelist */
185 VM_ZONE_RECLAIM_MODE=31,/* reclaim local zone memory before going off node */ 186 VM_ZONE_RECLAIM_MODE=31, /* reclaim local zone memory before going off node */
187 VM_ZONE_RECLAIM_INTERVAL=32, /* time period to wait after reclaim failure */
186}; 188};
187 189
188 190
diff --git a/include/linux/time.h b/include/linux/time.h
index 614dd8465839..d9cdba54b789 100644
--- a/include/linux/time.h
+++ b/include/linux/time.h
@@ -33,11 +33,34 @@ struct timezone {
33#define NSEC_PER_SEC 1000000000L 33#define NSEC_PER_SEC 1000000000L
34#define NSEC_PER_USEC 1000L 34#define NSEC_PER_USEC 1000L
35 35
36static __inline__ int timespec_equal(struct timespec *a, struct timespec *b) 36static inline int timespec_equal(struct timespec *a, struct timespec *b)
37{ 37{
38 return (a->tv_sec == b->tv_sec) && (a->tv_nsec == b->tv_nsec); 38 return (a->tv_sec == b->tv_sec) && (a->tv_nsec == b->tv_nsec);
39} 39}
40 40
41/*
42 * lhs < rhs: return <0
43 * lhs == rhs: return 0
44 * lhs > rhs: return >0
45 */
46static inline int timespec_compare(struct timespec *lhs, struct timespec *rhs)
47{
48 if (lhs->tv_sec < rhs->tv_sec)
49 return -1;
50 if (lhs->tv_sec > rhs->tv_sec)
51 return 1;
52 return lhs->tv_nsec - rhs->tv_nsec;
53}
54
55static inline int timeval_compare(struct timeval *lhs, struct timeval *rhs)
56{
57 if (lhs->tv_sec < rhs->tv_sec)
58 return -1;
59 if (lhs->tv_sec > rhs->tv_sec)
60 return 1;
61 return lhs->tv_usec - rhs->tv_usec;
62}
63
41extern unsigned long mktime(const unsigned int year, const unsigned int mon, 64extern unsigned long mktime(const unsigned int year, const unsigned int mon,
42 const unsigned int day, const unsigned int hour, 65 const unsigned int day, const unsigned int hour,
43 const unsigned int min, const unsigned int sec); 66 const unsigned int min, const unsigned int sec);
@@ -48,7 +71,7 @@ extern void set_normalized_timespec(struct timespec *ts, time_t sec, long nsec);
48 * Returns true if the timespec is norm, false if denorm: 71 * Returns true if the timespec is norm, false if denorm:
49 */ 72 */
50#define timespec_valid(ts) \ 73#define timespec_valid(ts) \
51 (((ts)->tv_sec >= 0) && (((unsigned) (ts)->tv_nsec) < NSEC_PER_SEC)) 74 (((ts)->tv_sec >= 0) && (((unsigned long) (ts)->tv_nsec) < NSEC_PER_SEC))
52 75
53/* 76/*
54 * 64-bit nanosec type. Large enough to span 292+ years in nanosecond 77 * 64-bit nanosec type. Large enough to span 292+ years in nanosecond
diff --git a/include/linux/timex.h b/include/linux/timex.h
index 04a4a8cb4ed3..b7ca1204e42a 100644
--- a/include/linux/timex.h
+++ b/include/linux/timex.h
@@ -345,6 +345,9 @@ time_interpolator_reset(void)
345 345
346#endif /* !CONFIG_TIME_INTERPOLATION */ 346#endif /* !CONFIG_TIME_INTERPOLATION */
347 347
348/* Returns how long ticks are at present, in ns / 2^(SHIFT_SCALE-10). */
349extern u64 current_tick_length(void);
350
348#endif /* KERNEL */ 351#endif /* KERNEL */
349 352
350#endif /* LINUX_TIMEX_H */ 353#endif /* LINUX_TIMEX_H */
diff --git a/include/linux/tty.h b/include/linux/tty.h
index 3787102e4b12..f45cd74e6f24 100644
--- a/include/linux/tty.h
+++ b/include/linux/tty.h
@@ -57,6 +57,9 @@ struct tty_buffer {
57 unsigned char *flag_buf_ptr; 57 unsigned char *flag_buf_ptr;
58 int used; 58 int used;
59 int size; 59 int size;
60 int active;
61 int commit;
62 int read;
60 /* Data points here */ 63 /* Data points here */
61 unsigned long data[0]; 64 unsigned long data[0];
62}; 65};
@@ -64,6 +67,7 @@ struct tty_buffer {
64struct tty_bufhead { 67struct tty_bufhead {
65 struct work_struct work; 68 struct work_struct work;
66 struct semaphore pty_sem; 69 struct semaphore pty_sem;
70 spinlock_t lock;
67 struct tty_buffer *head; /* Queue head */ 71 struct tty_buffer *head; /* Queue head */
68 struct tty_buffer *tail; /* Active buffer */ 72 struct tty_buffer *tail; /* Active buffer */
69 struct tty_buffer *free; /* Free queue head */ 73 struct tty_buffer *free; /* Free queue head */
diff --git a/include/linux/tty_flip.h b/include/linux/tty_flip.h
index be1400e82482..222faf97d5f9 100644
--- a/include/linux/tty_flip.h
+++ b/include/linux/tty_flip.h
@@ -17,7 +17,7 @@ _INLINE_ int tty_insert_flip_char(struct tty_struct *tty,
17 unsigned char ch, char flag) 17 unsigned char ch, char flag)
18{ 18{
19 struct tty_buffer *tb = tty->buf.tail; 19 struct tty_buffer *tb = tty->buf.tail;
20 if (tb && tb->used < tb->size) { 20 if (tb && tb->active && tb->used < tb->size) {
21 tb->flag_buf_ptr[tb->used] = flag; 21 tb->flag_buf_ptr[tb->used] = flag;
22 tb->char_buf_ptr[tb->used++] = ch; 22 tb->char_buf_ptr[tb->used++] = ch;
23 return 1; 23 return 1;
@@ -27,6 +27,13 @@ _INLINE_ int tty_insert_flip_char(struct tty_struct *tty,
27 27
28_INLINE_ void tty_schedule_flip(struct tty_struct *tty) 28_INLINE_ void tty_schedule_flip(struct tty_struct *tty)
29{ 29{
30 unsigned long flags;
31 spin_lock_irqsave(&tty->buf.lock, flags);
32 if (tty->buf.tail != NULL) {
33 tty->buf.tail->active = 0;
34 tty->buf.tail->commit = tty->buf.tail->used;
35 }
36 spin_unlock_irqrestore(&tty->buf.lock, flags);
30 schedule_delayed_work(&tty->buf.work, 1); 37 schedule_delayed_work(&tty->buf.work, 1);
31} 38}
32 39
diff --git a/include/linux/types.h b/include/linux/types.h
index 21b9ce803644..54ae2d59e71b 100644
--- a/include/linux/types.h
+++ b/include/linux/types.h
@@ -8,6 +8,8 @@
8 (((bits)+BITS_PER_LONG-1)/BITS_PER_LONG) 8 (((bits)+BITS_PER_LONG-1)/BITS_PER_LONG)
9#define DECLARE_BITMAP(name,bits) \ 9#define DECLARE_BITMAP(name,bits) \
10 unsigned long name[BITS_TO_LONGS(bits)] 10 unsigned long name[BITS_TO_LONGS(bits)]
11
12#define BITS_PER_BYTE 8
11#endif 13#endif
12 14
13#include <linux/posix_types.h> 15#include <linux/posix_types.h>
diff --git a/include/linux/ufs_fs.h b/include/linux/ufs_fs.h
index 7a6babeca256..b0ffe4356e5a 100644
--- a/include/linux/ufs_fs.h
+++ b/include/linux/ufs_fs.h
@@ -148,11 +148,11 @@ typedef __u16 __bitwise __fs16;
148#define UFS_USEEFT ((__u16)65535) 148#define UFS_USEEFT ((__u16)65535)
149 149
150#define UFS_FSOK 0x7c269d38 150#define UFS_FSOK 0x7c269d38
151#define UFS_FSACTIVE ((char)0x00) 151#define UFS_FSACTIVE ((__s8)0x00)
152#define UFS_FSCLEAN ((char)0x01) 152#define UFS_FSCLEAN ((__s8)0x01)
153#define UFS_FSSTABLE ((char)0x02) 153#define UFS_FSSTABLE ((__s8)0x02)
154#define UFS_FSOSF1 ((char)0x03) /* is this correct for DEC OSF/1? */ 154#define UFS_FSOSF1 ((__s8)0x03) /* is this correct for DEC OSF/1? */
155#define UFS_FSBAD ((char)0xff) 155#define UFS_FSBAD ((__s8)0xff)
156 156
157/* From here to next blank line, s_flags for ufs_sb_info */ 157/* From here to next blank line, s_flags for ufs_sb_info */
158/* directory entry encoding */ 158/* directory entry encoding */
@@ -502,8 +502,7 @@ struct ufs_super_block {
502/* 502/*
503 * Convert cylinder group to base address of its global summary info. 503 * Convert cylinder group to base address of its global summary info.
504 */ 504 */
505#define fs_cs(indx) \ 505#define fs_cs(indx) s_csp[(indx)]
506 s_csp[(indx) >> uspi->s_csshift][(indx) & ~uspi->s_csmask]
507 506
508/* 507/*
509 * Cylinder group block for a file system. 508 * Cylinder group block for a file system.
@@ -913,6 +912,7 @@ extern int ufs_sync_inode (struct inode *);
913extern void ufs_delete_inode (struct inode *); 912extern void ufs_delete_inode (struct inode *);
914extern struct buffer_head * ufs_getfrag (struct inode *, unsigned, int, int *); 913extern struct buffer_head * ufs_getfrag (struct inode *, unsigned, int, int *);
915extern struct buffer_head * ufs_bread (struct inode *, unsigned, int, int *); 914extern struct buffer_head * ufs_bread (struct inode *, unsigned, int, int *);
915extern int ufs_getfrag_block (struct inode *inode, sector_t fragment, struct buffer_head *bh_result, int create);
916 916
917/* namei.c */ 917/* namei.c */
918extern struct file_operations ufs_dir_operations; 918extern struct file_operations ufs_dir_operations;
diff --git a/include/linux/ufs_fs_sb.h b/include/linux/ufs_fs_sb.h
index c1be4c226486..8ff13c160f3d 100644
--- a/include/linux/ufs_fs_sb.h
+++ b/include/linux/ufs_fs_sb.h
@@ -25,7 +25,7 @@ struct ufs_csum;
25 25
26struct ufs_sb_info { 26struct ufs_sb_info {
27 struct ufs_sb_private_info * s_uspi; 27 struct ufs_sb_private_info * s_uspi;
28 struct ufs_csum * s_csp[UFS_MAXCSBUFS]; 28 struct ufs_csum * s_csp;
29 unsigned s_bytesex; 29 unsigned s_bytesex;
30 unsigned s_flags; 30 unsigned s_flags;
31 struct buffer_head ** s_ucg; 31 struct buffer_head ** s_ucg;
diff --git a/include/linux/usb_ch9.h b/include/linux/usb_ch9.h
index ee21e6bf3867..a2aacfc7af2f 100644
--- a/include/linux/usb_ch9.h
+++ b/include/linux/usb_ch9.h
@@ -535,9 +535,11 @@ enum usb_device_state {
535 */ 535 */
536 USB_STATE_NOTATTACHED = 0, 536 USB_STATE_NOTATTACHED = 0,
537 537
538 /* the chapter 9 device states */ 538 /* chapter 9 and authentication (wireless) device states */
539 USB_STATE_ATTACHED, 539 USB_STATE_ATTACHED,
540 USB_STATE_POWERED, 540 USB_STATE_POWERED, /* wired */
541 USB_STATE_UNAUTHENTICATED, /* auth */
542 USB_STATE_RECONNECTING, /* auth */
541 USB_STATE_DEFAULT, /* limited function */ 543 USB_STATE_DEFAULT, /* limited function */
542 USB_STATE_ADDRESS, 544 USB_STATE_ADDRESS,
543 USB_STATE_CONFIGURED, /* most functions */ 545 USB_STATE_CONFIGURED, /* most functions */
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
index ce40675324bd..5208b12d5550 100644
--- a/include/linux/videodev2.h
+++ b/include/linux/videodev2.h
@@ -315,6 +315,7 @@ struct v4l2_pix_format
315#define V4L2_PIX_FMT_SN9C10X v4l2_fourcc('S','9','1','0') /* SN9C10x compression */ 315#define V4L2_PIX_FMT_SN9C10X v4l2_fourcc('S','9','1','0') /* SN9C10x compression */
316#define V4L2_PIX_FMT_PWC1 v4l2_fourcc('P','W','C','1') /* pwc older webcam */ 316#define V4L2_PIX_FMT_PWC1 v4l2_fourcc('P','W','C','1') /* pwc older webcam */
317#define V4L2_PIX_FMT_PWC2 v4l2_fourcc('P','W','C','2') /* pwc newer webcam */ 317#define V4L2_PIX_FMT_PWC2 v4l2_fourcc('P','W','C','2') /* pwc newer webcam */
318#define V4L2_PIX_FMT_ET61X251 v4l2_fourcc('E','6','2','5') /* ET61X251 compression */
318 319
319/* 320/*
320 * F O R M A T E N U M E R A T I O N 321 * F O R M A T E N U M E R A T I O N
@@ -548,7 +549,7 @@ struct v4l2_framebuffer
548struct v4l2_clip 549struct v4l2_clip
549{ 550{
550 struct v4l2_rect c; 551 struct v4l2_rect c;
551 struct v4l2_clip *next; 552 struct v4l2_clip __user *next;
552}; 553};
553 554
554struct v4l2_window 555struct v4l2_window
@@ -628,6 +629,7 @@ typedef __u64 v4l2_std_id;
628#define V4L2_STD_NTSC_M ((v4l2_std_id)0x00001000) 629#define V4L2_STD_NTSC_M ((v4l2_std_id)0x00001000)
629#define V4L2_STD_NTSC_M_JP ((v4l2_std_id)0x00002000) 630#define V4L2_STD_NTSC_M_JP ((v4l2_std_id)0x00002000)
630#define V4L2_STD_NTSC_443 ((v4l2_std_id)0x00004000) 631#define V4L2_STD_NTSC_443 ((v4l2_std_id)0x00004000)
632#define V4L2_STD_NTSC_M_KR ((v4l2_std_id)0x00008000)
631 633
632#define V4L2_STD_SECAM_B ((v4l2_std_id)0x00010000) 634#define V4L2_STD_SECAM_B ((v4l2_std_id)0x00010000)
633#define V4L2_STD_SECAM_D ((v4l2_std_id)0x00020000) 635#define V4L2_STD_SECAM_D ((v4l2_std_id)0x00020000)
@@ -660,7 +662,8 @@ typedef __u64 v4l2_std_id;
660 V4L2_STD_PAL_H |\ 662 V4L2_STD_PAL_H |\
661 V4L2_STD_PAL_I) 663 V4L2_STD_PAL_I)
662#define V4L2_STD_NTSC (V4L2_STD_NTSC_M |\ 664#define V4L2_STD_NTSC (V4L2_STD_NTSC_M |\
663 V4L2_STD_NTSC_M_JP) 665 V4L2_STD_NTSC_M_JP |\
666 V4L2_STD_NTSC_M_KR)
664#define V4L2_STD_SECAM_DK (V4L2_STD_SECAM_D |\ 667#define V4L2_STD_SECAM_DK (V4L2_STD_SECAM_D |\
665 V4L2_STD_SECAM_K |\ 668 V4L2_STD_SECAM_K |\
666 V4L2_STD_SECAM_K1) 669 V4L2_STD_SECAM_K1)