aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorDmitry Torokhov <dmitry.torokhov@gmail.com>2008-04-01 00:22:26 -0400
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2008-04-01 00:22:26 -0400
commit399f486286f44d55c4fff0e9cc5d712f2b443489 (patch)
tree0c2820b3e04232eaa96f08c1057b87728fb3e7a4 /include
parent481419ec9fbdf3f4ec5389c7e91a81b4a7ebee8d (diff)
parenta9edadbf790d72adf6ebed476cb5caf7743e7e4a (diff)
Merge master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 into for-linus
Diffstat (limited to 'include')
-rw-r--r--include/asm-arm/arch-at91/at91cap9.h7
-rw-r--r--include/asm-arm/arch-omap/board-h3.h2
-rw-r--r--include/asm-arm/arch-omap/common.h9
-rw-r--r--include/asm-arm/arch-omap/dsp_common.h8
-rw-r--r--include/asm-arm/arch-omap/gpioexpander.h11
-rw-r--r--include/asm-arm/arch-s3c2410/irqs.h2
-rw-r--r--include/asm-arm/pgtable-nommu.h2
-rw-r--r--include/asm-arm/plat-s3c/uncompress.h4
-rw-r--r--include/asm-arm/proc-fns.h4
-rw-r--r--include/asm-avr32/byteorder.h6
-rw-r--r--include/asm-frv/system.h4
-rw-r--r--include/asm-h8300/uaccess.h11
-rw-r--r--include/asm-mips/cacheflush.h2
-rw-r--r--include/asm-mips/highmem.h1
-rw-r--r--include/asm-mips/mach-ip27/cpu-feature-overrides.h4
-rw-r--r--include/asm-mips/mach-jmr3927/ioremap.h2
-rw-r--r--include/asm-mips/mach-lasat/irq.h2
-rw-r--r--include/asm-mips/pgtable-32.h2
-rw-r--r--include/asm-mips/time.h5
-rw-r--r--include/asm-parisc/elf.h22
-rw-r--r--include/asm-parisc/fixmap.h9
-rw-r--r--include/asm-parisc/futex.h10
-rw-r--r--include/asm-parisc/pdc.h3
-rw-r--r--include/asm-parisc/pgalloc.h4
-rw-r--r--include/asm-parisc/pgtable.h8
-rw-r--r--include/asm-parisc/unistd.h5
-rw-r--r--include/asm-powerpc/pgtable-ppc32.h8
-rw-r--r--include/asm-ppc/pgtable.h8
-rw-r--r--include/asm-sh/byteorder.h15
-rw-r--r--include/asm-sh/posix_types.h6
-rw-r--r--include/asm-sparc64/backoff.h3
-rw-r--r--include/asm-sparc64/cpudata.h2
-rw-r--r--include/asm-sparc64/dcu.h41
-rw-r--r--include/asm-sparc64/hvtramp.h2
-rw-r--r--include/asm-sparc64/irq.h1
-rw-r--r--include/asm-sparc64/pgtable.h12
-rw-r--r--include/asm-sparc64/processor.h3
-rw-r--r--include/asm-sparc64/spitfire.h2
-rw-r--r--include/asm-sparc64/stacktrace.h6
-rw-r--r--include/asm-sparc64/timer.h9
-rw-r--r--include/asm-x86/cmpxchg_32.h32
-rw-r--r--include/asm-x86/e820_32.h2
-rw-r--r--include/asm-x86/e820_64.h2
-rw-r--r--include/asm-x86/io_32.h6
-rw-r--r--include/asm-x86/io_64.h6
-rw-r--r--include/asm-x86/lguest_hcall.h2
-rw-r--r--include/asm-x86/mach-rdc321x/gpio.h9
-rw-r--r--include/asm-x86/mach-rdc321x/rdc321x_defs.h8
-rw-r--r--include/asm-x86/page.h4
-rw-r--r--include/asm-x86/pgtable.h2
-rw-r--r--include/asm-x86/sync_bitops.h9
-rw-r--r--include/linux/Kbuild4
-rw-r--r--include/linux/bitops.h40
-rw-r--r--include/linux/compat.h4
-rw-r--r--include/linux/cpuidle.h4
-rw-r--r--include/linux/dmaengine.h2
-rw-r--r--include/linux/ethtool.h1
-rw-r--r--include/linux/exportfs.h4
-rw-r--r--include/linux/genhd.h30
-rw-r--r--include/linux/hardirq.h7
-rw-r--r--include/linux/ide.h2
-rw-r--r--include/linux/in.h2
-rw-r--r--include/linux/jbd.h11
-rw-r--r--include/linux/lguest_launcher.h6
-rw-r--r--include/linux/libata.h10
-rw-r--r--include/linux/memstick.h1
-rw-r--r--include/linux/mm.h13
-rw-r--r--include/linux/mount.h2
-rw-r--r--include/linux/netfilter/nfnetlink_compat.h2
-rw-r--r--include/linux/pci.h7
-rw-r--r--include/linux/pkt_cls.h8
-rw-r--r--include/linux/pmu.h9
-rw-r--r--include/linux/pnp.h2
-rw-r--r--include/linux/proc_fs.h3
-rw-r--r--include/linux/ps2esdi.h98
-rw-r--r--include/linux/rcupreempt.h4
-rw-r--r--include/linux/sched.h10
-rw-r--r--include/linux/security.h3
-rw-r--r--include/linux/topology.h3
-rw-r--r--include/linux/usb/quirks.h3
-rw-r--r--include/linux/usb_usual.h4
-rw-r--r--include/linux/virtio.h5
-rw-r--r--include/net/bluetooth/bluetooth.h2
-rw-r--r--include/net/dst.h23
-rw-r--r--include/net/irda/irttp.h6
-rw-r--r--include/net/neighbour.h4
-rw-r--r--include/net/net_namespace.h1
-rw-r--r--include/net/netfilter/nf_conntrack_extend.h1
-rw-r--r--include/net/sctp/sctp.h12
-rw-r--r--include/net/xfrm.h31
90 files changed, 393 insertions, 340 deletions
diff --git a/include/asm-arm/arch-at91/at91cap9.h b/include/asm-arm/arch-at91/at91cap9.h
index 73e1fcf4a0aa..bac83adb5050 100644
--- a/include/asm-arm/arch-at91/at91cap9.h
+++ b/include/asm-arm/arch-at91/at91cap9.h
@@ -97,12 +97,17 @@
97#define AT91_PIOD (0xfffff800 - AT91_BASE_SYS) 97#define AT91_PIOD (0xfffff800 - AT91_BASE_SYS)
98#define AT91_PMC (0xfffffc00 - AT91_BASE_SYS) 98#define AT91_PMC (0xfffffc00 - AT91_BASE_SYS)
99#define AT91_RSTC (0xfffffd00 - AT91_BASE_SYS) 99#define AT91_RSTC (0xfffffd00 - AT91_BASE_SYS)
100#define AT91_SHDC (0xfffffd10 - AT91_BASE_SYS) 100#define AT91_SHDWC (0xfffffd10 - AT91_BASE_SYS)
101#define AT91_RTT (0xfffffd20 - AT91_BASE_SYS) 101#define AT91_RTT (0xfffffd20 - AT91_BASE_SYS)
102#define AT91_PIT (0xfffffd30 - AT91_BASE_SYS) 102#define AT91_PIT (0xfffffd30 - AT91_BASE_SYS)
103#define AT91_WDT (0xfffffd40 - AT91_BASE_SYS) 103#define AT91_WDT (0xfffffd40 - AT91_BASE_SYS)
104#define AT91_GPBR (0xfffffd50 - AT91_BASE_SYS) 104#define AT91_GPBR (0xfffffd50 - AT91_BASE_SYS)
105 105
106#define AT91_USART0 AT91CAP9_BASE_US0
107#define AT91_USART1 AT91CAP9_BASE_US1
108#define AT91_USART2 AT91CAP9_BASE_US2
109
110
106/* 111/*
107 * Internal Memory. 112 * Internal Memory.
108 */ 113 */
diff --git a/include/asm-arm/arch-omap/board-h3.h b/include/asm-arm/arch-omap/board-h3.h
index 1c2b55c61ca0..0f6404435ea8 100644
--- a/include/asm-arm/arch-omap/board-h3.h
+++ b/include/asm-arm/arch-omap/board-h3.h
@@ -36,7 +36,7 @@
36 36
37#define NR_IRQS (MAXIRQNUM + 1) 37#define NR_IRQS (MAXIRQNUM + 1)
38 38
39extern void __init h3_mmc_init(void); 39extern void h3_mmc_init(void);
40extern void h3_mmc_slot_cover_handler(void *arg, int state); 40extern void h3_mmc_slot_cover_handler(void *arg, int state);
41 41
42#endif /* __ASM_ARCH_OMAP_H3_H */ 42#endif /* __ASM_ARCH_OMAP_H3_H */
diff --git a/include/asm-arm/arch-omap/common.h b/include/asm-arm/arch-omap/common.h
index 442aecbb8f44..224e009e5296 100644
--- a/include/asm-arm/arch-omap/common.h
+++ b/include/asm-arm/arch-omap/common.h
@@ -27,9 +27,7 @@
27#ifndef __ARCH_ARM_MACH_OMAP_COMMON_H 27#ifndef __ARCH_ARM_MACH_OMAP_COMMON_H
28#define __ARCH_ARM_MACH_OMAP_COMMON_H 28#define __ARCH_ARM_MACH_OMAP_COMMON_H
29 29
30#ifdef CONFIG_I2C_OMAP
31#include <linux/i2c.h> 30#include <linux/i2c.h>
32#endif
33 31
34struct sys_timer; 32struct sys_timer;
35 33
@@ -41,7 +39,12 @@ extern int omap_register_i2c_bus(int bus_id, u32 clkrate,
41 struct i2c_board_info const *info, 39 struct i2c_board_info const *info,
42 unsigned len); 40 unsigned len);
43#else 41#else
44#define omap_register_i2c_bus(a, b, c, d) 0 42static inline int omap_register_i2c_bus(int bus_id, u32 clkrate,
43 struct i2c_board_info const *info,
44 unsigned len)
45{
46 return 0;
47}
45#endif 48#endif
46 49
47#endif /* __ARCH_ARM_MACH_OMAP_COMMON_H */ 50#endif /* __ARCH_ARM_MACH_OMAP_COMMON_H */
diff --git a/include/asm-arm/arch-omap/dsp_common.h b/include/asm-arm/arch-omap/dsp_common.h
index c61f868f24ee..da97736f3efa 100644
--- a/include/asm-arm/arch-omap/dsp_common.h
+++ b/include/asm-arm/arch-omap/dsp_common.h
@@ -24,11 +24,17 @@
24#ifndef ASM_ARCH_DSP_COMMON_H 24#ifndef ASM_ARCH_DSP_COMMON_H
25#define ASM_ARCH_DSP_COMMON_H 25#define ASM_ARCH_DSP_COMMON_H
26 26
27#ifdef CONFIG_ARCH_OMAP1 27#if defined(CONFIG_ARCH_OMAP1) && defined(CONFIG_OMAP_MMU_FWK)
28extern void omap_dsp_request_mpui(void); 28extern void omap_dsp_request_mpui(void);
29extern void omap_dsp_release_mpui(void); 29extern void omap_dsp_release_mpui(void);
30extern int omap_dsp_request_mem(void); 30extern int omap_dsp_request_mem(void);
31extern int omap_dsp_release_mem(void); 31extern int omap_dsp_release_mem(void);
32#else
33static inline int omap_dsp_request_mem(void)
34{
35 return 0;
36}
37#define omap_dsp_release_mem() do {} while (0)
32#endif 38#endif
33 39
34#endif /* ASM_ARCH_DSP_COMMON_H */ 40#endif /* ASM_ARCH_DSP_COMMON_H */
diff --git a/include/asm-arm/arch-omap/gpioexpander.h b/include/asm-arm/arch-omap/gpioexpander.h
index 7a43b0a912e4..4eed1f80e2fb 100644
--- a/include/asm-arm/arch-omap/gpioexpander.h
+++ b/include/asm-arm/arch-omap/gpioexpander.h
@@ -18,7 +18,18 @@
18 18
19/* Function Prototypes for GPIO Expander functions */ 19/* Function Prototypes for GPIO Expander functions */
20 20
21#ifdef CONFIG_GPIOEXPANDER_OMAP
21int read_gpio_expa(u8 *, int); 22int read_gpio_expa(u8 *, int);
22int write_gpio_expa(u8 , int); 23int write_gpio_expa(u8 , int);
24#else
25static inline int read_gpio_expa(u8 *val, int addr)
26{
27 return 0;
28}
29static inline int write_gpio_expa(u8 val, int addr)
30{
31 return 0;
32}
33#endif
23 34
24#endif /* __ASM_ARCH_OMAP_GPIOEXPANDER_H */ 35#endif /* __ASM_ARCH_OMAP_GPIOEXPANDER_H */
diff --git a/include/asm-arm/arch-s3c2410/irqs.h b/include/asm-arm/arch-s3c2410/irqs.h
index d858b3eb5547..f5435d8c3769 100644
--- a/include/asm-arm/arch-s3c2410/irqs.h
+++ b/include/asm-arm/arch-s3c2410/irqs.h
@@ -85,7 +85,7 @@
85#define IRQ_EINT23 S3C2410_IRQ(51) 85#define IRQ_EINT23 S3C2410_IRQ(51)
86 86
87 87
88#define IRQ_EINT(x) S3C2410_IRQ((x >= 4) ? (IRQ_EINT4 + (x) - 4) : (S3C2410_IRQ(0) + (x))) 88#define IRQ_EINT(x) (((x) >= 4) ? (IRQ_EINT4 + (x) - 4) : (IRQ_EINT0 + (x)))
89 89
90#define IRQ_LCD_FIFO S3C2410_IRQ(52) 90#define IRQ_LCD_FIFO S3C2410_IRQ(52)
91#define IRQ_LCD_FRAME S3C2410_IRQ(53) 91#define IRQ_LCD_FRAME S3C2410_IRQ(53)
diff --git a/include/asm-arm/pgtable-nommu.h b/include/asm-arm/pgtable-nommu.h
index 33c83dd87965..2e5868bbe03b 100644
--- a/include/asm-arm/pgtable-nommu.h
+++ b/include/asm-arm/pgtable-nommu.h
@@ -92,6 +92,8 @@ extern unsigned int kobjsize(const void *objp);
92 92
93#define FIRST_USER_ADDRESS (0) 93#define FIRST_USER_ADDRESS (0)
94 94
95#include <asm-generic/pgtable.h>
96
95#else 97#else
96 98
97/* 99/*
diff --git a/include/asm-arm/plat-s3c/uncompress.h b/include/asm-arm/plat-s3c/uncompress.h
index b5e6208175d1..19b9eda39485 100644
--- a/include/asm-arm/plat-s3c/uncompress.h
+++ b/include/asm-arm/plat-s3c/uncompress.h
@@ -27,8 +27,8 @@ static void arch_detect_cpu(void);
27 27
28/* defines for UART registers */ 28/* defines for UART registers */
29 29
30#include "asm/plat-s3c/regs-serial.h" 30#include <asm/plat-s3c/regs-serial.h>
31#include "asm/plat-s3c/regs-watchdog.h" 31#include <asm/plat-s3c/regs-watchdog.h>
32 32
33/* working in physical space... */ 33/* working in physical space... */
34#undef S3C2410_WDOGREG 34#undef S3C2410_WDOGREG
diff --git a/include/asm-arm/proc-fns.h b/include/asm-arm/proc-fns.h
index a4ce457199d3..75ec760f4c74 100644
--- a/include/asm-arm/proc-fns.h
+++ b/include/asm-arm/proc-fns.h
@@ -214,9 +214,9 @@
214#ifndef __ASSEMBLY__ 214#ifndef __ASSEMBLY__
215 215
216#ifndef MULTI_CPU 216#ifndef MULTI_CPU
217#include "asm/cpu-single.h" 217#include <asm/cpu-single.h>
218#else 218#else
219#include "asm/cpu-multi32.h" 219#include <asm/cpu-multi32.h>
220#endif 220#endif
221 221
222#include <asm/memory.h> 222#include <asm/memory.h>
diff --git a/include/asm-avr32/byteorder.h b/include/asm-avr32/byteorder.h
index 402ff4125cdc..d77b48ba7338 100644
--- a/include/asm-avr32/byteorder.h
+++ b/include/asm-avr32/byteorder.h
@@ -12,8 +12,14 @@ extern unsigned long __builtin_bswap_32(unsigned long x);
12extern unsigned short __builtin_bswap_16(unsigned short x); 12extern unsigned short __builtin_bswap_16(unsigned short x);
13#endif 13#endif
14 14
15/*
16 * avr32-linux-gcc versions earlier than 4.2 improperly sign-extends
17 * the result.
18 */
19#if !(__GNUC__ == 4 && __GNUC_MINOR__ < 2)
15#define __arch__swab32(x) __builtin_bswap_32(x) 20#define __arch__swab32(x) __builtin_bswap_32(x)
16#define __arch__swab16(x) __builtin_bswap_16(x) 21#define __arch__swab16(x) __builtin_bswap_16(x)
22#endif
17 23
18#if !defined(__STRICT_ANSI__) || defined(__KERNEL__) 24#if !defined(__STRICT_ANSI__) || defined(__KERNEL__)
19# define __BYTEORDER_HAS_U64__ 25# define __BYTEORDER_HAS_U64__
diff --git a/include/asm-frv/system.h b/include/asm-frv/system.h
index b400cea81487..2c57f4734746 100644
--- a/include/asm-frv/system.h
+++ b/include/asm-frv/system.h
@@ -234,7 +234,7 @@ extern void free_initmem(void);
234 break; \ 234 break; \
235 \ 235 \
236 default: \ 236 default: \
237 __xg_orig = 0; \ 237 __xg_orig = (__typeof__(__xg_orig))0; \
238 asm volatile("break"); \ 238 asm volatile("break"); \
239 break; \ 239 break; \
240 } \ 240 } \
@@ -259,7 +259,7 @@ extern uint32_t __cmpxchg_32(uint32_t *v, uint32_t test, uint32_t new);
259 (__force uint32_t)__xg_test, \ 259 (__force uint32_t)__xg_test, \
260 (__force uint32_t)__xg_new); break; \ 260 (__force uint32_t)__xg_new); break; \
261 default: \ 261 default: \
262 __xg_orig = 0; \ 262 __xg_orig = (__typeof__(__xg_orig))0; \
263 asm volatile("break"); \ 263 asm volatile("break"); \
264 break; \ 264 break; \
265 } \ 265 } \
diff --git a/include/asm-h8300/uaccess.h b/include/asm-h8300/uaccess.h
index a22350ec271a..356068cd0879 100644
--- a/include/asm-h8300/uaccess.h
+++ b/include/asm-h8300/uaccess.h
@@ -91,22 +91,19 @@ extern int __put_user_bad(void);
91#define get_user(x, ptr) \ 91#define get_user(x, ptr) \
92({ \ 92({ \
93 int __gu_err = 0; \ 93 int __gu_err = 0; \
94 uint32_t __gu_val = 0; \ 94 typeof(*(ptr)) __gu_val = *ptr; \
95 switch (sizeof(*(ptr))) { \ 95 switch (sizeof(*(ptr))) { \
96 case 1: \ 96 case 1: \
97 case 2: \ 97 case 2: \
98 case 4: \ 98 case 4: \
99 __gu_val = *(ptr); \ 99 case 8: \
100 break; \
101 case 8: \
102 memcpy(&__gu_val, ptr, sizeof (*(ptr))); \
103 break; \ 100 break; \
104 default: \ 101 default: \
105 __gu_val = 0; \
106 __gu_err = __get_user_bad(); \ 102 __gu_err = __get_user_bad(); \
103 __gu_val = 0; \
107 break; \ 104 break; \
108 } \ 105 } \
109 (x) = (typeof(*(ptr)))__gu_val; \ 106 (x) = __gu_val; \
110 __gu_err; \ 107 __gu_err; \
111}) 108})
112#define __get_user(x, ptr) get_user(x, ptr) 109#define __get_user(x, ptr) get_user(x, ptr)
diff --git a/include/asm-mips/cacheflush.h b/include/asm-mips/cacheflush.h
index 4933b4947ed0..01e7eadc97e2 100644
--- a/include/asm-mips/cacheflush.h
+++ b/include/asm-mips/cacheflush.h
@@ -93,7 +93,7 @@ extern void (*flush_data_cache_page)(unsigned long addr);
93 clear_bit(PG_dcache_dirty, &(page)->flags) 93 clear_bit(PG_dcache_dirty, &(page)->flags)
94 94
95/* Run kernel code uncached, useful for cache probing functions. */ 95/* Run kernel code uncached, useful for cache probing functions. */
96unsigned long __init run_uncached(void *func); 96unsigned long run_uncached(void *func);
97 97
98extern void *kmap_coherent(struct page *page, unsigned long addr); 98extern void *kmap_coherent(struct page *page, unsigned long addr);
99extern void kunmap_coherent(void); 99extern void kunmap_coherent(void);
diff --git a/include/asm-mips/highmem.h b/include/asm-mips/highmem.h
index 4d6bd5c31c7b..4374ab2adc75 100644
--- a/include/asm-mips/highmem.h
+++ b/include/asm-mips/highmem.h
@@ -39,7 +39,6 @@ extern pte_t *pkmap_page_table;
39 * easily, subsequent pte tables have to be allocated in one physical 39 * easily, subsequent pte tables have to be allocated in one physical
40 * chunk of RAM. 40 * chunk of RAM.
41 */ 41 */
42#define PKMAP_BASE (0xfe000000UL)
43#define LAST_PKMAP 1024 42#define LAST_PKMAP 1024
44#define LAST_PKMAP_MASK (LAST_PKMAP-1) 43#define LAST_PKMAP_MASK (LAST_PKMAP-1)
45#define PKMAP_NR(virt) ((virt-PKMAP_BASE) >> PAGE_SHIFT) 44#define PKMAP_NR(virt) ((virt-PKMAP_BASE) >> PAGE_SHIFT)
diff --git a/include/asm-mips/mach-ip27/cpu-feature-overrides.h b/include/asm-mips/mach-ip27/cpu-feature-overrides.h
index fe076380c189..7d3112b148d9 100644
--- a/include/asm-mips/mach-ip27/cpu-feature-overrides.h
+++ b/include/asm-mips/mach-ip27/cpu-feature-overrides.h
@@ -34,7 +34,11 @@
34#define cpu_has_64bits 1 34#define cpu_has_64bits 1
35 35
36#define cpu_has_4kex 1 36#define cpu_has_4kex 1
37#define cpu_has_3k_cache 0
38#define cpu_has_6k_cache 0
37#define cpu_has_4k_cache 1 39#define cpu_has_4k_cache 1
40#define cpu_has_8k_cache 0
41#define cpu_has_tx39_cache 0
38 42
39#define cpu_has_inclusive_pcaches 1 43#define cpu_has_inclusive_pcaches 1
40 44
diff --git a/include/asm-mips/mach-jmr3927/ioremap.h b/include/asm-mips/mach-jmr3927/ioremap.h
index aa131ad7f717..29989ff10d66 100644
--- a/include/asm-mips/mach-jmr3927/ioremap.h
+++ b/include/asm-mips/mach-jmr3927/ioremap.h
@@ -25,7 +25,7 @@ static inline void __iomem *plat_ioremap(phys_t offset, unsigned long size,
25{ 25{
26#define TXX9_DIRECTMAP_BASE 0xff000000ul 26#define TXX9_DIRECTMAP_BASE 0xff000000ul
27 if (offset >= TXX9_DIRECTMAP_BASE && 27 if (offset >= TXX9_DIRECTMAP_BASE &&
28 offset < TXX9_DIRECTMAP_BASE + 0xf0000) 28 offset < TXX9_DIRECTMAP_BASE + 0xff0000)
29 return (void __iomem *)offset; 29 return (void __iomem *)offset;
30 return NULL; 30 return NULL;
31} 31}
diff --git a/include/asm-mips/mach-lasat/irq.h b/include/asm-mips/mach-lasat/irq.h
index da75f89f3723..3a282419d5f9 100644
--- a/include/asm-mips/mach-lasat/irq.h
+++ b/include/asm-mips/mach-lasat/irq.h
@@ -1,7 +1,7 @@
1#ifndef _ASM_MACH_LASAT_IRQ_H 1#ifndef _ASM_MACH_LASAT_IRQ_H
2#define _ASM_MACH_LASAT_IRQ_H 2#define _ASM_MACH_LASAT_IRQ_H
3 3
4#define LASAT_CASCADE_IRQ (MIPS_CPU_IRQ_BASE + 0) 4#define LASAT_CASCADE_IRQ (MIPS_CPU_IRQ_BASE + 2)
5 5
6#define LASAT_IRQ_BASE 8 6#define LASAT_IRQ_BASE 8
7#define LASAT_IRQ_END 23 7#define LASAT_IRQ_END 23
diff --git a/include/asm-mips/pgtable-32.h b/include/asm-mips/pgtable-32.h
index a0947092d0e0..ceefe027c761 100644
--- a/include/asm-mips/pgtable-32.h
+++ b/include/asm-mips/pgtable-32.h
@@ -65,6 +65,8 @@ extern int add_temporary_entry(unsigned long entrylo0, unsigned long entrylo1,
65 65
66#define VMALLOC_START MAP_BASE 66#define VMALLOC_START MAP_BASE
67 67
68#define PKMAP_BASE (0xfe000000UL)
69
68#ifdef CONFIG_HIGHMEM 70#ifdef CONFIG_HIGHMEM
69# define VMALLOC_END (PKMAP_BASE-2*PAGE_SIZE) 71# define VMALLOC_END (PKMAP_BASE-2*PAGE_SIZE)
70#else 72#else
diff --git a/include/asm-mips/time.h b/include/asm-mips/time.h
index a8fd16e1981f..d3bd5c5aa2ec 100644
--- a/include/asm-mips/time.h
+++ b/include/asm-mips/time.h
@@ -64,10 +64,11 @@ static inline int mips_clockevent_init(void)
64 * Initialize the count register as a clocksource 64 * Initialize the count register as a clocksource
65 */ 65 */
66#ifdef CONFIG_CEVT_R4K 66#ifdef CONFIG_CEVT_R4K
67extern void init_mips_clocksource(void); 67extern int init_mips_clocksource(void);
68#else 68#else
69static inline void init_mips_clocksource(void) 69static inline int init_mips_clocksource(void)
70{ 70{
71 return 0;
71} 72}
72#endif 73#endif
73 74
diff --git a/include/asm-parisc/elf.h b/include/asm-parisc/elf.h
index ce0c0d844c7d..d0a4a8262818 100644
--- a/include/asm-parisc/elf.h
+++ b/include/asm-parisc/elf.h
@@ -204,7 +204,7 @@ typedef struct elf64_fdesc {
204/* 204/*
205 * The following definitions are those for 32-bit ELF binaries on a 32-bit 205 * The following definitions are those for 32-bit ELF binaries on a 32-bit
206 * kernel and for 64-bit binaries on a 64-bit kernel. To run 32-bit binaries 206 * kernel and for 64-bit binaries on a 64-bit kernel. To run 32-bit binaries
207 * on a 64-bit kernel, arch/parisc64/kernel/binfmt_elf32.c defines these 207 * on a 64-bit kernel, arch/parisc/kernel/binfmt_elf32.c defines these
208 * macros appropriately and then #includes binfmt_elf.c, which then includes 208 * macros appropriately and then #includes binfmt_elf.c, which then includes
209 * this file. 209 * this file.
210 */ 210 */
@@ -216,26 +216,25 @@ typedef struct elf64_fdesc {
216 * Note that this header file is used by default in fs/binfmt_elf.c. So 216 * Note that this header file is used by default in fs/binfmt_elf.c. So
217 * the following macros are for the default case. However, for the 64 217 * the following macros are for the default case. However, for the 64
218 * bit kernel we also support 32 bit parisc binaries. To do that 218 * bit kernel we also support 32 bit parisc binaries. To do that
219 * arch/parisc64/kernel/binfmt_elf32.c defines its own set of these 219 * arch/parisc/kernel/binfmt_elf32.c defines its own set of these
220 * macros, and then it includes fs/binfmt_elf.c to provide an alternate 220 * macros, and then it includes fs/binfmt_elf.c to provide an alternate
221 * elf binary handler for 32 bit binaries (on the 64 bit kernel). 221 * elf binary handler for 32 bit binaries (on the 64 bit kernel).
222 */ 222 */
223#ifdef CONFIG_64BIT 223#ifdef CONFIG_64BIT
224#define ELF_CLASS ELFCLASS64 224#define ELF_CLASS ELFCLASS64
225#else 225#else
226#define ELF_CLASS ELFCLASS32 226#define ELF_CLASS ELFCLASS32
227#endif 227#endif
228 228
229typedef unsigned long elf_greg_t; 229typedef unsigned long elf_greg_t;
230 230
231/* This yields a string that ld.so will use to load implementation 231/*
232 specific libraries for optimization. This is more specific in 232 * This yields a string that ld.so will use to load implementation
233 intent than poking at uname or /proc/cpuinfo. 233 * specific libraries for optimization. This is more specific in
234 234 * intent than poking at uname or /proc/cpuinfo.
235 For the moment, we have only optimizations for the Intel generations, 235 */
236 but that could change... */
237 236
238#define ELF_PLATFORM ("PARISC\0" /*+((boot_cpu_data.x86-3)*5) */) 237#define ELF_PLATFORM ("PARISC\0")
239 238
240#define SET_PERSONALITY(ex, ibcs2) \ 239#define SET_PERSONALITY(ex, ibcs2) \
241 current->personality = PER_LINUX; \ 240 current->personality = PER_LINUX; \
@@ -310,7 +309,7 @@ struct pt_regs; /* forward declaration... */
310#define ELF_OSABI ELFOSABI_LINUX 309#define ELF_OSABI ELFOSABI_LINUX
311 310
312/* %r23 is set by ld.so to a pointer to a function which might be 311/* %r23 is set by ld.so to a pointer to a function which might be
313 registered using atexit. This provides a mean for the dynamic 312 registered using atexit. This provides a means for the dynamic
314 linker to call DT_FINI functions for shared libraries that have 313 linker to call DT_FINI functions for shared libraries that have
315 been loaded before the code runs. 314 been loaded before the code runs.
316 315
@@ -339,6 +338,5 @@ struct pt_regs; /* forward declaration... */
339 but it's not easy, and we've already done it here. */ 338 but it's not easy, and we've already done it here. */
340 339
341#define ELF_HWCAP 0 340#define ELF_HWCAP 0
342/* (boot_cpu_data.x86_capability) */
343 341
344#endif 342#endif
diff --git a/include/asm-parisc/fixmap.h b/include/asm-parisc/fixmap.h
index a5caf4b122b7..de3fe3a18229 100644
--- a/include/asm-parisc/fixmap.h
+++ b/include/asm-parisc/fixmap.h
@@ -20,4 +20,11 @@
20#define KERNEL_MAP_START (GATEWAY_PAGE_SIZE) 20#define KERNEL_MAP_START (GATEWAY_PAGE_SIZE)
21#define KERNEL_MAP_END (TMPALIAS_MAP_START) 21#define KERNEL_MAP_END (TMPALIAS_MAP_START)
22 22
23#endif 23#ifndef __ASSEMBLY__
24extern void *vmalloc_start;
25#define PCXL_DMA_MAP_SIZE (8*1024*1024)
26#define VMALLOC_START ((unsigned long)vmalloc_start)
27#define VMALLOC_END (KERNEL_MAP_END)
28#endif /*__ASSEMBLY__*/
29
30#endif /*_ASM_FIXMAP_H*/
diff --git a/include/asm-parisc/futex.h b/include/asm-parisc/futex.h
index dbee6e60aa81..fdc6d055ef7f 100644
--- a/include/asm-parisc/futex.h
+++ b/include/asm-parisc/futex.h
@@ -56,6 +56,12 @@ futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval)
56 int err = 0; 56 int err = 0;
57 int uval; 57 int uval;
58 58
59 /* futex.c wants to do a cmpxchg_inatomic on kernel NULL, which is
60 * our gateway page, and causes no end of trouble...
61 */
62 if (segment_eq(KERNEL_DS, get_fs()) && !uaddr)
63 return -EFAULT;
64
59 if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int))) 65 if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int)))
60 return -EFAULT; 66 return -EFAULT;
61 67
@@ -67,5 +73,5 @@ futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval)
67 return uval; 73 return uval;
68} 74}
69 75
70#endif 76#endif /*__KERNEL__*/
71#endif 77#endif /*_ASM_PARISC_FUTEX_H*/
diff --git a/include/asm-parisc/pdc.h b/include/asm-parisc/pdc.h
index deda8c311373..9eaa794c3e4a 100644
--- a/include/asm-parisc/pdc.h
+++ b/include/asm-parisc/pdc.h
@@ -645,8 +645,7 @@ int pdc_soft_power_button(int sw_control);
645void pdc_io_reset(void); 645void pdc_io_reset(void);
646void pdc_io_reset_devices(void); 646void pdc_io_reset_devices(void);
647int pdc_iodc_getc(void); 647int pdc_iodc_getc(void);
648int pdc_iodc_print(unsigned char *str, unsigned count); 648int pdc_iodc_print(const unsigned char *str, unsigned count);
649void pdc_printf(const char *fmt, ...);
650 649
651void pdc_emergency_unlock(void); 650void pdc_emergency_unlock(void);
652int pdc_sti_call(unsigned long func, unsigned long flags, 651int pdc_sti_call(unsigned long func, unsigned long flags,
diff --git a/include/asm-parisc/pgalloc.h b/include/asm-parisc/pgalloc.h
index 3996dfc30a3f..fc987a1c12a8 100644
--- a/include/asm-parisc/pgalloc.h
+++ b/include/asm-parisc/pgalloc.h
@@ -138,10 +138,10 @@ static inline void pte_free_kernel(struct mm_struct *mm, pte_t *pte)
138 free_page((unsigned long)pte); 138 free_page((unsigned long)pte);
139} 139}
140 140
141static inline void pte_free_kernel(struct mm_struct *mm, struct page *pte) 141static inline void pte_free(struct mm_struct *mm, struct page *pte)
142{ 142{
143 pgtable_page_dtor(pte); 143 pgtable_page_dtor(pte);
144 pte_free_kernel(page_address((pte)); 144 pte_free_kernel(mm, page_address(pte));
145} 145}
146 146
147#define check_pgt_cache() do { } while (0) 147#define check_pgt_cache() do { } while (0)
diff --git a/include/asm-parisc/pgtable.h b/include/asm-parisc/pgtable.h
index cd0fa4f73320..dc86adbec916 100644
--- a/include/asm-parisc/pgtable.h
+++ b/include/asm-parisc/pgtable.h
@@ -116,14 +116,6 @@
116 116
117#define FIRST_USER_ADDRESS 0 117#define FIRST_USER_ADDRESS 0
118 118
119#ifndef __ASSEMBLY__
120extern void *vmalloc_start;
121#define PCXL_DMA_MAP_SIZE (8*1024*1024)
122#define VMALLOC_START ((unsigned long)vmalloc_start)
123/* this is a fixmap remnant, see fixmap.h */
124#define VMALLOC_END (KERNEL_MAP_END)
125#endif
126
127/* NB: The tlb miss handlers make certain assumptions about the order */ 119/* NB: The tlb miss handlers make certain assumptions about the order */
128/* of the following bits, so be careful (One example, bits 25-31 */ 120/* of the following bits, so be careful (One example, bits 25-31 */
129/* are moved together in one instruction). */ 121/* are moved together in one instruction). */
diff --git a/include/asm-parisc/unistd.h b/include/asm-parisc/unistd.h
index 081b4ae61866..a7d857f0e4f4 100644
--- a/include/asm-parisc/unistd.h
+++ b/include/asm-parisc/unistd.h
@@ -798,8 +798,11 @@
798#define __NR_timerfd (__NR_Linux + 303) 798#define __NR_timerfd (__NR_Linux + 303)
799#define __NR_eventfd (__NR_Linux + 304) 799#define __NR_eventfd (__NR_Linux + 304)
800#define __NR_fallocate (__NR_Linux + 305) 800#define __NR_fallocate (__NR_Linux + 305)
801#define __NR_timerfd_create (__NR_Linux + 306)
802#define __NR_timerfd_settime (__NR_Linux + 307)
803#define __NR_timerfd_gettime (__NR_Linux + 308)
801 804
802#define __NR_Linux_syscalls (__NR_fallocate + 1) 805#define __NR_Linux_syscalls (__NR_timerfd_gettime + 1)
803 806
804 807
805#define __IGNORE_select /* newselect */ 808#define __IGNORE_select /* newselect */
diff --git a/include/asm-powerpc/pgtable-ppc32.h b/include/asm-powerpc/pgtable-ppc32.h
index d1332bbcbd9b..2c79f550272b 100644
--- a/include/asm-powerpc/pgtable-ppc32.h
+++ b/include/asm-powerpc/pgtable-ppc32.h
@@ -339,14 +339,6 @@ extern int icache_44x_need_flush;
339#define _PMD_PAGE_MASK 0x000c 339#define _PMD_PAGE_MASK 0x000c
340#define _PMD_PAGE_8M 0x000c 340#define _PMD_PAGE_8M 0x000c
341 341
342/*
343 * The 8xx TLB miss handler allegedly sets _PAGE_ACCESSED in the PTE
344 * for an address even if _PAGE_PRESENT is not set, as a performance
345 * optimization. This is a bug if you ever want to use swap unless
346 * _PAGE_ACCESSED is 2, which it isn't, or unless you have 8xx-specific
347 * definitions for __swp_entry etc. below, which would be gross.
348 * -- paulus
349 */
350#define _PTE_NONE_MASK _PAGE_ACCESSED 342#define _PTE_NONE_MASK _PAGE_ACCESSED
351 343
352#else /* CONFIG_6xx */ 344#else /* CONFIG_6xx */
diff --git a/include/asm-ppc/pgtable.h b/include/asm-ppc/pgtable.h
index 69347bdbb401..70435d32129a 100644
--- a/include/asm-ppc/pgtable.h
+++ b/include/asm-ppc/pgtable.h
@@ -299,14 +299,6 @@ extern unsigned long ioremap_bot, ioremap_base;
299#define _PMD_PAGE_MASK 0x000c 299#define _PMD_PAGE_MASK 0x000c
300#define _PMD_PAGE_8M 0x000c 300#define _PMD_PAGE_8M 0x000c
301 301
302/*
303 * The 8xx TLB miss handler allegedly sets _PAGE_ACCESSED in the PTE
304 * for an address even if _PAGE_PRESENT is not set, as a performance
305 * optimization. This is a bug if you ever want to use swap unless
306 * _PAGE_ACCESSED is 2, which it isn't, or unless you have 8xx-specific
307 * definitions for __swp_entry etc. below, which would be gross.
308 * -- paulus
309 */
310#define _PTE_NONE_MASK _PAGE_ACCESSED 302#define _PTE_NONE_MASK _PAGE_ACCESSED
311 303
312#else /* CONFIG_6xx */ 304#else /* CONFIG_6xx */
diff --git a/include/asm-sh/byteorder.h b/include/asm-sh/byteorder.h
index 0eb9904b6545..4c13e6117563 100644
--- a/include/asm-sh/byteorder.h
+++ b/include/asm-sh/byteorder.h
@@ -11,13 +11,13 @@
11static inline __attribute_const__ __u32 ___arch__swab32(__u32 x) 11static inline __attribute_const__ __u32 ___arch__swab32(__u32 x)
12{ 12{
13 __asm__( 13 __asm__(
14#ifdef CONFIG_SUPERH32 14#ifdef __SH5__
15 "byterev %0, %0\n\t"
16 "shari %0, 32, %0"
17#else
15 "swap.b %0, %0\n\t" 18 "swap.b %0, %0\n\t"
16 "swap.w %0, %0\n\t" 19 "swap.w %0, %0\n\t"
17 "swap.b %0, %0" 20 "swap.b %0, %0"
18#else
19 "byterev %0, %0\n\t"
20 "shari %0, 32, %0"
21#endif 21#endif
22 : "=r" (x) 22 : "=r" (x)
23 : "0" (x)); 23 : "0" (x));
@@ -28,12 +28,11 @@ static inline __attribute_const__ __u32 ___arch__swab32(__u32 x)
28static inline __attribute_const__ __u16 ___arch__swab16(__u16 x) 28static inline __attribute_const__ __u16 ___arch__swab16(__u16 x)
29{ 29{
30 __asm__( 30 __asm__(
31#ifdef CONFIG_SUPERH32 31#ifdef __SH5__
32 "swap.b %0, %0"
33#else
34 "byterev %0, %0\n\t" 32 "byterev %0, %0\n\t"
35 "shari %0, 32, %0" 33 "shari %0, 32, %0"
36 34#else
35 "swap.b %0, %0"
37#endif 36#endif
38 : "=r" (x) 37 : "=r" (x)
39 : "0" (x)); 38 : "0" (x));
diff --git a/include/asm-sh/posix_types.h b/include/asm-sh/posix_types.h
index 4b9d11c9fc77..4eeb723aee7e 100644
--- a/include/asm-sh/posix_types.h
+++ b/include/asm-sh/posix_types.h
@@ -4,4 +4,10 @@
4# else 4# else
5# include "posix_types_64.h" 5# include "posix_types_64.h"
6# endif 6# endif
7#else
8# ifdef __SH5__
9# include "posix_types_64.h"
10# else
11# include "posix_types_32.h"
12# endif
7#endif /* __KERNEL__ */ 13#endif /* __KERNEL__ */
diff --git a/include/asm-sparc64/backoff.h b/include/asm-sparc64/backoff.h
index dadd6c385c6c..fa1fdf67e350 100644
--- a/include/asm-sparc64/backoff.h
+++ b/include/asm-sparc64/backoff.h
@@ -12,7 +12,8 @@
12 mov reg, tmp; \ 12 mov reg, tmp; \
1388: brnz,pt tmp, 88b; \ 1388: brnz,pt tmp, 88b; \
14 sub tmp, 1, tmp; \ 14 sub tmp, 1, tmp; \
15 cmp reg, BACKOFF_LIMIT; \ 15 set BACKOFF_LIMIT, tmp; \
16 cmp reg, tmp; \
16 bg,pn %xcc, label; \ 17 bg,pn %xcc, label; \
17 nop; \ 18 nop; \
18 ba,pt %xcc, label; \ 19 ba,pt %xcc, label; \
diff --git a/include/asm-sparc64/cpudata.h b/include/asm-sparc64/cpudata.h
index 542421460a12..532975ecfe10 100644
--- a/include/asm-sparc64/cpudata.h
+++ b/include/asm-sparc64/cpudata.h
@@ -86,6 +86,8 @@ extern struct trap_per_cpu trap_block[NR_CPUS];
86extern void init_cur_cpu_trap(struct thread_info *); 86extern void init_cur_cpu_trap(struct thread_info *);
87extern void setup_tba(void); 87extern void setup_tba(void);
88extern int ncpus_probed; 88extern int ncpus_probed;
89extern void __init cpu_probe(void);
90extern const struct seq_operations cpuinfo_op;
89 91
90extern unsigned long real_hard_smp_processor_id(void); 92extern unsigned long real_hard_smp_processor_id(void);
91 93
diff --git a/include/asm-sparc64/dcu.h b/include/asm-sparc64/dcu.h
index ecbed2ae548f..0f704e106a1b 100644
--- a/include/asm-sparc64/dcu.h
+++ b/include/asm-sparc64/dcu.h
@@ -1,26 +1,27 @@
1/* $Id: dcu.h,v 1.2 2001/03/01 23:23:33 davem Exp $ */
2#ifndef _SPARC64_DCU_H 1#ifndef _SPARC64_DCU_H
3#define _SPARC64_DCU_H 2#define _SPARC64_DCU_H
4 3
4#include <linux/const.h>
5
5/* UltraSparc-III Data Cache Unit Control Register */ 6/* UltraSparc-III Data Cache Unit Control Register */
6#define DCU_CP 0x0002000000000000 /* Physical Cache Enable w/o mmu*/ 7#define DCU_CP _AC(0x0002000000000000,UL) /* Phys Cache Enable w/o mmu */
7#define DCU_CV 0x0001000000000000 /* Virtual Cache Enable w/o mmu */ 8#define DCU_CV _AC(0x0001000000000000,UL) /* Virt Cache Enable w/o mmu */
8#define DCU_ME 0x0000800000000000 /* NC-store Merging Enable */ 9#define DCU_ME _AC(0x0000800000000000,UL) /* NC-store Merging Enable */
9#define DCU_RE 0x0000400000000000 /* RAW bypass Enable */ 10#define DCU_RE _AC(0x0000400000000000,UL) /* RAW bypass Enable */
10#define DCU_PE 0x0000200000000000 /* PCache Enable */ 11#define DCU_PE _AC(0x0000200000000000,UL) /* PCache Enable */
11#define DCU_HPE 0x0000100000000000 /* HW prefetch Enable */ 12#define DCU_HPE _AC(0x0000100000000000,UL) /* HW prefetch Enable */
12#define DCU_SPE 0x0000080000000000 /* SW prefetch Enable */ 13#define DCU_SPE _AC(0x0000080000000000,UL) /* SW prefetch Enable */
13#define DCU_SL 0x0000040000000000 /* Secondary load steering Enab */ 14#define DCU_SL _AC(0x0000040000000000,UL) /* Secondary ld-steering Enab*/
14#define DCU_WE 0x0000020000000000 /* WCache enable */ 15#define DCU_WE _AC(0x0000020000000000,UL) /* WCache enable */
15#define DCU_PM 0x000001fe00000000 /* PA Watchpoint Byte Mask */ 16#define DCU_PM _AC(0x000001fe00000000,UL) /* PA Watchpoint Byte Mask */
16#define DCU_VM 0x00000001fe000000 /* VA Watchpoint Byte Mask */ 17#define DCU_VM _AC(0x00000001fe000000,UL) /* VA Watchpoint Byte Mask */
17#define DCU_PR 0x0000000001000000 /* PA Watchpoint Read Enable */ 18#define DCU_PR _AC(0x0000000001000000,UL) /* PA Watchpoint Read Enable */
18#define DCU_PW 0x0000000000800000 /* PA Watchpoint Write Enable */ 19#define DCU_PW _AC(0x0000000000800000,UL) /* PA Watchpoint Write Enable*/
19#define DCU_VR 0x0000000000400000 /* VA Watchpoint Read Enable */ 20#define DCU_VR _AC(0x0000000000400000,UL) /* VA Watchpoint Read Enable */
20#define DCU_VW 0x0000000000200000 /* VA Watchpoint Write Enable */ 21#define DCU_VW _AC(0x0000000000200000,UL) /* VA Watchpoint Write Enable*/
21#define DCU_DM 0x0000000000000008 /* DMMU Enable */ 22#define DCU_DM _AC(0x0000000000000008,UL) /* DMMU Enable */
22#define DCU_IM 0x0000000000000004 /* IMMU Enable */ 23#define DCU_IM _AC(0x0000000000000004,UL) /* IMMU Enable */
23#define DCU_DC 0x0000000000000002 /* Data Cache Enable */ 24#define DCU_DC _AC(0x0000000000000002,UL) /* Data Cache Enable */
24#define DCU_IC 0x0000000000000001 /* Instruction Cache Enable */ 25#define DCU_IC _AC(0x0000000000000001,UL) /* Instruction Cache Enable */
25 26
26#endif /* _SPARC64_DCU_H */ 27#endif /* _SPARC64_DCU_H */
diff --git a/include/asm-sparc64/hvtramp.h b/include/asm-sparc64/hvtramp.h
index c7dd6ad056df..b2b9b947b3a4 100644
--- a/include/asm-sparc64/hvtramp.h
+++ b/include/asm-sparc64/hvtramp.h
@@ -16,7 +16,7 @@ struct hvtramp_descr {
16 __u64 fault_info_va; 16 __u64 fault_info_va;
17 __u64 fault_info_pa; 17 __u64 fault_info_pa;
18 __u64 thread_reg; 18 __u64 thread_reg;
19 struct hvtramp_mapping maps[2]; 19 struct hvtramp_mapping maps[1];
20}; 20};
21 21
22extern void hv_cpu_startup(unsigned long hvdescr_pa); 22extern void hv_cpu_startup(unsigned long hvdescr_pa);
diff --git a/include/asm-sparc64/irq.h b/include/asm-sparc64/irq.h
index 30cb76b47be1..0bb9bf531745 100644
--- a/include/asm-sparc64/irq.h
+++ b/include/asm-sparc64/irq.h
@@ -64,6 +64,7 @@ extern unsigned char virt_irq_alloc(unsigned int dev_handle,
64extern void virt_irq_free(unsigned int virt_irq); 64extern void virt_irq_free(unsigned int virt_irq);
65#endif 65#endif
66 66
67extern void __init init_IRQ(void);
67extern void fixup_irqs(void); 68extern void fixup_irqs(void);
68 69
69static inline void set_softint(unsigned long bits) 70static inline void set_softint(unsigned long bits)
diff --git a/include/asm-sparc64/pgtable.h b/include/asm-sparc64/pgtable.h
index 3167ccff64f8..549e45266b68 100644
--- a/include/asm-sparc64/pgtable.h
+++ b/include/asm-sparc64/pgtable.h
@@ -23,9 +23,9 @@
23#include <asm/page.h> 23#include <asm/page.h>
24#include <asm/processor.h> 24#include <asm/processor.h>
25 25
26/* The kernel image occupies 0x4000000 to 0x1000000 (4MB --> 32MB). 26/* The kernel image occupies 0x4000000 to 0x6000000 (4MB --> 96MB).
27 * The page copy blockops can use 0x2000000 to 0x4000000. 27 * The page copy blockops can use 0x6000000 to 0x8000000.
28 * The TSB is mapped in the 0x4000000 to 0x6000000 range. 28 * The TSB is mapped in the 0x8000000 to 0xa000000 range.
29 * The PROM resides in an area spanning 0xf0000000 to 0x100000000. 29 * The PROM resides in an area spanning 0xf0000000 to 0x100000000.
30 * The vmalloc area spans 0x100000000 to 0x200000000. 30 * The vmalloc area spans 0x100000000 to 0x200000000.
31 * Since modules need to be in the lowest 32-bits of the address space, 31 * Since modules need to be in the lowest 32-bits of the address space,
@@ -33,8 +33,8 @@
33 * There is a single static kernel PMD which maps from 0x0 to address 33 * There is a single static kernel PMD which maps from 0x0 to address
34 * 0x400000000. 34 * 0x400000000.
35 */ 35 */
36#define TLBTEMP_BASE _AC(0x0000000002000000,UL) 36#define TLBTEMP_BASE _AC(0x0000000006000000,UL)
37#define TSBMAP_BASE _AC(0x0000000004000000,UL) 37#define TSBMAP_BASE _AC(0x0000000008000000,UL)
38#define MODULES_VADDR _AC(0x0000000010000000,UL) 38#define MODULES_VADDR _AC(0x0000000010000000,UL)
39#define MODULES_LEN _AC(0x00000000e0000000,UL) 39#define MODULES_LEN _AC(0x00000000e0000000,UL)
40#define MODULES_END _AC(0x00000000f0000000,UL) 40#define MODULES_END _AC(0x00000000f0000000,UL)
@@ -761,6 +761,8 @@ extern unsigned long get_fb_unmapped_area(struct file *filp, unsigned long,
761extern void pgtable_cache_init(void); 761extern void pgtable_cache_init(void);
762extern void sun4v_register_fault_status(void); 762extern void sun4v_register_fault_status(void);
763extern void sun4v_ktsb_register(void); 763extern void sun4v_ktsb_register(void);
764extern void __init cheetah_ecache_flush_init(void);
765extern void sun4v_patch_tlb_handlers(void);
764 766
765extern unsigned long cmdline_memory_size; 767extern unsigned long cmdline_memory_size;
766 768
diff --git a/include/asm-sparc64/processor.h b/include/asm-sparc64/processor.h
index 8da484c19822..885b6a1dcae4 100644
--- a/include/asm-sparc64/processor.h
+++ b/include/asm-sparc64/processor.h
@@ -37,6 +37,9 @@
37#endif 37#endif
38 38
39#define TASK_SIZE ((unsigned long)-VPTE_SIZE) 39#define TASK_SIZE ((unsigned long)-VPTE_SIZE)
40#define TASK_SIZE_OF(tsk) \
41 (test_tsk_thread_flag(tsk,TIF_32BIT) ? \
42 (1UL << 32UL) : TASK_SIZE)
40#ifdef __KERNEL__ 43#ifdef __KERNEL__
41 44
42#define STACK_TOP32 ((1UL << 32UL) - PAGE_SIZE) 45#define STACK_TOP32 ((1UL << 32UL) - PAGE_SIZE)
diff --git a/include/asm-sparc64/spitfire.h b/include/asm-sparc64/spitfire.h
index 63b7040e8134..985ea7e31992 100644
--- a/include/asm-sparc64/spitfire.h
+++ b/include/asm-sparc64/spitfire.h
@@ -63,6 +63,8 @@ extern void cheetah_enable_pcache(void);
63 SPITFIRE_HIGHEST_LOCKED_TLBENT : \ 63 SPITFIRE_HIGHEST_LOCKED_TLBENT : \
64 CHEETAH_HIGHEST_LOCKED_TLBENT) 64 CHEETAH_HIGHEST_LOCKED_TLBENT)
65 65
66extern int num_kernel_image_mappings;
67
66/* The data cache is write through, so this just invalidates the 68/* The data cache is write through, so this just invalidates the
67 * specified line. 69 * specified line.
68 */ 70 */
diff --git a/include/asm-sparc64/stacktrace.h b/include/asm-sparc64/stacktrace.h
new file mode 100644
index 000000000000..6cee39adf6d6
--- /dev/null
+++ b/include/asm-sparc64/stacktrace.h
@@ -0,0 +1,6 @@
1#ifndef _SPARC64_STACKTRACE_H
2#define _SPARC64_STACKTRACE_H
3
4extern void stack_trace_flush(void);
5
6#endif /* _SPARC64_STACKTRACE_H */
diff --git a/include/asm-sparc64/timer.h b/include/asm-sparc64/timer.h
index ccbd69448866..5b779fd1f788 100644
--- a/include/asm-sparc64/timer.h
+++ b/include/asm-sparc64/timer.h
@@ -1,14 +1,13 @@
1/* $Id: timer.h,v 1.3 2000/05/09 17:40:15 davem Exp $ 1/* timer.h: System timer definitions for sun5.
2 * timer.h: System timer definitions for sun5.
3 * 2 *
4 * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu) 3 * Copyright (C) 1997, 2008 David S. Miller (davem@davemloft.net)
5 */ 4 */
6 5
7#ifndef _SPARC64_TIMER_H 6#ifndef _SPARC64_TIMER_H
8#define _SPARC64_TIMER_H 7#define _SPARC64_TIMER_H
9 8
10#include <linux/types.h> 9#include <linux/types.h>
11 10#include <linux/init.h>
12 11
13struct sparc64_tick_ops { 12struct sparc64_tick_ops {
14 unsigned long (*get_tick)(void); 13 unsigned long (*get_tick)(void);
@@ -25,5 +24,7 @@ struct sparc64_tick_ops {
25extern struct sparc64_tick_ops *tick_ops; 24extern struct sparc64_tick_ops *tick_ops;
26 25
27extern unsigned long sparc64_get_clock_tick(unsigned int cpu); 26extern unsigned long sparc64_get_clock_tick(unsigned int cpu);
27extern void __devinit setup_sparc64_timer(void);
28extern void __init time_init(void);
28 29
29#endif /* _SPARC64_TIMER_H */ 30#endif /* _SPARC64_TIMER_H */
diff --git a/include/asm-x86/cmpxchg_32.h b/include/asm-x86/cmpxchg_32.h
index cea1dae288a7..959fad00dff5 100644
--- a/include/asm-x86/cmpxchg_32.h
+++ b/include/asm-x86/cmpxchg_32.h
@@ -269,22 +269,26 @@ static inline unsigned long cmpxchg_386(volatile void *ptr, unsigned long old,
269({ \ 269({ \
270 __typeof__(*(ptr)) __ret; \ 270 __typeof__(*(ptr)) __ret; \
271 if (likely(boot_cpu_data.x86 > 3)) \ 271 if (likely(boot_cpu_data.x86 > 3)) \
272 __ret = __cmpxchg((ptr), (unsigned long)(o), \ 272 __ret = (__typeof__(*(ptr)))__cmpxchg((ptr), \
273 (unsigned long)(n), sizeof(*(ptr))); \ 273 (unsigned long)(o), (unsigned long)(n), \
274 sizeof(*(ptr))); \
274 else \ 275 else \
275 __ret = cmpxchg_386((ptr), (unsigned long)(o), \ 276 __ret = (__typeof__(*(ptr)))cmpxchg_386((ptr), \
276 (unsigned long)(n), sizeof(*(ptr))); \ 277 (unsigned long)(o), (unsigned long)(n), \
278 sizeof(*(ptr))); \
277 __ret; \ 279 __ret; \
278}) 280})
279#define cmpxchg_local(ptr, o, n) \ 281#define cmpxchg_local(ptr, o, n) \
280({ \ 282({ \
281 __typeof__(*(ptr)) __ret; \ 283 __typeof__(*(ptr)) __ret; \
282 if (likely(boot_cpu_data.x86 > 3)) \ 284 if (likely(boot_cpu_data.x86 > 3)) \
283 __ret = __cmpxchg_local((ptr), (unsigned long)(o), \ 285 __ret = (__typeof__(*(ptr)))__cmpxchg_local((ptr), \
284 (unsigned long)(n), sizeof(*(ptr))); \ 286 (unsigned long)(o), (unsigned long)(n), \
287 sizeof(*(ptr))); \
285 else \ 288 else \
286 __ret = cmpxchg_386((ptr), (unsigned long)(o), \ 289 __ret = (__typeof__(*(ptr)))cmpxchg_386((ptr), \
287 (unsigned long)(n), sizeof(*(ptr))); \ 290 (unsigned long)(o), (unsigned long)(n), \
291 sizeof(*(ptr))); \
288 __ret; \ 292 __ret; \
289}) 293})
290#endif 294#endif
@@ -301,10 +305,12 @@ extern unsigned long long cmpxchg_486_u64(volatile void *, u64, u64);
301({ \ 305({ \
302 __typeof__(*(ptr)) __ret; \ 306 __typeof__(*(ptr)) __ret; \
303 if (likely(boot_cpu_data.x86 > 4)) \ 307 if (likely(boot_cpu_data.x86 > 4)) \
304 __ret = __cmpxchg64((ptr), (unsigned long long)(o), \ 308 __ret = (__typeof__(*(ptr)))__cmpxchg64((ptr), \
309 (unsigned long long)(o), \
305 (unsigned long long)(n)); \ 310 (unsigned long long)(n)); \
306 else \ 311 else \
307 __ret = cmpxchg_486_u64((ptr), (unsigned long long)(o), \ 312 __ret = (__typeof__(*(ptr)))cmpxchg_486_u64((ptr), \
313 (unsigned long long)(o), \
308 (unsigned long long)(n)); \ 314 (unsigned long long)(n)); \
309 __ret; \ 315 __ret; \
310}) 316})
@@ -312,10 +318,12 @@ extern unsigned long long cmpxchg_486_u64(volatile void *, u64, u64);
312({ \ 318({ \
313 __typeof__(*(ptr)) __ret; \ 319 __typeof__(*(ptr)) __ret; \
314 if (likely(boot_cpu_data.x86 > 4)) \ 320 if (likely(boot_cpu_data.x86 > 4)) \
315 __ret = __cmpxchg64_local((ptr), (unsigned long long)(o), \ 321 __ret = (__typeof__(*(ptr)))__cmpxchg64_local((ptr), \
322 (unsigned long long)(o), \
316 (unsigned long long)(n)); \ 323 (unsigned long long)(n)); \
317 else \ 324 else \
318 __ret = cmpxchg_486_u64((ptr), (unsigned long long)(o), \ 325 __ret = (__typeof__(*(ptr)))cmpxchg_486_u64((ptr), \
326 (unsigned long long)(o), \
319 (unsigned long long)(n)); \ 327 (unsigned long long)(n)); \
320 __ret; \ 328 __ret; \
321}) 329})
diff --git a/include/asm-x86/e820_32.h b/include/asm-x86/e820_32.h
index f1da7ebd1905..e7207a6de3e0 100644
--- a/include/asm-x86/e820_32.h
+++ b/include/asm-x86/e820_32.h
@@ -28,6 +28,8 @@ extern void find_max_pfn(void);
28extern void register_bootmem_low_pages(unsigned long max_low_pfn); 28extern void register_bootmem_low_pages(unsigned long max_low_pfn);
29extern void add_memory_region(unsigned long long start, 29extern void add_memory_region(unsigned long long start,
30 unsigned long long size, int type); 30 unsigned long long size, int type);
31extern void update_memory_range(u64 start, u64 size, unsigned old_type,
32 unsigned new_type);
31extern void e820_register_memory(void); 33extern void e820_register_memory(void);
32extern void limit_regions(unsigned long long size); 34extern void limit_regions(unsigned long long size);
33extern void print_memory_map(char *who); 35extern void print_memory_map(char *who);
diff --git a/include/asm-x86/e820_64.h b/include/asm-x86/e820_64.h
index a560c4f5d500..22ede73ae724 100644
--- a/include/asm-x86/e820_64.h
+++ b/include/asm-x86/e820_64.h
@@ -18,6 +18,8 @@ extern unsigned long find_e820_area(unsigned long start, unsigned long end,
18 unsigned size, unsigned long align); 18 unsigned size, unsigned long align);
19extern void add_memory_region(unsigned long start, unsigned long size, 19extern void add_memory_region(unsigned long start, unsigned long size,
20 int type); 20 int type);
21extern void update_memory_range(u64 start, u64 size, unsigned old_type,
22 unsigned new_type);
21extern void setup_memory_region(void); 23extern void setup_memory_region(void);
22extern void contig_e820_setup(void); 24extern void contig_e820_setup(void);
23extern unsigned long e820_end_of_ram(void); 25extern unsigned long e820_end_of_ram(void);
diff --git a/include/asm-x86/io_32.h b/include/asm-x86/io_32.h
index 58d2c45cd0b1..d4d8fbd9378c 100644
--- a/include/asm-x86/io_32.h
+++ b/include/asm-x86/io_32.h
@@ -114,13 +114,13 @@ static inline void * phys_to_virt(unsigned long address)
114 * If the area you are trying to map is a PCI BAR you should have a 114 * If the area you are trying to map is a PCI BAR you should have a
115 * look at pci_iomap(). 115 * look at pci_iomap().
116 */ 116 */
117extern void __iomem *ioremap_nocache(unsigned long offset, unsigned long size); 117extern void __iomem *ioremap_nocache(resource_size_t offset, unsigned long size);
118extern void __iomem *ioremap_cache(unsigned long offset, unsigned long size); 118extern void __iomem *ioremap_cache(resource_size_t offset, unsigned long size);
119 119
120/* 120/*
121 * The default ioremap() behavior is non-cached: 121 * The default ioremap() behavior is non-cached:
122 */ 122 */
123static inline void __iomem *ioremap(unsigned long offset, unsigned long size) 123static inline void __iomem *ioremap(resource_size_t offset, unsigned long size)
124{ 124{
125 return ioremap_nocache(offset, size); 125 return ioremap_nocache(offset, size);
126} 126}
diff --git a/include/asm-x86/io_64.h b/include/asm-x86/io_64.h
index f64a59cc396d..db0be2011a3c 100644
--- a/include/asm-x86/io_64.h
+++ b/include/asm-x86/io_64.h
@@ -158,13 +158,13 @@ extern void early_iounmap(void *addr, unsigned long size);
158 * it's useful if some control registers are in such an area and write combining 158 * it's useful if some control registers are in such an area and write combining
159 * or read caching is not desirable: 159 * or read caching is not desirable:
160 */ 160 */
161extern void __iomem *ioremap_nocache(unsigned long offset, unsigned long size); 161extern void __iomem *ioremap_nocache(resource_size_t offset, unsigned long size);
162extern void __iomem *ioremap_cache(unsigned long offset, unsigned long size); 162extern void __iomem *ioremap_cache(resource_size_t offset, unsigned long size);
163 163
164/* 164/*
165 * The default ioremap() behavior is non-cached: 165 * The default ioremap() behavior is non-cached:
166 */ 166 */
167static inline void __iomem *ioremap(unsigned long offset, unsigned long size) 167static inline void __iomem *ioremap(resource_size_t offset, unsigned long size)
168{ 168{
169 return ioremap_nocache(offset, size); 169 return ioremap_nocache(offset, size);
170} 170}
diff --git a/include/asm-x86/lguest_hcall.h b/include/asm-x86/lguest_hcall.h
index 758b9a5d4539..f239e7069cab 100644
--- a/include/asm-x86/lguest_hcall.h
+++ b/include/asm-x86/lguest_hcall.h
@@ -27,7 +27,7 @@
27#ifndef __ASSEMBLY__ 27#ifndef __ASSEMBLY__
28#include <asm/hw_irq.h> 28#include <asm/hw_irq.h>
29 29
30/*G:031 First, how does our Guest contact the Host to ask for privileged 30/*G:031 But first, how does our Guest contact the Host to ask for privileged
31 * operations? There are two ways: the direct way is to make a "hypercall", 31 * operations? There are two ways: the direct way is to make a "hypercall",
32 * to make requests of the Host Itself. 32 * to make requests of the Host Itself.
33 * 33 *
diff --git a/include/asm-x86/mach-rdc321x/gpio.h b/include/asm-x86/mach-rdc321x/gpio.h
index db31b929b990..acce0b7d397b 100644
--- a/include/asm-x86/mach-rdc321x/gpio.h
+++ b/include/asm-x86/mach-rdc321x/gpio.h
@@ -5,19 +5,20 @@ extern int rdc_gpio_get_value(unsigned gpio);
5extern void rdc_gpio_set_value(unsigned gpio, int value); 5extern void rdc_gpio_set_value(unsigned gpio, int value);
6extern int rdc_gpio_direction_input(unsigned gpio); 6extern int rdc_gpio_direction_input(unsigned gpio);
7extern int rdc_gpio_direction_output(unsigned gpio, int value); 7extern int rdc_gpio_direction_output(unsigned gpio, int value);
8 8extern int rdc_gpio_request(unsigned gpio, const char *label);
9extern void rdc_gpio_free(unsigned gpio);
10extern void __init rdc321x_gpio_setup(void);
9 11
10/* Wrappers for the arch-neutral GPIO API */ 12/* Wrappers for the arch-neutral GPIO API */
11 13
12static inline int gpio_request(unsigned gpio, const char *label) 14static inline int gpio_request(unsigned gpio, const char *label)
13{ 15{
14 /* Not yet implemented */ 16 return rdc_gpio_request(gpio, label);
15 return 0;
16} 17}
17 18
18static inline void gpio_free(unsigned gpio) 19static inline void gpio_free(unsigned gpio)
19{ 20{
20 /* Not yet implemented */ 21 rdc_gpio_free(gpio);
21} 22}
22 23
23static inline int gpio_direction_input(unsigned gpio) 24static inline int gpio_direction_input(unsigned gpio)
diff --git a/include/asm-x86/mach-rdc321x/rdc321x_defs.h b/include/asm-x86/mach-rdc321x/rdc321x_defs.h
index 838ba8f64fd3..c8e9c8bed3d0 100644
--- a/include/asm-x86/mach-rdc321x/rdc321x_defs.h
+++ b/include/asm-x86/mach-rdc321x/rdc321x_defs.h
@@ -3,4 +3,10 @@
3/* General purpose configuration and data registers */ 3/* General purpose configuration and data registers */
4#define RDC3210_CFGREG_ADDR 0x0CF8 4#define RDC3210_CFGREG_ADDR 0x0CF8
5#define RDC3210_CFGREG_DATA 0x0CFC 5#define RDC3210_CFGREG_DATA 0x0CFC
6#define RDC_MAX_GPIO 0x3A 6
7#define RDC321X_GPIO_CTRL_REG1 0x48
8#define RDC321X_GPIO_CTRL_REG2 0x84
9#define RDC321X_GPIO_DATA_REG1 0x4c
10#define RDC321X_GPIO_DATA_REG2 0x88
11
12#define RDC321X_MAX_GPIO 58
diff --git a/include/asm-x86/page.h b/include/asm-x86/page.h
index 1cb7c51bc296..a05b2896492f 100644
--- a/include/asm-x86/page.h
+++ b/include/asm-x86/page.h
@@ -52,13 +52,13 @@ extern int page_is_ram(unsigned long pagenr);
52 52
53struct page; 53struct page;
54 54
55static void inline clear_user_page(void *page, unsigned long vaddr, 55static inline void clear_user_page(void *page, unsigned long vaddr,
56 struct page *pg) 56 struct page *pg)
57{ 57{
58 clear_page(page); 58 clear_page(page);
59} 59}
60 60
61static void inline copy_user_page(void *to, void *from, unsigned long vaddr, 61static inline void copy_user_page(void *to, void *from, unsigned long vaddr,
62 struct page *topage) 62 struct page *topage)
63{ 63{
64 copy_page(to, from); 64 copy_page(to, from);
diff --git a/include/asm-x86/pgtable.h b/include/asm-x86/pgtable.h
index 174b87738714..9cf472aeb9ce 100644
--- a/include/asm-x86/pgtable.h
+++ b/include/asm-x86/pgtable.h
@@ -85,6 +85,7 @@ extern pteval_t __PAGE_KERNEL, __PAGE_KERNEL_EXEC;
85#define __PAGE_KERNEL_RX (__PAGE_KERNEL_EXEC & ~_PAGE_RW) 85#define __PAGE_KERNEL_RX (__PAGE_KERNEL_EXEC & ~_PAGE_RW)
86#define __PAGE_KERNEL_EXEC_NOCACHE (__PAGE_KERNEL_EXEC | _PAGE_PCD | _PAGE_PWT) 86#define __PAGE_KERNEL_EXEC_NOCACHE (__PAGE_KERNEL_EXEC | _PAGE_PCD | _PAGE_PWT)
87#define __PAGE_KERNEL_NOCACHE (__PAGE_KERNEL | _PAGE_PCD | _PAGE_PWT) 87#define __PAGE_KERNEL_NOCACHE (__PAGE_KERNEL | _PAGE_PCD | _PAGE_PWT)
88#define __PAGE_KERNEL_UC_MINUS (__PAGE_KERNEL | _PAGE_PCD)
88#define __PAGE_KERNEL_VSYSCALL (__PAGE_KERNEL_RX | _PAGE_USER) 89#define __PAGE_KERNEL_VSYSCALL (__PAGE_KERNEL_RX | _PAGE_USER)
89#define __PAGE_KERNEL_VSYSCALL_NOCACHE (__PAGE_KERNEL_VSYSCALL | _PAGE_PCD | _PAGE_PWT) 90#define __PAGE_KERNEL_VSYSCALL_NOCACHE (__PAGE_KERNEL_VSYSCALL | _PAGE_PCD | _PAGE_PWT)
90#define __PAGE_KERNEL_LARGE (__PAGE_KERNEL | _PAGE_PSE) 91#define __PAGE_KERNEL_LARGE (__PAGE_KERNEL | _PAGE_PSE)
@@ -101,6 +102,7 @@ extern pteval_t __PAGE_KERNEL, __PAGE_KERNEL_EXEC;
101#define PAGE_KERNEL_EXEC MAKE_GLOBAL(__PAGE_KERNEL_EXEC) 102#define PAGE_KERNEL_EXEC MAKE_GLOBAL(__PAGE_KERNEL_EXEC)
102#define PAGE_KERNEL_RX MAKE_GLOBAL(__PAGE_KERNEL_RX) 103#define PAGE_KERNEL_RX MAKE_GLOBAL(__PAGE_KERNEL_RX)
103#define PAGE_KERNEL_NOCACHE MAKE_GLOBAL(__PAGE_KERNEL_NOCACHE) 104#define PAGE_KERNEL_NOCACHE MAKE_GLOBAL(__PAGE_KERNEL_NOCACHE)
105#define PAGE_KERNEL_UC_MINUS MAKE_GLOBAL(__PAGE_KERNEL_UC_MINUS)
104#define PAGE_KERNEL_EXEC_NOCACHE MAKE_GLOBAL(__PAGE_KERNEL_EXEC_NOCACHE) 106#define PAGE_KERNEL_EXEC_NOCACHE MAKE_GLOBAL(__PAGE_KERNEL_EXEC_NOCACHE)
105#define PAGE_KERNEL_LARGE MAKE_GLOBAL(__PAGE_KERNEL_LARGE) 107#define PAGE_KERNEL_LARGE MAKE_GLOBAL(__PAGE_KERNEL_LARGE)
106#define PAGE_KERNEL_LARGE_EXEC MAKE_GLOBAL(__PAGE_KERNEL_LARGE_EXEC) 108#define PAGE_KERNEL_LARGE_EXEC MAKE_GLOBAL(__PAGE_KERNEL_LARGE_EXEC)
diff --git a/include/asm-x86/sync_bitops.h b/include/asm-x86/sync_bitops.h
index cbce08a2d135..6b775c905666 100644
--- a/include/asm-x86/sync_bitops.h
+++ b/include/asm-x86/sync_bitops.h
@@ -23,10 +23,6 @@
23 * This function is atomic and may not be reordered. See __set_bit() 23 * This function is atomic and may not be reordered. See __set_bit()
24 * if you do not require the atomic guarantees. 24 * if you do not require the atomic guarantees.
25 * 25 *
26 * Note: there are no guarantees that this function will not be reordered
27 * on non-x86 architectures, so if you are writing portable code,
28 * make sure not to rely on its reordering guarantees.
29 *
30 * Note that @nr may be almost arbitrarily large; this function is not 26 * Note that @nr may be almost arbitrarily large; this function is not
31 * restricted to acting on a single-word quantity. 27 * restricted to acting on a single-word quantity.
32 */ 28 */
@@ -61,8 +57,7 @@ static inline void sync_clear_bit(int nr, volatile unsigned long * addr)
61 * @nr: Bit to change 57 * @nr: Bit to change
62 * @addr: Address to start counting from 58 * @addr: Address to start counting from
63 * 59 *
64 * change_bit() is atomic and may not be reordered. It may be 60 * sync_change_bit() is atomic and may not be reordered.
65 * reordered on other architectures than x86.
66 * Note that @nr may be almost arbitrarily large; this function is not 61 * Note that @nr may be almost arbitrarily large; this function is not
67 * restricted to acting on a single-word quantity. 62 * restricted to acting on a single-word quantity.
68 */ 63 */
@@ -80,7 +75,6 @@ static inline void sync_change_bit(int nr, volatile unsigned long * addr)
80 * @addr: Address to count from 75 * @addr: Address to count from
81 * 76 *
82 * This operation is atomic and cannot be reordered. 77 * This operation is atomic and cannot be reordered.
83 * It may be reordered on other architectures than x86.
84 * It also implies a memory barrier. 78 * It also implies a memory barrier.
85 */ 79 */
86static inline int sync_test_and_set_bit(int nr, volatile unsigned long * addr) 80static inline int sync_test_and_set_bit(int nr, volatile unsigned long * addr)
@@ -99,7 +93,6 @@ static inline int sync_test_and_set_bit(int nr, volatile unsigned long * addr)
99 * @addr: Address to count from 93 * @addr: Address to count from
100 * 94 *
101 * This operation is atomic and cannot be reordered. 95 * This operation is atomic and cannot be reordered.
102 * It can be reorderdered on other architectures other than x86.
103 * It also implies a memory barrier. 96 * It also implies a memory barrier.
104 */ 97 */
105static inline int sync_test_and_clear_bit(int nr, volatile unsigned long * addr) 98static inline int sync_test_and_clear_bit(int nr, volatile unsigned long * addr)
diff --git a/include/linux/Kbuild b/include/linux/Kbuild
index 994df3780007..4a446a19295e 100644
--- a/include/linux/Kbuild
+++ b/include/linux/Kbuild
@@ -127,7 +127,6 @@ header-y += pkt_sched.h
127header-y += posix_types.h 127header-y += posix_types.h
128header-y += ppdev.h 128header-y += ppdev.h
129header-y += prctl.h 129header-y += prctl.h
130header-y += ps2esdi.h
131header-y += qnxtypes.h 130header-y += qnxtypes.h
132header-y += quotaio_v1.h 131header-y += quotaio_v1.h
133header-y += quotaio_v2.h 132header-y += quotaio_v2.h
@@ -196,7 +195,6 @@ unifdef-y += ethtool.h
196unifdef-y += eventpoll.h 195unifdef-y += eventpoll.h
197unifdef-y += signalfd.h 196unifdef-y += signalfd.h
198unifdef-y += ext2_fs.h 197unifdef-y += ext2_fs.h
199unifdef-y += ext3_fs.h
200unifdef-y += fb.h 198unifdef-y += fb.h
201unifdef-y += fcntl.h 199unifdef-y += fcntl.h
202unifdef-y += filter.h 200unifdef-y += filter.h
@@ -205,7 +203,6 @@ unifdef-y += futex.h
205unifdef-y += fs.h 203unifdef-y += fs.h
206unifdef-y += gameport.h 204unifdef-y += gameport.h
207unifdef-y += generic_serial.h 205unifdef-y += generic_serial.h
208unifdef-y += genhd.h
209unifdef-y += gfs2_ondisk.h 206unifdef-y += gfs2_ondisk.h
210unifdef-y += hayesesp.h 207unifdef-y += hayesesp.h
211unifdef-y += hdlcdrv.h 208unifdef-y += hdlcdrv.h
@@ -250,7 +247,6 @@ unifdef-y += isdn.h
250unifdef-y += isdnif.h 247unifdef-y += isdnif.h
251unifdef-y += isdn_divertif.h 248unifdef-y += isdn_divertif.h
252unifdef-y += isdn_ppp.h 249unifdef-y += isdn_ppp.h
253unifdef-y += jbd.h
254unifdef-y += joystick.h 250unifdef-y += joystick.h
255unifdef-y += kdev_t.h 251unifdef-y += kdev_t.h
256unifdef-y += kd.h 252unifdef-y += kd.h
diff --git a/include/linux/bitops.h b/include/linux/bitops.h
index 69c1edb9fe54..40d54731de7e 100644
--- a/include/linux/bitops.h
+++ b/include/linux/bitops.h
@@ -65,6 +65,46 @@ static inline __u32 ror32(__u32 word, unsigned int shift)
65 return (word >> shift) | (word << (32 - shift)); 65 return (word >> shift) | (word << (32 - shift));
66} 66}
67 67
68/**
69 * rol16 - rotate a 16-bit value left
70 * @word: value to rotate
71 * @shift: bits to roll
72 */
73static inline __u16 rol16(__u16 word, unsigned int shift)
74{
75 return (word << shift) | (word >> (16 - shift));
76}
77
78/**
79 * ror16 - rotate a 16-bit value right
80 * @word: value to rotate
81 * @shift: bits to roll
82 */
83static inline __u16 ror16(__u16 word, unsigned int shift)
84{
85 return (word >> shift) | (word << (16 - shift));
86}
87
88/**
89 * rol8 - rotate an 8-bit value left
90 * @word: value to rotate
91 * @shift: bits to roll
92 */
93static inline __u8 rol8(__u8 word, unsigned int shift)
94{
95 return (word << shift) | (word >> (8 - shift));
96}
97
98/**
99 * ror8 - rotate an 8-bit value right
100 * @word: value to rotate
101 * @shift: bits to roll
102 */
103static inline __u8 ror8(__u8 word, unsigned int shift)
104{
105 return (word >> shift) | (word << (8 - shift));
106}
107
68static inline unsigned fls_long(unsigned long l) 108static inline unsigned fls_long(unsigned long l)
69{ 109{
70 if (sizeof(l) == 4) 110 if (sizeof(l) == 4)
diff --git a/include/linux/compat.h b/include/linux/compat.h
index a671dbff7a1f..8fa7857e153b 100644
--- a/include/linux/compat.h
+++ b/include/linux/compat.h
@@ -192,8 +192,8 @@ asmlinkage long compat_sys_select(int n, compat_ulong_t __user *inp,
192 struct compat_timeval __user *tvp); 192 struct compat_timeval __user *tvp);
193 193
194asmlinkage long compat_sys_wait4(compat_pid_t pid, 194asmlinkage long compat_sys_wait4(compat_pid_t pid,
195 compat_uint_t *stat_addr, int options, 195 compat_uint_t __user *stat_addr, int options,
196 struct compat_rusage *ru); 196 struct compat_rusage __user *ru);
197 197
198#define BITS_PER_COMPAT_LONG (8*sizeof(compat_long_t)) 198#define BITS_PER_COMPAT_LONG (8*sizeof(compat_long_t))
199 199
diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h
index 6b72a4584086..51e6b1e520e6 100644
--- a/include/linux/cpuidle.h
+++ b/include/linux/cpuidle.h
@@ -38,8 +38,8 @@ struct cpuidle_state {
38 unsigned int power_usage; /* in mW */ 38 unsigned int power_usage; /* in mW */
39 unsigned int target_residency; /* in US */ 39 unsigned int target_residency; /* in US */
40 40
41 unsigned int usage; 41 unsigned long long usage;
42 unsigned int time; /* in US */ 42 unsigned long long time; /* in US */
43 43
44 int (*enter) (struct cpuidle_device *dev, 44 int (*enter) (struct cpuidle_device *dev,
45 struct cpuidle_state *state); 45 struct cpuidle_state *state);
diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h
index 261e43a4c873..34d440698293 100644
--- a/include/linux/dmaengine.h
+++ b/include/linux/dmaengine.h
@@ -423,7 +423,7 @@ void dma_async_device_unregister(struct dma_device *device);
423/* --- Helper iov-locking functions --- */ 423/* --- Helper iov-locking functions --- */
424 424
425struct dma_page_list { 425struct dma_page_list {
426 char *base_address; 426 char __user *base_address;
427 int nr_pages; 427 int nr_pages;
428 struct page **pages; 428 struct page **pages;
429}; 429};
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
index fcbe8b640ffb..c8d216357865 100644
--- a/include/linux/ethtool.h
+++ b/include/linux/ethtool.h
@@ -12,6 +12,7 @@
12#ifndef _LINUX_ETHTOOL_H 12#ifndef _LINUX_ETHTOOL_H
13#define _LINUX_ETHTOOL_H 13#define _LINUX_ETHTOOL_H
14 14
15#include <linux/types.h>
15 16
16/* This should work for both 32 and 64 bit userland. */ 17/* This should work for both 32 and 64 bit userland. */
17struct ethtool_cmd { 18struct ethtool_cmd {
diff --git a/include/linux/exportfs.h b/include/linux/exportfs.h
index 51d214138814..adcbb05b120b 100644
--- a/include/linux/exportfs.h
+++ b/include/linux/exportfs.h
@@ -49,11 +49,11 @@ struct fid {
49 49
50/** 50/**
51 * struct export_operations - for nfsd to communicate with file systems 51 * struct export_operations - for nfsd to communicate with file systems
52 * @decode_fh: decode a file handle fragment and return a &struct dentry
53 * @encode_fh: encode a file handle fragment from a dentry 52 * @encode_fh: encode a file handle fragment from a dentry
53 * @fh_to_dentry: find the implied object and get a dentry for it
54 * @fh_to_parent: find the implied object's parent and get a dentry for it
54 * @get_name: find the name for a given inode in a given directory 55 * @get_name: find the name for a given inode in a given directory
55 * @get_parent: find the parent of a given directory 56 * @get_parent: find the parent of a given directory
56 * @get_dentry: find a dentry for the inode given a file handle sub-fragment
57 * 57 *
58 * See Documentation/filesystems/Exporting for details on how to use 58 * See Documentation/filesystems/Exporting for details on how to use
59 * this interface correctly. 59 * this interface correctly.
diff --git a/include/linux/genhd.h b/include/linux/genhd.h
index 32c2ac49a070..ecd2bf63fc84 100644
--- a/include/linux/genhd.h
+++ b/include/linux/genhd.h
@@ -55,24 +55,6 @@ enum {
55 UNIXWARE_PARTITION = 0x63, /* Same as GNU_HURD and SCO Unix */ 55 UNIXWARE_PARTITION = 0x63, /* Same as GNU_HURD and SCO Unix */
56}; 56};
57 57
58#ifndef __KERNEL__
59
60struct partition {
61 unsigned char boot_ind; /* 0x80 - active */
62 unsigned char head; /* starting head */
63 unsigned char sector; /* starting sector */
64 unsigned char cyl; /* starting cylinder */
65 unsigned char sys_ind; /* What partition type */
66 unsigned char end_head; /* end head */
67 unsigned char end_sector; /* end sector */
68 unsigned char end_cyl; /* end cylinder */
69 unsigned int start_sect; /* starting sector counting from 0 */
70 unsigned int nr_sects; /* nr of sectors in partition */
71} __attribute__((packed));
72
73#endif
74
75#ifdef __KERNEL__
76#include <linux/major.h> 58#include <linux/major.h>
77#include <linux/device.h> 59#include <linux/device.h>
78#include <linux/smp.h> 60#include <linux/smp.h>
@@ -228,7 +210,7 @@ static inline void part_stat_set_all(struct hd_struct *part, int value) {
228 sizeof(struct disk_stats)); 210 sizeof(struct disk_stats));
229} 211}
230 212
231#else 213#else /* !CONFIG_SMP */
232#define __disk_stat_add(gendiskp, field, addnd) \ 214#define __disk_stat_add(gendiskp, field, addnd) \
233 (gendiskp->dkstats.field += addnd) 215 (gendiskp->dkstats.field += addnd)
234#define disk_stat_read(gendiskp, field) (gendiskp->dkstats.field) 216#define disk_stat_read(gendiskp, field) (gendiskp->dkstats.field)
@@ -256,7 +238,7 @@ static inline void part_stat_set_all(struct hd_struct *part, int value)
256 memset(&part->dkstats, value, sizeof(struct disk_stats)); 238 memset(&part->dkstats, value, sizeof(struct disk_stats));
257} 239}
258 240
259#endif 241#endif /* CONFIG_SMP */
260 242
261#define disk_stat_add(gendiskp, field, addnd) \ 243#define disk_stat_add(gendiskp, field, addnd) \
262 do { \ 244 do { \
@@ -395,8 +377,6 @@ static inline void set_capacity(struct gendisk *disk, sector_t size)
395 disk->capacity = size; 377 disk->capacity = size;
396} 378}
397 379
398#endif /* __KERNEL__ */
399
400#ifdef CONFIG_SOLARIS_X86_PARTITION 380#ifdef CONFIG_SOLARIS_X86_PARTITION
401 381
402#define SOLARIS_X86_NUMSLICE 16 382#define SOLARIS_X86_NUMSLICE 16
@@ -540,8 +520,6 @@ struct unixware_disklabel {
540# define MINIX_NR_SUBPARTITIONS 4 520# define MINIX_NR_SUBPARTITIONS 4
541#endif /* CONFIG_MINIX_SUBPARTITION */ 521#endif /* CONFIG_MINIX_SUBPARTITION */
542 522
543#ifdef __KERNEL__
544
545#define ADDPART_FLAG_NONE 0 523#define ADDPART_FLAG_NONE 0
546#define ADDPART_FLAG_RAID 1 524#define ADDPART_FLAG_RAID 1
547#define ADDPART_FLAG_WHOLEDISK 2 525#define ADDPART_FLAG_WHOLEDISK 2
@@ -570,8 +548,6 @@ static inline struct block_device *bdget_disk(struct gendisk *disk, int index)
570 return bdget(MKDEV(disk->major, disk->first_minor) + index); 548 return bdget(MKDEV(disk->major, disk->first_minor) + index);
571} 549}
572 550
573#endif
574
575#else /* CONFIG_BLOCK */ 551#else /* CONFIG_BLOCK */
576 552
577static inline void printk_all_partitions(void) { } 553static inline void printk_all_partitions(void) { }
@@ -584,4 +560,4 @@ static inline dev_t blk_lookup_devt(const char *name)
584 560
585#endif /* CONFIG_BLOCK */ 561#endif /* CONFIG_BLOCK */
586 562
587#endif 563#endif /* _LINUX_GENHD_H */
diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h
index 49829988bfa0..897f723bd222 100644
--- a/include/linux/hardirq.h
+++ b/include/linux/hardirq.h
@@ -72,6 +72,13 @@
72#define in_softirq() (softirq_count()) 72#define in_softirq() (softirq_count())
73#define in_interrupt() (irq_count()) 73#define in_interrupt() (irq_count())
74 74
75/*
76 * Are we running in atomic context? WARNING: this macro cannot
77 * always detect atomic context; in particular, it cannot know about
78 * held spinlocks in non-preemptible kernels. Thus it should not be
79 * used in the general case to determine whether sleeping is possible.
80 * Do not use in_atomic() in driver code.
81 */
75#define in_atomic() ((preempt_count() & ~PREEMPT_ACTIVE) != 0) 82#define in_atomic() ((preempt_count() & ~PREEMPT_ACTIVE) != 0)
76 83
77#ifdef CONFIG_PREEMPT 84#ifdef CONFIG_PREEMPT
diff --git a/include/linux/ide.h b/include/linux/ide.h
index a3b69c10d667..bc26b2f27359 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -26,7 +26,7 @@
26#include <asm/semaphore.h> 26#include <asm/semaphore.h>
27#include <asm/mutex.h> 27#include <asm/mutex.h>
28 28
29#if defined(CRIS) || defined(FRV) 29#if defined(CONFIG_CRIS) || defined(CONFIG_FRV)
30# define SUPPORT_VLB_SYNC 0 30# define SUPPORT_VLB_SYNC 0
31#else 31#else
32# define SUPPORT_VLB_SYNC 1 32# define SUPPORT_VLB_SYNC 1
diff --git a/include/linux/in.h b/include/linux/in.h
index 70c6df882694..4065313cd7ee 100644
--- a/include/linux/in.h
+++ b/include/linux/in.h
@@ -265,7 +265,7 @@ static inline bool ipv4_is_local_multicast(__be32 addr)
265static inline bool ipv4_is_lbcast(__be32 addr) 265static inline bool ipv4_is_lbcast(__be32 addr)
266{ 266{
267 /* limited broadcast */ 267 /* limited broadcast */
268 return addr == INADDR_BROADCAST; 268 return addr == htonl(INADDR_BROADCAST);
269} 269}
270 270
271static inline bool ipv4_is_zeronet(__be32 addr) 271static inline bool ipv4_is_zeronet(__be32 addr)
diff --git a/include/linux/jbd.h b/include/linux/jbd.h
index b18fd3b9b835..423f58272188 100644
--- a/include/linux/jbd.h
+++ b/include/linux/jbd.h
@@ -348,8 +348,7 @@ static inline void jbd_unlock_bh_journal_head(struct buffer_head *bh)
348struct jbd_revoke_table_s; 348struct jbd_revoke_table_s;
349 349
350/** 350/**
351 * struct handle_s - The handle_s type is the concrete type associated with 351 * struct handle_s - this is the concrete type associated with handle_t.
352 * handle_t.
353 * @h_transaction: Which compound transaction is this update a part of? 352 * @h_transaction: Which compound transaction is this update a part of?
354 * @h_buffer_credits: Number of remaining buffers we are allowed to dirty. 353 * @h_buffer_credits: Number of remaining buffers we are allowed to dirty.
355 * @h_ref: Reference count on this handle 354 * @h_ref: Reference count on this handle
@@ -358,12 +357,7 @@ struct jbd_revoke_table_s;
358 * @h_jdata: flag to force data journaling 357 * @h_jdata: flag to force data journaling
359 * @h_aborted: flag indicating fatal error on handle 358 * @h_aborted: flag indicating fatal error on handle
360 * @h_lockdep_map: lockdep info for debugging lock problems 359 * @h_lockdep_map: lockdep info for debugging lock problems
361 **/
362
363/* Docbook can't yet cope with the bit fields, but will leave the documentation
364 * in so it can be fixed later.
365 */ 360 */
366
367struct handle_s 361struct handle_s
368{ 362{
369 /* Which compound transaction is this update a part of? */ 363 /* Which compound transaction is this update a part of? */
@@ -558,8 +552,7 @@ struct transaction_s
558}; 552};
559 553
560/** 554/**
561 * struct journal_s - The journal_s type is the concrete type associated with 555 * struct journal_s - this is the concrete type associated with journal_t.
562 * journal_t.
563 * @j_flags: General journaling state flags 556 * @j_flags: General journaling state flags
564 * @j_errno: Is there an outstanding uncleared error on the journal (from a 557 * @j_errno: Is there an outstanding uncleared error on the journal (from a
565 * prior abort)? 558 * prior abort)?
diff --git a/include/linux/lguest_launcher.h b/include/linux/lguest_launcher.h
index 589be3e1f3ac..e7217dc58f39 100644
--- a/include/linux/lguest_launcher.h
+++ b/include/linux/lguest_launcher.h
@@ -16,6 +16,10 @@
16 * a new device, we simply need to write a new virtio driver and create support 16 * a new device, we simply need to write a new virtio driver and create support
17 * for it in the Launcher: this code won't need to change. 17 * for it in the Launcher: this code won't need to change.
18 * 18 *
19 * Virtio devices are also used by kvm, so we can simply reuse their optimized
20 * device drivers. And one day when everyone uses virtio, my plan will be
21 * complete. Bwahahahah!
22 *
19 * Devices are described by a simplified ID, a status byte, and some "config" 23 * Devices are described by a simplified ID, a status byte, and some "config"
20 * bytes which describe this device's configuration. This is placed by the 24 * bytes which describe this device's configuration. This is placed by the
21 * Launcher just above the top of physical memory: 25 * Launcher just above the top of physical memory:
@@ -26,7 +30,7 @@ struct lguest_device_desc {
26 /* The number of virtqueues (first in config array) */ 30 /* The number of virtqueues (first in config array) */
27 __u8 num_vq; 31 __u8 num_vq;
28 /* The number of bytes of feature bits. Multiply by 2: one for host 32 /* The number of bytes of feature bits. Multiply by 2: one for host
29 * features and one for guest acknowledgements. */ 33 * features and one for Guest acknowledgements. */
30 __u8 feature_len; 34 __u8 feature_len;
31 /* The number of bytes of the config array after virtqueues. */ 35 /* The number of bytes of the config array after virtqueues. */
32 __u8 config_len; 36 __u8 config_len;
diff --git a/include/linux/libata.h b/include/linux/libata.h
index a05f60013642..b064bfeb69ee 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -295,6 +295,7 @@ enum {
295 ATA_EH_SOFTRESET = (1 << 1), 295 ATA_EH_SOFTRESET = (1 << 1),
296 ATA_EH_HARDRESET = (1 << 2), 296 ATA_EH_HARDRESET = (1 << 2),
297 ATA_EH_ENABLE_LINK = (1 << 3), 297 ATA_EH_ENABLE_LINK = (1 << 3),
298 ATA_EH_LPM = (1 << 4), /* link power management action */
298 299
299 ATA_EH_RESET_MASK = ATA_EH_SOFTRESET | ATA_EH_HARDRESET, 300 ATA_EH_RESET_MASK = ATA_EH_SOFTRESET | ATA_EH_HARDRESET,
300 ATA_EH_PERDEV_MASK = ATA_EH_REVALIDATE, 301 ATA_EH_PERDEV_MASK = ATA_EH_REVALIDATE,
@@ -304,7 +305,6 @@ enum {
304 ATA_EHI_RESUME_LINK = (1 << 1), /* resume link (reset modifier) */ 305 ATA_EHI_RESUME_LINK = (1 << 1), /* resume link (reset modifier) */
305 ATA_EHI_NO_AUTOPSY = (1 << 2), /* no autopsy */ 306 ATA_EHI_NO_AUTOPSY = (1 << 2), /* no autopsy */
306 ATA_EHI_QUIET = (1 << 3), /* be quiet */ 307 ATA_EHI_QUIET = (1 << 3), /* be quiet */
307 ATA_EHI_LPM = (1 << 4), /* link power management action */
308 308
309 ATA_EHI_DID_SOFTRESET = (1 << 16), /* already soft-reset this port */ 309 ATA_EHI_DID_SOFTRESET = (1 << 16), /* already soft-reset this port */
310 ATA_EHI_DID_HARDRESET = (1 << 17), /* already soft-reset this port */ 310 ATA_EHI_DID_HARDRESET = (1 << 17), /* already soft-reset this port */
@@ -463,6 +463,7 @@ struct ata_queued_cmd {
463 unsigned int sect_size; 463 unsigned int sect_size;
464 464
465 unsigned int nbytes; 465 unsigned int nbytes;
466 unsigned int extrabytes;
466 unsigned int curbytes; 467 unsigned int curbytes;
467 468
468 struct scatterlist *cursg; 469 struct scatterlist *cursg;
@@ -1336,6 +1337,11 @@ static inline struct ata_queued_cmd *ata_qc_from_tag(struct ata_port *ap,
1336 return NULL; 1337 return NULL;
1337} 1338}
1338 1339
1340static inline unsigned int ata_qc_raw_nbytes(struct ata_queued_cmd *qc)
1341{
1342 return qc->nbytes - min(qc->extrabytes, qc->nbytes);
1343}
1344
1339static inline void ata_tf_init(struct ata_device *dev, struct ata_taskfile *tf) 1345static inline void ata_tf_init(struct ata_device *dev, struct ata_taskfile *tf)
1340{ 1346{
1341 memset(tf, 0, sizeof(*tf)); 1347 memset(tf, 0, sizeof(*tf));
@@ -1354,7 +1360,7 @@ static inline void ata_qc_reinit(struct ata_queued_cmd *qc)
1354 qc->flags = 0; 1360 qc->flags = 0;
1355 qc->cursg = NULL; 1361 qc->cursg = NULL;
1356 qc->cursg_ofs = 0; 1362 qc->cursg_ofs = 0;
1357 qc->nbytes = qc->curbytes = 0; 1363 qc->nbytes = qc->extrabytes = qc->curbytes = 0;
1358 qc->n_elem = 0; 1364 qc->n_elem = 0;
1359 qc->err_mask = 0; 1365 qc->err_mask = 0;
1360 qc->sect_size = ATA_SECT_SIZE; 1366 qc->sect_size = ATA_SECT_SIZE;
diff --git a/include/linux/memstick.h b/include/linux/memstick.h
index b7ee25888836..3e686ec6a967 100644
--- a/include/linux/memstick.h
+++ b/include/linux/memstick.h
@@ -239,7 +239,6 @@ struct memstick_request {
239 unsigned char tpc; 239 unsigned char tpc;
240 unsigned char data_dir:1, 240 unsigned char data_dir:1,
241 need_card_int:1, 241 need_card_int:1,
242 get_int_reg:1,
243 long_data:1; 242 long_data:1;
244 unsigned char int_reg; 243 unsigned char int_reg;
245 int error; 244 int error;
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 3f3ccfe42de0..b695875d63e3 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -235,15 +235,22 @@ static inline int get_page_unless_zero(struct page *page)
235struct page *vmalloc_to_page(const void *addr); 235struct page *vmalloc_to_page(const void *addr);
236unsigned long vmalloc_to_pfn(const void *addr); 236unsigned long vmalloc_to_pfn(const void *addr);
237 237
238#ifdef CONFIG_MMU 238/*
239/* Determine if an address is within the vmalloc range */ 239 * Determine if an address is within the vmalloc range
240 *
241 * On nommu, vmalloc/vfree wrap through kmalloc/kfree directly, so there
242 * is no special casing required.
243 */
240static inline int is_vmalloc_addr(const void *x) 244static inline int is_vmalloc_addr(const void *x)
241{ 245{
246#ifdef CONFIG_MMU
242 unsigned long addr = (unsigned long)x; 247 unsigned long addr = (unsigned long)x;
243 248
244 return addr >= VMALLOC_START && addr < VMALLOC_END; 249 return addr >= VMALLOC_START && addr < VMALLOC_END;
245} 250#else
251 return 0;
246#endif 252#endif
253}
247 254
248static inline struct page *compound_head(struct page *page) 255static inline struct page *compound_head(struct page *page)
249{ 256{
diff --git a/include/linux/mount.h b/include/linux/mount.h
index 6d3047d8c91c..5ee2df217cdf 100644
--- a/include/linux/mount.h
+++ b/include/linux/mount.h
@@ -61,6 +61,7 @@ struct vfsmount {
61 atomic_t mnt_count; 61 atomic_t mnt_count;
62 int mnt_expiry_mark; /* true if marked for expiry */ 62 int mnt_expiry_mark; /* true if marked for expiry */
63 int mnt_pinned; 63 int mnt_pinned;
64 int mnt_ghosts;
64}; 65};
65 66
66static inline struct vfsmount *mntget(struct vfsmount *mnt) 67static inline struct vfsmount *mntget(struct vfsmount *mnt)
@@ -98,7 +99,6 @@ extern int do_add_mount(struct vfsmount *newmnt, struct nameidata *nd,
98 int mnt_flags, struct list_head *fslist); 99 int mnt_flags, struct list_head *fslist);
99 100
100extern void mark_mounts_for_expiry(struct list_head *mounts); 101extern void mark_mounts_for_expiry(struct list_head *mounts);
101extern void shrink_submounts(struct vfsmount *mountpoint, struct list_head *mounts);
102 102
103extern spinlock_t vfsmount_lock; 103extern spinlock_t vfsmount_lock;
104extern dev_t name_to_dev_t(char *name); 104extern dev_t name_to_dev_t(char *name);
diff --git a/include/linux/netfilter/nfnetlink_compat.h b/include/linux/netfilter/nfnetlink_compat.h
index 02a42d875cf7..e1451760c9cd 100644
--- a/include/linux/netfilter/nfnetlink_compat.h
+++ b/include/linux/netfilter/nfnetlink_compat.h
@@ -1,6 +1,6 @@
1#ifndef _NFNETLINK_COMPAT_H 1#ifndef _NFNETLINK_COMPAT_H
2#define _NFNETLINK_COMPAT_H 2#define _NFNETLINK_COMPAT_H
3#ifndef __KERNEL 3#ifndef __KERNEL__
4/* Old nfnetlink macros for userspace */ 4/* Old nfnetlink macros for userspace */
5 5
6/* nfnetlink groups: Up to 32 maximum */ 6/* nfnetlink groups: Up to 32 maximum */
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 38eff1947750..ea760e519c46 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -278,6 +278,7 @@ struct pci_bus {
278 struct device dev; 278 struct device dev;
279 struct bin_attribute *legacy_io; /* legacy I/O for this bus */ 279 struct bin_attribute *legacy_io; /* legacy I/O for this bus */
280 struct bin_attribute *legacy_mem; /* legacy mem */ 280 struct bin_attribute *legacy_mem; /* legacy mem */
281 unsigned int is_added:1;
281}; 282};
282 283
283#define pci_bus_b(n) list_entry(n, struct pci_bus, node) 284#define pci_bus_b(n) list_entry(n, struct pci_bus, node)
@@ -512,7 +513,6 @@ int pci_find_next_capability(struct pci_dev *dev, u8 pos, int cap);
512int pci_find_ext_capability(struct pci_dev *dev, int cap); 513int pci_find_ext_capability(struct pci_dev *dev, int cap);
513int pci_find_ht_capability(struct pci_dev *dev, int ht_cap); 514int pci_find_ht_capability(struct pci_dev *dev, int ht_cap);
514int pci_find_next_ht_capability(struct pci_dev *dev, int pos, int ht_cap); 515int pci_find_next_ht_capability(struct pci_dev *dev, int pos, int ht_cap);
515void pcie_wait_pending_transaction(struct pci_dev *dev);
516struct pci_bus *pci_find_next_bus(const struct pci_bus *from); 516struct pci_bus *pci_find_next_bus(const struct pci_bus *from);
517 517
518struct pci_dev *pci_get_device(unsigned int vendor, unsigned int device, 518struct pci_dev *pci_get_device(unsigned int vendor, unsigned int device,
@@ -883,9 +883,6 @@ static inline int pci_find_ext_capability(struct pci_dev *dev, int cap)
883 return 0; 883 return 0;
884} 884}
885 885
886static inline void pcie_wait_pending_transaction(struct pci_dev *dev)
887{ }
888
889/* Power management related routines */ 886/* Power management related routines */
890static inline int pci_save_state(struct pci_dev *dev) 887static inline int pci_save_state(struct pci_dev *dev)
891{ 888{
@@ -1044,6 +1041,8 @@ void __iomem *pcim_iomap(struct pci_dev *pdev, int bar, unsigned long maxlen);
1044void pcim_iounmap(struct pci_dev *pdev, void __iomem *addr); 1041void pcim_iounmap(struct pci_dev *pdev, void __iomem *addr);
1045void __iomem * const *pcim_iomap_table(struct pci_dev *pdev); 1042void __iomem * const *pcim_iomap_table(struct pci_dev *pdev);
1046int pcim_iomap_regions(struct pci_dev *pdev, u16 mask, const char *name); 1043int pcim_iomap_regions(struct pci_dev *pdev, u16 mask, const char *name);
1044int pcim_iomap_regions_request_all(struct pci_dev *pdev, u16 mask,
1045 const char *name);
1047void pcim_iounmap_regions(struct pci_dev *pdev, u16 mask); 1046void pcim_iounmap_regions(struct pci_dev *pdev, u16 mask);
1048 1047
1049extern int pci_pci_problems; 1048extern int pci_pci_problems;
diff --git a/include/linux/pkt_cls.h b/include/linux/pkt_cls.h
index 28dfc61cf79e..99efbed81fa2 100644
--- a/include/linux/pkt_cls.h
+++ b/include/linux/pkt_cls.h
@@ -201,8 +201,8 @@ enum
201 201
202struct tc_u32_key 202struct tc_u32_key
203{ 203{
204 __u32 mask; 204 __be32 mask;
205 __u32 val; 205 __be32 val;
206 int off; 206 int off;
207 int offmask; 207 int offmask;
208}; 208};
@@ -213,12 +213,12 @@ struct tc_u32_sel
213 unsigned char offshift; 213 unsigned char offshift;
214 unsigned char nkeys; 214 unsigned char nkeys;
215 215
216 __u16 offmask; 216 __be16 offmask;
217 __u16 off; 217 __u16 off;
218 short offoff; 218 short offoff;
219 219
220 short hoff; 220 short hoff;
221 __u32 hmask; 221 __be32 hmask;
222 struct tc_u32_key keys[0]; 222 struct tc_u32_key keys[0];
223}; 223};
224 224
diff --git a/include/linux/pmu.h b/include/linux/pmu.h
index 4c5f65392d36..cafe98d96948 100644
--- a/include/linux/pmu.h
+++ b/include/linux/pmu.h
@@ -147,8 +147,15 @@ extern void pmu_wait_complete(struct adb_request *req);
147/* For use before switching interrupts off for a long time; 147/* For use before switching interrupts off for a long time;
148 * warning: not stackable 148 * warning: not stackable
149 */ 149 */
150#if defined(CONFIG_ADB_PMU)
150extern void pmu_suspend(void); 151extern void pmu_suspend(void);
151extern void pmu_resume(void); 152extern void pmu_resume(void);
153#else
154static inline void pmu_suspend(void)
155{}
156static inline void pmu_resume(void)
157{}
158#endif
152 159
153extern void pmu_enable_irled(int on); 160extern void pmu_enable_irled(int on);
154 161
@@ -192,7 +199,7 @@ extern unsigned int pmu_power_flags;
192extern void pmu_backlight_init(void); 199extern void pmu_backlight_init(void);
193 200
194/* some code needs to know if the PMU was suspended for hibernation */ 201/* some code needs to know if the PMU was suspended for hibernation */
195#if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32) 202#if defined(CONFIG_SUSPEND) && defined(CONFIG_PPC32)
196extern int pmu_sys_suspended; 203extern int pmu_sys_suspended;
197#else 204#else
198/* if power management is not configured it can't be suspended */ 205/* if power management is not configured it can't be suspended */
diff --git a/include/linux/pnp.h b/include/linux/pnp.h
index cd6332b88829..29dd55838e84 100644
--- a/include/linux/pnp.h
+++ b/include/linux/pnp.h
@@ -14,7 +14,7 @@
14#include <linux/mod_devicetable.h> 14#include <linux/mod_devicetable.h>
15 15
16#define PNP_MAX_PORT 40 16#define PNP_MAX_PORT 40
17#define PNP_MAX_MEM 12 17#define PNP_MAX_MEM 24
18#define PNP_MAX_IRQ 2 18#define PNP_MAX_IRQ 2
19#define PNP_MAX_DMA 2 19#define PNP_MAX_DMA 2
20#define PNP_NAME_LEN 50 20#define PNP_NAME_LEN 50
diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h
index d9a9e718ad19..9b6c935f69cf 100644
--- a/include/linux/proc_fs.h
+++ b/include/linux/proc_fs.h
@@ -50,8 +50,6 @@ typedef int (read_proc_t)(char *page, char **start, off_t off,
50typedef int (write_proc_t)(struct file *file, const char __user *buffer, 50typedef int (write_proc_t)(struct file *file, const char __user *buffer,
51 unsigned long count, void *data); 51 unsigned long count, void *data);
52typedef int (get_info_t)(char *, char **, off_t, int); 52typedef int (get_info_t)(char *, char **, off_t, int);
53typedef struct proc_dir_entry *(shadow_proc_t)(struct task_struct *task,
54 struct proc_dir_entry *pde);
55 53
56struct proc_dir_entry { 54struct proc_dir_entry {
57 unsigned int low_ino; 55 unsigned int low_ino;
@@ -82,7 +80,6 @@ struct proc_dir_entry {
82 int pde_users; /* number of callers into module in progress */ 80 int pde_users; /* number of callers into module in progress */
83 spinlock_t pde_unload_lock; /* proc_fops checks and pde_users bumps */ 81 spinlock_t pde_unload_lock; /* proc_fops checks and pde_users bumps */
84 struct completion *pde_unload_completion; 82 struct completion *pde_unload_completion;
85 shadow_proc_t *shadow_proc;
86}; 83};
87 84
88struct kcore_list { 85struct kcore_list {
diff --git a/include/linux/ps2esdi.h b/include/linux/ps2esdi.h
deleted file mode 100644
index c0e050b1dfe9..000000000000
--- a/include/linux/ps2esdi.h
+++ /dev/null
@@ -1,98 +0,0 @@
1#ifndef _PS2ESDI_H_
2#define _PS2ESDI_H_
3
4#define NRML_ESDI_ID 0xddff
5#define INTG_ESDI_ID 0xdf9f
6
7#define PRIMARY_IO_BASE 0x3510
8#define ALT_IO_BASE 0x3518
9
10#define ESDI_CMD_INT (io_base+0)
11#define ESDI_STT_INT (io_base+0)
12#define ESDI_CONTROL (io_base+2)
13#define ESDI_STATUS (io_base+2)
14#define ESDI_ATTN (io_base+3)
15#define ESDI_INTRPT (io_base+3)
16
17#define STATUS_ENABLED 0x01
18#define STATUS_ALTERNATE 0x02
19#define STATUS_BUSY 0x10
20#define STATUS_STAT_AVAIL 0x08
21#define STATUS_INTR 0x01
22#define STATUS_RESET_FAIL 0xea
23#define STATUS_CMD_INF 0x04
24
25#define CTRL_SOFT_RESET 0xe4
26#define CTRL_HARD_RESET 0x80
27#define CTRL_EOI 0xe2
28#define CTRL_ENABLE_DMA 0x02
29#define CTRL_ENABLE_INTR 0x01
30#define CTRL_DISABLE_INTR 0x00
31
32#define ATT_EOI 0x02
33
34/* bits of word 0 of configuration status block. more info see p.38 of tech ref */
35#define CONFIG_IS 0x10 /* Invalid Secondary */
36#define CONFIG_ZD 0x08 /* Zero Defect */
37#define CONFIG_SF 0x04 /* Skewed Format */
38#define CONFIG_FR 0x02 /* Removable */
39#define CONFIG_RT 0x01 /* Retries */
40
41#define PORT_SYS_A 0x92
42#define PORT_DMA_FN 0x18
43#define PORT_DMA_EX 0x1a
44
45#define ON (unsigned char)0x40
46#define OFF (unsigned char)~ON
47#define LITE_ON outb(inb(PORT_SYS_A) | ON,PORT_SYS_A)
48#define LITE_OFF outb((inb(PORT_SYS_A) & OFF),PORT_SYS_A)
49
50#define FAIL 0
51#define SUCCES 1
52
53#define INT_CMD_COMPLETE 0x01
54#define INT_CMD_ECC 0x03
55#define INT_CMD_RETRY 0x05
56#define INT_CMD_FORMAT 0x06
57#define INT_CMD_ECC_RETRY 0x07
58#define INT_CMD_WARNING 0x08
59#define INT_CMD_ABORT 0x09
60#define INT_RESET 0x0A
61#define INT_TRANSFER_REQ 0x0B
62#define INT_CMD_FAILED 0x0C
63#define INT_DMA_ERR 0x0D
64#define INT_CMD_BLK_ERR 0x0E
65#define INT_ATTN_ERROR 0x0F
66
67#define DMA_MASK_CHAN 0x90
68#define DMA_UNMASK_CHAN 0xA0
69#define DMA_WRITE_ADDR 0x20
70#define DMA_WRITE_TC 0x40
71#define DMA_WRITE_MODE 0x70
72
73#define CMD_GET_DEV_CONFIG 0x09
74#define CMD_READ 0x4601
75#define CMD_WRITE 0x4602
76#define DMA_READ_16 0x4C
77#define DMA_WRITE_16 0x44
78
79
80#define MB 1024*1024
81#define SECT_SIZE 512
82
83#define ERROR 1
84#define OK 0
85
86#define HDIO_GETGEO 0x0301
87
88#define FALSE 0
89#define TRUE !FALSE
90
91struct ps2esdi_geometry {
92 unsigned char heads;
93 unsigned char sectors;
94 unsigned short cylinders;
95 unsigned long start;
96};
97
98#endif /* _PS2ESDI_H_ */
diff --git a/include/linux/rcupreempt.h b/include/linux/rcupreempt.h
index 01152ed532c8..d038aa6e5ee1 100644
--- a/include/linux/rcupreempt.h
+++ b/include/linux/rcupreempt.h
@@ -87,15 +87,15 @@ DECLARE_PER_CPU(long, dynticks_progress_counter);
87 87
88static inline void rcu_enter_nohz(void) 88static inline void rcu_enter_nohz(void)
89{ 89{
90 smp_mb(); /* CPUs seeing ++ must see prior RCU read-side crit sects */
90 __get_cpu_var(dynticks_progress_counter)++; 91 __get_cpu_var(dynticks_progress_counter)++;
91 WARN_ON(__get_cpu_var(dynticks_progress_counter) & 0x1); 92 WARN_ON(__get_cpu_var(dynticks_progress_counter) & 0x1);
92 mb();
93} 93}
94 94
95static inline void rcu_exit_nohz(void) 95static inline void rcu_exit_nohz(void)
96{ 96{
97 mb();
98 __get_cpu_var(dynticks_progress_counter)++; 97 __get_cpu_var(dynticks_progress_counter)++;
98 smp_mb(); /* CPUs seeing ++ must see later RCU read-side crit sects */
99 WARN_ON(!(__get_cpu_var(dynticks_progress_counter) & 0x1)); 99 WARN_ON(!(__get_cpu_var(dynticks_progress_counter) & 0x1));
100} 100}
101 101
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 11d8e9a74eff..6a1e7afb099b 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -790,6 +790,7 @@ struct sched_domain {
790}; 790};
791 791
792extern void partition_sched_domains(int ndoms_new, cpumask_t *doms_new); 792extern void partition_sched_domains(int ndoms_new, cpumask_t *doms_new);
793extern int arch_reinit_sched_domains(void);
793 794
794#endif /* CONFIG_SMP */ 795#endif /* CONFIG_SMP */
795 796
@@ -929,6 +930,9 @@ struct sched_entity {
929 u64 vruntime; 930 u64 vruntime;
930 u64 prev_sum_exec_runtime; 931 u64 prev_sum_exec_runtime;
931 932
933 u64 last_wakeup;
934 u64 avg_overlap;
935
932#ifdef CONFIG_SCHEDSTATS 936#ifdef CONFIG_SCHEDSTATS
933 u64 wait_start; 937 u64 wait_start;
934 u64 wait_max; 938 u64 wait_max;
@@ -1537,6 +1541,12 @@ static inline void idle_task_exit(void) {}
1537 1541
1538extern void sched_idle_next(void); 1542extern void sched_idle_next(void);
1539 1543
1544#if defined(CONFIG_NO_HZ) && defined(CONFIG_SMP)
1545extern void wake_up_idle_cpu(int cpu);
1546#else
1547static inline void wake_up_idle_cpu(int cpu) { }
1548#endif
1549
1540#ifdef CONFIG_SCHED_DEBUG 1550#ifdef CONFIG_SCHED_DEBUG
1541extern unsigned int sysctl_sched_latency; 1551extern unsigned int sysctl_sched_latency;
1542extern unsigned int sysctl_sched_min_granularity; 1552extern unsigned int sysctl_sched_min_granularity;
diff --git a/include/linux/security.h b/include/linux/security.h
index b07357ca2137..c673dfd4dffc 100644
--- a/include/linux/security.h
+++ b/include/linux/security.h
@@ -57,7 +57,6 @@ extern int cap_inode_need_killpriv(struct dentry *dentry);
57extern int cap_inode_killpriv(struct dentry *dentry); 57extern int cap_inode_killpriv(struct dentry *dentry);
58extern int cap_task_post_setuid (uid_t old_ruid, uid_t old_euid, uid_t old_suid, int flags); 58extern int cap_task_post_setuid (uid_t old_ruid, uid_t old_euid, uid_t old_suid, int flags);
59extern void cap_task_reparent_to_init (struct task_struct *p); 59extern void cap_task_reparent_to_init (struct task_struct *p);
60extern int cap_task_kill(struct task_struct *p, struct siginfo *info, int sig, u32 secid);
61extern int cap_task_setscheduler (struct task_struct *p, int policy, struct sched_param *lp); 60extern int cap_task_setscheduler (struct task_struct *p, int policy, struct sched_param *lp);
62extern int cap_task_setioprio (struct task_struct *p, int ioprio); 61extern int cap_task_setioprio (struct task_struct *p, int ioprio);
63extern int cap_task_setnice (struct task_struct *p, int nice); 62extern int cap_task_setnice (struct task_struct *p, int nice);
@@ -2187,7 +2186,7 @@ static inline int security_task_kill (struct task_struct *p,
2187 struct siginfo *info, int sig, 2186 struct siginfo *info, int sig,
2188 u32 secid) 2187 u32 secid)
2189{ 2188{
2190 return cap_task_kill(p, info, sig, secid); 2189 return 0;
2191} 2190}
2192 2191
2193static inline int security_task_wait (struct task_struct *p) 2192static inline int security_task_wait (struct task_struct *p)
diff --git a/include/linux/topology.h b/include/linux/topology.h
index 2352f46160d3..bd14f8b30f09 100644
--- a/include/linux/topology.h
+++ b/include/linux/topology.h
@@ -50,6 +50,8 @@
50 for_each_online_node(node) \ 50 for_each_online_node(node) \
51 if (nr_cpus_node(node)) 51 if (nr_cpus_node(node))
52 52
53void arch_update_cpu_topology(void);
54
53/* Conform to ACPI 2.0 SLIT distance definitions */ 55/* Conform to ACPI 2.0 SLIT distance definitions */
54#define LOCAL_DISTANCE 10 56#define LOCAL_DISTANCE 10
55#define REMOTE_DISTANCE 20 57#define REMOTE_DISTANCE 20
@@ -138,7 +140,6 @@
138 | SD_BALANCE_FORK \ 140 | SD_BALANCE_FORK \
139 | SD_BALANCE_EXEC \ 141 | SD_BALANCE_EXEC \
140 | SD_WAKE_AFFINE \ 142 | SD_WAKE_AFFINE \
141 | SD_WAKE_IDLE \
142 | SD_SHARE_PKG_RESOURCES\ 143 | SD_SHARE_PKG_RESOURCES\
143 | BALANCE_FOR_MC_POWER, \ 144 | BALANCE_FOR_MC_POWER, \
144 .last_balance = jiffies, \ 145 .last_balance = jiffies, \
diff --git a/include/linux/usb/quirks.h b/include/linux/usb/quirks.h
index 2692ec9389ca..1f999ec8d08c 100644
--- a/include/linux/usb/quirks.h
+++ b/include/linux/usb/quirks.h
@@ -9,3 +9,6 @@
9 9
10/* device can't resume correctly so reset it instead */ 10/* device can't resume correctly so reset it instead */
11#define USB_QUIRK_RESET_RESUME 0x00000002 11#define USB_QUIRK_RESET_RESUME 0x00000002
12
13/* device can't handle Set-Interface requests */
14#define USB_QUIRK_NO_SET_INTF 0x00000004
diff --git a/include/linux/usb_usual.h b/include/linux/usb_usual.h
index cee0623b3c7b..0a40dfa44c9f 100644
--- a/include/linux/usb_usual.h
+++ b/include/linux/usb_usual.h
@@ -50,7 +50,9 @@
50 US_FLAG(CAPACITY_HEURISTICS, 0x00001000) \ 50 US_FLAG(CAPACITY_HEURISTICS, 0x00001000) \
51 /* sometimes sizes is too big */ \ 51 /* sometimes sizes is too big */ \
52 US_FLAG(MAX_SECTORS_MIN,0x00002000) \ 52 US_FLAG(MAX_SECTORS_MIN,0x00002000) \
53 /* Sets max_sectors to arch min */ 53 /* Sets max_sectors to arch min */ \
54 US_FLAG(BULK_IGNORE_TAG,0x00004000) \
55 /* Ignore tag mismatch in bulk operations */
54 56
55 57
56#define US_FLAG(name, value) US_FL_##name = value , 58#define US_FLAG(name, value) US_FL_##name = value ,
diff --git a/include/linux/virtio.h b/include/linux/virtio.h
index 260d1fcf29a4..12c18ac1b973 100644
--- a/include/linux/virtio.h
+++ b/include/linux/virtio.h
@@ -43,8 +43,9 @@ struct virtqueue
43 * vq: the struct virtqueue we're talking about. 43 * vq: the struct virtqueue we're talking about.
44 * @enable_cb: restart callbacks after disable_cb. 44 * @enable_cb: restart callbacks after disable_cb.
45 * vq: the struct virtqueue we're talking about. 45 * vq: the struct virtqueue we're talking about.
46 * This returns "false" (and doesn't re-enable) if there are pending 46 * This re-enables callbacks; it returns "false" if there are pending
47 * buffers in the queue, to avoid a race. 47 * buffers in the queue, to detect a possible race between the driver
48 * checking for more work, and enabling callbacks.
48 * 49 *
49 * Locking rules are straightforward: the driver is responsible for 50 * Locking rules are straightforward: the driver is responsible for
50 * locking. No two operations may be invoked simultaneously. 51 * locking. No two operations may be invoked simultaneously.
diff --git a/include/net/bluetooth/bluetooth.h b/include/net/bluetooth/bluetooth.h
index 771d17783c18..750648df13f4 100644
--- a/include/net/bluetooth/bluetooth.h
+++ b/include/net/bluetooth/bluetooth.h
@@ -170,7 +170,7 @@ static inline int skb_frags_no(struct sk_buff *skb)
170int bt_err(__u16 code); 170int bt_err(__u16 code);
171 171
172extern int hci_sock_init(void); 172extern int hci_sock_init(void);
173extern int hci_sock_cleanup(void); 173extern void hci_sock_cleanup(void);
174 174
175extern int bt_sysfs_init(void); 175extern int bt_sysfs_init(void);
176extern void bt_sysfs_cleanup(void); 176extern void bt_sysfs_cleanup(void);
diff --git a/include/net/dst.h b/include/net/dst.h
index e3ac7d0fc4e1..ae13370e8484 100644
--- a/include/net/dst.h
+++ b/include/net/dst.h
@@ -52,15 +52,10 @@ struct dst_entry
52 unsigned short header_len; /* more space at head required */ 52 unsigned short header_len; /* more space at head required */
53 unsigned short trailer_len; /* space to reserve at tail */ 53 unsigned short trailer_len; /* space to reserve at tail */
54 54
55 u32 metrics[RTAX_MAX];
56 struct dst_entry *path;
57
58 unsigned long rate_last; /* rate limiting for ICMP */
59 unsigned int rate_tokens; 55 unsigned int rate_tokens;
56 unsigned long rate_last; /* rate limiting for ICMP */
60 57
61#ifdef CONFIG_NET_CLS_ROUTE 58 struct dst_entry *path;
62 __u32 tclassid;
63#endif
64 59
65 struct neighbour *neighbour; 60 struct neighbour *neighbour;
66 struct hh_cache *hh; 61 struct hh_cache *hh;
@@ -70,10 +65,20 @@ struct dst_entry
70 int (*output)(struct sk_buff*); 65 int (*output)(struct sk_buff*);
71 66
72 struct dst_ops *ops; 67 struct dst_ops *ops;
73 68
74 unsigned long lastuse; 69 u32 metrics[RTAX_MAX];
70
71#ifdef CONFIG_NET_CLS_ROUTE
72 __u32 tclassid;
73#endif
74
75 /*
76 * __refcnt wants to be on a different cache line from
77 * input/output/ops or performance tanks badly
78 */
75 atomic_t __refcnt; /* client references */ 79 atomic_t __refcnt; /* client references */
76 int __use; 80 int __use;
81 unsigned long lastuse;
77 union { 82 union {
78 struct dst_entry *next; 83 struct dst_entry *next;
79 struct rtable *rt_next; 84 struct rtable *rt_next;
diff --git a/include/net/irda/irttp.h b/include/net/irda/irttp.h
index 32c385dd9e06..0788c23d2828 100644
--- a/include/net/irda/irttp.h
+++ b/include/net/irda/irttp.h
@@ -169,17 +169,17 @@ int irttp_disconnect_request(struct tsap_cb *self, struct sk_buff *skb,
169void irttp_flow_request(struct tsap_cb *self, LOCAL_FLOW flow); 169void irttp_flow_request(struct tsap_cb *self, LOCAL_FLOW flow);
170struct tsap_cb *irttp_dup(struct tsap_cb *self, void *instance); 170struct tsap_cb *irttp_dup(struct tsap_cb *self, void *instance);
171 171
172static __inline __u32 irttp_get_saddr(struct tsap_cb *self) 172static inline __u32 irttp_get_saddr(struct tsap_cb *self)
173{ 173{
174 return irlmp_get_saddr(self->lsap); 174 return irlmp_get_saddr(self->lsap);
175} 175}
176 176
177static __inline __u32 irttp_get_daddr(struct tsap_cb *self) 177static inline __u32 irttp_get_daddr(struct tsap_cb *self)
178{ 178{
179 return irlmp_get_daddr(self->lsap); 179 return irlmp_get_daddr(self->lsap);
180} 180}
181 181
182static __inline __u32 irttp_get_max_seg_size(struct tsap_cb *self) 182static inline __u32 irttp_get_max_seg_size(struct tsap_cb *self)
183{ 183{
184 return self->max_seg_size; 184 return self->max_seg_size;
185} 185}
diff --git a/include/net/neighbour.h b/include/net/neighbour.h
index ebbfb509822e..64a5f0120b52 100644
--- a/include/net/neighbour.h
+++ b/include/net/neighbour.h
@@ -218,6 +218,10 @@ extern unsigned long neigh_rand_reach_time(unsigned long base);
218extern void pneigh_enqueue(struct neigh_table *tbl, struct neigh_parms *p, 218extern void pneigh_enqueue(struct neigh_table *tbl, struct neigh_parms *p,
219 struct sk_buff *skb); 219 struct sk_buff *skb);
220extern struct pneigh_entry *pneigh_lookup(struct neigh_table *tbl, struct net *net, const void *key, struct net_device *dev, int creat); 220extern struct pneigh_entry *pneigh_lookup(struct neigh_table *tbl, struct net *net, const void *key, struct net_device *dev, int creat);
221extern struct pneigh_entry *__pneigh_lookup(struct neigh_table *tbl,
222 struct net *net,
223 const void *key,
224 struct net_device *dev);
221extern int pneigh_delete(struct neigh_table *tbl, struct net *net, const void *key, struct net_device *dev); 225extern int pneigh_delete(struct neigh_table *tbl, struct net *net, const void *key, struct net_device *dev);
222 226
223extern void neigh_app_ns(struct neighbour *n); 227extern void neigh_app_ns(struct neighbour *n);
diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h
index 28738b7d53eb..923f2b8b9096 100644
--- a/include/net/net_namespace.h
+++ b/include/net/net_namespace.h
@@ -31,7 +31,6 @@ struct net {
31 31
32 struct proc_dir_entry *proc_net; 32 struct proc_dir_entry *proc_net;
33 struct proc_dir_entry *proc_net_stat; 33 struct proc_dir_entry *proc_net_stat;
34 struct proc_dir_entry *proc_net_root;
35 34
36 struct list_head sysctl_table_headers; 35 struct list_head sysctl_table_headers;
37 36
diff --git a/include/net/netfilter/nf_conntrack_extend.h b/include/net/netfilter/nf_conntrack_extend.h
index 49aac6323fbe..f736e842977f 100644
--- a/include/net/netfilter/nf_conntrack_extend.h
+++ b/include/net/netfilter/nf_conntrack_extend.h
@@ -17,7 +17,6 @@ enum nf_ct_ext_id
17struct nf_ct_ext { 17struct nf_ct_ext {
18 u8 offset[NF_CT_EXT_NUM]; 18 u8 offset[NF_CT_EXT_NUM];
19 u8 len; 19 u8 len;
20 u8 real_len;
21 char data[0]; 20 char data[0];
22}; 21};
23 22
diff --git a/include/net/sctp/sctp.h b/include/net/sctp/sctp.h
index 57df27f19588..ea806732b084 100644
--- a/include/net/sctp/sctp.h
+++ b/include/net/sctp/sctp.h
@@ -380,15 +380,19 @@ static inline int sctp_sysctl_jiffies_ms(ctl_table *table, int __user *name, int
380 380
381#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) 381#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
382 382
383int sctp_v6_init(void); 383void sctp_v6_pf_init(void);
384void sctp_v6_exit(void); 384void sctp_v6_pf_exit(void);
385int sctp_v6_protosw_init(void);
386void sctp_v6_protosw_exit(void);
385int sctp_v6_add_protocol(void); 387int sctp_v6_add_protocol(void);
386void sctp_v6_del_protocol(void); 388void sctp_v6_del_protocol(void);
387 389
388#else /* #ifdef defined(CONFIG_IPV6) */ 390#else /* #ifdef defined(CONFIG_IPV6) */
389 391
390static inline int sctp_v6_init(void) { return 0; } 392static inline void sctp_v6_pf_init(void) { return; }
391static inline void sctp_v6_exit(void) { return; } 393static inline void sctp_v6_pf_exit(void) { return; }
394static inline int sctp_v6_protosw_init(void) { return 0; }
395static inline void sctp_v6_protosw_exit(void) { return; }
392static inline int sctp_v6_add_protocol(void) { return 0; } 396static inline int sctp_v6_add_protocol(void) { return 0; }
393static inline void sctp_v6_del_protocol(void) { return; } 397static inline void sctp_v6_del_protocol(void) { return; }
394 398
diff --git a/include/net/xfrm.h b/include/net/xfrm.h
index eea7785cc757..0d255ae008b6 100644
--- a/include/net/xfrm.h
+++ b/include/net/xfrm.h
@@ -204,6 +204,7 @@ struct xfrm_state
204 * transformer. */ 204 * transformer. */
205 const struct xfrm_type *type; 205 const struct xfrm_type *type;
206 struct xfrm_mode *inner_mode; 206 struct xfrm_mode *inner_mode;
207 struct xfrm_mode *inner_mode_iaf;
207 struct xfrm_mode *outer_mode; 208 struct xfrm_mode *outer_mode;
208 209
209 /* Security context */ 210 /* Security context */
@@ -277,7 +278,7 @@ extern int __xfrm_state_delete(struct xfrm_state *x);
277struct xfrm_state_afinfo { 278struct xfrm_state_afinfo {
278 unsigned int family; 279 unsigned int family;
279 unsigned int proto; 280 unsigned int proto;
280 unsigned int eth_proto; 281 __be16 eth_proto;
281 struct module *owner; 282 struct module *owner;
282 const struct xfrm_type *type_map[IPPROTO_MAX]; 283 const struct xfrm_type *type_map[IPPROTO_MAX];
283 struct xfrm_mode *mode_map[XFRM_MODE_MAX]; 284 struct xfrm_mode *mode_map[XFRM_MODE_MAX];
@@ -387,6 +388,27 @@ enum {
387extern int xfrm_register_mode(struct xfrm_mode *mode, int family); 388extern int xfrm_register_mode(struct xfrm_mode *mode, int family);
388extern int xfrm_unregister_mode(struct xfrm_mode *mode, int family); 389extern int xfrm_unregister_mode(struct xfrm_mode *mode, int family);
389 390
391static inline int xfrm_af2proto(unsigned int family)
392{
393 switch(family) {
394 case AF_INET:
395 return IPPROTO_IPIP;
396 case AF_INET6:
397 return IPPROTO_IPV6;
398 default:
399 return 0;
400 }
401}
402
403static inline struct xfrm_mode *xfrm_ip2inner_mode(struct xfrm_state *x, int ipproto)
404{
405 if ((ipproto == IPPROTO_IPIP && x->props.family == AF_INET) ||
406 (ipproto == IPPROTO_IPV6 && x->props.family == AF_INET6))
407 return x->inner_mode;
408 else
409 return x->inner_mode_iaf;
410}
411
390struct xfrm_tmpl 412struct xfrm_tmpl
391{ 413{
392/* id in template is interpreted as: 414/* id in template is interpreted as:
@@ -530,6 +552,9 @@ struct xfrm_mode_skb_cb {
530 __be16 id; 552 __be16 id;
531 __be16 frag_off; 553 __be16 frag_off;
532 554
555 /* IP header length (excluding options or extension headers). */
556 u8 ihl;
557
533 /* TOS for IPv4, class for IPv6. */ 558 /* TOS for IPv4, class for IPv6. */
534 u8 tos; 559 u8 tos;
535 560
@@ -539,6 +564,9 @@ struct xfrm_mode_skb_cb {
539 /* Protocol for IPv4, NH for IPv6. */ 564 /* Protocol for IPv4, NH for IPv6. */
540 u8 protocol; 565 u8 protocol;
541 566
567 /* Option length for IPv4, zero for IPv6. */
568 u8 optlen;
569
542 /* Used by IPv6 only, zero for IPv4. */ 570 /* Used by IPv6 only, zero for IPv4. */
543 u8 flow_lbl[3]; 571 u8 flow_lbl[3];
544}; 572};
@@ -1253,6 +1281,7 @@ extern int xfrm_input(struct sk_buff *skb, int nexthdr, __be32 spi,
1253extern int xfrm_input_resume(struct sk_buff *skb, int nexthdr); 1281extern int xfrm_input_resume(struct sk_buff *skb, int nexthdr);
1254extern int xfrm_output_resume(struct sk_buff *skb, int err); 1282extern int xfrm_output_resume(struct sk_buff *skb, int err);
1255extern int xfrm_output(struct sk_buff *skb); 1283extern int xfrm_output(struct sk_buff *skb);
1284extern int xfrm_inner_extract_output(struct xfrm_state *x, struct sk_buff *skb);
1256extern int xfrm4_extract_header(struct sk_buff *skb); 1285extern int xfrm4_extract_header(struct sk_buff *skb);
1257extern int xfrm4_extract_input(struct xfrm_state *x, struct sk_buff *skb); 1286extern int xfrm4_extract_input(struct xfrm_state *x, struct sk_buff *skb);
1258extern int xfrm4_rcv_encap(struct sk_buff *skb, int nexthdr, __be32 spi, 1287extern int xfrm4_rcv_encap(struct sk_buff *skb, int nexthdr, __be32 spi,