aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/acpi/acinterp.h6
-rw-r--r--include/acpi/actypes.h2
-rw-r--r--include/asm-arm/arch-at91/gpio.h2
-rw-r--r--include/asm-arm/arch-omap/gpio.h3
-rw-r--r--include/asm-arm/arch-pxa/gpio.h4
-rw-r--r--include/asm-arm/arch-s3c2410/gpio.h4
-rw-r--r--include/asm-arm/arch-sa1100/gpio.h2
-rw-r--r--include/asm-avr32/arch-at32ap/gpio.h2
-rw-r--r--include/asm-i386/apic.h1
-rw-r--r--include/asm-i386/elf.h10
-rw-r--r--include/asm-i386/nmi.h2
-rw-r--r--include/asm-i386/paravirt.h2
-rw-r--r--include/asm-i386/sync_bitops.h2
-rw-r--r--include/asm-ia64/machvec.h2
-rw-r--r--include/asm-ia64/meminit.h1
-rw-r--r--include/asm-m32r/dma-mapping.h19
-rw-r--r--include/asm-m68k/dma-mapping.h2
-rw-r--r--include/asm-m68k/mc146818rtc.h1
-rw-r--r--include/asm-mips/atomic.h40
-rw-r--r--include/asm-mips/bitops.h24
-rw-r--r--include/asm-mips/cacheflush.h12
-rw-r--r--include/asm-mips/cpu-features.h3
-rw-r--r--include/asm-mips/cpu-info.h1
-rw-r--r--include/asm-mips/delay.h2
-rw-r--r--include/asm-mips/fpu.h54
-rw-r--r--include/asm-mips/hazards.h1
-rw-r--r--include/asm-mips/mach-au1x00/au1xxx_ide.h34
-rw-r--r--include/asm-mips/mach-ip27/dma-coherence.h5
-rw-r--r--include/asm-mips/mach-ip32/dma-coherence.h5
-rw-r--r--include/asm-mips/pgtable-64.h2
-rw-r--r--include/asm-mips/pgtable.h2
-rw-r--r--include/asm-mips/rtlx.h4
-rw-r--r--include/asm-mips/sgiarcs.h2
-rw-r--r--include/asm-mips/sibyte/sb1250.h2
-rw-r--r--include/asm-mips/system.h16
-rw-r--r--include/asm-mips/thread_info.h1
-rw-r--r--include/asm-powerpc/floppy.h2
-rw-r--r--include/asm-powerpc/hvcall.h14
-rw-r--r--include/asm-s390/ipl.h5
-rw-r--r--include/asm-s390/unistd.h3
-rw-r--r--include/asm-sh/ioctls.h22
-rw-r--r--include/asm-sh/irq.h5
-rw-r--r--include/asm-sh/unistd.h1
-rw-r--r--include/asm-sparc/dma-mapping.h15
-rw-r--r--include/asm-sparc/unistd.h15
-rw-r--r--include/asm-sparc64/tsb.h2
-rw-r--r--include/asm-sparc64/unistd.h16
-rw-r--r--include/asm-x86_64/apic.h1
-rw-r--r--include/asm-x86_64/nmi.h2
-rw-r--r--include/asm-x86_64/proto.h2
-rw-r--r--include/asm-x86_64/smp.h3
-rw-r--r--include/asm-x86_64/uaccess.h4
-rw-r--r--include/linux/backing-dev.h1
-rw-r--r--include/linux/bootmem.h2
-rw-r--r--include/linux/device.h2
-rw-r--r--include/linux/kbd_kern.h2
-rw-r--r--include/linux/ktime.h6
-rw-r--r--include/linux/lockdep.h2
-rw-r--r--include/linux/nfs_fs.h1
-rw-r--r--include/linux/nfs_fs_sb.h1
-rw-r--r--include/linux/security.h8
-rw-r--r--include/linux/spi/spi_bitbang.h1
-rw-r--r--include/linux/sysfs.h10
-rw-r--r--include/linux/ufs_fs.h8
-rw-r--r--include/linux/vt_kern.h1
-rw-r--r--include/net/sctp/structs.h1
-rw-r--r--include/net/sctp/ulpqueue.h1
-rw-r--r--include/sound/version.h2
68 files changed, 241 insertions, 197 deletions
diff --git a/include/acpi/acinterp.h b/include/acpi/acinterp.h
index 73967c8152d3..440983019993 100644
--- a/include/acpi/acinterp.h
+++ b/include/acpi/acinterp.h
@@ -446,14 +446,10 @@ acpi_ex_copy_integer_to_buffer_field(union acpi_operand_object *source_desc,
446/* 446/*
447 * exutils - interpreter/scanner utilities 447 * exutils - interpreter/scanner utilities
448 */ 448 */
449void acpi_ex_enter_interpreter(void); 449acpi_status acpi_ex_enter_interpreter(void);
450 450
451void acpi_ex_exit_interpreter(void); 451void acpi_ex_exit_interpreter(void);
452 452
453void acpi_ex_reacquire_interpreter(void);
454
455void acpi_ex_relinquish_interpreter(void);
456
457void acpi_ex_truncate_for32bit_table(union acpi_operand_object *obj_desc); 453void acpi_ex_truncate_for32bit_table(union acpi_operand_object *obj_desc);
458 454
459u8 acpi_ex_acquire_global_lock(u32 rule); 455u8 acpi_ex_acquire_global_lock(u32 rule);
diff --git a/include/acpi/actypes.h b/include/acpi/actypes.h
index 72a6e2c3a536..56bf492e7acc 100644
--- a/include/acpi/actypes.h
+++ b/include/acpi/actypes.h
@@ -344,7 +344,7 @@ typedef u32 acpi_integer;
344 344
345/* 64-bit integers */ 345/* 64-bit integers */
346 346
347typedef u64 acpi_integer; 347typedef unsigned long long acpi_integer;
348#define ACPI_INTEGER_MAX ACPI_UINT64_MAX 348#define ACPI_INTEGER_MAX ACPI_UINT64_MAX
349#define ACPI_INTEGER_BIT_SIZE 64 349#define ACPI_INTEGER_BIT_SIZE 64
350#define ACPI_MAX_DECIMAL_DIGITS 20 /* 2^64 = 18,446,744,073,709,551,616 */ 350#define ACPI_MAX_DECIMAL_DIGITS 20 /* 2^64 = 18,446,744,073,709,551,616 */
diff --git a/include/asm-arm/arch-at91/gpio.h b/include/asm-arm/arch-at91/gpio.h
index 98ad2114f43a..0a241e2fb672 100644
--- a/include/asm-arm/arch-at91/gpio.h
+++ b/include/asm-arm/arch-at91/gpio.h
@@ -223,7 +223,7 @@ static inline void gpio_free(unsigned gpio)
223} 223}
224 224
225extern int gpio_direction_input(unsigned gpio); 225extern int gpio_direction_input(unsigned gpio);
226extern int gpio_direction_output(unsigned gpio); 226extern int gpio_direction_output(unsigned gpio, int value);
227 227
228static inline int gpio_get_value(unsigned gpio) 228static inline int gpio_get_value(unsigned gpio)
229{ 229{
diff --git a/include/asm-arm/arch-omap/gpio.h b/include/asm-arm/arch-omap/gpio.h
index 3762a6ae6a7f..590917efc94a 100644
--- a/include/asm-arm/arch-omap/gpio.h
+++ b/include/asm-arm/arch-omap/gpio.h
@@ -113,8 +113,9 @@ static inline int gpio_direction_input(unsigned gpio)
113 return __gpio_set_direction(gpio, 1); 113 return __gpio_set_direction(gpio, 1);
114} 114}
115 115
116static inline int gpio_direction_output(unsigned gpio) 116static inline int gpio_direction_output(unsigned gpio, int value)
117{ 117{
118 omap_set_gpio_dataout(gpio, value);
118 return __gpio_set_direction(gpio, 0); 119 return __gpio_set_direction(gpio, 0);
119} 120}
120 121
diff --git a/include/asm-arm/arch-pxa/gpio.h b/include/asm-arm/arch-pxa/gpio.h
index 3d348a351157..aeba24347f8e 100644
--- a/include/asm-arm/arch-pxa/gpio.h
+++ b/include/asm-arm/arch-pxa/gpio.h
@@ -43,9 +43,9 @@ static inline int gpio_direction_input(unsigned gpio)
43 return pxa_gpio_mode(gpio | GPIO_IN); 43 return pxa_gpio_mode(gpio | GPIO_IN);
44} 44}
45 45
46static inline int gpio_direction_output(unsigned gpio) 46static inline int gpio_direction_output(unsigned gpio, int value)
47{ 47{
48 return pxa_gpio_mode(gpio | GPIO_OUT); 48 return pxa_gpio_mode(gpio | GPIO_OUT | (value ? 0 : GPIO_DFLT_LOW));
49} 49}
50 50
51static inline int __gpio_get_value(unsigned gpio) 51static inline int __gpio_get_value(unsigned gpio)
diff --git a/include/asm-arm/arch-s3c2410/gpio.h b/include/asm-arm/arch-s3c2410/gpio.h
index d47ae453f8ca..7583895fd336 100644
--- a/include/asm-arm/arch-s3c2410/gpio.h
+++ b/include/asm-arm/arch-s3c2410/gpio.h
@@ -44,9 +44,11 @@ static inline int gpio_direction_input(unsigned gpio)
44 return 0; 44 return 0;
45} 45}
46 46
47static inline int gpio_direction_output(unsigned gpio) 47static inline int gpio_direction_output(unsigned gpio, int value)
48{ 48{
49 s3c2410_gpio_cfgpin(gpio, S3C2410_GPIO_OUTPUT); 49 s3c2410_gpio_cfgpin(gpio, S3C2410_GPIO_OUTPUT);
50 /* REVISIT can we write the value first, to avoid glitching? */
51 s3c2410_gpio_setpin(gpio, value);
50 return 0; 52 return 0;
51} 53}
52 54
diff --git a/include/asm-arm/arch-sa1100/gpio.h b/include/asm-arm/arch-sa1100/gpio.h
index da7575b0e5d0..e7a9d26e22a8 100644
--- a/include/asm-arm/arch-sa1100/gpio.h
+++ b/include/asm-arm/arch-sa1100/gpio.h
@@ -38,7 +38,7 @@ static inline void gpio_free(unsigned gpio)
38} 38}
39 39
40extern int gpio_direction_input(unsigned gpio); 40extern int gpio_direction_input(unsigned gpio);
41extern int gpio_direction_output(unsigned gpio); 41extern int gpio_direction_output(unsigned gpio, int value);
42 42
43 43
44static inline int gpio_get_value(unsigned gpio) 44static inline int gpio_get_value(unsigned gpio)
diff --git a/include/asm-avr32/arch-at32ap/gpio.h b/include/asm-avr32/arch-at32ap/gpio.h
index fcb756bdaa8e..80a21aa9ae77 100644
--- a/include/asm-avr32/arch-at32ap/gpio.h
+++ b/include/asm-avr32/arch-at32ap/gpio.h
@@ -10,7 +10,7 @@ int __must_check gpio_request(unsigned int gpio, const char *label);
10void gpio_free(unsigned int gpio); 10void gpio_free(unsigned int gpio);
11 11
12int gpio_direction_input(unsigned int gpio); 12int gpio_direction_input(unsigned int gpio);
13int gpio_direction_output(unsigned int gpio); 13int gpio_direction_output(unsigned int gpio, int value);
14int gpio_get_value(unsigned int gpio); 14int gpio_get_value(unsigned int gpio);
15void gpio_set_value(unsigned int gpio, int value); 15void gpio_set_value(unsigned int gpio, int value);
16 16
diff --git a/include/asm-i386/apic.h b/include/asm-i386/apic.h
index cc6b1652249a..a19810a08ae9 100644
--- a/include/asm-i386/apic.h
+++ b/include/asm-i386/apic.h
@@ -117,6 +117,7 @@ extern void enable_NMI_through_LVT0 (void * dummy);
117#define ARCH_APICTIMER_STOPS_ON_C3 1 117#define ARCH_APICTIMER_STOPS_ON_C3 1
118 118
119extern int timer_over_8254; 119extern int timer_over_8254;
120extern int local_apic_timer_c2_ok;
120 121
121#else /* !CONFIG_X86_LOCAL_APIC */ 122#else /* !CONFIG_X86_LOCAL_APIC */
122static inline void lapic_shutdown(void) { } 123static inline void lapic_shutdown(void) { }
diff --git a/include/asm-i386/elf.h b/include/asm-i386/elf.h
index 8d33c9bb7c1c..952b3ee3c9bb 100644
--- a/include/asm-i386/elf.h
+++ b/include/asm-i386/elf.h
@@ -88,16 +88,16 @@ typedef struct user_fxsr_struct elf_fpxregset_t;
88 pr_reg[4] = regs->edi; \ 88 pr_reg[4] = regs->edi; \
89 pr_reg[5] = regs->ebp; \ 89 pr_reg[5] = regs->ebp; \
90 pr_reg[6] = regs->eax; \ 90 pr_reg[6] = regs->eax; \
91 pr_reg[7] = regs->xds; \ 91 pr_reg[7] = regs->xds & 0xffff; \
92 pr_reg[8] = regs->xes; \ 92 pr_reg[8] = regs->xes & 0xffff; \
93 pr_reg[9] = regs->xfs; \ 93 pr_reg[9] = regs->xfs & 0xffff; \
94 savesegment(gs,pr_reg[10]); \ 94 savesegment(gs,pr_reg[10]); \
95 pr_reg[11] = regs->orig_eax; \ 95 pr_reg[11] = regs->orig_eax; \
96 pr_reg[12] = regs->eip; \ 96 pr_reg[12] = regs->eip; \
97 pr_reg[13] = regs->xcs; \ 97 pr_reg[13] = regs->xcs & 0xffff; \
98 pr_reg[14] = regs->eflags; \ 98 pr_reg[14] = regs->eflags; \
99 pr_reg[15] = regs->esp; \ 99 pr_reg[15] = regs->esp; \
100 pr_reg[16] = regs->xss; 100 pr_reg[16] = regs->xss & 0xffff;
101 101
102/* This yields a mask that user programs can use to figure out what 102/* This yields a mask that user programs can use to figure out what
103 instruction set this CPU supports. This could be done in user space, 103 instruction set this CPU supports. This could be done in user space,
diff --git a/include/asm-i386/nmi.h b/include/asm-i386/nmi.h
index 64544cb85d6a..b04333ea6f31 100644
--- a/include/asm-i386/nmi.h
+++ b/include/asm-i386/nmi.h
@@ -33,7 +33,7 @@ extern int nmi_watchdog_tick (struct pt_regs * regs, unsigned reason);
33 33
34extern atomic_t nmi_active; 34extern atomic_t nmi_active;
35extern unsigned int nmi_watchdog; 35extern unsigned int nmi_watchdog;
36#define NMI_DEFAULT 0 36#define NMI_DEFAULT -1
37#define NMI_NONE 0 37#define NMI_NONE 0
38#define NMI_IO_APIC 1 38#define NMI_IO_APIC 1
39#define NMI_LOCAL_APIC 2 39#define NMI_LOCAL_APIC 2
diff --git a/include/asm-i386/paravirt.h b/include/asm-i386/paravirt.h
index f8319cae2ac5..46dc34ca887a 100644
--- a/include/asm-i386/paravirt.h
+++ b/include/asm-i386/paravirt.h
@@ -130,7 +130,7 @@ struct paravirt_ops
130 void (*flush_tlb_kernel)(void); 130 void (*flush_tlb_kernel)(void);
131 void (*flush_tlb_single)(u32 addr); 131 void (*flush_tlb_single)(u32 addr);
132 132
133 void (fastcall *map_pt_hook)(int type, pte_t *va, u32 pfn); 133 void (*map_pt_hook)(int type, pte_t *va, u32 pfn);
134 134
135 void (*alloc_pt)(u32 pfn); 135 void (*alloc_pt)(u32 pfn);
136 void (*alloc_pd)(u32 pfn); 136 void (*alloc_pd)(u32 pfn);
diff --git a/include/asm-i386/sync_bitops.h b/include/asm-i386/sync_bitops.h
index c94d51c993ee..7d72351bea75 100644
--- a/include/asm-i386/sync_bitops.h
+++ b/include/asm-i386/sync_bitops.h
@@ -130,7 +130,7 @@ static inline int sync_test_and_change_bit(int nr, volatile unsigned long* addr)
130 return oldbit; 130 return oldbit;
131} 131}
132 132
133static __always_inline int sync_const_test_bit(int nr, const volatile unsigned long *addr) 133static __always_inline int sync_constant_test_bit(int nr, const volatile unsigned long *addr)
134{ 134{
135 return ((1UL << (nr & 31)) & 135 return ((1UL << (nr & 31)) &
136 (((const volatile unsigned int *)addr)[nr >> 5])) != 0; 136 (((const volatile unsigned int *)addr)[nr >> 5])) != 0;
diff --git a/include/asm-ia64/machvec.h b/include/asm-ia64/machvec.h
index 3c96ac19154e..ca33eb181ff2 100644
--- a/include/asm-ia64/machvec.h
+++ b/include/asm-ia64/machvec.h
@@ -168,6 +168,7 @@ extern void machvec_tlb_migrate_finish (struct mm_struct *);
168# define platform_setup_msi_irq ia64_mv.setup_msi_irq 168# define platform_setup_msi_irq ia64_mv.setup_msi_irq
169# define platform_teardown_msi_irq ia64_mv.teardown_msi_irq 169# define platform_teardown_msi_irq ia64_mv.teardown_msi_irq
170# define platform_pci_fixup_bus ia64_mv.pci_fixup_bus 170# define platform_pci_fixup_bus ia64_mv.pci_fixup_bus
171# define platform_kernel_launch_event ia64_mv.kernel_launch_event
171# endif 172# endif
172 173
173/* __attribute__((__aligned__(16))) is required to make size of the 174/* __attribute__((__aligned__(16))) is required to make size of the
@@ -269,6 +270,7 @@ struct ia64_machine_vector {
269 platform_setup_msi_irq, \ 270 platform_setup_msi_irq, \
270 platform_teardown_msi_irq, \ 271 platform_teardown_msi_irq, \
271 platform_pci_fixup_bus, \ 272 platform_pci_fixup_bus, \
273 platform_kernel_launch_event \
272} 274}
273 275
274extern struct ia64_machine_vector ia64_mv; 276extern struct ia64_machine_vector ia64_mv;
diff --git a/include/asm-ia64/meminit.h b/include/asm-ia64/meminit.h
index 21ec5f3d23de..3a62878e84f3 100644
--- a/include/asm-ia64/meminit.h
+++ b/include/asm-ia64/meminit.h
@@ -36,6 +36,7 @@ extern void reserve_memory (void);
36extern void find_initrd (void); 36extern void find_initrd (void);
37extern int filter_rsvd_memory (unsigned long start, unsigned long end, void *arg); 37extern int filter_rsvd_memory (unsigned long start, unsigned long end, void *arg);
38extern void efi_memmap_init(unsigned long *, unsigned long *); 38extern void efi_memmap_init(unsigned long *, unsigned long *);
39extern int find_max_min_low_pfn (unsigned long , unsigned long, void *);
39 40
40extern unsigned long vmcore_find_descriptor_size(unsigned long address); 41extern unsigned long vmcore_find_descriptor_size(unsigned long address);
41extern int reserve_elfcorehdr(unsigned long *start, unsigned long *end); 42extern int reserve_elfcorehdr(unsigned long *start, unsigned long *end);
diff --git a/include/asm-m32r/dma-mapping.h b/include/asm-m32r/dma-mapping.h
index a7fa0302bda7..f9b58ebba361 100644
--- a/include/asm-m32r/dma-mapping.h
+++ b/include/asm-m32r/dma-mapping.h
@@ -1,23 +1,6 @@
1#ifndef _ASM_M32R_DMA_MAPPING_H 1#ifndef _ASM_M32R_DMA_MAPPING_H
2#define _ASM_M32R_DMA_MAPPING_H 2#define _ASM_M32R_DMA_MAPPING_H
3 3
4/* 4#include <asm-generic/dma-mapping-broken.h>
5 * NOTE: Do not include <asm-generic/dma-mapping.h>
6 * Because it requires PCI stuffs, but current M32R don't provide these.
7 */
8
9static inline void *
10dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle,
11 gfp_t flag)
12{
13 return (void *)NULL;
14}
15
16static inline void
17dma_free_coherent(struct device *dev, size_t size, void *cpu_addr,
18 dma_addr_t dma_handle)
19{
20 return;
21}
22 5
23#endif /* _ASM_M32R_DMA_MAPPING_H */ 6#endif /* _ASM_M32R_DMA_MAPPING_H */
diff --git a/include/asm-m68k/dma-mapping.h b/include/asm-m68k/dma-mapping.h
index 00259ed6fc95..a26cdeb46a57 100644
--- a/include/asm-m68k/dma-mapping.h
+++ b/include/asm-m68k/dma-mapping.h
@@ -32,7 +32,7 @@ extern void dma_free_coherent(struct device *, size_t,
32 void *, dma_addr_t); 32 void *, dma_addr_t);
33 33
34static inline void *dma_alloc_noncoherent(struct device *dev, size_t size, 34static inline void *dma_alloc_noncoherent(struct device *dev, size_t size,
35 dma_addr_t *handle, int flag) 35 dma_addr_t *handle, gfp_t flag)
36{ 36{
37 return dma_alloc_coherent(dev, size, handle, flag); 37 return dma_alloc_coherent(dev, size, handle, flag);
38} 38}
diff --git a/include/asm-m68k/mc146818rtc.h b/include/asm-m68k/mc146818rtc.h
index 11fe12ddb913..9f70a01f73dc 100644
--- a/include/asm-m68k/mc146818rtc.h
+++ b/include/asm-m68k/mc146818rtc.h
@@ -11,6 +11,7 @@
11#include <asm/atarihw.h> 11#include <asm/atarihw.h>
12 12
13#define RTC_PORT(x) (TT_RTC_BAS + 2*(x)) 13#define RTC_PORT(x) (TT_RTC_BAS + 2*(x))
14#define RTC_ALWAYS_BCD 0
14 15
15#define CMOS_READ(addr) ({ \ 16#define CMOS_READ(addr) ({ \
16atari_outb_p((addr),RTC_PORT(0)); \ 17atari_outb_p((addr),RTC_PORT(0)); \
diff --git a/include/asm-mips/atomic.h b/include/asm-mips/atomic.h
index 8578869a8bcf..1ac50b6c47ad 100644
--- a/include/asm-mips/atomic.h
+++ b/include/asm-mips/atomic.h
@@ -79,9 +79,9 @@ static __inline__ void atomic_add(int i, atomic_t * v)
79 } else { 79 } else {
80 unsigned long flags; 80 unsigned long flags;
81 81
82 local_irq_save(flags); 82 raw_local_irq_save(flags);
83 v->counter += i; 83 v->counter += i;
84 local_irq_restore(flags); 84 raw_local_irq_restore(flags);
85 } 85 }
86} 86}
87 87
@@ -124,9 +124,9 @@ static __inline__ void atomic_sub(int i, atomic_t * v)
124 } else { 124 } else {
125 unsigned long flags; 125 unsigned long flags;
126 126
127 local_irq_save(flags); 127 raw_local_irq_save(flags);
128 v->counter -= i; 128 v->counter -= i;
129 local_irq_restore(flags); 129 raw_local_irq_restore(flags);
130 } 130 }
131} 131}
132 132
@@ -173,11 +173,11 @@ static __inline__ int atomic_add_return(int i, atomic_t * v)
173 } else { 173 } else {
174 unsigned long flags; 174 unsigned long flags;
175 175
176 local_irq_save(flags); 176 raw_local_irq_save(flags);
177 result = v->counter; 177 result = v->counter;
178 result += i; 178 result += i;
179 v->counter = result; 179 v->counter = result;
180 local_irq_restore(flags); 180 raw_local_irq_restore(flags);
181 } 181 }
182 182
183 smp_mb(); 183 smp_mb();
@@ -225,11 +225,11 @@ static __inline__ int atomic_sub_return(int i, atomic_t * v)
225 } else { 225 } else {
226 unsigned long flags; 226 unsigned long flags;
227 227
228 local_irq_save(flags); 228 raw_local_irq_save(flags);
229 result = v->counter; 229 result = v->counter;
230 result -= i; 230 result -= i;
231 v->counter = result; 231 v->counter = result;
232 local_irq_restore(flags); 232 raw_local_irq_restore(flags);
233 } 233 }
234 234
235 smp_mb(); 235 smp_mb();
@@ -293,12 +293,12 @@ static __inline__ int atomic_sub_if_positive(int i, atomic_t * v)
293 } else { 293 } else {
294 unsigned long flags; 294 unsigned long flags;
295 295
296 local_irq_save(flags); 296 raw_local_irq_save(flags);
297 result = v->counter; 297 result = v->counter;
298 result -= i; 298 result -= i;
299 if (result >= 0) 299 if (result >= 0)
300 v->counter = result; 300 v->counter = result;
301 local_irq_restore(flags); 301 raw_local_irq_restore(flags);
302 } 302 }
303 303
304 smp_mb(); 304 smp_mb();
@@ -454,9 +454,9 @@ static __inline__ void atomic64_add(long i, atomic64_t * v)
454 } else { 454 } else {
455 unsigned long flags; 455 unsigned long flags;
456 456
457 local_irq_save(flags); 457 raw_local_irq_save(flags);
458 v->counter += i; 458 v->counter += i;
459 local_irq_restore(flags); 459 raw_local_irq_restore(flags);
460 } 460 }
461} 461}
462 462
@@ -499,9 +499,9 @@ static __inline__ void atomic64_sub(long i, atomic64_t * v)
499 } else { 499 } else {
500 unsigned long flags; 500 unsigned long flags;
501 501
502 local_irq_save(flags); 502 raw_local_irq_save(flags);
503 v->counter -= i; 503 v->counter -= i;
504 local_irq_restore(flags); 504 raw_local_irq_restore(flags);
505 } 505 }
506} 506}
507 507
@@ -548,11 +548,11 @@ static __inline__ long atomic64_add_return(long i, atomic64_t * v)
548 } else { 548 } else {
549 unsigned long flags; 549 unsigned long flags;
550 550
551 local_irq_save(flags); 551 raw_local_irq_save(flags);
552 result = v->counter; 552 result = v->counter;
553 result += i; 553 result += i;
554 v->counter = result; 554 v->counter = result;
555 local_irq_restore(flags); 555 raw_local_irq_restore(flags);
556 } 556 }
557 557
558 smp_mb(); 558 smp_mb();
@@ -600,11 +600,11 @@ static __inline__ long atomic64_sub_return(long i, atomic64_t * v)
600 } else { 600 } else {
601 unsigned long flags; 601 unsigned long flags;
602 602
603 local_irq_save(flags); 603 raw_local_irq_save(flags);
604 result = v->counter; 604 result = v->counter;
605 result -= i; 605 result -= i;
606 v->counter = result; 606 v->counter = result;
607 local_irq_restore(flags); 607 raw_local_irq_restore(flags);
608 } 608 }
609 609
610 smp_mb(); 610 smp_mb();
@@ -668,12 +668,12 @@ static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v)
668 } else { 668 } else {
669 unsigned long flags; 669 unsigned long flags;
670 670
671 local_irq_save(flags); 671 raw_local_irq_save(flags);
672 result = v->counter; 672 result = v->counter;
673 result -= i; 673 result -= i;
674 if (result >= 0) 674 if (result >= 0)
675 v->counter = result; 675 v->counter = result;
676 local_irq_restore(flags); 676 raw_local_irq_restore(flags);
677 } 677 }
678 678
679 smp_mb(); 679 smp_mb();
diff --git a/include/asm-mips/bitops.h b/include/asm-mips/bitops.h
index 8959da245cfb..d995413e11fd 100644
--- a/include/asm-mips/bitops.h
+++ b/include/asm-mips/bitops.h
@@ -100,9 +100,9 @@ static inline void set_bit(unsigned long nr, volatile unsigned long *addr)
100 100
101 a += nr >> SZLONG_LOG; 101 a += nr >> SZLONG_LOG;
102 mask = 1UL << bit; 102 mask = 1UL << bit;
103 local_irq_save(flags); 103 raw_local_irq_save(flags);
104 *a |= mask; 104 *a |= mask;
105 local_irq_restore(flags); 105 raw_local_irq_restore(flags);
106 } 106 }
107} 107}
108 108
@@ -165,9 +165,9 @@ static inline void clear_bit(unsigned long nr, volatile unsigned long *addr)
165 165
166 a += nr >> SZLONG_LOG; 166 a += nr >> SZLONG_LOG;
167 mask = 1UL << bit; 167 mask = 1UL << bit;
168 local_irq_save(flags); 168 raw_local_irq_save(flags);
169 *a &= ~mask; 169 *a &= ~mask;
170 local_irq_restore(flags); 170 raw_local_irq_restore(flags);
171 } 171 }
172} 172}
173 173
@@ -220,9 +220,9 @@ static inline void change_bit(unsigned long nr, volatile unsigned long *addr)
220 220
221 a += nr >> SZLONG_LOG; 221 a += nr >> SZLONG_LOG;
222 mask = 1UL << bit; 222 mask = 1UL << bit;
223 local_irq_save(flags); 223 raw_local_irq_save(flags);
224 *a ^= mask; 224 *a ^= mask;
225 local_irq_restore(flags); 225 raw_local_irq_restore(flags);
226 } 226 }
227} 227}
228 228
@@ -287,10 +287,10 @@ static inline int test_and_set_bit(unsigned long nr,
287 287
288 a += nr >> SZLONG_LOG; 288 a += nr >> SZLONG_LOG;
289 mask = 1UL << bit; 289 mask = 1UL << bit;
290 local_irq_save(flags); 290 raw_local_irq_save(flags);
291 retval = (mask & *a) != 0; 291 retval = (mask & *a) != 0;
292 *a |= mask; 292 *a |= mask;
293 local_irq_restore(flags); 293 raw_local_irq_restore(flags);
294 294
295 return retval; 295 return retval;
296 } 296 }
@@ -381,10 +381,10 @@ static inline int test_and_clear_bit(unsigned long nr,
381 381
382 a += nr >> SZLONG_LOG; 382 a += nr >> SZLONG_LOG;
383 mask = 1UL << bit; 383 mask = 1UL << bit;
384 local_irq_save(flags); 384 raw_local_irq_save(flags);
385 retval = (mask & *a) != 0; 385 retval = (mask & *a) != 0;
386 *a &= ~mask; 386 *a &= ~mask;
387 local_irq_restore(flags); 387 raw_local_irq_restore(flags);
388 388
389 return retval; 389 return retval;
390 } 390 }
@@ -452,10 +452,10 @@ static inline int test_and_change_bit(unsigned long nr,
452 452
453 a += nr >> SZLONG_LOG; 453 a += nr >> SZLONG_LOG;
454 mask = 1UL << bit; 454 mask = 1UL << bit;
455 local_irq_save(flags); 455 raw_local_irq_save(flags);
456 retval = (mask & *a) != 0; 456 retval = (mask & *a) != 0;
457 *a ^= mask; 457 *a ^= mask;
458 local_irq_restore(flags); 458 raw_local_irq_restore(flags);
459 459
460 return retval; 460 return retval;
461 } 461 }
diff --git a/include/asm-mips/cacheflush.h b/include/asm-mips/cacheflush.h
index 0ddada3bb0b6..28d907d4347a 100644
--- a/include/asm-mips/cacheflush.h
+++ b/include/asm-mips/cacheflush.h
@@ -48,6 +48,15 @@ static inline void flush_dcache_page(struct page *page)
48#define flush_dcache_mmap_lock(mapping) do { } while (0) 48#define flush_dcache_mmap_lock(mapping) do { } while (0)
49#define flush_dcache_mmap_unlock(mapping) do { } while (0) 49#define flush_dcache_mmap_unlock(mapping) do { } while (0)
50 50
51#define ARCH_HAS_FLUSH_ANON_PAGE
52extern void __flush_anon_page(struct page *, unsigned long);
53static inline void flush_anon_page(struct vm_area_struct *vma,
54 struct page *page, unsigned long vmaddr)
55{
56 if (cpu_has_dc_aliases && PageAnon(page))
57 __flush_anon_page(page, vmaddr);
58}
59
51static inline void flush_icache_page(struct vm_area_struct *vma, 60static inline void flush_icache_page(struct vm_area_struct *vma,
52 struct page *page) 61 struct page *page)
53{ 62{
@@ -86,4 +95,7 @@ extern void (*flush_data_cache_page)(unsigned long addr);
86/* Run kernel code uncached, useful for cache probing functions. */ 95/* Run kernel code uncached, useful for cache probing functions. */
87unsigned long __init run_uncached(void *func); 96unsigned long __init run_uncached(void *func);
88 97
98extern void *kmap_coherent(struct page *page, unsigned long addr);
99extern void kunmap_coherent(struct page *page);
100
89#endif /* _ASM_CACHEFLUSH_H */ 101#endif /* _ASM_CACHEFLUSH_H */
diff --git a/include/asm-mips/cpu-features.h b/include/asm-mips/cpu-features.h
index eadca266f159..5e4bed123b48 100644
--- a/include/asm-mips/cpu-features.h
+++ b/include/asm-mips/cpu-features.h
@@ -40,6 +40,9 @@
40#endif 40#endif
41#ifndef cpu_has_fpu 41#ifndef cpu_has_fpu
42#define cpu_has_fpu (current_cpu_data.options & MIPS_CPU_FPU) 42#define cpu_has_fpu (current_cpu_data.options & MIPS_CPU_FPU)
43#define raw_cpu_has_fpu (raw_current_cpu_data.options & MIPS_CPU_FPU)
44#else
45#define raw_cpu_has_fpu cpu_has_fpu
43#endif 46#endif
44#ifndef cpu_has_32fpr 47#ifndef cpu_has_32fpr
45#define cpu_has_32fpr (cpu_data[0].options & MIPS_CPU_32FPR) 48#define cpu_has_32fpr (cpu_data[0].options & MIPS_CPU_32FPR)
diff --git a/include/asm-mips/cpu-info.h b/include/asm-mips/cpu-info.h
index 610d0cdeaa9e..22fe8453fcc7 100644
--- a/include/asm-mips/cpu-info.h
+++ b/include/asm-mips/cpu-info.h
@@ -87,6 +87,7 @@ struct cpuinfo_mips {
87 87
88extern struct cpuinfo_mips cpu_data[]; 88extern struct cpuinfo_mips cpu_data[];
89#define current_cpu_data cpu_data[smp_processor_id()] 89#define current_cpu_data cpu_data[smp_processor_id()]
90#define raw_current_cpu_data cpu_data[raw_smp_processor_id()]
90 91
91extern void cpu_probe(void); 92extern void cpu_probe(void);
92extern void cpu_report(void); 93extern void cpu_report(void);
diff --git a/include/asm-mips/delay.h b/include/asm-mips/delay.h
index ea77050f8e3a..223d156efb9f 100644
--- a/include/asm-mips/delay.h
+++ b/include/asm-mips/delay.h
@@ -79,7 +79,7 @@ static inline void __udelay(unsigned long usecs, unsigned long lpj)
79 __delay(usecs); 79 __delay(usecs);
80} 80}
81 81
82#define __udelay_val cpu_data[smp_processor_id()].udelay_val 82#define __udelay_val cpu_data[raw_smp_processor_id()].udelay_val
83 83
84#define udelay(usecs) __udelay((usecs),__udelay_val) 84#define udelay(usecs) __udelay((usecs),__udelay_val)
85 85
diff --git a/include/asm-mips/fpu.h b/include/asm-mips/fpu.h
index efef843b93f0..4e12d1f9534f 100644
--- a/include/asm-mips/fpu.h
+++ b/include/asm-mips/fpu.h
@@ -27,11 +27,11 @@
27struct sigcontext; 27struct sigcontext;
28struct sigcontext32; 28struct sigcontext32;
29 29
30extern asmlinkage int (*save_fp_context)(struct sigcontext *sc); 30extern asmlinkage int (*save_fp_context)(struct sigcontext __user *sc);
31extern asmlinkage int (*restore_fp_context)(struct sigcontext *sc); 31extern asmlinkage int (*restore_fp_context)(struct sigcontext __user *sc);
32 32
33extern asmlinkage int (*save_fp_context32)(struct sigcontext32 *sc); 33extern asmlinkage int (*save_fp_context32)(struct sigcontext32 __user *sc);
34extern asmlinkage int (*restore_fp_context32)(struct sigcontext32 *sc); 34extern asmlinkage int (*restore_fp_context32)(struct sigcontext32 __user *sc);
35 35
36extern void fpu_emulator_init_fpu(void); 36extern void fpu_emulator_init_fpu(void);
37extern void _init_fpu(void); 37extern void _init_fpu(void);
@@ -68,6 +68,8 @@ do { \
68 /* We don't care about the c0 hazard here */ \ 68 /* We don't care about the c0 hazard here */ \
69} while (0) 69} while (0)
70 70
71#define __fpu_enabled() (read_c0_status() & ST0_CU1)
72
71#define enable_fpu() \ 73#define enable_fpu() \
72do { \ 74do { \
73 if (cpu_has_fpu) \ 75 if (cpu_has_fpu) \
@@ -93,31 +95,47 @@ static inline int is_fpu_owner(void)
93 return cpu_has_fpu && __is_fpu_owner(); 95 return cpu_has_fpu && __is_fpu_owner();
94} 96}
95 97
96static inline void own_fpu(void) 98static inline void __own_fpu(void)
97{ 99{
98 if (cpu_has_fpu) { 100 __enable_fpu();
99 __enable_fpu(); 101 KSTK_STATUS(current) |= ST0_CU1;
100 KSTK_STATUS(current) |= ST0_CU1; 102 set_thread_flag(TIF_USEDFPU);
101 set_thread_flag(TIF_USEDFPU); 103}
104
105static inline void own_fpu(int restore)
106{
107 preempt_disable();
108 if (cpu_has_fpu && !__is_fpu_owner()) {
109 __own_fpu();
110 if (restore)
111 _restore_fp(current);
102 } 112 }
113 preempt_enable();
103} 114}
104 115
105static inline void lose_fpu(void) 116static inline void lose_fpu(int save)
106{ 117{
107 if (cpu_has_fpu) { 118 preempt_disable();
119 if (is_fpu_owner()) {
120 if (save)
121 _save_fp(current);
108 KSTK_STATUS(current) &= ~ST0_CU1; 122 KSTK_STATUS(current) &= ~ST0_CU1;
109 clear_thread_flag(TIF_USEDFPU); 123 clear_thread_flag(TIF_USEDFPU);
110 __disable_fpu(); 124 __disable_fpu();
111 } 125 }
126 preempt_enable();
112} 127}
113 128
114static inline void init_fpu(void) 129static inline void init_fpu(void)
115{ 130{
131 preempt_disable();
116 if (cpu_has_fpu) { 132 if (cpu_has_fpu) {
133 __own_fpu();
117 _init_fpu(); 134 _init_fpu();
118 } else { 135 } else {
119 fpu_emulator_init_fpu(); 136 fpu_emulator_init_fpu();
120 } 137 }
138 preempt_enable();
121} 139}
122 140
123static inline void save_fp(struct task_struct *tsk) 141static inline void save_fp(struct task_struct *tsk)
@@ -144,4 +162,18 @@ static inline fpureg_t *get_fpu_regs(struct task_struct *tsk)
144 return tsk->thread.fpu.fpr; 162 return tsk->thread.fpu.fpr;
145} 163}
146 164
165static inline void enable_fp_in_kernel(void)
166{
167 set_thread_flag(TIF_ALLOW_FP_IN_KERNEL);
168 /* make sure CU1 and FPU ownership are consistent */
169 if (!__is_fpu_owner() && __fpu_enabled())
170 __disable_fpu();
171}
172
173static inline void disable_fp_in_kernel(void)
174{
175 BUG_ON(!__is_fpu_owner() && __fpu_enabled());
176 clear_thread_flag(TIF_ALLOW_FP_IN_KERNEL);
177}
178
147#endif /* _ASM_FPU_H */ 179#endif /* _ASM_FPU_H */
diff --git a/include/asm-mips/hazards.h b/include/asm-mips/hazards.h
index 50073157a617..e50c77e69cb5 100644
--- a/include/asm-mips/hazards.h
+++ b/include/asm-mips/hazards.h
@@ -52,6 +52,7 @@ ASMMACRO(tlb_probe_hazard,
52 _ehb 52 _ehb
53 ) 53 )
54ASMMACRO(irq_enable_hazard, 54ASMMACRO(irq_enable_hazard,
55 _ehb
55 ) 56 )
56ASMMACRO(irq_disable_hazard, 57ASMMACRO(irq_disable_hazard,
57 _ehb 58 _ehb
diff --git a/include/asm-mips/mach-au1x00/au1xxx_ide.h b/include/asm-mips/mach-au1x00/au1xxx_ide.h
index e9fa252f8a3f..8fcae21adbd5 100644
--- a/include/asm-mips/mach-au1x00/au1xxx_ide.h
+++ b/include/asm-mips/mach-au1x00/au1xxx_ide.h
@@ -141,40 +141,6 @@ static int auide_ddma_init( _auide_hwif *auide );
141static void auide_setup_ports(hw_regs_t *hw, _auide_hwif *ahwif); 141static void auide_setup_ports(hw_regs_t *hw, _auide_hwif *ahwif);
142int __init auide_probe(void); 142int __init auide_probe(void);
143 143
144#ifdef CONFIG_PM
145 int au1200ide_pm_callback( au1xxx_power_dev_t *dev,
146 au1xxx_request_t request, void *data);
147 static int au1xxxide_pm_standby( au1xxx_power_dev_t *dev );
148 static int au1xxxide_pm_sleep( au1xxx_power_dev_t *dev );
149 static int au1xxxide_pm_resume( au1xxx_power_dev_t *dev );
150 static int au1xxxide_pm_getstatus( au1xxx_power_dev_t *dev );
151 static int au1xxxide_pm_access( au1xxx_power_dev_t *dev );
152 static int au1xxxide_pm_idle( au1xxx_power_dev_t *dev );
153 static int au1xxxide_pm_cleanup( au1xxx_power_dev_t *dev );
154#endif
155
156
157/*
158 * Multi-Word DMA + DbDMA functions
159 */
160#ifdef CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA
161 static int auide_build_sglist(ide_drive_t *drive, struct request *rq);
162 static int auide_build_dmatable(ide_drive_t *drive);
163 static int auide_dma_end(ide_drive_t *drive);
164 ide_startstop_t auide_dma_intr (ide_drive_t *drive);
165 static void auide_dma_exec_cmd(ide_drive_t *drive, u8 command);
166 static int auide_dma_setup(ide_drive_t *drive);
167 static int auide_dma_check(ide_drive_t *drive);
168 static int auide_dma_test_irq(ide_drive_t *drive);
169 static int auide_dma_host_off(ide_drive_t *drive);
170 static int auide_dma_host_on(ide_drive_t *drive);
171 static int auide_dma_lostirq(ide_drive_t *drive);
172 static int auide_dma_on(ide_drive_t *drive);
173 static void auide_ddma_tx_callback(int irq, void *param);
174 static void auide_ddma_rx_callback(int irq, void *param);
175 static int auide_dma_off_quietly(ide_drive_t *drive);
176#endif /* end CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA */
177
178/******************************************************************************* 144/*******************************************************************************
179* PIO Mode timing calculation : * 145* PIO Mode timing calculation : *
180* * 146* *
diff --git a/include/asm-mips/mach-ip27/dma-coherence.h b/include/asm-mips/mach-ip27/dma-coherence.h
index 659816e200d4..3fdbbf68e952 100644
--- a/include/asm-mips/mach-ip27/dma-coherence.h
+++ b/include/asm-mips/mach-ip27/dma-coherence.h
@@ -18,7 +18,8 @@
18 18
19struct device; 19struct device;
20 20
21static dma_addr_t plat_map_dma_mem(struct device *dev, void *addr, size_t size) 21static inline dma_addr_t plat_map_dma_mem(struct device *dev, void *addr,
22 size_t size)
22{ 23{
23 dma_addr_t pa = dev_to_baddr(dev, virt_to_phys(addr)); 24 dma_addr_t pa = dev_to_baddr(dev, virt_to_phys(addr));
24 25
@@ -37,7 +38,7 @@ static unsigned long plat_dma_addr_to_phys(dma_addr_t dma_addr)
37 return dma_addr & (0xffUL << 56); 38 return dma_addr & (0xffUL << 56);
38} 39}
39 40
40static void plat_unmap_dma_mem(dma_addr_t dma_addr) 41static inline void plat_unmap_dma_mem(dma_addr_t dma_addr)
41{ 42{
42} 43}
43 44
diff --git a/include/asm-mips/mach-ip32/dma-coherence.h b/include/asm-mips/mach-ip32/dma-coherence.h
index 950be17bbb86..c3f9a6a20eb0 100644
--- a/include/asm-mips/mach-ip32/dma-coherence.h
+++ b/include/asm-mips/mach-ip32/dma-coherence.h
@@ -26,7 +26,8 @@ struct device;
26 26
27#define RAM_OFFSET_MASK 0x3fffffffUL 27#define RAM_OFFSET_MASK 0x3fffffffUL
28 28
29static dma_addr_t plat_map_dma_mem(struct device *dev, void *addr, size_t size) 29static inline dma_addr_t plat_map_dma_mem(struct device *dev, void *addr,
30 size_t size)
30{ 31{
31 dma_addr_t pa = virt_to_phys(addr) & RAM_OFFSET_MASK; 32 dma_addr_t pa = virt_to_phys(addr) & RAM_OFFSET_MASK;
32 33
@@ -59,7 +60,7 @@ static unsigned long plat_dma_addr_to_phys(dma_addr_t dma_addr)
59 return addr; 60 return addr;
60} 61}
61 62
62static void plat_unmap_dma_mem(dma_addr_t dma_addr) 63static inline void plat_unmap_dma_mem(dma_addr_t dma_addr)
63{ 64{
64} 65}
65 66
diff --git a/include/asm-mips/pgtable-64.h b/include/asm-mips/pgtable-64.h
index a5b18710b6a4..49f5a1a2dfcd 100644
--- a/include/asm-mips/pgtable-64.h
+++ b/include/asm-mips/pgtable-64.h
@@ -199,7 +199,7 @@ static inline unsigned long pud_page_vaddr(pud_t pud)
199{ 199{
200 return pud_val(pud); 200 return pud_val(pud);
201} 201}
202#define pud_phys(pud) (pud_val(pud) - PAGE_OFFSET) 202#define pud_phys(pud) virt_to_phys((void *)pud_val(pud))
203#define pud_page(pud) (pfn_to_page(pud_phys(pud) >> PAGE_SHIFT)) 203#define pud_page(pud) (pfn_to_page(pud_phys(pud) >> PAGE_SHIFT))
204 204
205/* Find an entry in the second-level page table.. */ 205/* Find an entry in the second-level page table.. */
diff --git a/include/asm-mips/pgtable.h b/include/asm-mips/pgtable.h
index 3fcfd7979de5..0d3295f57a95 100644
--- a/include/asm-mips/pgtable.h
+++ b/include/asm-mips/pgtable.h
@@ -75,7 +75,7 @@ extern void paging_init(void);
75 * Conversion functions: convert a page and protection to a page entry, 75 * Conversion functions: convert a page and protection to a page entry,
76 * and a page entry and page directory to the page they refer to. 76 * and a page entry and page directory to the page they refer to.
77 */ 77 */
78#define pmd_phys(pmd) (pmd_val(pmd) - PAGE_OFFSET) 78#define pmd_phys(pmd) virt_to_phys((void *)pmd_val(pmd))
79#define pmd_page(pmd) (pfn_to_page(pmd_phys(pmd) >> PAGE_SHIFT)) 79#define pmd_page(pmd) (pfn_to_page(pmd_phys(pmd) >> PAGE_SHIFT))
80#define pmd_page_vaddr(pmd) pmd_val(pmd) 80#define pmd_page_vaddr(pmd) pmd_val(pmd)
81 81
diff --git a/include/asm-mips/rtlx.h b/include/asm-mips/rtlx.h
index 59162f74a798..65778c890a62 100644
--- a/include/asm-mips/rtlx.h
+++ b/include/asm-mips/rtlx.h
@@ -23,8 +23,8 @@
23 23
24extern int rtlx_open(int index, int can_sleep); 24extern int rtlx_open(int index, int can_sleep);
25extern int rtlx_release(int index); 25extern int rtlx_release(int index);
26extern ssize_t rtlx_read(int index, void *buff, size_t count, int user); 26extern ssize_t rtlx_read(int index, void __user *buff, size_t count);
27extern ssize_t rtlx_write(int index, void *buffer, size_t count, int user); 27extern ssize_t rtlx_write(int index, const void __user *buffer, size_t count);
28extern unsigned int rtlx_read_poll(int index, int can_sleep); 28extern unsigned int rtlx_read_poll(int index, int can_sleep);
29extern unsigned int rtlx_write_poll(int index); 29extern unsigned int rtlx_write_poll(int index);
30 30
diff --git a/include/asm-mips/sgiarcs.h b/include/asm-mips/sgiarcs.h
index ddb859d05257..439bce7daa3a 100644
--- a/include/asm-mips/sgiarcs.h
+++ b/include/asm-mips/sgiarcs.h
@@ -459,7 +459,7 @@ struct linux_smonblock {
459 register signed int __a2 __asm__("$5") = (int) (long) (a2); \ 459 register signed int __a2 __asm__("$5") = (int) (long) (a2); \
460 register signed int __a3 __asm__("$6") = (int) (long) (a3); \ 460 register signed int __a3 __asm__("$6") = (int) (long) (a3); \
461 register signed int __a4 __asm__("$7") = (int) (long) (a4); \ 461 register signed int __a4 __asm__("$7") = (int) (long) (a4); \
462 register signed int __a5 = (a5); \ 462 register signed int __a5 = (int) (long) (a5); \
463 long __vec = (long) romvec->dest; \ 463 long __vec = (long) romvec->dest; \
464 __asm__ __volatile__( \ 464 __asm__ __volatile__( \
465 "dsubu\t$29, 32\n\t" \ 465 "dsubu\t$29, 32\n\t" \
diff --git a/include/asm-mips/sibyte/sb1250.h b/include/asm-mips/sibyte/sb1250.h
index dfb29e13bce0..494aa65dcfbd 100644
--- a/include/asm-mips/sibyte/sb1250.h
+++ b/include/asm-mips/sibyte/sb1250.h
@@ -67,6 +67,6 @@ extern void bcm1480_smp_finish(void);
67 67
68#endif 68#endif
69 69
70#define IOADDR(a) ((volatile void __iomem *)(IO_BASE + (a))) 70#define IOADDR(a) ((void __iomem *)(IO_BASE + (a)))
71 71
72#endif 72#endif
diff --git a/include/asm-mips/system.h b/include/asm-mips/system.h
index 597a3743f6a1..290887077e44 100644
--- a/include/asm-mips/system.h
+++ b/include/asm-mips/system.h
@@ -121,10 +121,10 @@ static inline unsigned long __xchg_u32(volatile int * m, unsigned int val)
121 } else { 121 } else {
122 unsigned long flags; 122 unsigned long flags;
123 123
124 local_irq_save(flags); 124 raw_local_irq_save(flags);
125 retval = *m; 125 retval = *m;
126 *m = val; 126 *m = val;
127 local_irq_restore(flags); /* implies memory barrier */ 127 raw_local_irq_restore(flags); /* implies memory barrier */
128 } 128 }
129 129
130 smp_mb(); 130 smp_mb();
@@ -169,10 +169,10 @@ static inline __u64 __xchg_u64(volatile __u64 * m, __u64 val)
169 } else { 169 } else {
170 unsigned long flags; 170 unsigned long flags;
171 171
172 local_irq_save(flags); 172 raw_local_irq_save(flags);
173 retval = *m; 173 retval = *m;
174 *m = val; 174 *m = val;
175 local_irq_restore(flags); /* implies memory barrier */ 175 raw_local_irq_restore(flags); /* implies memory barrier */
176 } 176 }
177 177
178 smp_mb(); 178 smp_mb();
@@ -250,11 +250,11 @@ static inline unsigned long __cmpxchg_u32(volatile int * m, unsigned long old,
250 } else { 250 } else {
251 unsigned long flags; 251 unsigned long flags;
252 252
253 local_irq_save(flags); 253 raw_local_irq_save(flags);
254 retval = *m; 254 retval = *m;
255 if (retval == old) 255 if (retval == old)
256 *m = new; 256 *m = new;
257 local_irq_restore(flags); /* implies memory barrier */ 257 raw_local_irq_restore(flags); /* implies memory barrier */
258 } 258 }
259 259
260 smp_mb(); 260 smp_mb();
@@ -304,11 +304,11 @@ static inline unsigned long __cmpxchg_u64(volatile int * m, unsigned long old,
304 } else { 304 } else {
305 unsigned long flags; 305 unsigned long flags;
306 306
307 local_irq_save(flags); 307 raw_local_irq_save(flags);
308 retval = *m; 308 retval = *m;
309 if (retval == old) 309 if (retval == old)
310 *m = new; 310 *m = new;
311 local_irq_restore(flags); /* implies memory barrier */ 311 raw_local_irq_restore(flags); /* implies memory barrier */
312 } 312 }
313 313
314 smp_mb(); 314 smp_mb();
diff --git a/include/asm-mips/thread_info.h b/include/asm-mips/thread_info.h
index fbcda8204473..6cf05f4a4e7e 100644
--- a/include/asm-mips/thread_info.h
+++ b/include/asm-mips/thread_info.h
@@ -119,6 +119,7 @@ register struct thread_info *__current_thread_info __asm__("$28");
119#define TIF_POLLING_NRFLAG 17 /* true if poll_idle() is polling TIF_NEED_RESCHED */ 119#define TIF_POLLING_NRFLAG 17 /* true if poll_idle() is polling TIF_NEED_RESCHED */
120#define TIF_MEMDIE 18 120#define TIF_MEMDIE 18
121#define TIF_FREEZE 19 121#define TIF_FREEZE 19
122#define TIF_ALLOW_FP_IN_KERNEL 20
122#define TIF_SYSCALL_TRACE 31 /* syscall trace active */ 123#define TIF_SYSCALL_TRACE 31 /* syscall trace active */
123 124
124#define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE) 125#define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
diff --git a/include/asm-powerpc/floppy.h b/include/asm-powerpc/floppy.h
index a0f14eea1da5..afa700ded877 100644
--- a/include/asm-powerpc/floppy.h
+++ b/include/asm-powerpc/floppy.h
@@ -178,7 +178,7 @@ static struct fd_dma_ops virt_dma_ops =
178 ._dma_setup = vdma_dma_setup 178 ._dma_setup = vdma_dma_setup
179}; 179};
180 180
181static int fd_request_dma() 181static int fd_request_dma(void)
182{ 182{
183 if (can_use_virtual_dma & 1) { 183 if (can_use_virtual_dma & 1) {
184 fd_ops = &virt_dma_ops; 184 fd_ops = &virt_dma_ops;
diff --git a/include/asm-powerpc/hvcall.h b/include/asm-powerpc/hvcall.h
index 60977806d2f4..62efd9d7a43d 100644
--- a/include/asm-powerpc/hvcall.h
+++ b/include/asm-powerpc/hvcall.h
@@ -237,6 +237,20 @@ long plpar_hcall_norets(unsigned long opcode, ...);
237long plpar_hcall(unsigned long opcode, unsigned long *retbuf, ...); 237long plpar_hcall(unsigned long opcode, unsigned long *retbuf, ...);
238 238
239/** 239/**
240 * plpar_hcall_raw: - Make a hypervisor call without calculating hcall stats
241 * @opcode: The hypervisor call to make.
242 * @retbuf: Buffer to store up to 4 return arguments in.
243 *
244 * This call supports up to 6 arguments and 4 return arguments. Use
245 * PLPAR_HCALL_BUFSIZE to size the return argument buffer.
246 *
247 * Used when phyp interface needs to be called in real mode. Similar to
248 * plpar_hcall, but plpar_hcall_raw works in real mode and does not
249 * calculate hypervisor call statistics.
250 */
251long plpar_hcall_raw(unsigned long opcode, unsigned long *retbuf, ...);
252
253/**
240 * plpar_hcall9: - Make a pseries hypervisor call with up to 9 return arguments 254 * plpar_hcall9: - Make a pseries hypervisor call with up to 9 return arguments
241 * @opcode: The hypervisor call to make. 255 * @opcode: The hypervisor call to make.
242 * @retbuf: Buffer to store up to 9 return arguments in. 256 * @retbuf: Buffer to store up to 9 return arguments in.
diff --git a/include/asm-s390/ipl.h b/include/asm-s390/ipl.h
index 660f78271a93..0eb64083480a 100644
--- a/include/asm-s390/ipl.h
+++ b/include/asm-s390/ipl.h
@@ -14,9 +14,13 @@
14#define IPL_PARM_BLK_FCP_LEN (sizeof(struct ipl_list_hdr) + \ 14#define IPL_PARM_BLK_FCP_LEN (sizeof(struct ipl_list_hdr) + \
15 sizeof(struct ipl_block_fcp)) 15 sizeof(struct ipl_block_fcp))
16 16
17#define IPL_PARM_BLK0_FCP_LEN (sizeof(struct ipl_block_fcp) + 8)
18
17#define IPL_PARM_BLK_CCW_LEN (sizeof(struct ipl_list_hdr) + \ 19#define IPL_PARM_BLK_CCW_LEN (sizeof(struct ipl_list_hdr) + \
18 sizeof(struct ipl_block_ccw)) 20 sizeof(struct ipl_block_ccw))
19 21
22#define IPL_PARM_BLK0_CCW_LEN (sizeof(struct ipl_block_ccw) + 8)
23
20#define IPL_MAX_SUPPORTED_VERSION (0) 24#define IPL_MAX_SUPPORTED_VERSION (0)
21 25
22#define IPL_PARMBLOCK_START ((struct ipl_parameter_block *) \ 26#define IPL_PARMBLOCK_START ((struct ipl_parameter_block *) \
@@ -58,6 +62,7 @@ struct ipl_block_ccw {
58 u8 vm_flags; 62 u8 vm_flags;
59 u8 reserved3[3]; 63 u8 reserved3[3];
60 u32 vm_parm_len; 64 u32 vm_parm_len;
65 u8 reserved4[80];
61} __attribute__((packed)); 66} __attribute__((packed));
62 67
63struct ipl_parameter_block { 68struct ipl_parameter_block {
diff --git a/include/asm-s390/unistd.h b/include/asm-s390/unistd.h
index fb6fef97d739..5c6f00d62df8 100644
--- a/include/asm-s390/unistd.h
+++ b/include/asm-s390/unistd.h
@@ -250,8 +250,9 @@
250/* Number 310 is reserved for new sys_move_pages */ 250/* Number 310 is reserved for new sys_move_pages */
251#define __NR_getcpu 311 251#define __NR_getcpu 311
252#define __NR_epoll_pwait 312 252#define __NR_epoll_pwait 312
253#define __NR_utimes 313
253 254
254#define NR_syscalls 313 255#define NR_syscalls 314
255 256
256/* 257/*
257 * There are some system calls that are not present on 64 bit, some 258 * There are some system calls that are not present on 64 bit, some
diff --git a/include/asm-sh/ioctls.h b/include/asm-sh/ioctls.h
index 9d84a2d445a2..35805df010a0 100644
--- a/include/asm-sh/ioctls.h
+++ b/include/asm-sh/ioctls.h
@@ -16,17 +16,17 @@
16#define TCSETSW 0x5403 16#define TCSETSW 0x5403
17#define TCSETSF 0x5404 17#define TCSETSF 0x5404
18 18
19#define TCGETA _IOR('t', 23, struct termio) 19#define TCGETA 0x80127417 /* _IOR('t', 23, struct termio) */
20#define TCSETA _IOW('t', 24, struct termio) 20#define TCSETA 0x40127418 /* _IOW('t', 24, struct termio) */
21#define TCSETAW _IOW('t', 25, struct termio) 21#define TCSETAW 0x40127419 /* _IOW('t', 25, struct termio) */
22#define TCSETAF _IOW('t', 28, struct termio) 22#define TCSETAF 0x4012741C /* _IOW('t', 28, struct termio) */
23 23
24#define TCSBRK _IO('t', 29) 24#define TCSBRK _IO('t', 29)
25#define TCXONC _IO('t', 30) 25#define TCXONC _IO('t', 30)
26#define TCFLSH _IO('t', 31) 26#define TCFLSH _IO('t', 31)
27 27
28#define TIOCSWINSZ _IOW('t', 103, struct winsize) 28#define TIOCSWINSZ 0x40087467 /* _IOW('t', 103, struct winsize) */
29#define TIOCGWINSZ _IOR('t', 104, struct winsize) 29#define TIOCGWINSZ 0x80087468 /* _IOR('t', 104, struct winsize) */
30#define TIOCSTART _IO('t', 110) /* start output, like ^Q */ 30#define TIOCSTART _IO('t', 110) /* start output, like ^Q */
31#define TIOCSTOP _IO('t', 111) /* stop output, like ^S */ 31#define TIOCSTOP _IO('t', 111) /* stop output, like ^S */
32#define TIOCOUTQ _IOR('t', 115, int) /* output queue size */ 32#define TIOCOUTQ _IOR('t', 115, int) /* output queue size */
@@ -59,8 +59,8 @@
59#define TIOCSSOFTCAR _IOW('T', 26, unsigned int) /* 0x541A */ 59#define TIOCSSOFTCAR _IOW('T', 26, unsigned int) /* 0x541A */
60#define TIOCLINUX _IOW('T', 28, char) /* 0x541C */ 60#define TIOCLINUX _IOW('T', 28, char) /* 0x541C */
61#define TIOCCONS _IO('T', 29) /* 0x541D */ 61#define TIOCCONS _IO('T', 29) /* 0x541D */
62#define TIOCGSERIAL _IOR('T', 30, struct serial_struct) /* 0x541E */ 62#define TIOCGSERIAL 0x803C541E /* _IOR('T', 30, struct serial_struct) 0x541E */
63#define TIOCSSERIAL _IOW('T', 31, struct serial_struct) /* 0x541F */ 63#define TIOCSSERIAL 0x403C541F /* _IOW('T', 31, struct serial_struct) 0x541F */
64#define TIOCPKT _IOW('T', 32, int) /* 0x5420 */ 64#define TIOCPKT _IOW('T', 32, int) /* 0x5420 */
65# define TIOCPKT_DATA 0 65# define TIOCPKT_DATA 0
66# define TIOCPKT_FLUSHREAD 1 66# define TIOCPKT_FLUSHREAD 1
@@ -86,12 +86,12 @@
86#define TIOCSERSWILD _IOW('T', 85, int) /* 0x5455 */ 86#define TIOCSERSWILD _IOW('T', 85, int) /* 0x5455 */
87#define TIOCGLCKTRMIOS 0x5456 87#define TIOCGLCKTRMIOS 0x5456
88#define TIOCSLCKTRMIOS 0x5457 88#define TIOCSLCKTRMIOS 0x5457
89#define TIOCSERGSTRUCT _IOR('T', 88, struct async_struct) /* 0x5458 */ /* For debugging only */ 89#define TIOCSERGSTRUCT 0x80d85458 /* _IOR('T', 88, struct async_struct) 0x5458 */ /* For debugging only */
90#define TIOCSERGETLSR _IOR('T', 89, unsigned int) /* 0x5459 */ /* Get line status register */ 90#define TIOCSERGETLSR _IOR('T', 89, unsigned int) /* 0x5459 */ /* Get line status register */
91 /* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */ 91 /* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
92# define TIOCSER_TEMT 0x01 /* Transmitter physically empty */ 92# define TIOCSER_TEMT 0x01 /* Transmitter physically empty */
93#define TIOCSERGETMULTI _IOR('T', 90, struct serial_multiport_struct) /* 0x545A */ /* Get multiport config */ 93#define TIOCSERGETMULTI 0x80A8545A /* _IOR('T', 90, struct serial_multiport_struct) 0x545A */ /* Get multiport config */
94#define TIOCSERSETMULTI _IOW('T', 91, struct serial_multiport_struct) /* 0x545B */ /* Set multiport config */ 94#define TIOCSERSETMULTI 0x40A8545B /* _IOW('T', 91, struct serial_multiport_struct) 0x545B */ /* Set multiport config */
95 95
96#define TIOCMIWAIT _IO('T', 92) /* 0x545C */ /* wait for a change on serial input line(s) */ 96#define TIOCMIWAIT _IO('T', 92) /* 0x545C */ /* wait for a change on serial input line(s) */
97#define TIOCGICOUNT 0x545D /* read serial port inline interrupt counts */ 97#define TIOCGICOUNT 0x545D /* read serial port inline interrupt counts */
diff --git a/include/asm-sh/irq.h b/include/asm-sh/irq.h
index 8ccf7ae593ef..afe188f0ad5f 100644
--- a/include/asm-sh/irq.h
+++ b/include/asm-sh/irq.h
@@ -94,8 +94,13 @@
94/* 94/*
95 * Convert back and forth between INTEVT and IRQ values. 95 * Convert back and forth between INTEVT and IRQ values.
96 */ 96 */
97#ifdef CONFIG_CPU_HAS_INTEVT
97#define evt2irq(evt) (((evt) >> 5) - 16) 98#define evt2irq(evt) (((evt) >> 5) - 16)
98#define irq2evt(irq) (((irq) + 16) << 5) 99#define irq2evt(irq) (((irq) + 16) << 5)
100#else
101#define evt2irq(evt) (evt)
102#define irq2evt(irq) (irq)
103#endif
99 104
100/* 105/*
101 * Simple Mask Register Support 106 * Simple Mask Register Support
diff --git a/include/asm-sh/unistd.h b/include/asm-sh/unistd.h
index 17f527bfd455..49be50a36b77 100644
--- a/include/asm-sh/unistd.h
+++ b/include/asm-sh/unistd.h
@@ -233,6 +233,7 @@
233#define __NR_fcntl64 221 233#define __NR_fcntl64 221
234/* 223 is unused */ 234/* 223 is unused */
235#define __NR_gettid 224 235#define __NR_gettid 224
236#define __NR_readahead 225
236#define __NR_setxattr 226 237#define __NR_setxattr 226
237#define __NR_lsetxattr 227 238#define __NR_lsetxattr 227
238#define __NR_fsetxattr 228 239#define __NR_fsetxattr 228
diff --git a/include/asm-sparc/dma-mapping.h b/include/asm-sparc/dma-mapping.h
index 6db83dc93cb7..f3a641e6b2c8 100644
--- a/include/asm-sparc/dma-mapping.h
+++ b/include/asm-sparc/dma-mapping.h
@@ -5,20 +5,7 @@
5#ifdef CONFIG_PCI 5#ifdef CONFIG_PCI
6#include <asm-generic/dma-mapping.h> 6#include <asm-generic/dma-mapping.h>
7#else 7#else
8 8#include <asm-generic/dma-mapping-broken.h>
9static inline void *dma_alloc_coherent(struct device *dev, size_t size,
10 dma_addr_t *dma_handle, gfp_t flag)
11{
12 BUG();
13 return NULL;
14}
15
16static inline void dma_free_coherent(struct device *dev, size_t size,
17 void *vaddr, dma_addr_t dma_handle)
18{
19 BUG();
20}
21
22#endif /* PCI */ 9#endif /* PCI */
23 10
24#endif /* _ASM_SPARC_DMA_MAPPING_H */ 11#endif /* _ASM_SPARC_DMA_MAPPING_H */
diff --git a/include/asm-sparc/unistd.h b/include/asm-sparc/unistd.h
index 16098acfe300..e43ed1d63a9d 100644
--- a/include/asm-sparc/unistd.h
+++ b/include/asm-sparc/unistd.h
@@ -319,16 +319,17 @@
319#define __NR_set_robust_list 300 319#define __NR_set_robust_list 300
320#define __NR_get_robust_list 301 320#define __NR_get_robust_list 301
321#define __NR_migrate_pages 302 321#define __NR_migrate_pages 302
322#define __NR_mbind 303
323#define __NR_get_mempolicy 304
324#define __NR_set_mempolicy 305
325#define __NR_kexec_load 306
326#define __NR_move_pages 307
327#define __NR_getcpu 308
328#define __NR_epoll_pwait 309
322 329
323#define NR_SYSCALLS 303 330#define NR_SYSCALLS 310
324 331
325#ifdef __KERNEL__ 332#ifdef __KERNEL__
326/* WARNING: You MAY NOT add syscall numbers larger than 302, since
327 * all of the syscall tables in the Sparc kernel are
328 * sized to have 302 entries (starting at zero). Therefore
329 * find a free slot in the 0-302 range.
330 */
331
332#define __ARCH_WANT_IPC_PARSE_VERSION 333#define __ARCH_WANT_IPC_PARSE_VERSION
333#define __ARCH_WANT_OLD_READDIR 334#define __ARCH_WANT_OLD_READDIR
334#define __ARCH_WANT_STAT64 335#define __ARCH_WANT_STAT64
diff --git a/include/asm-sparc64/tsb.h b/include/asm-sparc64/tsb.h
index e82612cd9f33..ab55ffcb7bf4 100644
--- a/include/asm-sparc64/tsb.h
+++ b/include/asm-sparc64/tsb.h
@@ -264,6 +264,7 @@ extern struct tsb_phys_patch_entry __tsb_phys_patch, __tsb_phys_patch_end;
264 be,a,pt %xcc, OK_LABEL; \ 264 be,a,pt %xcc, OK_LABEL; \
265 mov REG4, REG1; 265 mov REG4, REG1;
266 266
267#ifndef CONFIG_DEBUG_PAGEALLOC
267 /* This version uses a trick, the TAG is already (VADDR >> 22) so 268 /* This version uses a trick, the TAG is already (VADDR >> 22) so
268 * we can make use of that for the index computation. 269 * we can make use of that for the index computation.
269 */ 270 */
@@ -277,5 +278,6 @@ extern struct tsb_phys_patch_entry __tsb_phys_patch, __tsb_phys_patch_end;
277 cmp REG3, TAG; \ 278 cmp REG3, TAG; \
278 be,a,pt %xcc, OK_LABEL; \ 279 be,a,pt %xcc, OK_LABEL; \
279 mov REG4, REG1; 280 mov REG4, REG1;
281#endif
280 282
281#endif /* !(_SPARC64_TSB_H) */ 283#endif /* !(_SPARC64_TSB_H) */
diff --git a/include/asm-sparc64/unistd.h b/include/asm-sparc64/unistd.h
index a9f7bd9ca38c..e2dcb87e0c62 100644
--- a/include/asm-sparc64/unistd.h
+++ b/include/asm-sparc64/unistd.h
@@ -321,17 +321,17 @@
321#define __NR_set_robust_list 300 321#define __NR_set_robust_list 300
322#define __NR_get_robust_list 301 322#define __NR_get_robust_list 301
323#define __NR_migrate_pages 302 323#define __NR_migrate_pages 302
324#define __NR_mbind 303
325#define __NR_get_mempolicy 304
326#define __NR_set_mempolicy 305
327#define __NR_kexec_load 306
328#define __NR_move_pages 307
329#define __NR_getcpu 308
330#define __NR_epoll_pwait 309
324 331
325#define NR_SYSCALLS 303 332#define NR_SYSCALLS 310
326 333
327#ifdef __KERNEL__ 334#ifdef __KERNEL__
328
329/* WARNING: You MAY NOT add syscall numbers larger than 302, since
330 * all of the syscall tables in the Sparc kernel are
331 * sized to have 302 entries (starting at zero). Therefore
332 * find a free slot in the 0-302 range.
333 */
334
335/* sysconf options, for SunOS compatibility */ 335/* sysconf options, for SunOS compatibility */
336#define _SC_ARG_MAX 1 336#define _SC_ARG_MAX 1
337#define _SC_CHILD_MAX 2 337#define _SC_CHILD_MAX 2
diff --git a/include/asm-x86_64/apic.h b/include/asm-x86_64/apic.h
index e81d0f289f0b..7cfb39cbd918 100644
--- a/include/asm-x86_64/apic.h
+++ b/include/asm-x86_64/apic.h
@@ -102,5 +102,6 @@ void switch_ipi_to_APIC_timer(void *cpumask);
102#define ARCH_APICTIMER_STOPS_ON_C3 1 102#define ARCH_APICTIMER_STOPS_ON_C3 1
103 103
104extern unsigned boot_cpu_id; 104extern unsigned boot_cpu_id;
105extern int local_apic_timer_c2_ok;
105 106
106#endif /* __ASM_APIC_H */ 107#endif /* __ASM_APIC_H */
diff --git a/include/asm-x86_64/nmi.h b/include/asm-x86_64/nmi.h
index ceb3d8dac33d..72375e7d32a8 100644
--- a/include/asm-x86_64/nmi.h
+++ b/include/asm-x86_64/nmi.h
@@ -64,7 +64,7 @@ extern int setup_nmi_watchdog(char *);
64 64
65extern atomic_t nmi_active; 65extern atomic_t nmi_active;
66extern unsigned int nmi_watchdog; 66extern unsigned int nmi_watchdog;
67#define NMI_DEFAULT 0 67#define NMI_DEFAULT -1
68#define NMI_NONE 0 68#define NMI_NONE 0
69#define NMI_IO_APIC 1 69#define NMI_IO_APIC 1
70#define NMI_LOCAL_APIC 2 70#define NMI_LOCAL_APIC 2
diff --git a/include/asm-x86_64/proto.h b/include/asm-x86_64/proto.h
index f54f3abf93ce..b6e65a699f2a 100644
--- a/include/asm-x86_64/proto.h
+++ b/include/asm-x86_64/proto.h
@@ -99,7 +99,7 @@ extern int force_iommu, no_iommu;
99extern int iommu_detected; 99extern int iommu_detected;
100#ifdef CONFIG_IOMMU 100#ifdef CONFIG_IOMMU
101extern void gart_iommu_init(void); 101extern void gart_iommu_init(void);
102extern void gart_parse_options(char *); 102extern void __init gart_parse_options(char *);
103extern void iommu_hole_init(void); 103extern void iommu_hole_init(void);
104extern int fallback_aper_order; 104extern int fallback_aper_order;
105extern int fallback_aper_force; 105extern int fallback_aper_force;
diff --git a/include/asm-x86_64/smp.h b/include/asm-x86_64/smp.h
index e17b9ec42e98..de592a408c07 100644
--- a/include/asm-x86_64/smp.h
+++ b/include/asm-x86_64/smp.h
@@ -7,6 +7,7 @@
7#include <linux/threads.h> 7#include <linux/threads.h>
8#include <linux/cpumask.h> 8#include <linux/cpumask.h>
9#include <linux/bitops.h> 9#include <linux/bitops.h>
10#include <linux/init.h>
10extern int disable_apic; 11extern int disable_apic;
11 12
12#include <asm/fixmap.h> 13#include <asm/fixmap.h>
@@ -68,7 +69,7 @@ extern int __cpu_disable(void);
68extern void __cpu_die(unsigned int cpu); 69extern void __cpu_die(unsigned int cpu);
69extern void prefill_possible_map(void); 70extern void prefill_possible_map(void);
70extern unsigned num_processors; 71extern unsigned num_processors;
71extern unsigned disabled_cpus; 72extern unsigned __cpuinitdata disabled_cpus;
72 73
73#define NO_PROC_ID 0xFF /* No processor magic marker */ 74#define NO_PROC_ID 0xFF /* No processor magic marker */
74 75
diff --git a/include/asm-x86_64/uaccess.h b/include/asm-x86_64/uaccess.h
index 1981f70fcad1..9df30b939c4e 100644
--- a/include/asm-x86_64/uaccess.h
+++ b/include/asm-x86_64/uaccess.h
@@ -373,12 +373,12 @@ extern long __copy_user_nocache(void *dst, const void __user *src, unsigned size
373static inline int __copy_from_user_nocache(void *dst, const void __user *src, unsigned size) 373static inline int __copy_from_user_nocache(void *dst, const void __user *src, unsigned size)
374{ 374{
375 might_sleep(); 375 might_sleep();
376 return __copy_user_nocache(dst, (__force void *)src, size, 1); 376 return __copy_user_nocache(dst, src, size, 1);
377} 377}
378 378
379static inline int __copy_from_user_inatomic_nocache(void *dst, const void __user *src, unsigned size) 379static inline int __copy_from_user_inatomic_nocache(void *dst, const void __user *src, unsigned size)
380{ 380{
381 return __copy_user_nocache(dst, (__force void *)src, size, 0); 381 return __copy_user_nocache(dst, src, size, 0);
382} 382}
383 383
384#endif /* __X86_64_UACCESS_H */ 384#endif /* __X86_64_UACCESS_H */
diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h
index 7011d6255593..f2542c24b328 100644
--- a/include/linux/backing-dev.h
+++ b/include/linux/backing-dev.h
@@ -93,6 +93,7 @@ static inline int bdi_rw_congested(struct backing_dev_info *bdi)
93void clear_bdi_congested(struct backing_dev_info *bdi, int rw); 93void clear_bdi_congested(struct backing_dev_info *bdi, int rw);
94void set_bdi_congested(struct backing_dev_info *bdi, int rw); 94void set_bdi_congested(struct backing_dev_info *bdi, int rw);
95long congestion_wait(int rw, long timeout); 95long congestion_wait(int rw, long timeout);
96long congestion_wait_interruptible(int rw, long timeout);
96void congestion_end(int rw); 97void congestion_end(int rw);
97 98
98#define bdi_cap_writeback_dirty(bdi) \ 99#define bdi_cap_writeback_dirty(bdi) \
diff --git a/include/linux/bootmem.h b/include/linux/bootmem.h
index 2275f2748708..81c07cd18643 100644
--- a/include/linux/bootmem.h
+++ b/include/linux/bootmem.h
@@ -108,7 +108,7 @@ static inline void *alloc_remap(int nid, unsigned long size)
108#endif /* CONFIG_HAVE_ARCH_ALLOC_REMAP */ 108#endif /* CONFIG_HAVE_ARCH_ALLOC_REMAP */
109 109
110extern unsigned long __meminitdata nr_kernel_pages; 110extern unsigned long __meminitdata nr_kernel_pages;
111extern unsigned long nr_all_pages; 111extern unsigned long __meminitdata nr_all_pages;
112 112
113extern void *alloc_large_system_hash(const char *tablename, 113extern void *alloc_large_system_hash(const char *tablename,
114 unsigned long bucketsize, 114 unsigned long bucketsize,
diff --git a/include/linux/device.h b/include/linux/device.h
index 39a3199a826d..caad9bba9652 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -353,6 +353,8 @@ extern int __must_check device_create_bin_file(struct device *dev,
353 struct bin_attribute *attr); 353 struct bin_attribute *attr);
354extern void device_remove_bin_file(struct device *dev, 354extern void device_remove_bin_file(struct device *dev,
355 struct bin_attribute *attr); 355 struct bin_attribute *attr);
356extern int device_schedule_callback(struct device *dev,
357 void (*func)(struct device *));
356 358
357/* device resource management */ 359/* device resource management */
358typedef void (*dr_release_t)(struct device *dev, void *res); 360typedef void (*dr_release_t)(struct device *dev, void *res);
diff --git a/include/linux/kbd_kern.h b/include/linux/kbd_kern.h
index 06c58c423fe1..506ad20c18f8 100644
--- a/include/linux/kbd_kern.h
+++ b/include/linux/kbd_kern.h
@@ -75,7 +75,7 @@ extern int do_poke_blanked_console;
75 75
76extern void (*kbd_ledfunc)(unsigned int led); 76extern void (*kbd_ledfunc)(unsigned int led);
77 77
78extern void set_console(int nr); 78extern int set_console(int nr);
79extern void schedule_console_callback(void); 79extern void schedule_console_callback(void);
80 80
81static inline void set_leds(void) 81static inline void set_leds(void)
diff --git a/include/linux/ktime.h b/include/linux/ktime.h
index c68c7ac6b232..248305bb9a18 100644
--- a/include/linux/ktime.h
+++ b/include/linux/ktime.h
@@ -57,7 +57,11 @@ typedef union {
57} ktime_t; 57} ktime_t;
58 58
59#define KTIME_MAX ((s64)~((u64)1 << 63)) 59#define KTIME_MAX ((s64)~((u64)1 << 63))
60#define KTIME_SEC_MAX (KTIME_MAX / NSEC_PER_SEC) 60#if (BITS_PER_LONG == 64)
61# define KTIME_SEC_MAX (KTIME_MAX / NSEC_PER_SEC)
62#else
63# define KTIME_SEC_MAX LONG_MAX
64#endif
61 65
62/* 66/*
63 * ktime_t definitions when using the 64-bit scalar representation: 67 * ktime_t definitions when using the 64-bit scalar representation:
diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h
index 06fe93a3e916..14c937d345cb 100644
--- a/include/linux/lockdep.h
+++ b/include/linux/lockdep.h
@@ -245,7 +245,7 @@ extern void lock_release(struct lockdep_map *lock, int nested,
245 245
246# define INIT_LOCKDEP .lockdep_recursion = 0, 246# define INIT_LOCKDEP .lockdep_recursion = 0,
247 247
248#define lockdep_depth(tsk) ((tsk)->lockdep_depth) 248#define lockdep_depth(tsk) (debug_locks ? (tsk)->lockdep_depth : 0)
249 249
250#else /* !LOCKDEP */ 250#else /* !LOCKDEP */
251 251
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h
index 47aaa2c66738..e9ae0c6e2c62 100644
--- a/include/linux/nfs_fs.h
+++ b/include/linux/nfs_fs.h
@@ -415,6 +415,7 @@ extern void nfs_complete_unlink(struct dentry *);
415/* 415/*
416 * linux/fs/nfs/write.c 416 * linux/fs/nfs/write.c
417 */ 417 */
418extern int nfs_congestion_kb;
418extern int nfs_writepage(struct page *page, struct writeback_control *wbc); 419extern int nfs_writepage(struct page *page, struct writeback_control *wbc);
419extern int nfs_writepages(struct address_space *, struct writeback_control *); 420extern int nfs_writepages(struct address_space *, struct writeback_control *);
420extern int nfs_flush_incompatible(struct file *file, struct page *page); 421extern int nfs_flush_incompatible(struct file *file, struct page *page);
diff --git a/include/linux/nfs_fs_sb.h b/include/linux/nfs_fs_sb.h
index 95796e6924f1..c95d5e642548 100644
--- a/include/linux/nfs_fs_sb.h
+++ b/include/linux/nfs_fs_sb.h
@@ -82,6 +82,7 @@ struct nfs_server {
82 struct rpc_clnt * client_acl; /* ACL RPC client handle */ 82 struct rpc_clnt * client_acl; /* ACL RPC client handle */
83 struct nfs_iostats * io_stats; /* I/O statistics */ 83 struct nfs_iostats * io_stats; /* I/O statistics */
84 struct backing_dev_info backing_dev_info; 84 struct backing_dev_info backing_dev_info;
85 atomic_t writeback; /* number of writeback pages */
85 int flags; /* various flags */ 86 int flags; /* various flags */
86 unsigned int caps; /* server capabilities */ 87 unsigned int caps; /* server capabilities */
87 unsigned int rsize; /* read size */ 88 unsigned int rsize; /* read size */
diff --git a/include/linux/security.h b/include/linux/security.h
index 7f88d97575fd..47e82c120f9a 100644
--- a/include/linux/security.h
+++ b/include/linux/security.h
@@ -1324,7 +1324,7 @@ struct security_operations {
1324 1324
1325 void (*d_instantiate) (struct dentry *dentry, struct inode *inode); 1325 void (*d_instantiate) (struct dentry *dentry, struct inode *inode);
1326 1326
1327 int (*getprocattr)(struct task_struct *p, char *name, void *value, size_t size); 1327 int (*getprocattr)(struct task_struct *p, char *name, char **value);
1328 int (*setprocattr)(struct task_struct *p, char *name, void *value, size_t size); 1328 int (*setprocattr)(struct task_struct *p, char *name, void *value, size_t size);
1329 int (*secid_to_secctx)(u32 secid, char **secdata, u32 *seclen); 1329 int (*secid_to_secctx)(u32 secid, char **secdata, u32 *seclen);
1330 void (*release_secctx)(char *secdata, u32 seclen); 1330 void (*release_secctx)(char *secdata, u32 seclen);
@@ -2092,9 +2092,9 @@ static inline void security_d_instantiate (struct dentry *dentry, struct inode *
2092 security_ops->d_instantiate (dentry, inode); 2092 security_ops->d_instantiate (dentry, inode);
2093} 2093}
2094 2094
2095static inline int security_getprocattr(struct task_struct *p, char *name, void *value, size_t size) 2095static inline int security_getprocattr(struct task_struct *p, char *name, char **value)
2096{ 2096{
2097 return security_ops->getprocattr(p, name, value, size); 2097 return security_ops->getprocattr(p, name, value);
2098} 2098}
2099 2099
2100static inline int security_setprocattr(struct task_struct *p, char *name, void *value, size_t size) 2100static inline int security_setprocattr(struct task_struct *p, char *name, void *value, size_t size)
@@ -2749,7 +2749,7 @@ static inline int security_sem_semop (struct sem_array * sma,
2749static inline void security_d_instantiate (struct dentry *dentry, struct inode *inode) 2749static inline void security_d_instantiate (struct dentry *dentry, struct inode *inode)
2750{ } 2750{ }
2751 2751
2752static inline int security_getprocattr(struct task_struct *p, char *name, void *value, size_t size) 2752static inline int security_getprocattr(struct task_struct *p, char *name, char **value)
2753{ 2753{
2754 return -EINVAL; 2754 return -EINVAL;
2755} 2755}
diff --git a/include/linux/spi/spi_bitbang.h b/include/linux/spi/spi_bitbang.h
index 2e8c048b9b80..9dbca629dcfb 100644
--- a/include/linux/spi/spi_bitbang.h
+++ b/include/linux/spi/spi_bitbang.h
@@ -25,7 +25,6 @@ struct spi_bitbang {
25 spinlock_t lock; 25 spinlock_t lock;
26 struct list_head queue; 26 struct list_head queue;
27 u8 busy; 27 u8 busy;
28 u8 shutdown;
29 u8 use_dma; 28 u8 use_dma;
30 29
31 struct spi_master *master; 30 struct spi_master *master;
diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h
index 523405e1e1f6..fea9a6b3fb7b 100644
--- a/include/linux/sysfs.h
+++ b/include/linux/sysfs.h
@@ -11,6 +11,7 @@
11#define _SYSFS_H_ 11#define _SYSFS_H_
12 12
13#include <linux/compiler.h> 13#include <linux/compiler.h>
14#include <linux/errno.h>
14#include <linux/list.h> 15#include <linux/list.h>
15#include <asm/atomic.h> 16#include <asm/atomic.h>
16 17
@@ -78,6 +79,9 @@ struct sysfs_ops {
78 79
79#ifdef CONFIG_SYSFS 80#ifdef CONFIG_SYSFS
80 81
82extern int sysfs_schedule_callback(struct kobject *kobj,
83 void (*func)(void *), void *data);
84
81extern int __must_check 85extern int __must_check
82sysfs_create_dir(struct kobject *, struct dentry *); 86sysfs_create_dir(struct kobject *, struct dentry *);
83 87
@@ -132,6 +136,12 @@ extern int __must_check sysfs_init(void);
132 136
133#else /* CONFIG_SYSFS */ 137#else /* CONFIG_SYSFS */
134 138
139static inline int sysfs_schedule_callback(struct kobject *kobj,
140 void (*func)(void *), void *data)
141{
142 return -ENOSYS;
143}
144
135static inline int sysfs_create_dir(struct kobject * k, struct dentry *shadow) 145static inline int sysfs_create_dir(struct kobject * k, struct dentry *shadow)
136{ 146{
137 return 0; 147 return 0;
diff --git a/include/linux/ufs_fs.h b/include/linux/ufs_fs.h
index dc2e9fe69418..daeba22b7656 100644
--- a/include/linux/ufs_fs.h
+++ b/include/linux/ufs_fs.h
@@ -649,10 +649,10 @@ struct ufs2_inode {
649 __fs32 ui_blksize; /* 12: Inode blocksize. */ 649 __fs32 ui_blksize; /* 12: Inode blocksize. */
650 __fs64 ui_size; /* 16: File byte count. */ 650 __fs64 ui_size; /* 16: File byte count. */
651 __fs64 ui_blocks; /* 24: Bytes actually held. */ 651 __fs64 ui_blocks; /* 24: Bytes actually held. */
652 struct ufs_timeval ui_atime; /* 32: Last access time. */ 652 __fs64 ui_atime; /* 32: Last access time. */
653 struct ufs_timeval ui_mtime; /* 40: Last modified time. */ 653 __fs64 ui_mtime; /* 40: Last modified time. */
654 struct ufs_timeval ui_ctime; /* 48: Last inode change time. */ 654 __fs64 ui_ctime; /* 48: Last inode change time. */
655 struct ufs_timeval ui_birthtime; /* 56: Inode creation time. */ 655 __fs64 ui_birthtime; /* 56: Inode creation time. */
656 __fs32 ui_mtimensec; /* 64: Last modified time. */ 656 __fs32 ui_mtimensec; /* 64: Last modified time. */
657 __fs32 ui_atimensec; /* 68: Last access time. */ 657 __fs32 ui_atimensec; /* 68: Last access time. */
658 __fs32 ui_ctimensec; /* 72: Last inode change time. */ 658 __fs32 ui_ctimensec; /* 72: Last inode change time. */
diff --git a/include/linux/vt_kern.h b/include/linux/vt_kern.h
index 37a1a41f5b65..e0db669998f3 100644
--- a/include/linux/vt_kern.h
+++ b/include/linux/vt_kern.h
@@ -83,6 +83,7 @@ void reset_vc(struct vc_data *vc);
83#define CON_BUF_SIZE (CONFIG_BASE_SMALL ? 256 : PAGE_SIZE) 83#define CON_BUF_SIZE (CONFIG_BASE_SMALL ? 256 : PAGE_SIZE)
84extern char con_buf[CON_BUF_SIZE]; 84extern char con_buf[CON_BUF_SIZE];
85extern struct semaphore con_buf_sem; 85extern struct semaphore con_buf_sem;
86extern char vt_dont_switch;
86 87
87struct vt_spawn_console { 88struct vt_spawn_console {
88 spinlock_t lock; 89 spinlock_t lock;
diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h
index 31a8e88f1a74..f431acf3dcea 100644
--- a/include/net/sctp/structs.h
+++ b/include/net/sctp/structs.h
@@ -1002,6 +1002,7 @@ void sctp_transport_update_rto(struct sctp_transport *, __u32);
1002void sctp_transport_raise_cwnd(struct sctp_transport *, __u32, __u32); 1002void sctp_transport_raise_cwnd(struct sctp_transport *, __u32, __u32);
1003void sctp_transport_lower_cwnd(struct sctp_transport *, sctp_lower_cwnd_t); 1003void sctp_transport_lower_cwnd(struct sctp_transport *, sctp_lower_cwnd_t);
1004unsigned long sctp_transport_timeout(struct sctp_transport *); 1004unsigned long sctp_transport_timeout(struct sctp_transport *);
1005void sctp_transport_reset(struct sctp_transport *);
1005 1006
1006 1007
1007/* This is the structure we use to queue packets as they come into 1008/* This is the structure we use to queue packets as they come into
diff --git a/include/net/sctp/ulpqueue.h b/include/net/sctp/ulpqueue.h
index a43c8788b650..ab26ab3adae1 100644
--- a/include/net/sctp/ulpqueue.h
+++ b/include/net/sctp/ulpqueue.h
@@ -59,6 +59,7 @@ struct sctp_ulpq {
59/* Prototypes. */ 59/* Prototypes. */
60struct sctp_ulpq *sctp_ulpq_init(struct sctp_ulpq *, 60struct sctp_ulpq *sctp_ulpq_init(struct sctp_ulpq *,
61 struct sctp_association *); 61 struct sctp_association *);
62void sctp_ulpq_flush(struct sctp_ulpq *ulpq);
62void sctp_ulpq_free(struct sctp_ulpq *); 63void sctp_ulpq_free(struct sctp_ulpq *);
63 64
64/* Add a new DATA chunk for processing. */ 65/* Add a new DATA chunk for processing. */
diff --git a/include/sound/version.h b/include/sound/version.h
index 5f7275000102..42a18cc95f38 100644
--- a/include/sound/version.h
+++ b/include/sound/version.h
@@ -1,3 +1,3 @@
1/* include/version.h. Generated by alsa/ksync script. */ 1/* include/version.h. Generated by alsa/ksync script. */
2#define CONFIG_SND_VERSION "1.0.14rc3" 2#define CONFIG_SND_VERSION "1.0.14rc3"
3#define CONFIG_SND_DATE " (Tue Mar 06 13:10:00 2007 UTC)" 3#define CONFIG_SND_DATE " (Wed Mar 14 07:25:50 2007 UTC)"