diff options
author | David Woodhouse <dwmw2@infradead.org> | 2007-04-26 04:31:28 -0400 |
---|---|---|
committer | David Woodhouse <dwmw2@infradead.org> | 2007-04-26 04:31:28 -0400 |
commit | ef2e58ea6b9931c3a4816c66593da49bb20e3b24 (patch) | |
tree | ce7432add3becbe78de4ea06425cd2d9e91f4ada /include | |
parent | 06d63cc51d47f572009138a7f3ac34d95773405d (diff) | |
parent | de46c33745f5e2ad594c72f2cf5f490861b16ce1 (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'include')
136 files changed, 570 insertions, 473 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 | */ |
449 | void acpi_ex_enter_interpreter(void); | 449 | acpi_status acpi_ex_enter_interpreter(void); |
450 | 450 | ||
451 | void acpi_ex_exit_interpreter(void); | 451 | void acpi_ex_exit_interpreter(void); |
452 | 452 | ||
453 | void acpi_ex_reacquire_interpreter(void); | ||
454 | |||
455 | void acpi_ex_relinquish_interpreter(void); | ||
456 | |||
457 | void acpi_ex_truncate_for32bit_table(union acpi_operand_object *obj_desc); | 453 | void acpi_ex_truncate_for32bit_table(union acpi_operand_object *obj_desc); |
458 | 454 | ||
459 | u8 acpi_ex_acquire_global_lock(u32 rule); | 455 | u8 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 | ||
347 | typedef u64 acpi_integer; | 347 | typedef 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-alpha/compiler.h b/include/asm-alpha/compiler.h index d2768cc3d7a4..da6bb199839c 100644 --- a/include/asm-alpha/compiler.h +++ b/include/asm-alpha/compiler.h | |||
@@ -17,9 +17,6 @@ | |||
17 | # define __kernel_extbl(val, shift) __builtin_alpha_extbl(val, shift) | 17 | # define __kernel_extbl(val, shift) __builtin_alpha_extbl(val, shift) |
18 | # define __kernel_extwl(val, shift) __builtin_alpha_extwl(val, shift) | 18 | # define __kernel_extwl(val, shift) __builtin_alpha_extwl(val, shift) |
19 | # define __kernel_cmpbge(a, b) __builtin_alpha_cmpbge(a, b) | 19 | # define __kernel_cmpbge(a, b) __builtin_alpha_cmpbge(a, b) |
20 | # define __kernel_cttz(x) __builtin_ctzl(x) | ||
21 | # define __kernel_ctlz(x) __builtin_clzl(x) | ||
22 | # define __kernel_ctpop(x) __builtin_popcountl(x) | ||
23 | #else | 20 | #else |
24 | # define __kernel_insbl(val, shift) \ | 21 | # define __kernel_insbl(val, shift) \ |
25 | ({ unsigned long __kir; \ | 22 | ({ unsigned long __kir; \ |
@@ -49,17 +46,39 @@ | |||
49 | ({ unsigned long __kir; \ | 46 | ({ unsigned long __kir; \ |
50 | __asm__("cmpbge %r2,%1,%0" : "=r"(__kir) : "rI"(b), "rJ"(a)); \ | 47 | __asm__("cmpbge %r2,%1,%0" : "=r"(__kir) : "rI"(b), "rJ"(a)); \ |
51 | __kir; }) | 48 | __kir; }) |
49 | #endif | ||
50 | |||
51 | #ifdef __alpha_cix__ | ||
52 | # if __GNUC__ == 3 && __GNUC_MINOR__ >= 4 || __GNUC__ > 3 | ||
53 | # define __kernel_cttz(x) __builtin_ctzl(x) | ||
54 | # define __kernel_ctlz(x) __builtin_clzl(x) | ||
55 | # define __kernel_ctpop(x) __builtin_popcountl(x) | ||
56 | # else | ||
57 | # define __kernel_cttz(x) \ | ||
58 | ({ unsigned long __kir; \ | ||
59 | __asm__("cttz %1,%0" : "=r"(__kir) : "r"(x)); \ | ||
60 | __kir; }) | ||
61 | # define __kernel_ctlz(x) \ | ||
62 | ({ unsigned long __kir; \ | ||
63 | __asm__("ctlz %1,%0" : "=r"(__kir) : "r"(x)); \ | ||
64 | __kir; }) | ||
65 | # define __kernel_ctpop(x) \ | ||
66 | ({ unsigned long __kir; \ | ||
67 | __asm__("ctpop %1,%0" : "=r"(__kir) : "r"(x)); \ | ||
68 | __kir; }) | ||
69 | # endif | ||
70 | #else | ||
52 | # define __kernel_cttz(x) \ | 71 | # define __kernel_cttz(x) \ |
53 | ({ unsigned long __kir; \ | 72 | ({ unsigned long __kir; \ |
54 | __asm__("cttz %1,%0" : "=r"(__kir) : "r"(x)); \ | 73 | __asm__(".arch ev67; cttz %1,%0" : "=r"(__kir) : "r"(x)); \ |
55 | __kir; }) | 74 | __kir; }) |
56 | # define __kernel_ctlz(x) \ | 75 | # define __kernel_ctlz(x) \ |
57 | ({ unsigned long __kir; \ | 76 | ({ unsigned long __kir; \ |
58 | __asm__("ctlz %1,%0" : "=r"(__kir) : "r"(x)); \ | 77 | __asm__(".arch ev67; ctlz %1,%0" : "=r"(__kir) : "r"(x)); \ |
59 | __kir; }) | 78 | __kir; }) |
60 | # define __kernel_ctpop(x) \ | 79 | # define __kernel_ctpop(x) \ |
61 | ({ unsigned long __kir; \ | 80 | ({ unsigned long __kir; \ |
62 | __asm__("ctpop %1,%0" : "=r"(__kir) : "r"(x)); \ | 81 | __asm__(".arch ev67; ctpop %1,%0" : "=r"(__kir) : "r"(x)); \ |
63 | __kir; }) | 82 | __kir; }) |
64 | #endif | 83 | #endif |
65 | 84 | ||
@@ -78,16 +97,20 @@ | |||
78 | #else | 97 | #else |
79 | #define __kernel_ldbu(mem) \ | 98 | #define __kernel_ldbu(mem) \ |
80 | ({ unsigned char __kir; \ | 99 | ({ unsigned char __kir; \ |
81 | __asm__("ldbu %0,%1" : "=r"(__kir) : "m"(mem)); \ | 100 | __asm__(".arch ev56; \ |
101 | ldbu %0,%1" : "=r"(__kir) : "m"(mem)); \ | ||
82 | __kir; }) | 102 | __kir; }) |
83 | #define __kernel_ldwu(mem) \ | 103 | #define __kernel_ldwu(mem) \ |
84 | ({ unsigned short __kir; \ | 104 | ({ unsigned short __kir; \ |
85 | __asm__("ldwu %0,%1" : "=r"(__kir) : "m"(mem)); \ | 105 | __asm__(".arch ev56; \ |
106 | ldwu %0,%1" : "=r"(__kir) : "m"(mem)); \ | ||
86 | __kir; }) | 107 | __kir; }) |
87 | #define __kernel_stb(val,mem) \ | 108 | #define __kernel_stb(val,mem) \ |
88 | __asm__("stb %1,%0" : "=m"(mem) : "r"(val)) | 109 | __asm__(".arch ev56; \ |
89 | #define __kernel_stw(val,mem) \ | 110 | stb %1,%0" : "=m"(mem) : "r"(val)) |
90 | __asm__("stw %1,%0" : "=m"(mem) : "r"(val)) | 111 | #define __kernel_stw(val,mem) \ |
112 | __asm__(".arch ev56; \ | ||
113 | stw %1,%0" : "=m"(mem) : "r"(val)) | ||
91 | #endif | 114 | #endif |
92 | 115 | ||
93 | #ifdef __KERNEL__ | 116 | #ifdef __KERNEL__ |
diff --git a/include/asm-alpha/core_mcpcia.h b/include/asm-alpha/core_mcpcia.h index 980a3c51b18e..525b4f6a7ace 100644 --- a/include/asm-alpha/core_mcpcia.h +++ b/include/asm-alpha/core_mcpcia.h | |||
@@ -72,6 +72,8 @@ | |||
72 | * | 72 | * |
73 | */ | 73 | */ |
74 | 74 | ||
75 | #define MCPCIA_MAX_HOSES 4 | ||
76 | |||
75 | #define MCPCIA_MID(m) ((unsigned long)(m) << 33) | 77 | #define MCPCIA_MID(m) ((unsigned long)(m) << 33) |
76 | 78 | ||
77 | /* Dodge has PCI0 and PCI1 at MID 4 and 5 respectively. | 79 | /* Dodge has PCI0 and PCI1 at MID 4 and 5 respectively. |
diff --git a/include/asm-alpha/io.h b/include/asm-alpha/io.h index 24bdcc8b63aa..21a86f1a05b3 100644 --- a/include/asm-alpha/io.h +++ b/include/asm-alpha/io.h | |||
@@ -113,6 +113,7 @@ static inline unsigned long virt_to_bus(void *address) | |||
113 | unsigned long bus = phys + __direct_map_base; | 113 | unsigned long bus = phys + __direct_map_base; |
114 | return phys <= __direct_map_size ? bus : 0; | 114 | return phys <= __direct_map_size ? bus : 0; |
115 | } | 115 | } |
116 | #define isa_virt_to_bus virt_to_bus | ||
116 | 117 | ||
117 | static inline void *bus_to_virt(unsigned long address) | 118 | static inline void *bus_to_virt(unsigned long address) |
118 | { | 119 | { |
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 | ||
225 | extern int gpio_direction_input(unsigned gpio); | 225 | extern int gpio_direction_input(unsigned gpio); |
226 | extern int gpio_direction_output(unsigned gpio); | 226 | extern int gpio_direction_output(unsigned gpio, int value); |
227 | 227 | ||
228 | static inline int gpio_get_value(unsigned gpio) | 228 | static inline int gpio_get_value(unsigned gpio) |
229 | { | 229 | { |
diff --git a/include/asm-arm/arch-ixp4xx/io.h b/include/asm-arm/arch-ixp4xx/io.h index b7b5414d9320..a41ba229c564 100644 --- a/include/asm-arm/arch-ixp4xx/io.h +++ b/include/asm-arm/arch-ixp4xx/io.h | |||
@@ -238,23 +238,6 @@ __ixp4xx_readsl(const volatile void __iomem *bus_addr, u32 *vaddr, u32 count) | |||
238 | #define memcpy_fromio(a,c,l) _memcpy_fromio((a),(c),(l)) | 238 | #define memcpy_fromio(a,c,l) _memcpy_fromio((a),(c),(l)) |
239 | #define memcpy_toio(c,a,l) _memcpy_toio((c),(a),(l)) | 239 | #define memcpy_toio(c,a,l) _memcpy_toio((c),(a),(l)) |
240 | 240 | ||
241 | static inline int | ||
242 | check_signature(const unsigned char __iomem *bus_addr, const unsigned char *signature, | ||
243 | int length) | ||
244 | { | ||
245 | int retval = 0; | ||
246 | do { | ||
247 | if (readb(bus_addr) != *signature) | ||
248 | goto out; | ||
249 | bus_addr++; | ||
250 | signature++; | ||
251 | length--; | ||
252 | } while (length); | ||
253 | retval = 1; | ||
254 | out: | ||
255 | return retval; | ||
256 | } | ||
257 | |||
258 | #endif | 241 | #endif |
259 | 242 | ||
260 | #ifndef CONFIG_PCI | 243 | #ifndef CONFIG_PCI |
diff --git a/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h b/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h index 9444958bec1e..ed35e5c94f40 100644 --- a/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h +++ b/include/asm-arm/arch-ixp4xx/ixp4xx-regs.h | |||
@@ -144,9 +144,9 @@ | |||
144 | #define IXP4XX_INTC_BASE_VIRT (IXP4XX_PERIPHERAL_BASE_VIRT + 0x3000) | 144 | #define IXP4XX_INTC_BASE_VIRT (IXP4XX_PERIPHERAL_BASE_VIRT + 0x3000) |
145 | #define IXP4XX_GPIO_BASE_VIRT (IXP4XX_PERIPHERAL_BASE_VIRT + 0x4000) | 145 | #define IXP4XX_GPIO_BASE_VIRT (IXP4XX_PERIPHERAL_BASE_VIRT + 0x4000) |
146 | #define IXP4XX_TIMER_BASE_VIRT (IXP4XX_PERIPHERAL_BASE_VIRT + 0x5000) | 146 | #define IXP4XX_TIMER_BASE_VIRT (IXP4XX_PERIPHERAL_BASE_VIRT + 0x5000) |
147 | #define IXP4XX_NPEA_BASE_VIRT (IXP4XX_PERIPHERAL_BASE_PHYS + 0x6000) | 147 | #define IXP4XX_NPEA_BASE_VIRT (IXP4XX_PERIPHERAL_BASE_VIRT + 0x6000) |
148 | #define IXP4XX_NPEB_BASE_VIRT (IXP4XX_PERIPHERAL_BASE_PHYS + 0x7000) | 148 | #define IXP4XX_NPEB_BASE_VIRT (IXP4XX_PERIPHERAL_BASE_VIRT + 0x7000) |
149 | #define IXP4XX_NPEC_BASE_VIRT (IXP4XX_PERIPHERAL_BASE_PHYS + 0x8000) | 149 | #define IXP4XX_NPEC_BASE_VIRT (IXP4XX_PERIPHERAL_BASE_VIRT + 0x8000) |
150 | #define IXP4XX_EthB_BASE_VIRT (IXP4XX_PERIPHERAL_BASE_VIRT + 0x9000) | 150 | #define IXP4XX_EthB_BASE_VIRT (IXP4XX_PERIPHERAL_BASE_VIRT + 0x9000) |
151 | #define IXP4XX_EthC_BASE_VIRT (IXP4XX_PERIPHERAL_BASE_VIRT + 0xA000) | 151 | #define IXP4XX_EthC_BASE_VIRT (IXP4XX_PERIPHERAL_BASE_VIRT + 0xA000) |
152 | #define IXP4XX_USB_BASE_VIRT (IXP4XX_PERIPHERAL_BASE_VIRT + 0xB000) | 152 | #define IXP4XX_USB_BASE_VIRT (IXP4XX_PERIPHERAL_BASE_VIRT + 0xB000) |
diff --git a/include/asm-arm/arch-lh7a40x/entry-macro.S b/include/asm-arm/arch-lh7a40x/entry-macro.S index 502700604e00..ffe397250f0c 100644 --- a/include/asm-arm/arch-lh7a40x/entry-macro.S +++ b/include/asm-arm/arch-lh7a40x/entry-macro.S | |||
@@ -86,6 +86,12 @@ branch_irq_lh7a400: b 1000f | |||
86 | .macro disable_fiq | 86 | .macro disable_fiq |
87 | .endm | 87 | .endm |
88 | 88 | ||
89 | .macro get_irqnr_preamble, base, tmp | ||
90 | .endm | ||
91 | |||
92 | .macro arch_ret_to_user, tmp1, tmp2 | ||
93 | .endm | ||
94 | |||
89 | .macro get_irqnr_and_base, irqnr, irqstat, base, tmp | 95 | .macro get_irqnr_and_base, irqnr, irqstat, base, tmp |
90 | mov \irqnr, #0 | 96 | mov \irqnr, #0 |
91 | mov \base, #io_p2v(0x80000000) @ APB registers | 97 | mov \base, #io_p2v(0x80000000) @ APB registers |
@@ -105,6 +111,12 @@ branch_irq_lh7a400: b 1000f | |||
105 | .macro disable_fiq | 111 | .macro disable_fiq |
106 | .endm | 112 | .endm |
107 | 113 | ||
114 | .macro get_irqnr_preamble, base, tmp | ||
115 | .endm | ||
116 | |||
117 | .macro arch_ret_to_user, tmp1, tmp2 | ||
118 | .endm | ||
119 | |||
108 | .macro get_irqnr_and_base, irqnr, irqstat, base, tmp | 120 | .macro get_irqnr_and_base, irqnr, irqstat, base, tmp |
109 | mov \irqnr, #0 @ VIC1 irq base | 121 | mov \irqnr, #0 @ VIC1 irq base |
110 | mov \base, #io_p2v(0x80000000) @ APB registers | 122 | mov \base, #io_p2v(0x80000000) @ APB registers |
diff --git a/include/asm-arm/arch-ns9xxx/clock.h b/include/asm-arm/arch-ns9xxx/clock.h index 4371a485db47..a7c5ab3d9011 100644 --- a/include/asm-arm/arch-ns9xxx/clock.h +++ b/include/asm-arm/arch-ns9xxx/clock.h | |||
@@ -11,6 +11,7 @@ | |||
11 | #ifndef __ASM_ARCH_CLOCK_H | 11 | #ifndef __ASM_ARCH_CLOCK_H |
12 | #define __ASM_ARCH_CLOCK_H | 12 | #define __ASM_ARCH_CLOCK_H |
13 | 13 | ||
14 | static inline u32 ns9xxx_systemclock(void) __attribute__((const)); | ||
14 | static inline u32 ns9xxx_systemclock(void) | 15 | static inline u32 ns9xxx_systemclock(void) |
15 | { | 16 | { |
16 | /* | 17 | /* |
@@ -19,17 +20,20 @@ static inline u32 ns9xxx_systemclock(void) | |||
19 | return 353894400; | 20 | return 353894400; |
20 | } | 21 | } |
21 | 22 | ||
22 | static inline const u32 ns9xxx_cpuclock(void) | 23 | static inline u32 ns9xxx_cpuclock(void) __attribute__((const)); |
24 | static inline u32 ns9xxx_cpuclock(void) | ||
23 | { | 25 | { |
24 | return ns9xxx_systemclock() / 2; | 26 | return ns9xxx_systemclock() / 2; |
25 | } | 27 | } |
26 | 28 | ||
27 | static inline const u32 ns9xxx_ahbclock(void) | 29 | static inline u32 ns9xxx_ahbclock(void) __attribute__((const)); |
30 | static inline u32 ns9xxx_ahbclock(void) | ||
28 | { | 31 | { |
29 | return ns9xxx_systemclock() / 4; | 32 | return ns9xxx_systemclock() / 4; |
30 | } | 33 | } |
31 | 34 | ||
32 | static inline const u32 ns9xxx_bbusclock(void) | 35 | static inline u32 ns9xxx_bbusclock(void) __attribute__((const)); |
36 | static inline u32 ns9xxx_bbusclock(void) | ||
33 | { | 37 | { |
34 | return ns9xxx_systemclock() / 8; | 38 | return ns9xxx_systemclock() / 8; |
35 | } | 39 | } |
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 | ||
116 | static inline int gpio_direction_output(unsigned gpio) | 116 | static 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 | ||
46 | static inline int gpio_direction_output(unsigned gpio) | 46 | static 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 | ||
51 | static inline int __gpio_get_value(unsigned gpio) | 51 | static inline int __gpio_get_value(unsigned gpio) |
diff --git a/include/asm-arm/arch-pxa/pxa-regs.h b/include/asm-arm/arch-pxa/pxa-regs.h index aec835b6f057..139c9d954818 100644 --- a/include/asm-arm/arch-pxa/pxa-regs.h +++ b/include/asm-arm/arch-pxa/pxa-regs.h | |||
@@ -1476,7 +1476,7 @@ | |||
1476 | #define GPIO112_MMCCMD_MD (112 | GPIO_ALT_FN_1_OUT) | 1476 | #define GPIO112_MMCCMD_MD (112 | GPIO_ALT_FN_1_OUT) |
1477 | #define GPIO113_I2S_SYSCLK_MD (113 | GPIO_ALT_FN_1_OUT) | 1477 | #define GPIO113_I2S_SYSCLK_MD (113 | GPIO_ALT_FN_1_OUT) |
1478 | #define GPIO113_AC97_RESET_N_MD (113 | GPIO_ALT_FN_2_OUT) | 1478 | #define GPIO113_AC97_RESET_N_MD (113 | GPIO_ALT_FN_2_OUT) |
1479 | #define GPIO117_I2CSCL_MD (117 | GPIO_ALT_FN_1_OUT) | 1479 | #define GPIO117_I2CSCL_MD (117 | GPIO_ALT_FN_1_IN) |
1480 | #define GPIO118_I2CSDA_MD (118 | GPIO_ALT_FN_1_IN) | 1480 | #define GPIO118_I2CSDA_MD (118 | GPIO_ALT_FN_1_IN) |
1481 | 1481 | ||
1482 | /* | 1482 | /* |
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 | ||
47 | static inline int gpio_direction_output(unsigned gpio) | 47 | static 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 | ||
40 | extern int gpio_direction_input(unsigned gpio); | 40 | extern int gpio_direction_input(unsigned gpio); |
41 | extern int gpio_direction_output(unsigned gpio); | 41 | extern int gpio_direction_output(unsigned gpio, int value); |
42 | 42 | ||
43 | 43 | ||
44 | static inline int gpio_get_value(unsigned gpio) | 44 | static inline int gpio_get_value(unsigned gpio) |
diff --git a/include/asm-arm/atomic.h b/include/asm-arm/atomic.h index ea88aa6bfc78..f266c2795124 100644 --- a/include/asm-arm/atomic.h +++ b/include/asm-arm/atomic.h | |||
@@ -103,9 +103,9 @@ static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr) | |||
103 | unsigned long tmp, tmp2; | 103 | unsigned long tmp, tmp2; |
104 | 104 | ||
105 | __asm__ __volatile__("@ atomic_clear_mask\n" | 105 | __asm__ __volatile__("@ atomic_clear_mask\n" |
106 | "1: ldrex %0, %2\n" | 106 | "1: ldrex %0, [%2]\n" |
107 | " bic %0, %0, %3\n" | 107 | " bic %0, %0, %3\n" |
108 | " strex %1, %0, %2\n" | 108 | " strex %1, %0, [%2]\n" |
109 | " teq %1, #0\n" | 109 | " teq %1, #0\n" |
110 | " bne 1b" | 110 | " bne 1b" |
111 | : "=&r" (tmp), "=&r" (tmp2) | 111 | : "=&r" (tmp), "=&r" (tmp2) |
diff --git a/include/asm-arm/system.h b/include/asm-arm/system.h index f06d8a43fdee..69134c7518c1 100644 --- a/include/asm-arm/system.h +++ b/include/asm-arm/system.h | |||
@@ -3,6 +3,7 @@ | |||
3 | 3 | ||
4 | #ifdef __KERNEL__ | 4 | #ifdef __KERNEL__ |
5 | 5 | ||
6 | #include <asm/memory.h> | ||
6 | 7 | ||
7 | #define CPU_ARCH_UNKNOWN 0 | 8 | #define CPU_ARCH_UNKNOWN 0 |
8 | #define CPU_ARCH_ARMv3 1 | 9 | #define CPU_ARCH_ARMv3 1 |
@@ -154,7 +155,7 @@ extern unsigned int user_debug; | |||
154 | #define vectors_high() (0) | 155 | #define vectors_high() (0) |
155 | #endif | 156 | #endif |
156 | 157 | ||
157 | #if __LINUX_ARM_ARCH__ >= 6 | 158 | #if defined(CONFIG_CPU_XSC3) || __LINUX_ARM_ARCH__ >= 6 |
158 | #define isb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c5, 4" \ | 159 | #define isb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c5, 4" \ |
159 | : : "r" (0) : "memory") | 160 | : : "r" (0) : "memory") |
160 | #define dsb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 4" \ | 161 | #define dsb() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 4" \ |
@@ -168,22 +169,23 @@ extern unsigned int user_debug; | |||
168 | #define dmb() __asm__ __volatile__ ("" : : : "memory") | 169 | #define dmb() __asm__ __volatile__ ("" : : : "memory") |
169 | #endif | 170 | #endif |
170 | 171 | ||
171 | #define mb() barrier() | 172 | #ifndef CONFIG_SMP |
172 | #define rmb() barrier() | 173 | #define mb() do { if (arch_is_coherent()) dmb(); else barrier(); } while (0) |
173 | #define wmb() barrier() | 174 | #define rmb() do { if (arch_is_coherent()) dmb(); else barrier(); } while (0) |
174 | #define read_barrier_depends() do { } while(0) | 175 | #define wmb() do { if (arch_is_coherent()) dmb(); else barrier(); } while (0) |
175 | 176 | #define smp_mb() barrier() | |
176 | #ifdef CONFIG_SMP | 177 | #define smp_rmb() barrier() |
177 | #define smp_mb() dmb() | 178 | #define smp_wmb() barrier() |
178 | #define smp_rmb() dmb() | ||
179 | #define smp_wmb() dmb() | ||
180 | #define smp_read_barrier_depends() read_barrier_depends() | ||
181 | #else | 179 | #else |
182 | #define smp_mb() barrier() | 180 | #define mb() dmb() |
183 | #define smp_rmb() barrier() | 181 | #define rmb() dmb() |
184 | #define smp_wmb() barrier() | 182 | #define wmb() dmb() |
185 | #define smp_read_barrier_depends() read_barrier_depends() | 183 | #define smp_mb() dmb() |
186 | #endif /* CONFIG_SMP */ | 184 | #define smp_rmb() dmb() |
185 | #define smp_wmb() dmb() | ||
186 | #endif | ||
187 | #define read_barrier_depends() do { } while(0) | ||
188 | #define smp_read_barrier_depends() do { } while(0) | ||
187 | 189 | ||
188 | #define set_mb(var, value) do { var = value; smp_mb(); } while (0) | 190 | #define set_mb(var, value) do { var = value; smp_mb(); } while (0) |
189 | #define nop() __asm__ __volatile__("mov\tr0,r0\t@ nop\n\t"); | 191 | #define nop() __asm__ __volatile__("mov\tr0,r0\t@ nop\n\t"); |
diff --git a/include/asm-arm/unistd.h b/include/asm-arm/unistd.h index 0991b7bc3f78..c025ab47e4b9 100644 --- a/include/asm-arm/unistd.h +++ b/include/asm-arm/unistd.h | |||
@@ -372,7 +372,7 @@ | |||
372 | #define __NR_move_pages (__NR_SYSCALL_BASE+344) | 372 | #define __NR_move_pages (__NR_SYSCALL_BASE+344) |
373 | #define __NR_getcpu (__NR_SYSCALL_BASE+345) | 373 | #define __NR_getcpu (__NR_SYSCALL_BASE+345) |
374 | /* 346 for epoll_pwait */ | 374 | /* 346 for epoll_pwait */ |
375 | #define __NR_sys_kexec_load (__NR_SYSCALL_BASE+347) | 375 | #define __NR_kexec_load (__NR_SYSCALL_BASE+347) |
376 | 376 | ||
377 | /* | 377 | /* |
378 | * The following SWIs are ARM private. | 378 | * The following SWIs are ARM private. |
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); | |||
10 | void gpio_free(unsigned int gpio); | 10 | void gpio_free(unsigned int gpio); |
11 | 11 | ||
12 | int gpio_direction_input(unsigned int gpio); | 12 | int gpio_direction_input(unsigned int gpio); |
13 | int gpio_direction_output(unsigned int gpio); | 13 | int gpio_direction_output(unsigned int gpio, int value); |
14 | int gpio_get_value(unsigned int gpio); | 14 | int gpio_get_value(unsigned int gpio); |
15 | void gpio_set_value(unsigned int gpio, int value); | 15 | void gpio_set_value(unsigned int gpio, int value); |
16 | 16 | ||
diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h index 00c23433b39f..6d7e279b1490 100644 --- a/include/asm-generic/pgtable.h +++ b/include/asm-generic/pgtable.h | |||
@@ -180,6 +180,7 @@ static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addres | |||
180 | #ifndef __HAVE_ARCH_ENTER_LAZY_MMU_MODE | 180 | #ifndef __HAVE_ARCH_ENTER_LAZY_MMU_MODE |
181 | #define arch_enter_lazy_mmu_mode() do {} while (0) | 181 | #define arch_enter_lazy_mmu_mode() do {} while (0) |
182 | #define arch_leave_lazy_mmu_mode() do {} while (0) | 182 | #define arch_leave_lazy_mmu_mode() do {} while (0) |
183 | #define arch_flush_lazy_mmu_mode() do {} while (0) | ||
183 | #endif | 184 | #endif |
184 | 185 | ||
185 | /* | 186 | /* |
@@ -193,6 +194,7 @@ static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addres | |||
193 | #ifndef __HAVE_ARCH_ENTER_LAZY_CPU_MODE | 194 | #ifndef __HAVE_ARCH_ENTER_LAZY_CPU_MODE |
194 | #define arch_enter_lazy_cpu_mode() do {} while (0) | 195 | #define arch_enter_lazy_cpu_mode() do {} while (0) |
195 | #define arch_leave_lazy_cpu_mode() do {} while (0) | 196 | #define arch_leave_lazy_cpu_mode() do {} while (0) |
197 | #define arch_flush_lazy_cpu_mode() do {} while (0) | ||
196 | #endif | 198 | #endif |
197 | 199 | ||
198 | /* | 200 | /* |
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 | ||
119 | extern int timer_over_8254; | 119 | extern int timer_over_8254; |
120 | extern int local_apic_timer_c2_ok; | ||
120 | 121 | ||
121 | #else /* !CONFIG_X86_LOCAL_APIC */ | 122 | #else /* !CONFIG_X86_LOCAL_APIC */ |
122 | static inline void lapic_shutdown(void) { } | 123 | static inline void lapic_shutdown(void) { } |
diff --git a/include/asm-i386/cpufeature.h b/include/asm-i386/cpufeature.h index 3f92b94e0d75..d1b8e4ab6c1a 100644 --- a/include/asm-i386/cpufeature.h +++ b/include/asm-i386/cpufeature.h | |||
@@ -75,6 +75,7 @@ | |||
75 | #define X86_FEATURE_ARCH_PERFMON (3*32+11) /* Intel Architectural PerfMon */ | 75 | #define X86_FEATURE_ARCH_PERFMON (3*32+11) /* Intel Architectural PerfMon */ |
76 | #define X86_FEATURE_PEBS (3*32+12) /* Precise-Event Based Sampling */ | 76 | #define X86_FEATURE_PEBS (3*32+12) /* Precise-Event Based Sampling */ |
77 | #define X86_FEATURE_BTS (3*32+13) /* Branch Trace Store */ | 77 | #define X86_FEATURE_BTS (3*32+13) /* Branch Trace Store */ |
78 | #define X86_FEATURE_LAPIC_TIMER_BROKEN (3*32+ 14) /* lapic timer broken in C1 */ | ||
78 | 79 | ||
79 | /* Intel-defined CPU features, CPUID level 0x00000001 (ecx), word 4 */ | 80 | /* Intel-defined CPU features, CPUID level 0x00000001 (ecx), word 4 */ |
80 | #define X86_FEATURE_XMM3 (4*32+ 0) /* Streaming SIMD Extensions-3 */ | 81 | #define X86_FEATURE_XMM3 (4*32+ 0) /* Streaming SIMD Extensions-3 */ |
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/msr.h b/include/asm-i386/msr.h index ec3b6803fd36..2ad3f30b1a68 100644 --- a/include/asm-i386/msr.h +++ b/include/asm-i386/msr.h | |||
@@ -275,6 +275,8 @@ static inline void wrmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h) | |||
275 | #define MSR_K7_FID_VID_CTL 0xC0010041 | 275 | #define MSR_K7_FID_VID_CTL 0xC0010041 |
276 | #define MSR_K7_FID_VID_STATUS 0xC0010042 | 276 | #define MSR_K7_FID_VID_STATUS 0xC0010042 |
277 | 277 | ||
278 | #define MSR_K8_ENABLE_C1E 0xC0010055 | ||
279 | |||
278 | /* extended feature register */ | 280 | /* extended feature register */ |
279 | #define MSR_EFER 0xc0000080 | 281 | #define MSR_EFER 0xc0000080 |
280 | 282 | ||
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 | ||
34 | extern atomic_t nmi_active; | 34 | extern atomic_t nmi_active; |
35 | extern unsigned int nmi_watchdog; | 35 | extern 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..e63f1e444fcf 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); |
@@ -421,14 +421,17 @@ static inline void pmd_clear(pmd_t *pmdp) | |||
421 | #define PARAVIRT_LAZY_NONE 0 | 421 | #define PARAVIRT_LAZY_NONE 0 |
422 | #define PARAVIRT_LAZY_MMU 1 | 422 | #define PARAVIRT_LAZY_MMU 1 |
423 | #define PARAVIRT_LAZY_CPU 2 | 423 | #define PARAVIRT_LAZY_CPU 2 |
424 | #define PARAVIRT_LAZY_FLUSH 3 | ||
424 | 425 | ||
425 | #define __HAVE_ARCH_ENTER_LAZY_CPU_MODE | 426 | #define __HAVE_ARCH_ENTER_LAZY_CPU_MODE |
426 | #define arch_enter_lazy_cpu_mode() paravirt_ops.set_lazy_mode(PARAVIRT_LAZY_CPU) | 427 | #define arch_enter_lazy_cpu_mode() paravirt_ops.set_lazy_mode(PARAVIRT_LAZY_CPU) |
427 | #define arch_leave_lazy_cpu_mode() paravirt_ops.set_lazy_mode(PARAVIRT_LAZY_NONE) | 428 | #define arch_leave_lazy_cpu_mode() paravirt_ops.set_lazy_mode(PARAVIRT_LAZY_NONE) |
429 | #define arch_flush_lazy_cpu_mode() paravirt_ops.set_lazy_mode(PARAVIRT_LAZY_FLUSH) | ||
428 | 430 | ||
429 | #define __HAVE_ARCH_ENTER_LAZY_MMU_MODE | 431 | #define __HAVE_ARCH_ENTER_LAZY_MMU_MODE |
430 | #define arch_enter_lazy_mmu_mode() paravirt_ops.set_lazy_mode(PARAVIRT_LAZY_MMU) | 432 | #define arch_enter_lazy_mmu_mode() paravirt_ops.set_lazy_mode(PARAVIRT_LAZY_MMU) |
431 | #define arch_leave_lazy_mmu_mode() paravirt_ops.set_lazy_mode(PARAVIRT_LAZY_NONE) | 433 | #define arch_leave_lazy_mmu_mode() paravirt_ops.set_lazy_mode(PARAVIRT_LAZY_NONE) |
434 | #define arch_flush_lazy_mmu_mode() paravirt_ops.set_lazy_mode(PARAVIRT_LAZY_FLUSH) | ||
432 | 435 | ||
433 | /* These all sit in the .parainstructions section to tell us what to patch. */ | 436 | /* These all sit in the .parainstructions section to tell us what to patch. */ |
434 | struct paravirt_patch { | 437 | struct paravirt_patch { |
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 | ||
133 | static __always_inline int sync_const_test_bit(int nr, const volatile unsigned long *addr) | 133 | static __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-i386/termbits.h b/include/asm-i386/termbits.h index 12baf1d6343f..2e6237693814 100644 --- a/include/asm-i386/termbits.h +++ b/include/asm-i386/termbits.h | |||
@@ -144,7 +144,7 @@ struct ktermios { | |||
144 | #define B3000000 0010015 | 144 | #define B3000000 0010015 |
145 | #define B3500000 0010016 | 145 | #define B3500000 0010016 |
146 | #define B4000000 0010017 | 146 | #define B4000000 0010017 |
147 | #define CIBAUD 002003600000 /* input baud rate (not used) */ | 147 | #define CIBAUD 002003600000 |
148 | #define CMSPAR 010000000000 /* mark or space (stick) parity */ | 148 | #define CMSPAR 010000000000 /* mark or space (stick) parity */ |
149 | #define CRTSCTS 020000000000 /* flow control */ | 149 | #define CRTSCTS 020000000000 /* flow control */ |
150 | 150 | ||
diff --git a/include/asm-i386/vmi_time.h b/include/asm-i386/vmi_time.h index 94d0a12a4114..c3a1fcf66c96 100644 --- a/include/asm-i386/vmi_time.h +++ b/include/asm-i386/vmi_time.h | |||
@@ -54,7 +54,7 @@ extern unsigned long vmi_cpu_khz(void); | |||
54 | 54 | ||
55 | #ifdef CONFIG_X86_LOCAL_APIC | 55 | #ifdef CONFIG_X86_LOCAL_APIC |
56 | extern void __init vmi_timer_setup_boot_alarm(void); | 56 | extern void __init vmi_timer_setup_boot_alarm(void); |
57 | extern void __init vmi_timer_setup_secondary_alarm(void); | 57 | extern void __devinit vmi_timer_setup_secondary_alarm(void); |
58 | extern void apic_vmi_timer_interrupt(void); | 58 | extern void apic_vmi_timer_interrupt(void); |
59 | #endif | 59 | #endif |
60 | 60 | ||
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 | ||
274 | extern struct ia64_machine_vector ia64_mv; | 276 | extern 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); | |||
36 | extern void find_initrd (void); | 36 | extern void find_initrd (void); |
37 | extern int filter_rsvd_memory (unsigned long start, unsigned long end, void *arg); | 37 | extern int filter_rsvd_memory (unsigned long start, unsigned long end, void *arg); |
38 | extern void efi_memmap_init(unsigned long *, unsigned long *); | 38 | extern void efi_memmap_init(unsigned long *, unsigned long *); |
39 | extern int find_max_min_low_pfn (unsigned long , unsigned long, void *); | ||
39 | 40 | ||
40 | extern unsigned long vmcore_find_descriptor_size(unsigned long address); | 41 | extern unsigned long vmcore_find_descriptor_size(unsigned long address); |
41 | extern int reserve_elfcorehdr(unsigned long *start, unsigned long *end); | 42 | extern int reserve_elfcorehdr(unsigned long *start, unsigned long *end); |
diff --git a/include/asm-ia64/processor.h b/include/asm-ia64/processor.h index 5830d36fd8e6..4f4ee1c2db2f 100644 --- a/include/asm-ia64/processor.h +++ b/include/asm-ia64/processor.h | |||
@@ -210,7 +210,7 @@ struct desc_struct { | |||
210 | unsigned int a, b; | 210 | unsigned int a, b; |
211 | }; | 211 | }; |
212 | 212 | ||
213 | #define desc_empty(desc) (!((desc)->a + (desc)->b)) | 213 | #define desc_empty(desc) (!((desc)->a | (desc)->b)) |
214 | #define desc_equal(desc1, desc2) (((desc1)->a == (desc2)->a) && ((desc1)->b == (desc2)->b)) | 214 | #define desc_equal(desc1, desc2) (((desc1)->a == (desc2)->a) && ((desc1)->b == (desc2)->b)) |
215 | 215 | ||
216 | #define GDT_ENTRY_TLS_ENTRIES 3 | 216 | #define GDT_ENTRY_TLS_ENTRIES 3 |
diff --git a/include/asm-ia64/sn/pcibr_provider.h b/include/asm-ia64/sn/pcibr_provider.h index 17cb6cc3f21a..da205b7cdaac 100644 --- a/include/asm-ia64/sn/pcibr_provider.h +++ b/include/asm-ia64/sn/pcibr_provider.h | |||
@@ -21,6 +21,7 @@ | |||
21 | #define IS_PCI_BRIDGE_ASIC(asic) (asic == PCIIO_ASIC_TYPE_PIC || \ | 21 | #define IS_PCI_BRIDGE_ASIC(asic) (asic == PCIIO_ASIC_TYPE_PIC || \ |
22 | asic == PCIIO_ASIC_TYPE_TIOCP) | 22 | asic == PCIIO_ASIC_TYPE_TIOCP) |
23 | #define IS_PIC_SOFT(ps) (ps->pbi_bridge_type == PCIBR_BRIDGETYPE_PIC) | 23 | #define IS_PIC_SOFT(ps) (ps->pbi_bridge_type == PCIBR_BRIDGETYPE_PIC) |
24 | #define IS_TIOCP_SOFT(ps) (ps->pbi_bridge_type == PCIBR_BRIDGETYPE_TIOCP) | ||
24 | 25 | ||
25 | 26 | ||
26 | /* | 27 | /* |
@@ -53,8 +54,8 @@ | |||
53 | * Bridge PMU Address Transaltion Entry Attibutes | 54 | * Bridge PMU Address Transaltion Entry Attibutes |
54 | */ | 55 | */ |
55 | #define PCI32_ATE_V (0x1 << 0) | 56 | #define PCI32_ATE_V (0x1 << 0) |
56 | #define PCI32_ATE_CO (0x1 << 1) | 57 | #define PCI32_ATE_CO (0x1 << 1) /* PIC ASIC ONLY */ |
57 | #define PCI32_ATE_PREC (0x1 << 2) | 58 | #define PCI32_ATE_PIO (0x1 << 1) /* TIOCP ASIC ONLY */ |
58 | #define PCI32_ATE_MSI (0x1 << 2) | 59 | #define PCI32_ATE_MSI (0x1 << 2) |
59 | #define PCI32_ATE_PREF (0x1 << 3) | 60 | #define PCI32_ATE_PREF (0x1 << 3) |
60 | #define PCI32_ATE_BAR (0x1 << 4) | 61 | #define PCI32_ATE_BAR (0x1 << 4) |
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 | |||
9 | static inline void * | ||
10 | dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle, | ||
11 | gfp_t flag) | ||
12 | { | ||
13 | return (void *)NULL; | ||
14 | } | ||
15 | |||
16 | static inline void | ||
17 | dma_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 | ||
34 | static inline void *dma_alloc_noncoherent(struct device *dev, size_t size, | 34 | static 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) ({ \ |
16 | atari_outb_p((addr),RTC_PORT(0)); \ | 17 | atari_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/bug.h b/include/asm-mips/bug.h index 4d560a533940..7eb63de808bc 100644 --- a/include/asm-mips/bug.h +++ b/include/asm-mips/bug.h | |||
@@ -18,7 +18,8 @@ do { \ | |||
18 | 18 | ||
19 | #define BUG_ON(condition) \ | 19 | #define BUG_ON(condition) \ |
20 | do { \ | 20 | do { \ |
21 | __asm__ __volatile__("tne $0, %0" : : "r" (condition)); \ | 21 | __asm__ __volatile__("tne $0, %0, %1" \ |
22 | : : "r" (condition), "i" (BRK_BUG)); \ | ||
22 | } while (0) | 23 | } while (0) |
23 | 24 | ||
24 | #define HAVE_ARCH_BUG_ON | 25 | #define HAVE_ARCH_BUG_ON |
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 | ||
52 | extern void __flush_anon_page(struct page *, unsigned long); | ||
53 | static 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 | |||
51 | static inline void flush_icache_page(struct vm_area_struct *vma, | 60 | static 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. */ |
87 | unsigned long __init run_uncached(void *func); | 96 | unsigned long __init run_uncached(void *func); |
88 | 97 | ||
98 | extern void *kmap_coherent(struct page *page, unsigned long addr); | ||
99 | extern void kunmap_coherent(struct page *page); | ||
100 | |||
89 | #endif /* _ASM_CACHEFLUSH_H */ | 101 | #endif /* _ASM_CACHEFLUSH_H */ |
diff --git a/include/asm-mips/checksum.h b/include/asm-mips/checksum.h index 20a81e1548f5..290485ac5407 100644 --- a/include/asm-mips/checksum.h +++ b/include/asm-mips/checksum.h | |||
@@ -166,7 +166,7 @@ static inline __wsum csum_tcpudp_nofold(__be32 saddr, | |||
166 | #else | 166 | #else |
167 | "r" (proto + len), | 167 | "r" (proto + len), |
168 | #endif | 168 | #endif |
169 | "r" (sum)); | 169 | "r" ((__force unsigned long)sum)); |
170 | 170 | ||
171 | return sum; | 171 | return sum; |
172 | } | 172 | } |
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 | ||
88 | extern struct cpuinfo_mips cpu_data[]; | 88 | extern 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 | ||
91 | extern void cpu_probe(void); | 92 | extern void cpu_probe(void); |
92 | extern void cpu_report(void); | 93 | extern 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..b414a7d9db43 100644 --- a/include/asm-mips/fpu.h +++ b/include/asm-mips/fpu.h | |||
@@ -27,11 +27,11 @@ | |||
27 | struct sigcontext; | 27 | struct sigcontext; |
28 | struct sigcontext32; | 28 | struct sigcontext32; |
29 | 29 | ||
30 | extern asmlinkage int (*save_fp_context)(struct sigcontext *sc); | 30 | extern asmlinkage int (*save_fp_context)(struct sigcontext __user *sc); |
31 | extern asmlinkage int (*restore_fp_context)(struct sigcontext *sc); | 31 | extern asmlinkage int (*restore_fp_context)(struct sigcontext __user *sc); |
32 | 32 | ||
33 | extern asmlinkage int (*save_fp_context32)(struct sigcontext32 *sc); | 33 | extern asmlinkage int (*save_fp_context32)(struct sigcontext32 __user *sc); |
34 | extern asmlinkage int (*restore_fp_context32)(struct sigcontext32 *sc); | 34 | extern asmlinkage int (*restore_fp_context32)(struct sigcontext32 __user *sc); |
35 | 35 | ||
36 | extern void fpu_emulator_init_fpu(void); | 36 | extern void fpu_emulator_init_fpu(void); |
37 | extern void _init_fpu(void); | 37 | extern void _init_fpu(void); |
@@ -93,31 +93,52 @@ static inline int is_fpu_owner(void) | |||
93 | return cpu_has_fpu && __is_fpu_owner(); | 93 | return cpu_has_fpu && __is_fpu_owner(); |
94 | } | 94 | } |
95 | 95 | ||
96 | static inline void own_fpu(void) | 96 | static inline void __own_fpu(void) |
97 | { | 97 | { |
98 | if (cpu_has_fpu) { | 98 | __enable_fpu(); |
99 | __enable_fpu(); | 99 | KSTK_STATUS(current) |= ST0_CU1; |
100 | KSTK_STATUS(current) |= ST0_CU1; | 100 | set_thread_flag(TIF_USEDFPU); |
101 | set_thread_flag(TIF_USEDFPU); | 101 | } |
102 | |||
103 | static inline void own_fpu_inatomic(int restore) | ||
104 | { | ||
105 | if (cpu_has_fpu && !__is_fpu_owner()) { | ||
106 | __own_fpu(); | ||
107 | if (restore) | ||
108 | _restore_fp(current); | ||
102 | } | 109 | } |
103 | } | 110 | } |
104 | 111 | ||
105 | static inline void lose_fpu(void) | 112 | static inline void own_fpu(int restore) |
106 | { | 113 | { |
107 | if (cpu_has_fpu) { | 114 | preempt_disable(); |
115 | own_fpu_inatomic(restore); | ||
116 | preempt_enable(); | ||
117 | } | ||
118 | |||
119 | static inline void lose_fpu(int save) | ||
120 | { | ||
121 | preempt_disable(); | ||
122 | if (is_fpu_owner()) { | ||
123 | if (save) | ||
124 | _save_fp(current); | ||
108 | KSTK_STATUS(current) &= ~ST0_CU1; | 125 | KSTK_STATUS(current) &= ~ST0_CU1; |
109 | clear_thread_flag(TIF_USEDFPU); | 126 | clear_thread_flag(TIF_USEDFPU); |
110 | __disable_fpu(); | 127 | __disable_fpu(); |
111 | } | 128 | } |
129 | preempt_enable(); | ||
112 | } | 130 | } |
113 | 131 | ||
114 | static inline void init_fpu(void) | 132 | static inline void init_fpu(void) |
115 | { | 133 | { |
134 | preempt_disable(); | ||
116 | if (cpu_has_fpu) { | 135 | if (cpu_has_fpu) { |
136 | __own_fpu(); | ||
117 | _init_fpu(); | 137 | _init_fpu(); |
118 | } else { | 138 | } else { |
119 | fpu_emulator_init_fpu(); | 139 | fpu_emulator_init_fpu(); |
120 | } | 140 | } |
141 | preempt_enable(); | ||
121 | } | 142 | } |
122 | 143 | ||
123 | static inline void save_fp(struct task_struct *tsk) | 144 | static inline void save_fp(struct task_struct *tsk) |
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 | ) |
54 | ASMMACRO(irq_enable_hazard, | 54 | ASMMACRO(irq_enable_hazard, |
55 | _ehb | ||
55 | ) | 56 | ) |
56 | ASMMACRO(irq_disable_hazard, | 57 | ASMMACRO(irq_disable_hazard, |
57 | _ehb | 58 | _ehb |
diff --git a/include/asm-mips/irqflags.h b/include/asm-mips/irqflags.h index af3b07dfad4b..e459fa05db83 100644 --- a/include/asm-mips/irqflags.h +++ b/include/asm-mips/irqflags.h | |||
@@ -13,29 +13,9 @@ | |||
13 | 13 | ||
14 | #ifndef __ASSEMBLY__ | 14 | #ifndef __ASSEMBLY__ |
15 | 15 | ||
16 | #include <linux/compiler.h> | ||
16 | #include <asm/hazards.h> | 17 | #include <asm/hazards.h> |
17 | 18 | ||
18 | /* | ||
19 | * CONFIG_MIPS_MT_SMTC_INSTANT_REPLAY does prompt replay of deferred IPIs, | ||
20 | * at the cost of branch and call overhead on each local_irq_restore() | ||
21 | */ | ||
22 | |||
23 | #ifdef CONFIG_MIPS_MT_SMTC_INSTANT_REPLAY | ||
24 | |||
25 | extern void smtc_ipi_replay(void); | ||
26 | |||
27 | #define irq_restore_epilog(flags) \ | ||
28 | do { \ | ||
29 | if (!(flags & 0x0400)) \ | ||
30 | smtc_ipi_replay(); \ | ||
31 | } while (0) | ||
32 | |||
33 | #else | ||
34 | |||
35 | #define irq_restore_epilog(ignore) do { } while (0) | ||
36 | |||
37 | #endif /* CONFIG_MIPS_MT_SMTC_INSTANT_REPLAY */ | ||
38 | |||
39 | __asm__ ( | 19 | __asm__ ( |
40 | " .macro raw_local_irq_enable \n" | 20 | " .macro raw_local_irq_enable \n" |
41 | " .set push \n" | 21 | " .set push \n" |
@@ -205,17 +185,28 @@ __asm__ ( | |||
205 | " .set pop \n" | 185 | " .set pop \n" |
206 | " .endm \n"); | 186 | " .endm \n"); |
207 | 187 | ||
208 | #define raw_local_irq_restore(flags) \ | 188 | extern void smtc_ipi_replay(void); |
209 | do { \ | 189 | |
210 | unsigned long __tmp1; \ | 190 | static inline void raw_local_irq_restore(unsigned long flags) |
211 | \ | 191 | { |
212 | __asm__ __volatile__( \ | 192 | unsigned long __tmp1; |
213 | "raw_local_irq_restore\t%0" \ | 193 | |
214 | : "=r" (__tmp1) \ | 194 | #ifdef CONFIG_MIPS_MT_SMTC_INSTANT_REPLAY |
215 | : "0" (flags) \ | 195 | /* |
216 | : "memory"); \ | 196 | * CONFIG_MIPS_MT_SMTC_INSTANT_REPLAY does prompt replay of deferred |
217 | irq_restore_epilog(flags); \ | 197 | * IPIs, at the cost of branch and call overhead on each |
218 | } while(0) | 198 | * local_irq_restore() |
199 | */ | ||
200 | if (unlikely(!(flags & 0x0400))) | ||
201 | smtc_ipi_replay(); | ||
202 | #endif | ||
203 | |||
204 | __asm__ __volatile__( | ||
205 | "raw_local_irq_restore\t%0" | ||
206 | : "=r" (__tmp1) | ||
207 | : "0" (flags) | ||
208 | : "memory"); | ||
209 | } | ||
219 | 210 | ||
220 | static inline int raw_irqs_disabled_flags(unsigned long flags) | 211 | static inline int raw_irqs_disabled_flags(unsigned long flags) |
221 | { | 212 | { |
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 ); | |||
141 | static void auide_setup_ports(hw_regs_t *hw, _auide_hwif *ahwif); | 141 | static void auide_setup_ports(hw_regs_t *hw, _auide_hwif *ahwif); |
142 | int __init auide_probe(void); | 142 | int __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 | ||
19 | struct device; | 19 | struct device; |
20 | 20 | ||
21 | static dma_addr_t plat_map_dma_mem(struct device *dev, void *addr, size_t size) | 21 | static 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 | ||
40 | static void plat_unmap_dma_mem(dma_addr_t dma_addr) | 41 | static 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 | ||
29 | static dma_addr_t plat_map_dma_mem(struct device *dev, void *addr, size_t size) | 29 | static 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 | ||
62 | static void plat_unmap_dma_mem(dma_addr_t dma_addr) | 63 | static inline void plat_unmap_dma_mem(dma_addr_t dma_addr) |
63 | { | 64 | { |
64 | } | 65 | } |
65 | 66 | ||
diff --git a/include/asm-mips/marvell.h b/include/asm-mips/marvell.h index df94955b098a..b6144bafc565 100644 --- a/include/asm-mips/marvell.h +++ b/include/asm-mips/marvell.h | |||
@@ -54,5 +54,6 @@ struct mv_pci_controller { | |||
54 | }; | 54 | }; |
55 | 55 | ||
56 | extern void ll_mv64340_irq(void); | 56 | extern void ll_mv64340_irq(void); |
57 | extern void mv64340_irq_init(unsigned int base); | ||
57 | 58 | ||
58 | #endif /* __ASM_MIPS_MARVELL_H */ | 59 | #endif /* __ASM_MIPS_MARVELL_H */ |
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 | ||
24 | extern int rtlx_open(int index, int can_sleep); | 24 | extern int rtlx_open(int index, int can_sleep); |
25 | extern int rtlx_release(int index); | 25 | extern int rtlx_release(int index); |
26 | extern ssize_t rtlx_read(int index, void *buff, size_t count, int user); | 26 | extern ssize_t rtlx_read(int index, void __user *buff, size_t count); |
27 | extern ssize_t rtlx_write(int index, void *buffer, size_t count, int user); | 27 | extern ssize_t rtlx_write(int index, const void __user *buffer, size_t count); |
28 | extern unsigned int rtlx_read_poll(int index, int can_sleep); | 28 | extern unsigned int rtlx_read_poll(int index, int can_sleep); |
29 | extern unsigned int rtlx_write_poll(int index); | 29 | extern 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/sibyte/sb1250_scd.h b/include/asm-mips/sibyte/sb1250_scd.h index 7ed0bb611e56..b6a7d8f6ced5 100644 --- a/include/asm-mips/sibyte/sb1250_scd.h +++ b/include/asm-mips/sibyte/sb1250_scd.h | |||
@@ -84,6 +84,7 @@ | |||
84 | #define K_SYS_REVISION_BCM112x_A2 0x21 | 84 | #define K_SYS_REVISION_BCM112x_A2 0x21 |
85 | #define K_SYS_REVISION_BCM112x_A3 0x22 | 85 | #define K_SYS_REVISION_BCM112x_A3 0x22 |
86 | #define K_SYS_REVISION_BCM112x_A4 0x23 | 86 | #define K_SYS_REVISION_BCM112x_A4 0x23 |
87 | #define K_SYS_REVISION_BCM112x_B0 0x30 | ||
87 | 88 | ||
88 | #define K_SYS_REVISION_BCM1480_S0 0x01 | 89 | #define K_SYS_REVISION_BCM1480_S0 0x01 |
89 | #define K_SYS_REVISION_BCM1480_A1 0x02 | 90 | #define K_SYS_REVISION_BCM1480_A1 0x02 |
diff --git a/include/asm-mips/smtc_ipi.h b/include/asm-mips/smtc_ipi.h index 360ea6d250c7..a52a4a7a36e0 100644 --- a/include/asm-mips/smtc_ipi.h +++ b/include/asm-mips/smtc_ipi.h | |||
@@ -65,12 +65,10 @@ static inline void smtc_ipi_nq(struct smtc_ipi_q *q, struct smtc_ipi *p) | |||
65 | spin_unlock_irqrestore(&q->lock, flags); | 65 | spin_unlock_irqrestore(&q->lock, flags); |
66 | } | 66 | } |
67 | 67 | ||
68 | static inline struct smtc_ipi *smtc_ipi_dq(struct smtc_ipi_q *q) | 68 | static inline struct smtc_ipi *__smtc_ipi_dq(struct smtc_ipi_q *q) |
69 | { | 69 | { |
70 | struct smtc_ipi *p; | 70 | struct smtc_ipi *p; |
71 | long flags; | ||
72 | 71 | ||
73 | spin_lock_irqsave(&q->lock, flags); | ||
74 | if (q->head == NULL) | 72 | if (q->head == NULL) |
75 | p = NULL; | 73 | p = NULL; |
76 | else { | 74 | else { |
@@ -81,7 +79,19 @@ static inline struct smtc_ipi *smtc_ipi_dq(struct smtc_ipi_q *q) | |||
81 | if (q->head == NULL) | 79 | if (q->head == NULL) |
82 | q->tail = NULL; | 80 | q->tail = NULL; |
83 | } | 81 | } |
82 | |||
83 | return p; | ||
84 | } | ||
85 | |||
86 | static inline struct smtc_ipi *smtc_ipi_dq(struct smtc_ipi_q *q) | ||
87 | { | ||
88 | unsigned long flags; | ||
89 | struct smtc_ipi *p; | ||
90 | |||
91 | spin_lock_irqsave(&q->lock, flags); | ||
92 | p = __smtc_ipi_dq(q); | ||
84 | spin_unlock_irqrestore(&q->lock, flags); | 93 | spin_unlock_irqrestore(&q->lock, flags); |
94 | |||
85 | return p; | 95 | return p; |
86 | } | 96 | } |
87 | 97 | ||
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-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 | ||
181 | static int fd_request_dma() | 181 | static 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, ...); | |||
237 | long plpar_hcall(unsigned long opcode, unsigned long *retbuf, ...); | 237 | long 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 | */ | ||
251 | long 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-powerpc/immap_qe.h b/include/asm-powerpc/immap_qe.h index 9fdd0491f6a3..1020b7fc0129 100644 --- a/include/asm-powerpc/immap_qe.h +++ b/include/asm-powerpc/immap_qe.h | |||
@@ -258,8 +258,9 @@ struct ucc_slow { | |||
258 | u8 uccs; /* UCCx status register */ | 258 | u8 uccs; /* UCCx status register */ |
259 | u8 res3[0x24]; | 259 | u8 res3[0x24]; |
260 | __be16 utpt; | 260 | __be16 utpt; |
261 | u8 res4[0x52]; | ||
261 | u8 guemr; /* UCC general extended mode register */ | 262 | u8 guemr; /* UCC general extended mode register */ |
262 | u8 res4[0x200 - 0x091]; | 263 | u8 res5[0x200 - 0x091]; |
263 | } __attribute__ ((packed)); | 264 | } __attribute__ ((packed)); |
264 | 265 | ||
265 | /* QE UCC Fast */ | 266 | /* QE UCC Fast */ |
diff --git a/include/asm-powerpc/spu.h b/include/asm-powerpc/spu.h index 0f9f2dd24a79..31d5054be20f 100644 --- a/include/asm-powerpc/spu.h +++ b/include/asm-powerpc/spu.h | |||
@@ -165,6 +165,13 @@ int spu_irq_class_0_bottom(struct spu *spu); | |||
165 | int spu_irq_class_1_bottom(struct spu *spu); | 165 | int spu_irq_class_1_bottom(struct spu *spu); |
166 | void spu_irq_setaffinity(struct spu *spu, int cpu); | 166 | void spu_irq_setaffinity(struct spu *spu, int cpu); |
167 | 167 | ||
168 | extern void spu_invalidate_slbs(struct spu *spu); | ||
169 | extern void spu_associate_mm(struct spu *spu, struct mm_struct *mm); | ||
170 | |||
171 | /* Calls from the memory management to the SPU */ | ||
172 | struct mm_struct; | ||
173 | extern void spu_flush_all_slbs(struct mm_struct *mm); | ||
174 | |||
168 | /* system callbacks from the SPU */ | 175 | /* system callbacks from the SPU */ |
169 | struct spu_syscall_block { | 176 | struct spu_syscall_block { |
170 | u64 nr_ret; | 177 | u64 nr_ret; |
diff --git a/include/asm-powerpc/spu_csa.h b/include/asm-powerpc/spu_csa.h index bdbf906a767f..8aad0619eb8e 100644 --- a/include/asm-powerpc/spu_csa.h +++ b/include/asm-powerpc/spu_csa.h | |||
@@ -221,8 +221,6 @@ struct spu_priv2_collapsed { | |||
221 | * @spu_chnlcnt_RW: Array of saved channel counts. | 221 | * @spu_chnlcnt_RW: Array of saved channel counts. |
222 | * @spu_chnldata_RW: Array of saved channel data. | 222 | * @spu_chnldata_RW: Array of saved channel data. |
223 | * @suspend_time: Time stamp when decrementer disabled. | 223 | * @suspend_time: Time stamp when decrementer disabled. |
224 | * @slb_esid_RW: Array of saved SLB esid entries. | ||
225 | * @slb_vsid_RW: Array of saved SLB vsid entries. | ||
226 | * | 224 | * |
227 | * Structure representing the whole of the SPU | 225 | * Structure representing the whole of the SPU |
228 | * context save area (CSA). This struct contains | 226 | * context save area (CSA). This struct contains |
@@ -245,8 +243,6 @@ struct spu_state { | |||
245 | u32 spu_mailbox_data[4]; | 243 | u32 spu_mailbox_data[4]; |
246 | u32 pu_mailbox_data[1]; | 244 | u32 pu_mailbox_data[1]; |
247 | unsigned long suspend_time; | 245 | unsigned long suspend_time; |
248 | u64 slb_esid_RW[8]; | ||
249 | u64 slb_vsid_RW[8]; | ||
250 | spinlock_t register_lock; | 246 | spinlock_t register_lock; |
251 | }; | 247 | }; |
252 | 248 | ||
diff --git a/include/asm-powerpc/systbl.h b/include/asm-powerpc/systbl.h index 418e5c7e972c..0b00068313f9 100644 --- a/include/asm-powerpc/systbl.h +++ b/include/asm-powerpc/systbl.h | |||
@@ -288,7 +288,7 @@ COMPAT_SYS(ppoll) | |||
288 | SYSCALL_SPU(unshare) | 288 | SYSCALL_SPU(unshare) |
289 | SYSCALL_SPU(splice) | 289 | SYSCALL_SPU(splice) |
290 | SYSCALL_SPU(tee) | 290 | SYSCALL_SPU(tee) |
291 | SYSCALL_SPU(vmsplice) | 291 | COMPAT_SYS_SPU(vmsplice) |
292 | COMPAT_SYS_SPU(openat) | 292 | COMPAT_SYS_SPU(openat) |
293 | SYSCALL_SPU(mkdirat) | 293 | SYSCALL_SPU(mkdirat) |
294 | SYSCALL_SPU(mknodat) | 294 | SYSCALL_SPU(mknodat) |
@@ -304,5 +304,6 @@ SYSCALL_SPU(fchmodat) | |||
304 | SYSCALL_SPU(faccessat) | 304 | SYSCALL_SPU(faccessat) |
305 | COMPAT_SYS_SPU(get_robust_list) | 305 | COMPAT_SYS_SPU(get_robust_list) |
306 | COMPAT_SYS_SPU(set_robust_list) | 306 | COMPAT_SYS_SPU(set_robust_list) |
307 | COMPAT_SYS(move_pages) | 307 | COMPAT_SYS_SPU(move_pages) |
308 | SYSCALL_SPU(getcpu) | 308 | SYSCALL_SPU(getcpu) |
309 | COMPAT_SYS(epoll_pwait) | ||
diff --git a/include/asm-powerpc/unistd.h b/include/asm-powerpc/unistd.h index 0ae954e3d258..2baedbe54e13 100644 --- a/include/asm-powerpc/unistd.h +++ b/include/asm-powerpc/unistd.h | |||
@@ -324,10 +324,12 @@ | |||
324 | #define __NR_get_robust_list 299 | 324 | #define __NR_get_robust_list 299 |
325 | #define __NR_set_robust_list 300 | 325 | #define __NR_set_robust_list 300 |
326 | #define __NR_move_pages 301 | 326 | #define __NR_move_pages 301 |
327 | #define __NR_getcpu 302 | ||
328 | #define __NR_epoll_pwait 303 | ||
327 | 329 | ||
328 | #ifdef __KERNEL__ | 330 | #ifdef __KERNEL__ |
329 | 331 | ||
330 | #define __NR_syscalls 302 | 332 | #define __NR_syscalls 304 |
331 | 333 | ||
332 | #define __NR__exit __NR_exit | 334 | #define __NR__exit __NR_exit |
333 | #define NR_syscalls __NR_syscalls | 335 | #define NR_syscalls __NR_syscalls |
diff --git a/include/asm-s390/checksum.h b/include/asm-s390/checksum.h index 0a3cd7ec8451..d5a8e7c1477c 100644 --- a/include/asm-s390/checksum.h +++ b/include/asm-s390/checksum.h | |||
@@ -121,50 +121,21 @@ csum_tcpudp_nofold(__be32 saddr, __be32 daddr, | |||
121 | unsigned short len, unsigned short proto, | 121 | unsigned short len, unsigned short proto, |
122 | __wsum sum) | 122 | __wsum sum) |
123 | { | 123 | { |
124 | #ifndef __s390x__ | 124 | __u32 csum = (__force __u32)sum; |
125 | asm volatile( | 125 | |
126 | " alr %0,%1\n" /* sum += saddr */ | 126 | csum += (__force __u32)saddr; |
127 | " brc 12,0f\n" | 127 | if (csum < (__force __u32)saddr) |
128 | " ahi %0,1\n" /* add carry */ | 128 | csum++; |
129 | "0:" | 129 | |
130 | : "+&d" (sum) : "d" (saddr) : "cc"); | 130 | csum += (__force __u32)daddr; |
131 | asm volatile( | 131 | if (csum < (__force __u32)daddr) |
132 | " alr %0,%1\n" /* sum += daddr */ | 132 | csum++; |
133 | " brc 12,1f\n" | 133 | |
134 | " ahi %0,1\n" /* add carry */ | 134 | csum += len + proto; |
135 | "1:" | 135 | if (csum < len + proto) |
136 | : "+&d" (sum) : "d" (daddr) : "cc"); | 136 | csum++; |
137 | asm volatile( | 137 | |
138 | " alr %0,%1\n" /* sum += len + proto */ | 138 | return (__force __wsum)csum; |
139 | " brc 12,2f\n" | ||
140 | " ahi %0,1\n" /* add carry */ | ||
141 | "2:" | ||
142 | : "+&d" (sum) | ||
143 | : "d" (len + proto) | ||
144 | : "cc"); | ||
145 | #else /* __s390x__ */ | ||
146 | asm volatile( | ||
147 | " lgfr %0,%0\n" | ||
148 | " algr %0,%1\n" /* sum += saddr */ | ||
149 | " brc 12,0f\n" | ||
150 | " aghi %0,1\n" /* add carry */ | ||
151 | "0: algr %0,%2\n" /* sum += daddr */ | ||
152 | " brc 12,1f\n" | ||
153 | " aghi %0,1\n" /* add carry */ | ||
154 | "1: algfr %0,%3\n" /* sum += len + proto */ | ||
155 | " brc 12,2f\n" | ||
156 | " aghi %0,1\n" /* add carry */ | ||
157 | "2: srlg 0,%0,32\n" | ||
158 | " alr %0,0\n" /* fold to 32 bits */ | ||
159 | " brc 12,3f\n" | ||
160 | " ahi %0,1\n" /* add carry */ | ||
161 | "3: llgfr %0,%0" | ||
162 | : "+&d" (sum) | ||
163 | : "d" (saddr), "d" (daddr), | ||
164 | "d" (len + proto) | ||
165 | : "cc", "0"); | ||
166 | #endif /* __s390x__ */ | ||
167 | return sum; | ||
168 | } | 139 | } |
169 | 140 | ||
170 | /* | 141 | /* |
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 | ||
63 | struct ipl_parameter_block { | 68 | struct 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/hp6xx.h b/include/asm-sh/hp6xx.h index f35134c159dd..53ca5643d9c7 100644 --- a/include/asm-sh/hp6xx.h +++ b/include/asm-sh/hp6xx.h | |||
@@ -10,9 +10,9 @@ | |||
10 | * | 10 | * |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #define HP680_BTN_IRQ IRQ0_IRQ | 13 | #define HP680_BTN_IRQ 32 /* IRQ0_IRQ */ |
14 | #define HP680_TS_IRQ IRQ3_IRQ | 14 | #define HP680_TS_IRQ 35 /* IRQ3_IRQ */ |
15 | #define HP680_HD64461_IRQ IRQ4_IRQ | 15 | #define HP680_HD64461_IRQ 36 /* IRQ4_IRQ */ |
16 | 16 | ||
17 | #define DAC_LCD_BRIGHTNESS 0 | 17 | #define DAC_LCD_BRIGHTNESS 0 |
18 | #define DAC_SPEAKER_VOLUME 1 | 18 | #define DAC_SPEAKER_VOLUME 1 |
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/system.h b/include/asm-sh/system.h index b1e42e7f998b..4a6a19f4f8a4 100644 --- a/include/asm-sh/system.h +++ b/include/asm-sh/system.h | |||
@@ -7,6 +7,7 @@ | |||
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <linux/irqflags.h> | 9 | #include <linux/irqflags.h> |
10 | #include <linux/compiler.h> | ||
10 | #include <asm/types.h> | 11 | #include <asm/types.h> |
11 | 12 | ||
12 | /* | 13 | /* |
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/a.out.h b/include/asm-sparc/a.out.h index e4e83eb0161e..9090060a23e6 100644 --- a/include/asm-sparc/a.out.h +++ b/include/asm-sparc/a.out.h | |||
@@ -80,7 +80,7 @@ struct relocation_info /* used when header.a_machtype == M_SPARC */ | |||
80 | unsigned long r_address; /* relocation addr */ | 80 | unsigned long r_address; /* relocation addr */ |
81 | unsigned int r_index:24; /* segment index or symbol index */ | 81 | unsigned int r_index:24; /* segment index or symbol index */ |
82 | unsigned int r_extern:1; /* if F, r_index==SEG#; if T, SYM idx */ | 82 | unsigned int r_extern:1; /* if F, r_index==SEG#; if T, SYM idx */ |
83 | int r_pad:2; /* <unused> */ | 83 | unsigned int r_pad:2; /* <unused> */ |
84 | enum reloc_type r_type:5; /* type of relocation to perform */ | 84 | enum reloc_type r_type:5; /* type of relocation to perform */ |
85 | long r_addend; /* addend for relocation value */ | 85 | long r_addend; /* addend for relocation value */ |
86 | }; | 86 | }; |
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> | |
9 | static 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 | |||
16 | static 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/mostek.h b/include/asm-sparc/mostek.h index bd92a78f4937..958d0513a6d4 100644 --- a/include/asm-sparc/mostek.h +++ b/include/asm-sparc/mostek.h | |||
@@ -87,7 +87,7 @@ extern void __iomem *mstk48t02_regs; | |||
87 | #define MSTK_DOW_MASK 0x07 | 87 | #define MSTK_DOW_MASK 0x07 |
88 | #define MSTK_DOM_MASK 0x3f | 88 | #define MSTK_DOM_MASK 0x3f |
89 | #define MSTK_MONTH_MASK 0x1f | 89 | #define MSTK_MONTH_MASK 0x1f |
90 | #define MSTK_YEAR_MASK 0xff | 90 | #define MSTK_YEAR_MASK 0xffU |
91 | 91 | ||
92 | /* Binary coded decimal conversion macros. */ | 92 | /* Binary coded decimal conversion macros. */ |
93 | #define MSTK_REGVAL_TO_DECIMAL(x) (((x) & 0x0F) + 0x0A * ((x) >> 0x04)) | 93 | #define MSTK_REGVAL_TO_DECIMAL(x) (((x) & 0x0F) + 0x0A * ((x) >> 0x04)) |
diff --git a/include/asm-sparc/unistd.h b/include/asm-sparc/unistd.h index d5b2f8053b3b..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 |
@@ -345,7 +346,6 @@ | |||
345 | #define __ARCH_WANT_SYS_GETPGRP | 346 | #define __ARCH_WANT_SYS_GETPGRP |
346 | #define __ARCH_WANT_SYS_LLSEEK | 347 | #define __ARCH_WANT_SYS_LLSEEK |
347 | #define __ARCH_WANT_SYS_NICE | 348 | #define __ARCH_WANT_SYS_NICE |
348 | #define __ARCH_WANT_SYS_OLD_GETRLIMIT | ||
349 | #define __ARCH_WANT_SYS_OLDUMOUNT | 349 | #define __ARCH_WANT_SYS_OLDUMOUNT |
350 | #define __ARCH_WANT_SYS_SIGPENDING | 350 | #define __ARCH_WANT_SYS_SIGPENDING |
351 | #define __ARCH_WANT_SYS_SIGPROCMASK | 351 | #define __ARCH_WANT_SYS_SIGPROCMASK |
diff --git a/include/asm-sparc64/a.out.h b/include/asm-sparc64/a.out.h index 35cb5c9e0c92..eb3b8e90b279 100644 --- a/include/asm-sparc64/a.out.h +++ b/include/asm-sparc64/a.out.h | |||
@@ -86,7 +86,7 @@ struct relocation_info /* used when header.a_machtype == M_SPARC */ | |||
86 | unsigned int r_address; /* relocation addr */ | 86 | unsigned int r_address; /* relocation addr */ |
87 | unsigned int r_index:24; /* segment index or symbol index */ | 87 | unsigned int r_index:24; /* segment index or symbol index */ |
88 | unsigned int r_extern:1; /* if F, r_index==SEG#; if T, SYM idx */ | 88 | unsigned int r_extern:1; /* if F, r_index==SEG#; if T, SYM idx */ |
89 | int r_pad:2; /* <unused> */ | 89 | unsigned int r_pad:2; /* <unused> */ |
90 | enum reloc_type r_type:5; /* type of relocation to perform */ | 90 | enum reloc_type r_type:5; /* type of relocation to perform */ |
91 | int r_addend; /* addend for relocation value */ | 91 | int r_addend; /* addend for relocation value */ |
92 | }; | 92 | }; |
diff --git a/include/asm-sparc64/mostek.h b/include/asm-sparc64/mostek.h index 09b5aba6678a..d14dd8988161 100644 --- a/include/asm-sparc64/mostek.h +++ b/include/asm-sparc64/mostek.h | |||
@@ -89,7 +89,7 @@ extern void __iomem *mstk48t02_regs; | |||
89 | #define MSTK_DOW_MASK 0x07 | 89 | #define MSTK_DOW_MASK 0x07 |
90 | #define MSTK_DOM_MASK 0x3f | 90 | #define MSTK_DOM_MASK 0x3f |
91 | #define MSTK_MONTH_MASK 0x1f | 91 | #define MSTK_MONTH_MASK 0x1f |
92 | #define MSTK_YEAR_MASK 0xff | 92 | #define MSTK_YEAR_MASK 0xffU |
93 | 93 | ||
94 | /* Binary coded decimal conversion macros. */ | 94 | /* Binary coded decimal conversion macros. */ |
95 | #define MSTK_REGVAL_TO_DECIMAL(x) (((x) & 0x0F) + 0x0A * ((x) >> 0x04)) | 95 | #define MSTK_REGVAL_TO_DECIMAL(x) (((x) & 0x0F) + 0x0A * ((x) >> 0x04)) |
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 47047536f261..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 |
@@ -359,7 +359,6 @@ | |||
359 | #define __ARCH_WANT_SYS_GETPGRP | 359 | #define __ARCH_WANT_SYS_GETPGRP |
360 | #define __ARCH_WANT_SYS_LLSEEK | 360 | #define __ARCH_WANT_SYS_LLSEEK |
361 | #define __ARCH_WANT_SYS_NICE | 361 | #define __ARCH_WANT_SYS_NICE |
362 | #define __ARCH_WANT_SYS_OLD_GETRLIMIT | ||
363 | #define __ARCH_WANT_SYS_OLDUMOUNT | 362 | #define __ARCH_WANT_SYS_OLDUMOUNT |
364 | #define __ARCH_WANT_SYS_SIGPENDING | 363 | #define __ARCH_WANT_SYS_SIGPENDING |
365 | #define __ARCH_WANT_SYS_SIGPROCMASK | 364 | #define __ARCH_WANT_SYS_SIGPROCMASK |
diff --git a/include/asm-um/common.lds.S b/include/asm-um/common.lds.S index f0454516dd31..f5de80c31e88 100644 --- a/include/asm-um/common.lds.S +++ b/include/asm-um/common.lds.S | |||
@@ -15,6 +15,7 @@ | |||
15 | PROVIDE (_unprotected_end = .); | 15 | PROVIDE (_unprotected_end = .); |
16 | 16 | ||
17 | . = ALIGN(4096); | 17 | . = ALIGN(4096); |
18 | .note : { *(.note.*) } | ||
18 | __start___ex_table = .; | 19 | __start___ex_table = .; |
19 | __ex_table : { *(__ex_table) } | 20 | __ex_table : { *(__ex_table) } |
20 | __stop___ex_table = .; | 21 | __stop___ex_table = .; |
diff --git a/include/asm-um/delay.h b/include/asm-um/delay.h index 0985bda66750..c71e32b6741e 100644 --- a/include/asm-um/delay.h +++ b/include/asm-um/delay.h | |||
@@ -1,9 +1,20 @@ | |||
1 | #ifndef __UM_DELAY_H | 1 | #ifndef __UM_DELAY_H |
2 | #define __UM_DELAY_H | 2 | #define __UM_DELAY_H |
3 | 3 | ||
4 | #include "asm/arch/delay.h" | ||
5 | #include "asm/archparam.h" | ||
6 | |||
7 | #define MILLION 1000000 | 4 | #define MILLION 1000000 |
8 | 5 | ||
6 | /* Undefined on purpose */ | ||
7 | extern void __bad_udelay(void); | ||
8 | |||
9 | extern void __udelay(unsigned long usecs); | ||
10 | extern void __delay(unsigned long loops); | ||
11 | |||
12 | #define udelay(n) ((__builtin_constant_p(n) && (n) > 20000) ? \ | ||
13 | __bad_udelay() : __udelay(n)) | ||
14 | |||
15 | /* It appears that ndelay is not used at all for UML, and has never been | ||
16 | * implemented. */ | ||
17 | extern void __unimplemented_ndelay(void); | ||
18 | #define ndelay(n) __unimplemented_ndelay() | ||
19 | |||
9 | #endif | 20 | #endif |
diff --git a/include/asm-um/pgtable-2level.h b/include/asm-um/pgtable-2level.h index 6050e0eb257e..172a75fde512 100644 --- a/include/asm-um/pgtable-2level.h +++ b/include/asm-um/pgtable-2level.h | |||
@@ -45,12 +45,12 @@ static inline void pgd_mkuptodate(pgd_t pgd) { } | |||
45 | ((unsigned long) __va(pmd_val(pmd) & PAGE_MASK)) | 45 | ((unsigned long) __va(pmd_val(pmd) & PAGE_MASK)) |
46 | 46 | ||
47 | /* | 47 | /* |
48 | * Bits 0 through 3 are taken | 48 | * Bits 0 through 4 are taken |
49 | */ | 49 | */ |
50 | #define PTE_FILE_MAX_BITS 28 | 50 | #define PTE_FILE_MAX_BITS 27 |
51 | 51 | ||
52 | #define pte_to_pgoff(pte) (pte_val(pte) >> 4) | 52 | #define pte_to_pgoff(pte) (pte_val(pte) >> 5) |
53 | 53 | ||
54 | #define pgoff_to_pte(off) ((pte_t) { ((off) << 4) + _PAGE_FILE }) | 54 | #define pgoff_to_pte(off) ((pte_t) { ((off) << 5) + _PAGE_FILE }) |
55 | 55 | ||
56 | #endif | 56 | #endif |
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 | ||
104 | extern unsigned boot_cpu_id; | 104 | extern unsigned boot_cpu_id; |
105 | extern 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/hw_irq.h b/include/asm-x86_64/hw_irq.h index 2e4b7a5ed1c4..6153ae5df2e8 100644 --- a/include/asm-x86_64/hw_irq.h +++ b/include/asm-x86_64/hw_irq.h | |||
@@ -38,7 +38,7 @@ | |||
38 | #define IRQ_MOVE_CLEANUP_VECTOR FIRST_EXTERNAL_VECTOR | 38 | #define IRQ_MOVE_CLEANUP_VECTOR FIRST_EXTERNAL_VECTOR |
39 | 39 | ||
40 | /* | 40 | /* |
41 | * Vectors 0x20-0x2f are used for ISA interrupts. | 41 | * Vectors 0x30-0x3f are used for ISA interrupts. |
42 | */ | 42 | */ |
43 | #define IRQ0_VECTOR FIRST_EXTERNAL_VECTOR + 0x10 | 43 | #define IRQ0_VECTOR FIRST_EXTERNAL_VECTOR + 0x10 |
44 | #define IRQ1_VECTOR IRQ0_VECTOR + 1 | 44 | #define IRQ1_VECTOR IRQ0_VECTOR + 1 |
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 | ||
65 | extern atomic_t nmi_active; | 65 | extern atomic_t nmi_active; |
66 | extern unsigned int nmi_watchdog; | 66 | extern 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; | |||
99 | extern int iommu_detected; | 99 | extern int iommu_detected; |
100 | #ifdef CONFIG_IOMMU | 100 | #ifdef CONFIG_IOMMU |
101 | extern void gart_iommu_init(void); | 101 | extern void gart_iommu_init(void); |
102 | extern void gart_parse_options(char *); | 102 | extern void __init gart_parse_options(char *); |
103 | extern void iommu_hole_init(void); | 103 | extern void iommu_hole_init(void); |
104 | extern int fallback_aper_order; | 104 | extern int fallback_aper_order; |
105 | extern int fallback_aper_force; | 105 | extern 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> | ||
10 | extern int disable_apic; | 11 | extern int disable_apic; |
11 | 12 | ||
12 | #include <asm/fixmap.h> | 13 | #include <asm/fixmap.h> |
@@ -68,7 +69,7 @@ extern int __cpu_disable(void); | |||
68 | extern void __cpu_die(unsigned int cpu); | 69 | extern void __cpu_die(unsigned int cpu); |
69 | extern void prefill_possible_map(void); | 70 | extern void prefill_possible_map(void); |
70 | extern unsigned num_processors; | 71 | extern unsigned num_processors; |
71 | extern unsigned disabled_cpus; | 72 | extern 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 | |||
373 | static inline int __copy_from_user_nocache(void *dst, const void __user *src, unsigned size) | 373 | static 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 | ||
379 | static inline int __copy_from_user_inatomic_nocache(void *dst, const void __user *src, unsigned size) | 379 | static 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/ata.h b/include/linux/ata.h index c331da2da5f7..6caeb98e29dd 100644 --- a/include/linux/ata.h +++ b/include/linux/ata.h | |||
@@ -40,6 +40,7 @@ enum { | |||
40 | ATA_MAX_DEVICES = 2, /* per bus/port */ | 40 | ATA_MAX_DEVICES = 2, /* per bus/port */ |
41 | ATA_MAX_PRD = 256, /* we could make these 256/256 */ | 41 | ATA_MAX_PRD = 256, /* we could make these 256/256 */ |
42 | ATA_SECT_SIZE = 512, | 42 | ATA_SECT_SIZE = 512, |
43 | ATA_MAX_SECTORS_128 = 128, | ||
43 | ATA_MAX_SECTORS = 256, | 44 | ATA_MAX_SECTORS = 256, |
44 | ATA_MAX_SECTORS_LBA48 = 65535,/* TODO: 65536? */ | 45 | ATA_MAX_SECTORS_LBA48 = 65535,/* TODO: 65536? */ |
45 | 46 | ||
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) | |||
93 | void clear_bdi_congested(struct backing_dev_info *bdi, int rw); | 93 | void clear_bdi_congested(struct backing_dev_info *bdi, int rw); |
94 | void set_bdi_congested(struct backing_dev_info *bdi, int rw); | 94 | void set_bdi_congested(struct backing_dev_info *bdi, int rw); |
95 | long congestion_wait(int rw, long timeout); | 95 | long congestion_wait(int rw, long timeout); |
96 | long congestion_wait_interruptible(int rw, long timeout); | ||
96 | void congestion_end(int rw); | 97 | void 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 | ||
110 | extern unsigned long __meminitdata nr_kernel_pages; | 110 | extern unsigned long __meminitdata nr_kernel_pages; |
111 | extern unsigned long nr_all_pages; | 111 | extern unsigned long __meminitdata nr_all_pages; |
112 | 112 | ||
113 | extern void *alloc_large_system_hash(const char *tablename, | 113 | extern void *alloc_large_system_hash(const char *tablename, |
114 | unsigned long bucketsize, | 114 | unsigned long bucketsize, |
diff --git a/include/linux/compiler.h b/include/linux/compiler.h index aca66984aafd..3b6949b41745 100644 --- a/include/linux/compiler.h +++ b/include/linux/compiler.h | |||
@@ -15,8 +15,8 @@ | |||
15 | # define __acquire(x) __context__(x,1) | 15 | # define __acquire(x) __context__(x,1) |
16 | # define __release(x) __context__(x,-1) | 16 | # define __release(x) __context__(x,-1) |
17 | # define __cond_lock(x,c) ((c) ? ({ __acquire(x); 1; }) : 0) | 17 | # define __cond_lock(x,c) ((c) ? ({ __acquire(x); 1; }) : 0) |
18 | extern void __chk_user_ptr(void __user *); | 18 | extern void __chk_user_ptr(const void __user *); |
19 | extern void __chk_io_ptr(void __iomem *); | 19 | extern void __chk_io_ptr(const void __iomem *); |
20 | #else | 20 | #else |
21 | # define __user | 21 | # define __user |
22 | # define __kernel | 22 | # define __kernel |
diff --git a/include/linux/cpu.h b/include/linux/cpu.h index 769ddc6df492..c22b0dfcbcd2 100644 --- a/include/linux/cpu.h +++ b/include/linux/cpu.h | |||
@@ -127,9 +127,13 @@ static inline int cpu_is_offline(int cpu) { return 0; } | |||
127 | #endif /* CONFIG_HOTPLUG_CPU */ | 127 | #endif /* CONFIG_HOTPLUG_CPU */ |
128 | 128 | ||
129 | #ifdef CONFIG_SUSPEND_SMP | 129 | #ifdef CONFIG_SUSPEND_SMP |
130 | extern int suspend_cpu_hotplug; | ||
131 | |||
130 | extern int disable_nonboot_cpus(void); | 132 | extern int disable_nonboot_cpus(void); |
131 | extern void enable_nonboot_cpus(void); | 133 | extern void enable_nonboot_cpus(void); |
132 | #else | 134 | #else |
135 | #define suspend_cpu_hotplug 0 | ||
136 | |||
133 | static inline int disable_nonboot_cpus(void) { return 0; } | 137 | static inline int disable_nonboot_cpus(void) { return 0; } |
134 | static inline void enable_nonboot_cpus(void) {} | 138 | static inline void enable_nonboot_cpus(void) {} |
135 | #endif | 139 | #endif |
diff --git a/include/linux/device.h b/include/linux/device.h index 39a3199a826d..5cf30e95c8b6 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
@@ -128,6 +128,7 @@ struct device_driver { | |||
128 | 128 | ||
129 | struct module * owner; | 129 | struct module * owner; |
130 | const char * mod_name; /* used for built-in modules */ | 130 | const char * mod_name; /* used for built-in modules */ |
131 | struct module_kobject * mkobj; | ||
131 | 132 | ||
132 | int (*probe) (struct device * dev); | 133 | int (*probe) (struct device * dev); |
133 | int (*remove) (struct device * dev); | 134 | int (*remove) (struct device * dev); |
@@ -353,6 +354,8 @@ extern int __must_check device_create_bin_file(struct device *dev, | |||
353 | struct bin_attribute *attr); | 354 | struct bin_attribute *attr); |
354 | extern void device_remove_bin_file(struct device *dev, | 355 | extern void device_remove_bin_file(struct device *dev, |
355 | struct bin_attribute *attr); | 356 | struct bin_attribute *attr); |
357 | extern int device_schedule_callback(struct device *dev, | ||
358 | void (*func)(struct device *)); | ||
356 | 359 | ||
357 | /* device resource management */ | 360 | /* device resource management */ |
358 | typedef void (*dr_release_t)(struct device *dev, void *res); | 361 | typedef void (*dr_release_t)(struct device *dev, void *res); |
diff --git a/include/linux/eventpoll.h b/include/linux/eventpoll.h index 84cfa8bbdc36..d2a96cbf4f0e 100644 --- a/include/linux/eventpoll.h +++ b/include/linux/eventpoll.h | |||
@@ -31,12 +31,19 @@ | |||
31 | /* | 31 | /* |
32 | * On x86-64 make the 64bit structure have the same alignment as the | 32 | * On x86-64 make the 64bit structure have the same alignment as the |
33 | * 32bit structure. This makes 32bit emulation easier. | 33 | * 32bit structure. This makes 32bit emulation easier. |
34 | * | ||
35 | * UML/x86_64 needs the same packing as x86_64 - UML + UML_X86 + | ||
36 | * 64_BIT adds up to UML/x86_64. | ||
34 | */ | 37 | */ |
35 | #ifdef __x86_64__ | 38 | #ifdef __x86_64__ |
36 | #define EPOLL_PACKED __attribute__((packed)) | 39 | #define EPOLL_PACKED __attribute__((packed)) |
37 | #else | 40 | #else |
41 | #if defined(CONFIG_UML) && defined(CONFIG_UML_X86) && defined(CONFIG_64BIT) | ||
42 | #define EPOLL_PACKED __attribute__((packed)) | ||
43 | #else | ||
38 | #define EPOLL_PACKED | 44 | #define EPOLL_PACKED |
39 | #endif | 45 | #endif |
46 | #endif | ||
40 | 47 | ||
41 | struct epoll_event { | 48 | struct epoll_event { |
42 | __u32 events; | 49 | __u32 events; |
diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h index 5bdbc744e773..17c29dca8354 100644 --- a/include/linux/hrtimer.h +++ b/include/linux/hrtimer.h | |||
@@ -206,6 +206,7 @@ struct hrtimer_cpu_base { | |||
206 | struct clock_event_device; | 206 | struct clock_event_device; |
207 | 207 | ||
208 | extern void clock_was_set(void); | 208 | extern void clock_was_set(void); |
209 | extern void hres_timers_resume(void); | ||
209 | extern void hrtimer_interrupt(struct clock_event_device *dev); | 210 | extern void hrtimer_interrupt(struct clock_event_device *dev); |
210 | 211 | ||
211 | /* | 212 | /* |
@@ -236,6 +237,8 @@ static inline ktime_t hrtimer_cb_get_time(struct hrtimer *timer) | |||
236 | */ | 237 | */ |
237 | static inline void clock_was_set(void) { } | 238 | static inline void clock_was_set(void) { } |
238 | 239 | ||
240 | static inline void hres_timers_resume(void) { } | ||
241 | |||
239 | /* | 242 | /* |
240 | * In non high resolution mode the time reference is taken from | 243 | * In non high resolution mode the time reference is taken from |
241 | * the base softirq time variable. | 244 | * the base softirq time variable. |
diff --git a/include/linux/ide.h b/include/linux/ide.h index 34f2676b3c62..d3bbc7188b6a 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h | |||
@@ -615,6 +615,7 @@ typedef struct ide_drive_s { | |||
615 | u8 init_speed; /* transfer rate set at boot */ | 615 | u8 init_speed; /* transfer rate set at boot */ |
616 | u8 pio_speed; /* unused by core, used by some drivers for fallback from DMA */ | 616 | u8 pio_speed; /* unused by core, used by some drivers for fallback from DMA */ |
617 | u8 current_speed; /* current transfer rate set */ | 617 | u8 current_speed; /* current transfer rate set */ |
618 | u8 desired_speed; /* desired transfer rate set */ | ||
618 | u8 dn; /* now wide spread use */ | 619 | u8 dn; /* now wide spread use */ |
619 | u8 wcache; /* status of write cache */ | 620 | u8 wcache; /* status of write cache */ |
620 | u8 acoustic; /* acoustic management */ | 621 | u8 acoustic; /* acoustic management */ |
@@ -860,6 +861,8 @@ typedef struct hwgroup_s { | |||
860 | int (*expiry)(ide_drive_t *); | 861 | int (*expiry)(ide_drive_t *); |
861 | /* ide_system_bus_speed */ | 862 | /* ide_system_bus_speed */ |
862 | int pio_clock; | 863 | int pio_clock; |
864 | int req_gen; | ||
865 | int req_gen_timer; | ||
863 | 866 | ||
864 | unsigned char cmd_buf[4]; | 867 | unsigned char cmd_buf[4]; |
865 | } ide_hwgroup_t; | 868 | } ide_hwgroup_t; |
diff --git a/include/linux/io.h b/include/linux/io.h index c244a0cc9319..09d351236379 100644 --- a/include/linux/io.h +++ b/include/linux/io.h | |||
@@ -33,9 +33,22 @@ int ioremap_page_range(unsigned long addr, unsigned long end, | |||
33 | /* | 33 | /* |
34 | * Managed iomap interface | 34 | * Managed iomap interface |
35 | */ | 35 | */ |
36 | #ifdef CONFIG_HAS_IOPORT | ||
36 | void __iomem * devm_ioport_map(struct device *dev, unsigned long port, | 37 | void __iomem * devm_ioport_map(struct device *dev, unsigned long port, |
37 | unsigned int nr); | 38 | unsigned int nr); |
38 | void devm_ioport_unmap(struct device *dev, void __iomem *addr); | 39 | void devm_ioport_unmap(struct device *dev, void __iomem *addr); |
40 | #else | ||
41 | static inline void __iomem *devm_ioport_map(struct device *dev, | ||
42 | unsigned long port, | ||
43 | unsigned int nr) | ||
44 | { | ||
45 | return NULL; | ||
46 | } | ||
47 | |||
48 | static inline void devm_ioport_unmap(struct device *dev, void __iomem *addr) | ||
49 | { | ||
50 | } | ||
51 | #endif | ||
39 | 52 | ||
40 | void __iomem * devm_ioremap(struct device *dev, unsigned long offset, | 53 | void __iomem * devm_ioremap(struct device *dev, unsigned long offset, |
41 | unsigned long size); | 54 | unsigned long size); |
diff --git a/include/linux/ipc.h b/include/linux/ipc.h index 636094c29b16..6da6772c19ff 100644 --- a/include/linux/ipc.h +++ b/include/linux/ipc.h | |||
@@ -92,19 +92,16 @@ extern struct ipc_namespace init_ipc_ns; | |||
92 | 92 | ||
93 | #ifdef CONFIG_SYSVIPC | 93 | #ifdef CONFIG_SYSVIPC |
94 | #define INIT_IPC_NS(ns) .ns = &init_ipc_ns, | 94 | #define INIT_IPC_NS(ns) .ns = &init_ipc_ns, |
95 | extern int copy_ipcs(unsigned long flags, struct task_struct *tsk); | ||
95 | #else | 96 | #else |
96 | #define INIT_IPC_NS(ns) | 97 | #define INIT_IPC_NS(ns) |
98 | static inline int copy_ipcs(unsigned long flags, struct task_struct *tsk) | ||
99 | { return 0; } | ||
97 | #endif | 100 | #endif |
98 | 101 | ||
99 | #ifdef CONFIG_IPC_NS | 102 | #ifdef CONFIG_IPC_NS |
100 | extern void free_ipc_ns(struct kref *kref); | 103 | extern void free_ipc_ns(struct kref *kref); |
101 | extern int copy_ipcs(unsigned long flags, struct task_struct *tsk); | ||
102 | extern int unshare_ipcs(unsigned long flags, struct ipc_namespace **ns); | 104 | extern int unshare_ipcs(unsigned long flags, struct ipc_namespace **ns); |
103 | #else | ||
104 | static inline int copy_ipcs(unsigned long flags, struct task_struct *tsk) | ||
105 | { | ||
106 | return 0; | ||
107 | } | ||
108 | #endif | 105 | #endif |
109 | 106 | ||
110 | static inline struct ipc_namespace *get_ipc_ns(struct ipc_namespace *ns) | 107 | static inline struct ipc_namespace *get_ipc_ns(struct ipc_namespace *ns) |
diff --git a/include/linux/ipv6.h b/include/linux/ipv6.h index f8241130f5ea..713eb5eaa81f 100644 --- a/include/linux/ipv6.h +++ b/include/linux/ipv6.h | |||
@@ -177,6 +177,7 @@ struct ipv6_devconf { | |||
177 | #endif | 177 | #endif |
178 | #endif | 178 | #endif |
179 | __s32 proxy_ndp; | 179 | __s32 proxy_ndp; |
180 | __s32 accept_source_route; | ||
180 | void *sysctl; | 181 | void *sysctl; |
181 | }; | 182 | }; |
182 | 183 | ||
@@ -205,6 +206,8 @@ enum { | |||
205 | DEVCONF_RTR_PROBE_INTERVAL, | 206 | DEVCONF_RTR_PROBE_INTERVAL, |
206 | DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN, | 207 | DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN, |
207 | DEVCONF_PROXY_NDP, | 208 | DEVCONF_PROXY_NDP, |
209 | __DEVCONF_OPTIMISTIC_DAD, | ||
210 | DEVCONF_ACCEPT_SOURCE_ROUTE, | ||
208 | DEVCONF_MAX | 211 | DEVCONF_MAX |
209 | }; | 212 | }; |
210 | 213 | ||
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 | ||
76 | extern void (*kbd_ledfunc)(unsigned int led); | 76 | extern void (*kbd_ledfunc)(unsigned int led); |
77 | 77 | ||
78 | extern void set_console(int nr); | 78 | extern int set_console(int nr); |
79 | extern void schedule_console_callback(void); | 79 | extern void schedule_console_callback(void); |
80 | 80 | ||
81 | static inline void set_leds(void) | 81 | static inline void set_leds(void) |
diff --git a/include/linux/kdev_t.h b/include/linux/kdev_t.h index 4c2c3737e415..2dacab8beccb 100644 --- a/include/linux/kdev_t.h +++ b/include/linux/kdev_t.h | |||
@@ -87,8 +87,6 @@ static inline unsigned sysv_minor(u32 dev) | |||
87 | return dev & 0x3ffff; | 87 | return dev & 0x3ffff; |
88 | } | 88 | } |
89 | 89 | ||
90 | bool is_lanana_major(unsigned int major); | ||
91 | |||
92 | #else /* __KERNEL__ */ | 90 | #else /* __KERNEL__ */ |
93 | 91 | ||
94 | /* | 92 | /* |
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/libata.h b/include/linux/libata.h index e3f32f3189b2..0cfbcb6f08eb 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
@@ -311,15 +311,17 @@ enum { | |||
311 | ATA_HORKAGE_DIAGNOSTIC = (1 << 0), /* Failed boot diag */ | 311 | ATA_HORKAGE_DIAGNOSTIC = (1 << 0), /* Failed boot diag */ |
312 | ATA_HORKAGE_NODMA = (1 << 1), /* DMA problems */ | 312 | ATA_HORKAGE_NODMA = (1 << 1), /* DMA problems */ |
313 | ATA_HORKAGE_NONCQ = (1 << 2), /* Don't use NCQ */ | 313 | ATA_HORKAGE_NONCQ = (1 << 2), /* Don't use NCQ */ |
314 | ATA_HORKAGE_MAX_SEC_128 = (1 << 3), /* Limit max sects to 128 */ | ||
315 | ATA_HORKAGE_DMA_RW_ONLY = (1 << 4), /* ATAPI DMA for RW only */ | ||
314 | }; | 316 | }; |
315 | 317 | ||
316 | enum hsm_task_states { | 318 | enum hsm_task_states { |
317 | HSM_ST_IDLE, /* no command on going */ | 319 | HSM_ST_IDLE, /* no command on going */ |
320 | HSM_ST_FIRST, /* (waiting the device to) | ||
321 | write CDB or first data block */ | ||
318 | HSM_ST, /* (waiting the device to) transfer data */ | 322 | HSM_ST, /* (waiting the device to) transfer data */ |
319 | HSM_ST_LAST, /* (waiting the device to) complete command */ | 323 | HSM_ST_LAST, /* (waiting the device to) complete command */ |
320 | HSM_ST_ERR, /* error */ | 324 | HSM_ST_ERR, /* error */ |
321 | HSM_ST_FIRST, /* (waiting the device to) | ||
322 | write CDB or first data block */ | ||
323 | }; | 325 | }; |
324 | 326 | ||
325 | enum ata_completion_errors { | 327 | enum ata_completion_errors { |
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/msi.h b/include/linux/msi.h index 74c8a2ecc9dd..e38fe6822cb4 100644 --- a/include/linux/msi.h +++ b/include/linux/msi.h | |||
@@ -17,7 +17,7 @@ struct msi_desc { | |||
17 | struct { | 17 | struct { |
18 | __u8 type : 5; /* {0: unused, 5h:MSI, 11h:MSI-X} */ | 18 | __u8 type : 5; /* {0: unused, 5h:MSI, 11h:MSI-X} */ |
19 | __u8 maskbit : 1; /* mask-pending bit supported ? */ | 19 | __u8 maskbit : 1; /* mask-pending bit supported ? */ |
20 | __u8 unused : 1; | 20 | __u8 masked : 1; |
21 | __u8 is_64 : 1; /* Address size: 0=32bit 1=64bit */ | 21 | __u8 is_64 : 1; /* Address size: 0=32bit 1=64bit */ |
22 | __u8 pos; /* Location of the msi capability */ | 22 | __u8 pos; /* Location of the msi capability */ |
23 | __u16 entry_nr; /* specific enabled entry */ | 23 | __u16 entry_nr; /* specific enabled entry */ |
@@ -32,10 +32,8 @@ struct msi_desc { | |||
32 | void __iomem *mask_base; | 32 | void __iomem *mask_base; |
33 | struct pci_dev *dev; | 33 | struct pci_dev *dev; |
34 | 34 | ||
35 | #ifdef CONFIG_PM | 35 | /* Last set MSI message */ |
36 | /* PM save area for MSIX address/data */ | 36 | struct msi_msg msg; |
37 | struct msi_msg msg_save; | ||
38 | #endif | ||
39 | }; | 37 | }; |
40 | 38 | ||
41 | /* | 39 | /* |
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 | */ |
418 | extern int nfs_congestion_kb; | ||
418 | extern int nfs_writepage(struct page *page, struct writeback_control *wbc); | 419 | extern int nfs_writepage(struct page *page, struct writeback_control *wbc); |
419 | extern int nfs_writepages(struct address_space *, struct writeback_control *); | 420 | extern int nfs_writepages(struct address_space *, struct writeback_control *); |
420 | extern int nfs_flush_incompatible(struct file *file, struct page *page); | 421 | extern 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/nfs_page.h b/include/linux/nfs_page.h index 2e555d49c9b7..16b0266b14fd 100644 --- a/include/linux/nfs_page.h +++ b/include/linux/nfs_page.h | |||
@@ -31,7 +31,6 @@ | |||
31 | #define PG_NEED_COMMIT 1 | 31 | #define PG_NEED_COMMIT 1 |
32 | #define PG_NEED_RESCHED 2 | 32 | #define PG_NEED_RESCHED 2 |
33 | #define PG_NEED_FLUSH 3 | 33 | #define PG_NEED_FLUSH 3 |
34 | #define PG_FLUSHING 4 | ||
35 | 34 | ||
36 | struct nfs_inode; | 35 | struct nfs_inode; |
37 | struct nfs_page { | 36 | struct nfs_page { |
@@ -50,8 +49,6 @@ struct nfs_page { | |||
50 | }; | 49 | }; |
51 | 50 | ||
52 | #define NFS_WBACK_BUSY(req) (test_bit(PG_BUSY,&(req)->wb_flags)) | 51 | #define NFS_WBACK_BUSY(req) (test_bit(PG_BUSY,&(req)->wb_flags)) |
53 | #define NFS_NEED_COMMIT(req) (test_bit(PG_NEED_COMMIT,&(req)->wb_flags)) | ||
54 | #define NFS_NEED_RESCHED(req) (test_bit(PG_NEED_RESCHED,&(req)->wb_flags)) | ||
55 | 52 | ||
56 | extern struct nfs_page *nfs_create_request(struct nfs_open_context *ctx, | 53 | extern struct nfs_page *nfs_create_request(struct nfs_open_context *ctx, |
57 | struct inode *inode, | 54 | struct inode *inode, |
@@ -122,34 +119,6 @@ nfs_list_remove_request(struct nfs_page *req) | |||
122 | req->wb_list_head = NULL; | 119 | req->wb_list_head = NULL; |
123 | } | 120 | } |
124 | 121 | ||
125 | static inline int | ||
126 | nfs_defer_commit(struct nfs_page *req) | ||
127 | { | ||
128 | return !test_and_set_bit(PG_NEED_COMMIT, &req->wb_flags); | ||
129 | } | ||
130 | |||
131 | static inline void | ||
132 | nfs_clear_commit(struct nfs_page *req) | ||
133 | { | ||
134 | smp_mb__before_clear_bit(); | ||
135 | clear_bit(PG_NEED_COMMIT, &req->wb_flags); | ||
136 | smp_mb__after_clear_bit(); | ||
137 | } | ||
138 | |||
139 | static inline int | ||
140 | nfs_defer_reschedule(struct nfs_page *req) | ||
141 | { | ||
142 | return !test_and_set_bit(PG_NEED_RESCHED, &req->wb_flags); | ||
143 | } | ||
144 | |||
145 | static inline void | ||
146 | nfs_clear_reschedule(struct nfs_page *req) | ||
147 | { | ||
148 | smp_mb__before_clear_bit(); | ||
149 | clear_bit(PG_NEED_RESCHED, &req->wb_flags); | ||
150 | smp_mb__after_clear_bit(); | ||
151 | } | ||
152 | |||
153 | static inline struct nfs_page * | 122 | static inline struct nfs_page * |
154 | nfs_list_entry(struct list_head *head) | 123 | nfs_list_entry(struct list_head *head) |
155 | { | 124 | { |
diff --git a/include/linux/pci.h b/include/linux/pci.h index 78417e421b4c..481ea0663f19 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
@@ -209,11 +209,6 @@ static inline void pci_add_saved_cap(struct pci_dev *pci_dev, | |||
209 | hlist_add_head(&new_cap->next, &pci_dev->saved_cap_space); | 209 | hlist_add_head(&new_cap->next, &pci_dev->saved_cap_space); |
210 | } | 210 | } |
211 | 211 | ||
212 | static inline void pci_remove_saved_cap(struct pci_cap_saved_state *cap) | ||
213 | { | ||
214 | hlist_del(&cap->next); | ||
215 | } | ||
216 | |||
217 | /* | 212 | /* |
218 | * For PCI devices, the region numbers are assigned this way: | 213 | * For PCI devices, the region numbers are assigned this way: |
219 | * | 214 | * |
diff --git a/include/linux/pci_regs.h b/include/linux/pci_regs.h index f09cce2357ff..495d368390e0 100644 --- a/include/linux/pci_regs.h +++ b/include/linux/pci_regs.h | |||
@@ -296,6 +296,7 @@ | |||
296 | #define PCI_MSIX_FLAGS 2 | 296 | #define PCI_MSIX_FLAGS 2 |
297 | #define PCI_MSIX_FLAGS_QSIZE 0x7FF | 297 | #define PCI_MSIX_FLAGS_QSIZE 0x7FF |
298 | #define PCI_MSIX_FLAGS_ENABLE (1 << 15) | 298 | #define PCI_MSIX_FLAGS_ENABLE (1 << 15) |
299 | #define PCI_MSIX_FLAGS_MASKALL (1 << 14) | ||
299 | #define PCI_MSIX_FLAGS_BIRMASK (7 << 0) | 300 | #define PCI_MSIX_FLAGS_BIRMASK (7 << 0) |
300 | #define PCI_MSIX_FLAGS_BITMASK (1 << 0) | 301 | #define PCI_MSIX_FLAGS_BITMASK (1 << 0) |
301 | 302 | ||
diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h index 2e19478e9e84..8bcbc54e1b48 100644 --- a/include/linux/pipe_fs_i.h +++ b/include/linux/pipe_fs_i.h | |||
@@ -99,4 +99,8 @@ extern ssize_t splice_from_pipe(struct pipe_inode_info *, struct file *, | |||
99 | loff_t *, size_t, unsigned int, | 99 | loff_t *, size_t, unsigned int, |
100 | splice_actor *); | 100 | splice_actor *); |
101 | 101 | ||
102 | extern ssize_t __splice_from_pipe(struct pipe_inode_info *, struct file *, | ||
103 | loff_t *, size_t, unsigned int, | ||
104 | splice_actor *); | ||
105 | |||
102 | #endif | 106 | #endif |
diff --git a/include/linux/plist.h b/include/linux/plist.h index b95818a037ad..85de2f055874 100644 --- a/include/linux/plist.h +++ b/include/linux/plist.h | |||
@@ -97,9 +97,9 @@ struct plist_node { | |||
97 | #endif | 97 | #endif |
98 | 98 | ||
99 | /** | 99 | /** |
100 | * #PLIST_HEAD_INIT - static struct plist_head initializer | 100 | * PLIST_HEAD_INIT - static struct plist_head initializer |
101 | * | ||
102 | * @head: struct plist_head variable name | 101 | * @head: struct plist_head variable name |
102 | * @_lock: lock to initialize for this list | ||
103 | */ | 103 | */ |
104 | #define PLIST_HEAD_INIT(head, _lock) \ | 104 | #define PLIST_HEAD_INIT(head, _lock) \ |
105 | { \ | 105 | { \ |
@@ -109,8 +109,7 @@ struct plist_node { | |||
109 | } | 109 | } |
110 | 110 | ||
111 | /** | 111 | /** |
112 | * #PLIST_NODE_INIT - static struct plist_node initializer | 112 | * PLIST_NODE_INIT - static struct plist_node initializer |
113 | * | ||
114 | * @node: struct plist_node variable name | 113 | * @node: struct plist_node variable name |
115 | * @__prio: initial node priority | 114 | * @__prio: initial node priority |
116 | */ | 115 | */ |
@@ -122,8 +121,8 @@ struct plist_node { | |||
122 | 121 | ||
123 | /** | 122 | /** |
124 | * plist_head_init - dynamic struct plist_head initializer | 123 | * plist_head_init - dynamic struct plist_head initializer |
125 | * | ||
126 | * @head: &struct plist_head pointer | 124 | * @head: &struct plist_head pointer |
125 | * @lock: list spinlock, remembered for debugging | ||
127 | */ | 126 | */ |
128 | static inline void | 127 | static inline void |
129 | plist_head_init(struct plist_head *head, spinlock_t *lock) | 128 | plist_head_init(struct plist_head *head, spinlock_t *lock) |
@@ -137,7 +136,6 @@ plist_head_init(struct plist_head *head, spinlock_t *lock) | |||
137 | 136 | ||
138 | /** | 137 | /** |
139 | * plist_node_init - Dynamic struct plist_node initializer | 138 | * plist_node_init - Dynamic struct plist_node initializer |
140 | * | ||
141 | * @node: &struct plist_node pointer | 139 | * @node: &struct plist_node pointer |
142 | * @prio: initial node priority | 140 | * @prio: initial node priority |
143 | */ | 141 | */ |
@@ -152,49 +150,46 @@ extern void plist_del(struct plist_node *node, struct plist_head *head); | |||
152 | 150 | ||
153 | /** | 151 | /** |
154 | * plist_for_each - iterate over the plist | 152 | * plist_for_each - iterate over the plist |
155 | * | 153 | * @pos: the type * to use as a loop counter |
156 | * @pos1: the type * to use as a loop counter. | 154 | * @head: the head for your list |
157 | * @head: the head for your list. | ||
158 | */ | 155 | */ |
159 | #define plist_for_each(pos, head) \ | 156 | #define plist_for_each(pos, head) \ |
160 | list_for_each_entry(pos, &(head)->node_list, plist.node_list) | 157 | list_for_each_entry(pos, &(head)->node_list, plist.node_list) |
161 | 158 | ||
162 | /** | 159 | /** |
163 | * plist_for_each_entry_safe - iterate over a plist of given type safe | 160 | * plist_for_each_safe - iterate safely over a plist of given type |
164 | * against removal of list entry | 161 | * @pos: the type * to use as a loop counter |
162 | * @n: another type * to use as temporary storage | ||
163 | * @head: the head for your list | ||
165 | * | 164 | * |
166 | * @pos1: the type * to use as a loop counter. | 165 | * Iterate over a plist of given type, safe against removal of list entry. |
167 | * @n1: another type * to use as temporary storage | ||
168 | * @head: the head for your list. | ||
169 | */ | 166 | */ |
170 | #define plist_for_each_safe(pos, n, head) \ | 167 | #define plist_for_each_safe(pos, n, head) \ |
171 | list_for_each_entry_safe(pos, n, &(head)->node_list, plist.node_list) | 168 | list_for_each_entry_safe(pos, n, &(head)->node_list, plist.node_list) |
172 | 169 | ||
173 | /** | 170 | /** |
174 | * plist_for_each_entry - iterate over list of given type | 171 | * plist_for_each_entry - iterate over list of given type |
175 | * | 172 | * @pos: the type * to use as a loop counter |
176 | * @pos: the type * to use as a loop counter. | 173 | * @head: the head for your list |
177 | * @head: the head for your list. | 174 | * @mem: the name of the list_struct within the struct |
178 | * @member: the name of the list_struct within the struct. | ||
179 | */ | 175 | */ |
180 | #define plist_for_each_entry(pos, head, mem) \ | 176 | #define plist_for_each_entry(pos, head, mem) \ |
181 | list_for_each_entry(pos, &(head)->node_list, mem.plist.node_list) | 177 | list_for_each_entry(pos, &(head)->node_list, mem.plist.node_list) |
182 | 178 | ||
183 | /** | 179 | /** |
184 | * plist_for_each_entry_safe - iterate over list of given type safe against | 180 | * plist_for_each_entry_safe - iterate safely over list of given type |
185 | * removal of list entry | 181 | * @pos: the type * to use as a loop counter |
186 | * | ||
187 | * @pos: the type * to use as a loop counter. | ||
188 | * @n: another type * to use as temporary storage | 182 | * @n: another type * to use as temporary storage |
189 | * @head: the head for your list. | 183 | * @head: the head for your list |
190 | * @m: the name of the list_struct within the struct. | 184 | * @m: the name of the list_struct within the struct |
185 | * | ||
186 | * Iterate over list of given type, safe against removal of list entry. | ||
191 | */ | 187 | */ |
192 | #define plist_for_each_entry_safe(pos, n, head, m) \ | 188 | #define plist_for_each_entry_safe(pos, n, head, m) \ |
193 | list_for_each_entry_safe(pos, n, &(head)->node_list, m.plist.node_list) | 189 | list_for_each_entry_safe(pos, n, &(head)->node_list, m.plist.node_list) |
194 | 190 | ||
195 | /** | 191 | /** |
196 | * plist_head_empty - return !0 if a plist_head is empty | 192 | * plist_head_empty - return !0 if a plist_head is empty |
197 | * | ||
198 | * @head: &struct plist_head pointer | 193 | * @head: &struct plist_head pointer |
199 | */ | 194 | */ |
200 | static inline int plist_head_empty(const struct plist_head *head) | 195 | static inline int plist_head_empty(const struct plist_head *head) |
@@ -204,7 +199,6 @@ static inline int plist_head_empty(const struct plist_head *head) | |||
204 | 199 | ||
205 | /** | 200 | /** |
206 | * plist_node_empty - return !0 if plist_node is not on a list | 201 | * plist_node_empty - return !0 if plist_node is not on a list |
207 | * | ||
208 | * @node: &struct plist_node pointer | 202 | * @node: &struct plist_node pointer |
209 | */ | 203 | */ |
210 | static inline int plist_node_empty(const struct plist_node *node) | 204 | static inline int plist_node_empty(const struct plist_node *node) |
@@ -216,10 +210,9 @@ static inline int plist_node_empty(const struct plist_node *node) | |||
216 | 210 | ||
217 | /** | 211 | /** |
218 | * plist_first_entry - get the struct for the first entry | 212 | * plist_first_entry - get the struct for the first entry |
219 | * | 213 | * @head: the &struct plist_head pointer |
220 | * @ptr: the &struct plist_head pointer. | 214 | * @type: the type of the struct this is embedded in |
221 | * @type: the type of the struct this is embedded in. | 215 | * @member: the name of the list_struct within the struct |
222 | * @member: the name of the list_struct within the struct. | ||
223 | */ | 216 | */ |
224 | #ifdef CONFIG_DEBUG_PI_LIST | 217 | #ifdef CONFIG_DEBUG_PI_LIST |
225 | # define plist_first_entry(head, type, member) \ | 218 | # define plist_first_entry(head, type, member) \ |
@@ -234,7 +227,6 @@ static inline int plist_node_empty(const struct plist_node *node) | |||
234 | 227 | ||
235 | /** | 228 | /** |
236 | * plist_first - return the first node (and thus, highest priority) | 229 | * plist_first - return the first node (and thus, highest priority) |
237 | * | ||
238 | * @head: the &struct plist_head pointer | 230 | * @head: the &struct plist_head pointer |
239 | * | 231 | * |
240 | * Assumes the plist is _not_ empty. | 232 | * Assumes the plist is _not_ empty. |
diff --git a/include/linux/raid/md_k.h b/include/linux/raid/md_k.h index 8245c282168b..de72c49747c8 100644 --- a/include/linux/raid/md_k.h +++ b/include/linux/raid/md_k.h | |||
@@ -104,6 +104,7 @@ struct mdk_rdev_s | |||
104 | * for reporting to userspace and storing | 104 | * for reporting to userspace and storing |
105 | * in superblock. | 105 | * in superblock. |
106 | */ | 106 | */ |
107 | struct work_struct del_work; /* used for delayed sysfs removal */ | ||
107 | }; | 108 | }; |
108 | 109 | ||
109 | struct mddev_s | 110 | struct mddev_s |
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 | ||
2095 | static inline int security_getprocattr(struct task_struct *p, char *name, void *value, size_t size) | 2095 | static 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 | ||
2100 | static inline int security_setprocattr(struct task_struct *p, char *name, void *value, size_t size) | 2100 | static 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, | |||
2749 | static inline void security_d_instantiate (struct dentry *dentry, struct inode *inode) | 2749 | static inline void security_d_instantiate (struct dentry *dentry, struct inode *inode) |
2750 | { } | 2750 | { } |
2751 | 2751 | ||
2752 | static inline int security_getprocattr(struct task_struct *p, char *name, void *value, size_t size) | 2752 | static 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/skbuff.h b/include/linux/skbuff.h index 4ff3940210d8..5992f65b4184 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
@@ -188,7 +188,7 @@ enum { | |||
188 | * @sk: Socket we are owned by | 188 | * @sk: Socket we are owned by |
189 | * @tstamp: Time we arrived | 189 | * @tstamp: Time we arrived |
190 | * @dev: Device we arrived on/are leaving by | 190 | * @dev: Device we arrived on/are leaving by |
191 | * @input_dev: Device we arrived on | 191 | * @iif: ifindex of device we arrived on |
192 | * @h: Transport layer header | 192 | * @h: Transport layer header |
193 | * @nh: Network layer header | 193 | * @nh: Network layer header |
194 | * @mac: Link layer header | 194 | * @mac: Link layer header |
@@ -235,7 +235,8 @@ struct sk_buff { | |||
235 | struct sock *sk; | 235 | struct sock *sk; |
236 | struct skb_timeval tstamp; | 236 | struct skb_timeval tstamp; |
237 | struct net_device *dev; | 237 | struct net_device *dev; |
238 | struct net_device *input_dev; | 238 | int iif; |
239 | /* 4 byte hole on 64 bit*/ | ||
239 | 240 | ||
240 | union { | 241 | union { |
241 | struct tcphdr *th; | 242 | struct tcphdr *th; |
@@ -345,9 +346,6 @@ static inline struct sk_buff *alloc_skb_fclone(unsigned int size, | |||
345 | return __alloc_skb(size, priority, 1, -1); | 346 | return __alloc_skb(size, priority, 1, -1); |
346 | } | 347 | } |
347 | 348 | ||
348 | extern struct sk_buff *alloc_skb_from_cache(struct kmem_cache *cp, | ||
349 | unsigned int size, | ||
350 | gfp_t priority); | ||
351 | extern void kfree_skbmem(struct sk_buff *skb); | 349 | extern void kfree_skbmem(struct sk_buff *skb); |
352 | extern struct sk_buff *skb_clone(struct sk_buff *skb, | 350 | extern struct sk_buff *skb_clone(struct sk_buff *skb, |
353 | gfp_t priority); | 351 | gfp_t priority); |
@@ -621,6 +619,13 @@ static inline void skb_queue_head_init(struct sk_buff_head *list) | |||
621 | list->qlen = 0; | 619 | list->qlen = 0; |
622 | } | 620 | } |
623 | 621 | ||
622 | static inline void skb_queue_head_init_class(struct sk_buff_head *list, | ||
623 | struct lock_class_key *class) | ||
624 | { | ||
625 | skb_queue_head_init(list); | ||
626 | lockdep_set_class(&list->lock, class); | ||
627 | } | ||
628 | |||
624 | /* | 629 | /* |
625 | * Insert an sk_buff at the start of a list. | 630 | * Insert an sk_buff at the start of a list. |
626 | * | 631 | * |
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/sysctl.h b/include/linux/sysctl.h index 2c5fb38d9392..9a8970bf99a6 100644 --- a/include/linux/sysctl.h +++ b/include/linux/sysctl.h | |||
@@ -580,6 +580,7 @@ enum { | |||
580 | NET_IPV6_RTR_PROBE_INTERVAL=21, | 580 | NET_IPV6_RTR_PROBE_INTERVAL=21, |
581 | NET_IPV6_ACCEPT_RA_RT_INFO_MAX_PLEN=22, | 581 | NET_IPV6_ACCEPT_RA_RT_INFO_MAX_PLEN=22, |
582 | NET_IPV6_PROXY_NDP=23, | 582 | NET_IPV6_PROXY_NDP=23, |
583 | NET_IPV6_ACCEPT_SOURCE_ROUTE=25, | ||
583 | __NET_IPV6_MAX | 584 | __NET_IPV6_MAX |
584 | }; | 585 | }; |
585 | 586 | ||
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 | ||
82 | extern int sysfs_schedule_callback(struct kobject *kobj, | ||
83 | void (*func)(void *), void *data); | ||
84 | |||
81 | extern int __must_check | 85 | extern int __must_check |
82 | sysfs_create_dir(struct kobject *, struct dentry *); | 86 | sysfs_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 | ||
139 | static inline int sysfs_schedule_callback(struct kobject *kobj, | ||
140 | void (*func)(void *), void *data) | ||
141 | { | ||
142 | return -ENOSYS; | ||
143 | } | ||
144 | |||
135 | static inline int sysfs_create_dir(struct kobject * k, struct dentry *shadow) | 145 | static inline int sysfs_create_dir(struct kobject * k, struct dentry *shadow) |
136 | { | 146 | { |
137 | return 0; | 147 | return 0; |
diff --git a/include/linux/taskstats.h b/include/linux/taskstats.h index 3fced4798255..a46104a28f66 100644 --- a/include/linux/taskstats.h +++ b/include/linux/taskstats.h | |||
@@ -31,7 +31,7 @@ | |||
31 | */ | 31 | */ |
32 | 32 | ||
33 | 33 | ||
34 | #define TASKSTATS_VERSION 3 | 34 | #define TASKSTATS_VERSION 4 |
35 | #define TS_COMM_LEN 32 /* should be >= TASK_COMM_LEN | 35 | #define TS_COMM_LEN 32 /* should be >= TASK_COMM_LEN |
36 | * in linux/sched.h */ | 36 | * in linux/sched.h */ |
37 | 37 | ||
@@ -66,7 +66,7 @@ struct taskstats { | |||
66 | /* Delay waiting for cpu, while runnable | 66 | /* Delay waiting for cpu, while runnable |
67 | * count, delay_total NOT updated atomically | 67 | * count, delay_total NOT updated atomically |
68 | */ | 68 | */ |
69 | __u64 cpu_count; | 69 | __u64 cpu_count __attribute__((aligned(8))); |
70 | __u64 cpu_delay_total; | 70 | __u64 cpu_delay_total; |
71 | 71 | ||
72 | /* Following four fields atomically updated using task->delays->lock */ | 72 | /* Following four fields atomically updated using task->delays->lock */ |
@@ -101,14 +101,17 @@ struct taskstats { | |||
101 | 101 | ||
102 | /* Basic Accounting Fields start */ | 102 | /* Basic Accounting Fields start */ |
103 | char ac_comm[TS_COMM_LEN]; /* Command name */ | 103 | char ac_comm[TS_COMM_LEN]; /* Command name */ |
104 | __u8 ac_sched; /* Scheduling discipline */ | 104 | __u8 ac_sched __attribute__((aligned(8))); |
105 | /* Scheduling discipline */ | ||
105 | __u8 ac_pad[3]; | 106 | __u8 ac_pad[3]; |
106 | __u32 ac_uid; /* User ID */ | 107 | __u32 ac_uid __attribute__((aligned(8))); |
108 | /* User ID */ | ||
107 | __u32 ac_gid; /* Group ID */ | 109 | __u32 ac_gid; /* Group ID */ |
108 | __u32 ac_pid; /* Process ID */ | 110 | __u32 ac_pid; /* Process ID */ |
109 | __u32 ac_ppid; /* Parent process ID */ | 111 | __u32 ac_ppid; /* Parent process ID */ |
110 | __u32 ac_btime; /* Begin time [sec since 1970] */ | 112 | __u32 ac_btime; /* Begin time [sec since 1970] */ |
111 | __u64 ac_etime; /* Elapsed time [usec] */ | 113 | __u64 ac_etime __attribute__((aligned(8))); |
114 | /* Elapsed time [usec] */ | ||
112 | __u64 ac_utime; /* User CPU time [usec] */ | 115 | __u64 ac_utime; /* User CPU time [usec] */ |
113 | __u64 ac_stime; /* SYstem CPU time [usec] */ | 116 | __u64 ac_stime; /* SYstem CPU time [usec] */ |
114 | __u64 ac_minflt; /* Minor Page Fault Count */ | 117 | __u64 ac_minflt; /* Minor Page Fault Count */ |
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/utsname.h b/include/linux/utsname.h index a4555fe3754c..e10267d402c5 100644 --- a/include/linux/utsname.h +++ b/include/linux/utsname.h | |||
@@ -70,6 +70,8 @@ static inline int unshare_utsname(unsigned long unshare_flags, | |||
70 | 70 | ||
71 | static inline int copy_utsname(int flags, struct task_struct *tsk) | 71 | static inline int copy_utsname(int flags, struct task_struct *tsk) |
72 | { | 72 | { |
73 | if (flags & CLONE_NEWUTS) | ||
74 | return -EINVAL; | ||
73 | return 0; | 75 | return 0; |
74 | } | 76 | } |
75 | static inline void put_uts_ns(struct uts_namespace *ns) | 77 | static inline void put_uts_ns(struct uts_namespace *ns) |
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) |
84 | extern char con_buf[CON_BUF_SIZE]; | 84 | extern char con_buf[CON_BUF_SIZE]; |
85 | extern struct semaphore con_buf_sem; | 85 | extern struct semaphore con_buf_sem; |
86 | extern char vt_dont_switch; | ||
86 | 87 | ||
87 | struct vt_spawn_console { | 88 | struct vt_spawn_console { |
88 | spinlock_t lock; | 89 | spinlock_t lock; |
diff --git a/include/linux/wireless.h b/include/linux/wireless.h index 447c52beb691..48759b2f57d7 100644 --- a/include/linux/wireless.h +++ b/include/linux/wireless.h | |||
@@ -1,10 +1,10 @@ | |||
1 | /* | 1 | /* |
2 | * This file define a set of standard wireless extensions | 2 | * This file define a set of standard wireless extensions |
3 | * | 3 | * |
4 | * Version : 21 14.3.06 | 4 | * Version : 22 16.3.07 |
5 | * | 5 | * |
6 | * Authors : Jean Tourrilhes - HPL - <jt@hpl.hp.com> | 6 | * Authors : Jean Tourrilhes - HPL - <jt@hpl.hp.com> |
7 | * Copyright (c) 1997-2006 Jean Tourrilhes, All Rights Reserved. | 7 | * Copyright (c) 1997-2007 Jean Tourrilhes, All Rights Reserved. |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #ifndef _LINUX_WIRELESS_H | 10 | #ifndef _LINUX_WIRELESS_H |
@@ -85,7 +85,7 @@ | |||
85 | * (there is some stuff that will be added in the future...) | 85 | * (there is some stuff that will be added in the future...) |
86 | * I just plan to increment with each new version. | 86 | * I just plan to increment with each new version. |
87 | */ | 87 | */ |
88 | #define WIRELESS_EXT 21 | 88 | #define WIRELESS_EXT 22 |
89 | 89 | ||
90 | /* | 90 | /* |
91 | * Changes : | 91 | * Changes : |
@@ -221,6 +221,10 @@ | |||
221 | * - Add IW_RETRY_SHORT/IW_RETRY_LONG retry modifiers | 221 | * - Add IW_RETRY_SHORT/IW_RETRY_LONG retry modifiers |
222 | * - Power/Retry relative values no longer * 100000 | 222 | * - Power/Retry relative values no longer * 100000 |
223 | * - Add explicit flag to tell stats are in 802.11k RCPI : IW_QUAL_RCPI | 223 | * - Add explicit flag to tell stats are in 802.11k RCPI : IW_QUAL_RCPI |
224 | * | ||
225 | * V21 to V22 | ||
226 | * ---------- | ||
227 | * - Prevent leaking of kernel space in stream on 64 bits. | ||
224 | */ | 228 | */ |
225 | 229 | ||
226 | /**************************** CONSTANTS ****************************/ | 230 | /**************************** CONSTANTS ****************************/ |
@@ -1085,4 +1089,15 @@ struct iw_event | |||
1085 | #define IW_EV_POINT_LEN (IW_EV_LCP_LEN + sizeof(struct iw_point) - \ | 1089 | #define IW_EV_POINT_LEN (IW_EV_LCP_LEN + sizeof(struct iw_point) - \ |
1086 | IW_EV_POINT_OFF) | 1090 | IW_EV_POINT_OFF) |
1087 | 1091 | ||
1092 | /* Size of the Event prefix when packed in stream */ | ||
1093 | #define IW_EV_LCP_PK_LEN (4) | ||
1094 | /* Size of the various events when packed in stream */ | ||
1095 | #define IW_EV_CHAR_PK_LEN (IW_EV_LCP_PK_LEN + IFNAMSIZ) | ||
1096 | #define IW_EV_UINT_PK_LEN (IW_EV_LCP_PK_LEN + sizeof(__u32)) | ||
1097 | #define IW_EV_FREQ_PK_LEN (IW_EV_LCP_PK_LEN + sizeof(struct iw_freq)) | ||
1098 | #define IW_EV_PARAM_PK_LEN (IW_EV_LCP_PK_LEN + sizeof(struct iw_param)) | ||
1099 | #define IW_EV_ADDR_PK_LEN (IW_EV_LCP_PK_LEN + sizeof(struct sockaddr)) | ||
1100 | #define IW_EV_QUAL_PK_LEN (IW_EV_LCP_PK_LEN + sizeof(struct iw_quality)) | ||
1101 | #define IW_EV_POINT_PK_LEN (IW_EV_LCP_LEN + 4) | ||
1102 | |||
1088 | #endif /* _LINUX_WIRELESS_H */ | 1103 | #endif /* _LINUX_WIRELESS_H */ |
diff --git a/include/media/saa7146_vv.h b/include/media/saa7146_vv.h index 83fe2e3d1e25..50e33b0e9349 100644 --- a/include/media/saa7146_vv.h +++ b/include/media/saa7146_vv.h | |||
@@ -239,7 +239,8 @@ void saa7146_res_free(struct saa7146_fh *fh, unsigned int bits); | |||
239 | #define SAA7146_HPS_SYNC_PORT_B 0x01 | 239 | #define SAA7146_HPS_SYNC_PORT_B 0x01 |
240 | 240 | ||
241 | /* some memory sizes */ | 241 | /* some memory sizes */ |
242 | #define SAA7146_CLIPPING_MEM (14*PAGE_SIZE) | 242 | /* max. 16 clipping rectangles */ |
243 | #define SAA7146_CLIPPING_MEM (16 * 4 * sizeof(u32)) | ||
243 | 244 | ||
244 | /* some defines for the various clipping-modes */ | 245 | /* some defines for the various clipping-modes */ |
245 | #define SAA7146_CLIPPING_RECT 0x4 | 246 | #define SAA7146_CLIPPING_RECT 0x4 |
diff --git a/include/net/fib_rules.h b/include/net/fib_rules.h index bc3c26494c3d..d585ea9fa97d 100644 --- a/include/net/fib_rules.h +++ b/include/net/fib_rules.h | |||
@@ -34,6 +34,7 @@ struct fib_rules_ops | |||
34 | int family; | 34 | int family; |
35 | struct list_head list; | 35 | struct list_head list; |
36 | int rule_size; | 36 | int rule_size; |
37 | int addr_size; | ||
37 | 38 | ||
38 | int (*action)(struct fib_rule *, | 39 | int (*action)(struct fib_rule *, |
39 | struct flowi *, int, | 40 | struct flowi *, int, |
diff --git a/include/net/ip6_fib.h b/include/net/ip6_fib.h index 9eda572a2a65..cf355a3c2ad5 100644 --- a/include/net/ip6_fib.h +++ b/include/net/ip6_fib.h | |||
@@ -58,6 +58,7 @@ struct fib6_node | |||
58 | __u16 fn_bit; /* bit key */ | 58 | __u16 fn_bit; /* bit key */ |
59 | __u16 fn_flags; | 59 | __u16 fn_flags; |
60 | __u32 fn_sernum; | 60 | __u32 fn_sernum; |
61 | struct rt6_info *rr_ptr; | ||
61 | }; | 62 | }; |
62 | 63 | ||
63 | #ifndef CONFIG_IPV6_SUBTREES | 64 | #ifndef CONFIG_IPV6_SUBTREES |
diff --git a/include/net/iw_handler.h b/include/net/iw_handler.h index 10559e937d27..8a830188354d 100644 --- a/include/net/iw_handler.h +++ b/include/net/iw_handler.h | |||
@@ -1,10 +1,10 @@ | |||
1 | /* | 1 | /* |
2 | * This file define the new driver API for Wireless Extensions | 2 | * This file define the new driver API for Wireless Extensions |
3 | * | 3 | * |
4 | * Version : 7 18.3.05 | 4 | * Version : 8 16.3.07 |
5 | * | 5 | * |
6 | * Authors : Jean Tourrilhes - HPL - <jt@hpl.hp.com> | 6 | * Authors : Jean Tourrilhes - HPL - <jt@hpl.hp.com> |
7 | * Copyright (c) 2001-2006 Jean Tourrilhes, All Rights Reserved. | 7 | * Copyright (c) 2001-2007 Jean Tourrilhes, All Rights Reserved. |
8 | */ | 8 | */ |
9 | 9 | ||
10 | #ifndef _IW_HANDLER_H | 10 | #ifndef _IW_HANDLER_H |
@@ -207,7 +207,7 @@ | |||
207 | * will be needed... | 207 | * will be needed... |
208 | * I just plan to increment with each new version. | 208 | * I just plan to increment with each new version. |
209 | */ | 209 | */ |
210 | #define IW_HANDLER_VERSION 7 | 210 | #define IW_HANDLER_VERSION 8 |
211 | 211 | ||
212 | /* | 212 | /* |
213 | * Changes : | 213 | * Changes : |
@@ -239,6 +239,10 @@ | |||
239 | * - Remove (struct iw_point *)->pointer from events and streams | 239 | * - Remove (struct iw_point *)->pointer from events and streams |
240 | * - Remove spy_offset from struct iw_handler_def | 240 | * - Remove spy_offset from struct iw_handler_def |
241 | * - Add "check" version of event macros for ieee802.11 stack | 241 | * - Add "check" version of event macros for ieee802.11 stack |
242 | * | ||
243 | * V7 to V8 | ||
244 | * ---------- | ||
245 | * - Prevent leaking of kernel space in stream on 64 bits. | ||
242 | */ | 246 | */ |
243 | 247 | ||
244 | /**************************** CONSTANTS ****************************/ | 248 | /**************************** CONSTANTS ****************************/ |
@@ -500,7 +504,11 @@ iwe_stream_add_event(char * stream, /* Stream of events */ | |||
500 | /* Check if it's possible */ | 504 | /* Check if it's possible */ |
501 | if(likely((stream + event_len) < ends)) { | 505 | if(likely((stream + event_len) < ends)) { |
502 | iwe->len = event_len; | 506 | iwe->len = event_len; |
503 | memcpy(stream, (char *) iwe, event_len); | 507 | /* Beware of alignement issues on 64 bits */ |
508 | memcpy(stream, (char *) iwe, IW_EV_LCP_PK_LEN); | ||
509 | memcpy(stream + IW_EV_LCP_LEN, | ||
510 | ((char *) iwe) + IW_EV_LCP_LEN, | ||
511 | event_len - IW_EV_LCP_LEN); | ||
504 | stream += event_len; | 512 | stream += event_len; |
505 | } | 513 | } |
506 | return stream; | 514 | return stream; |
@@ -521,10 +529,10 @@ iwe_stream_add_point(char * stream, /* Stream of events */ | |||
521 | /* Check if it's possible */ | 529 | /* Check if it's possible */ |
522 | if(likely((stream + event_len) < ends)) { | 530 | if(likely((stream + event_len) < ends)) { |
523 | iwe->len = event_len; | 531 | iwe->len = event_len; |
524 | memcpy(stream, (char *) iwe, IW_EV_LCP_LEN); | 532 | memcpy(stream, (char *) iwe, IW_EV_LCP_PK_LEN); |
525 | memcpy(stream + IW_EV_LCP_LEN, | 533 | memcpy(stream + IW_EV_LCP_LEN, |
526 | ((char *) iwe) + IW_EV_LCP_LEN + IW_EV_POINT_OFF, | 534 | ((char *) iwe) + IW_EV_LCP_LEN + IW_EV_POINT_OFF, |
527 | IW_EV_POINT_LEN - IW_EV_LCP_LEN); | 535 | IW_EV_POINT_PK_LEN - IW_EV_LCP_PK_LEN); |
528 | memcpy(stream + IW_EV_POINT_LEN, extra, iwe->u.data.length); | 536 | memcpy(stream + IW_EV_POINT_LEN, extra, iwe->u.data.length); |
529 | stream += event_len; | 537 | stream += event_len; |
530 | } | 538 | } |
@@ -574,7 +582,11 @@ iwe_stream_check_add_event(char * stream, /* Stream of events */ | |||
574 | /* Check if it's possible, set error if not */ | 582 | /* Check if it's possible, set error if not */ |
575 | if(likely((stream + event_len) < ends)) { | 583 | if(likely((stream + event_len) < ends)) { |
576 | iwe->len = event_len; | 584 | iwe->len = event_len; |
577 | memcpy(stream, (char *) iwe, event_len); | 585 | /* Beware of alignement issues on 64 bits */ |
586 | memcpy(stream, (char *) iwe, IW_EV_LCP_PK_LEN); | ||
587 | memcpy(stream + IW_EV_LCP_LEN, | ||
588 | ((char *) iwe) + IW_EV_LCP_LEN, | ||
589 | event_len - IW_EV_LCP_LEN); | ||
578 | stream += event_len; | 590 | stream += event_len; |
579 | } else | 591 | } else |
580 | *perr = -E2BIG; | 592 | *perr = -E2BIG; |
@@ -598,10 +610,10 @@ iwe_stream_check_add_point(char * stream, /* Stream of events */ | |||
598 | /* Check if it's possible */ | 610 | /* Check if it's possible */ |
599 | if(likely((stream + event_len) < ends)) { | 611 | if(likely((stream + event_len) < ends)) { |
600 | iwe->len = event_len; | 612 | iwe->len = event_len; |
601 | memcpy(stream, (char *) iwe, IW_EV_LCP_LEN); | 613 | memcpy(stream, (char *) iwe, IW_EV_LCP_PK_LEN); |
602 | memcpy(stream + IW_EV_LCP_LEN, | 614 | memcpy(stream + IW_EV_LCP_LEN, |
603 | ((char *) iwe) + IW_EV_LCP_LEN + IW_EV_POINT_OFF, | 615 | ((char *) iwe) + IW_EV_LCP_LEN + IW_EV_POINT_OFF, |
604 | IW_EV_POINT_LEN - IW_EV_LCP_LEN); | 616 | IW_EV_POINT_PK_LEN - IW_EV_LCP_PK_LEN); |
605 | memcpy(stream + IW_EV_POINT_LEN, extra, iwe->u.data.length); | 617 | memcpy(stream + IW_EV_POINT_LEN, extra, iwe->u.data.length); |
606 | stream += event_len; | 618 | stream += event_len; |
607 | } else | 619 | } else |
diff --git a/include/net/neighbour.h b/include/net/neighbour.h index 3725b93c52f3..ad7fe1121412 100644 --- a/include/net/neighbour.h +++ b/include/net/neighbour.h | |||
@@ -36,7 +36,7 @@ struct neigh_parms | |||
36 | struct net_device *dev; | 36 | struct net_device *dev; |
37 | struct neigh_parms *next; | 37 | struct neigh_parms *next; |
38 | int (*neigh_setup)(struct neighbour *); | 38 | int (*neigh_setup)(struct neighbour *); |
39 | void (*neigh_destructor)(struct neighbour *); | 39 | void (*neigh_cleanup)(struct neighbour *); |
40 | struct neigh_table *tbl; | 40 | struct neigh_table *tbl; |
41 | 41 | ||
42 | void *sysctl_table; | 42 | void *sysctl_table; |
diff --git a/include/net/pkt_cls.h b/include/net/pkt_cls.h index b902d24a3256..02647fe3d74b 100644 --- a/include/net/pkt_cls.h +++ b/include/net/pkt_cls.h | |||
@@ -352,10 +352,13 @@ tcf_change_indev(struct tcf_proto *tp, char *indev, struct rtattr *indev_tlv) | |||
352 | static inline int | 352 | static inline int |
353 | tcf_match_indev(struct sk_buff *skb, char *indev) | 353 | tcf_match_indev(struct sk_buff *skb, char *indev) |
354 | { | 354 | { |
355 | struct net_device *dev; | ||
356 | |||
355 | if (indev[0]) { | 357 | if (indev[0]) { |
356 | if (!skb->input_dev) | 358 | if (!skb->iif) |
357 | return 0; | 359 | return 0; |
358 | if (strcmp(indev, skb->input_dev->name)) | 360 | dev = __dev_get_by_index(skb->iif); |
361 | if (!dev || strcmp(indev, dev->name)) | ||
359 | return 0; | 362 | return 0; |
360 | } | 363 | } |
361 | 364 | ||
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); | |||
1002 | void sctp_transport_raise_cwnd(struct sctp_transport *, __u32, __u32); | 1002 | void sctp_transport_raise_cwnd(struct sctp_transport *, __u32, __u32); |
1003 | void sctp_transport_lower_cwnd(struct sctp_transport *, sctp_lower_cwnd_t); | 1003 | void sctp_transport_lower_cwnd(struct sctp_transport *, sctp_lower_cwnd_t); |
1004 | unsigned long sctp_transport_timeout(struct sctp_transport *); | 1004 | unsigned long sctp_transport_timeout(struct sctp_transport *); |
1005 | void 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. */ |
60 | struct sctp_ulpq *sctp_ulpq_init(struct sctp_ulpq *, | 60 | struct sctp_ulpq *sctp_ulpq_init(struct sctp_ulpq *, |
61 | struct sctp_association *); | 61 | struct sctp_association *); |
62 | void sctp_ulpq_flush(struct sctp_ulpq *ulpq); | ||
62 | void sctp_ulpq_free(struct sctp_ulpq *); | 63 | void 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)" |