diff options
Diffstat (limited to 'include')
159 files changed, 685 insertions, 597 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/actbl.h b/include/acpi/actbl.h index 09469e7db6a5..955adfb8d64c 100644 --- a/include/acpi/actbl.h +++ b/include/acpi/actbl.h | |||
| @@ -276,6 +276,7 @@ enum acpi_prefered_pm_profiles { | |||
| 276 | 276 | ||
| 277 | #define BAF_LEGACY_DEVICES 0x0001 | 277 | #define BAF_LEGACY_DEVICES 0x0001 |
| 278 | #define BAF_8042_KEYBOARD_CONTROLLER 0x0002 | 278 | #define BAF_8042_KEYBOARD_CONTROLLER 0x0002 |
| 279 | #define BAF_MSI_NOT_SUPPORTED 0x0008 | ||
| 279 | 280 | ||
| 280 | #define FADT2_REVISION_ID 3 | 281 | #define FADT2_REVISION_ID 3 |
| 281 | #define FADT2_MINUS_REVISION_ID 2 | 282 | #define FADT2_MINUS_REVISION_ID 2 |
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/Kbuild b/include/asm-avr32/Kbuild index 8770e73ce938..3136628ba8d2 100644 --- a/include/asm-avr32/Kbuild +++ b/include/asm-avr32/Kbuild | |||
| @@ -1,3 +1,3 @@ | |||
| 1 | include include/asm-generic/Kbuild.asm | 1 | include include/asm-generic/Kbuild.asm |
| 2 | 2 | ||
| 3 | headers-y += cachectl.h | 3 | header-y += cachectl.h |
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-avr32/dma-mapping.h b/include/asm-avr32/dma-mapping.h index 115813e48fe0..21bb60bbb9a1 100644 --- a/include/asm-avr32/dma-mapping.h +++ b/include/asm-avr32/dma-mapping.h | |||
| @@ -274,6 +274,24 @@ dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle, | |||
| 274 | dma_cache_sync(dev, bus_to_virt(dma_handle), size, direction); | 274 | dma_cache_sync(dev, bus_to_virt(dma_handle), size, direction); |
| 275 | } | 275 | } |
| 276 | 276 | ||
| 277 | static inline void | ||
| 278 | dma_sync_single_range_for_cpu(struct device *dev, dma_addr_t dma_handle, | ||
| 279 | unsigned long offset, size_t size, | ||
| 280 | enum dma_data_direction direction) | ||
| 281 | { | ||
| 282 | /* just sync everything, that's all the pci API can do */ | ||
| 283 | dma_sync_single_for_cpu(dev, dma_handle, offset+size, direction); | ||
| 284 | } | ||
| 285 | |||
| 286 | static inline void | ||
| 287 | dma_sync_single_range_for_device(struct device *dev, dma_addr_t dma_handle, | ||
| 288 | unsigned long offset, size_t size, | ||
| 289 | enum dma_data_direction direction) | ||
| 290 | { | ||
| 291 | /* just sync everything, that's all the pci API can do */ | ||
| 292 | dma_sync_single_for_device(dev, dma_handle, offset+size, direction); | ||
| 293 | } | ||
| 294 | |||
| 277 | /** | 295 | /** |
| 278 | * dma_sync_sg_for_cpu | 296 | * dma_sync_sg_for_cpu |
| 279 | * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices | 297 | * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices |
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/kexec.h b/include/asm-ia64/kexec.h index f2ad469a6ddf..41299ddfee30 100644 --- a/include/asm-ia64/kexec.h +++ b/include/asm-ia64/kexec.h | |||
| @@ -22,7 +22,6 @@ | |||
| 22 | } while(0) | 22 | } while(0) |
| 23 | 23 | ||
| 24 | extern struct kimage *ia64_kimage; | 24 | extern struct kimage *ia64_kimage; |
| 25 | DECLARE_PER_CPU(u64, ia64_mca_pal_base); | ||
| 26 | extern const unsigned int relocate_new_kernel_size; | 25 | extern const unsigned int relocate_new_kernel_size; |
| 27 | extern void relocate_new_kernel(unsigned long, unsigned long, | 26 | extern void relocate_new_kernel(unsigned long, unsigned long, |
| 28 | struct ia64_boot_param *, unsigned long); | 27 | struct ia64_boot_param *, unsigned long); |
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/mca.h b/include/asm-ia64/mca.h index ee97f7c2d462..41098f459684 100644 --- a/include/asm-ia64/mca.h +++ b/include/asm-ia64/mca.h | |||
| @@ -156,6 +156,8 @@ struct ia64_mca_notify_die { | |||
| 156 | int *monarch_cpu; | 156 | int *monarch_cpu; |
| 157 | }; | 157 | }; |
| 158 | 158 | ||
| 159 | DECLARE_PER_CPU(u64, ia64_mca_pal_base); | ||
| 160 | |||
| 159 | #else /* __ASSEMBLY__ */ | 161 | #else /* __ASSEMBLY__ */ |
| 160 | 162 | ||
| 161 | #define IA64_MCA_CORRECTED 0x0 /* Error has been corrected by OS_MCA */ | 163 | #define IA64_MCA_CORRECTED 0x0 /* Error has been corrected by OS_MCA */ |
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/pal.h b/include/asm-ia64/pal.h index e43021a99a20..67656ce767c2 100644 --- a/include/asm-ia64/pal.h +++ b/include/asm-ia64/pal.h | |||
| @@ -371,6 +371,7 @@ typedef u64 pal_mc_info_index_t; | |||
| 371 | * dependent | 371 | * dependent |
| 372 | */ | 372 | */ |
| 373 | 373 | ||
| 374 | #define PAL_TLB_CHECK_OP_PURGE 8 | ||
| 374 | 375 | ||
| 375 | typedef struct pal_process_state_info_s { | 376 | typedef struct pal_process_state_info_s { |
| 376 | u64 reserved1 : 2, | 377 | u64 reserved1 : 2, |
diff --git a/include/asm-ia64/pci.h b/include/asm-ia64/pci.h index 5160233bbfac..5a5d1c2ce39d 100644 --- a/include/asm-ia64/pci.h +++ b/include/asm-ia64/pci.h | |||
| @@ -9,6 +9,7 @@ | |||
| 9 | 9 | ||
| 10 | #include <asm/io.h> | 10 | #include <asm/io.h> |
| 11 | #include <asm/scatterlist.h> | 11 | #include <asm/scatterlist.h> |
| 12 | #include <asm/hw_irq.h> | ||
| 12 | 13 | ||
| 13 | /* | 14 | /* |
| 14 | * Can be used to override the logic in pci_scan_bus for skipping already-configured bus | 15 | * Can be used to override the logic in pci_scan_bus for skipping already-configured bus |
| @@ -170,7 +171,7 @@ pcibios_select_root(struct pci_dev *pdev, struct resource *res) | |||
| 170 | #define HAVE_ARCH_PCI_GET_LEGACY_IDE_IRQ | 171 | #define HAVE_ARCH_PCI_GET_LEGACY_IDE_IRQ |
| 171 | static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) | 172 | static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) |
| 172 | { | 173 | { |
| 173 | return channel ? 15 : 14; | 174 | return channel ? isa_irq_to_vector(15) : isa_irq_to_vector(14); |
| 174 | } | 175 | } |
| 175 | 176 | ||
| 176 | #endif /* _ASM_IA64_PCI_H */ | 177 | #endif /* _ASM_IA64_PCI_H */ |
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/sal.h b/include/asm-ia64/sal.h index d000689d9142..46cadf5aaac5 100644 --- a/include/asm-ia64/sal.h +++ b/include/asm-ia64/sal.h | |||
| @@ -847,12 +847,13 @@ extern int ia64_sal_oemcall_reentrant(struct ia64_sal_retval *, u64, u64, u64, | |||
| 847 | */ | 847 | */ |
| 848 | struct sal_to_os_boot { | 848 | struct sal_to_os_boot { |
| 849 | u64 rr[8]; /* Region Registers */ | 849 | u64 rr[8]; /* Region Registers */ |
| 850 | u64 br[6]; /* br0: return addr into SAL boot rendez routine */ | 850 | u64 br[6]; /* br0: |
| 851 | * return addr into SAL boot rendez routine */ | ||
| 851 | u64 gr1; /* SAL:GP */ | 852 | u64 gr1; /* SAL:GP */ |
| 852 | u64 gr12; /* SAL:SP */ | 853 | u64 gr12; /* SAL:SP */ |
| 853 | u64 gr13; /* SAL: Task Pointer */ | 854 | u64 gr13; /* SAL: Task Pointer */ |
| 854 | u64 fpsr; | 855 | u64 fpsr; |
| 855 | u64 pfs; | 856 | u64 pfs; |
| 856 | u64 rnat; | 857 | u64 rnat; |
| 857 | u64 unat; | 858 | u64 unat; |
| 858 | u64 bspstore; | 859 | u64 bspstore; |
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-ia64/unwind.h b/include/asm-ia64/unwind.h index 5df0276b0493..1af3875f1a57 100644 --- a/include/asm-ia64/unwind.h +++ b/include/asm-ia64/unwind.h | |||
| @@ -81,7 +81,7 @@ struct unw_frame_info { | |||
| 81 | struct unw_ireg { | 81 | struct unw_ireg { |
| 82 | unsigned long *loc; | 82 | unsigned long *loc; |
| 83 | struct unw_ireg_nat { | 83 | struct unw_ireg_nat { |
| 84 | long type : 3; /* enum unw_nat_type */ | 84 | unsigned long type : 3; /* enum unw_nat_type */ |
| 85 | signed long off : 61; /* NaT word is at loc+nat.off */ | 85 | signed long off : 61; /* NaT word is at loc+nat.off */ |
| 86 | } nat; | 86 | } nat; |
| 87 | } r4, r5, r6, r7; | 87 | } r4, r5, r6, r7; |
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/dma.h b/include/asm-mips/dma.h index e06ef0776d48..833437d31ef1 100644 --- a/include/asm-mips/dma.h +++ b/include/asm-mips/dma.h | |||
| @@ -74,7 +74,7 @@ | |||
| 74 | * | 74 | * |
| 75 | */ | 75 | */ |
| 76 | 76 | ||
| 77 | #ifndef GENERIC_ISA_DMA_SUPPORT_BROKEN | 77 | #ifndef CONFIG_GENERIC_ISA_DMA_SUPPORT_BROKEN |
| 78 | #define MAX_DMA_CHANNELS 8 | 78 | #define MAX_DMA_CHANNELS 8 |
| 79 | #endif | 79 | #endif |
| 80 | 80 | ||
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/sibyte/trace_prof.h b/include/asm-mips/sibyte/trace_prof.h deleted file mode 100644 index 557792075e9a..000000000000 --- a/include/asm-mips/sibyte/trace_prof.h +++ /dev/null | |||
| @@ -1,110 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (C) 2001 Broadcom Corporation | ||
| 3 | * | ||
| 4 | * This program is free software; you can redistribute it and/or | ||
| 5 | * modify it under the terms of the GNU General Public License | ||
| 6 | * as published by the Free Software Foundation; either version 2 | ||
| 7 | * of the License, or (at your option) any later version. | ||
| 8 | * | ||
| 9 | * This program is distributed in the hope that it will be useful, | ||
| 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 12 | * GNU General Public License for more details. | ||
| 13 | * | ||
| 14 | * You should have received a copy of the GNU General Public License | ||
| 15 | * along with this program; if not, write to the Free Software | ||
| 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||
| 17 | */ | ||
| 18 | |||
| 19 | #ifndef __ASM_SIBYTE_TRACE_PROF_H | ||
| 20 | #define __ASM_SIBYTE_TRACE_PROF_H | ||
| 21 | |||
| 22 | #undef DBG | ||
| 23 | #if SBPROF_TB_DEBUG | ||
| 24 | #define DBG(a) a | ||
| 25 | #else | ||
| 26 | #define DBG(a) | ||
| 27 | #endif | ||
| 28 | |||
| 29 | #define SBPROF_TB_MAJOR 240 | ||
| 30 | #define DEVNAME "bcm1250_tbprof" | ||
| 31 | |||
| 32 | typedef u_int64_t tb_sample_t[6*256]; | ||
| 33 | |||
| 34 | struct sbprof_tb { | ||
| 35 | int open; | ||
| 36 | tb_sample_t *sbprof_tbbuf; | ||
| 37 | int next_tb_sample; | ||
| 38 | |||
| 39 | volatile int tb_enable; | ||
| 40 | volatile int tb_armed; | ||
| 41 | |||
| 42 | wait_queue_head_t tb_sync; | ||
| 43 | wait_queue_head_t tb_read; | ||
| 44 | }; | ||
| 45 | |||
| 46 | #define MAX_SAMPLE_BYTES (24*1024*1024) | ||
| 47 | #define MAX_TBSAMPLE_BYTES (12*1024*1024) | ||
| 48 | |||
| 49 | #define MAX_SAMPLES (MAX_SAMPLE_BYTES/sizeof(u_int32_t)) | ||
| 50 | #define TB_SAMPLE_SIZE (sizeof(tb_sample_t)) | ||
| 51 | #define MAX_TB_SAMPLES (MAX_TBSAMPLE_BYTES/TB_SAMPLE_SIZE) | ||
| 52 | |||
| 53 | /* IOCTLs */ | ||
| 54 | #define SBPROF_ZBSTART _IOW('s', 0, int) | ||
| 55 | #define SBPROF_ZBSTOP _IOW('s', 1, int) | ||
| 56 | #define SBPROF_ZBWAITFULL _IOW('s', 2, int) | ||
| 57 | |||
| 58 | /*************************************************************************** | ||
| 59 | * Routines for gathering ZBbus profiles using trace buffer | ||
| 60 | ***************************************************************************/ | ||
| 61 | |||
| 62 | /* Requires: Already called zclk_timer_init with a value that won't | ||
| 63 | saturate 40 bits. No subsequent use of SCD performance counters | ||
| 64 | or trace buffer. | ||
| 65 | Effect: Starts gathering random ZBbus profiles using trace buffer. */ | ||
| 66 | extern int sbprof_zbprof_start(struct file *filp); | ||
| 67 | |||
| 68 | /* Effect: Stops collection of ZBbus profiles */ | ||
| 69 | extern int sbprof_zbprof_stop(void); | ||
| 70 | |||
| 71 | |||
| 72 | /*************************************************************************** | ||
| 73 | * Routines for using 40-bit SCD cycle counter | ||
| 74 | * | ||
| 75 | * Client responsible for either handling interrupts or making sure | ||
| 76 | * the cycles counter never saturates, e.g., by doing | ||
| 77 | * zclk_timer_init(0) at least every 2^40 - 1 ZCLKs. | ||
| 78 | ***************************************************************************/ | ||
| 79 | |||
| 80 | /* Configures SCD counter 0 to count ZCLKs starting from val; | ||
| 81 | Configures SCD counters1,2,3 to count nothing. | ||
| 82 | Must not be called while gathering ZBbus profiles. | ||
| 83 | |||
| 84 | unsigned long long val; */ | ||
| 85 | #define zclk_timer_init(val) \ | ||
| 86 | __asm__ __volatile__ (".set push;" \ | ||
| 87 | ".set mips64;" \ | ||
| 88 | "la $8, 0xb00204c0;" /* SCD perf_cnt_cfg */ \ | ||
| 89 | "sd %0, 0x10($8);" /* write val to counter0 */ \ | ||
| 90 | "sd %1, 0($8);" /* config counter0 for zclks*/ \ | ||
| 91 | ".set pop" \ | ||
| 92 | : /* no outputs */ \ | ||
| 93 | /* enable, counter0 */ \ | ||
| 94 | : /* inputs */ "r"(val), "r" ((1ULL << 33) | 1ULL) \ | ||
| 95 | : /* modifies */ "$8" ) | ||
| 96 | |||
| 97 | |||
| 98 | /* Reads SCD counter 0 and puts result in value | ||
| 99 | unsigned long long val; */ | ||
| 100 | #define zclk_get(val) \ | ||
| 101 | __asm__ __volatile__ (".set push;" \ | ||
| 102 | ".set mips64;" \ | ||
| 103 | "la $8, 0xb00204c0;" /* SCD perf_cnt_cfg */ \ | ||
| 104 | "ld %0, 0x10($8);" /* write val to counter0 */ \ | ||
| 105 | ".set pop" \ | ||
| 106 | : /* outputs */ "=r"(val) \ | ||
| 107 | : /* inputs */ \ | ||
| 108 | : /* modifies */ "$8" ) | ||
| 109 | |||
| 110 | #endif /* __ASM_SIBYTE_TRACE_PROF_H */ | ||
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/cache.h b/include/asm-sh/cache.h index e3a180cf5062..9a3cb6ba9d15 100644 --- a/include/asm-sh/cache.h +++ b/include/asm-sh/cache.h | |||
| @@ -21,6 +21,7 @@ | |||
| 21 | 21 | ||
| 22 | #define L1_CACHE_ALIGN(x) (((x)+(L1_CACHE_BYTES-1))&~(L1_CACHE_BYTES-1)) | 22 | #define L1_CACHE_ALIGN(x) (((x)+(L1_CACHE_BYTES-1))&~(L1_CACHE_BYTES-1)) |
| 23 | 23 | ||
| 24 | #ifndef __ASSEMBLY__ | ||
| 24 | struct cache_info { | 25 | struct cache_info { |
| 25 | unsigned int ways; /* Number of cache ways */ | 26 | unsigned int ways; /* Number of cache ways */ |
| 26 | unsigned int sets; /* Number of cache sets */ | 27 | unsigned int sets; /* Number of cache sets */ |
| @@ -47,6 +48,6 @@ struct cache_info { | |||
| 47 | 48 | ||
| 48 | unsigned long flags; | 49 | unsigned long flags; |
| 49 | }; | 50 | }; |
| 50 | 51 | #endif /* __ASSEMBLY__ */ | |
| 51 | #endif /* __KERNEL__ */ | 52 | #endif /* __KERNEL__ */ |
| 52 | #endif /* __ASM_SH_CACHE_H */ | 53 | #endif /* __ASM_SH_CACHE_H */ |
diff --git a/include/asm-sh/cacheflush.h b/include/asm-sh/cacheflush.h index 22f12634975b..07f62ec9ff0c 100644 --- a/include/asm-sh/cacheflush.h +++ b/include/asm-sh/cacheflush.h | |||
| @@ -30,8 +30,5 @@ extern void __flush_invalidate_region(void *start, int size); | |||
| 30 | 30 | ||
| 31 | #define HAVE_ARCH_UNMAPPED_AREA | 31 | #define HAVE_ARCH_UNMAPPED_AREA |
| 32 | 32 | ||
| 33 | /* Page flag for lazy dcache write-back for the aliasing UP caches */ | ||
| 34 | #define PG_dcache_dirty PG_arch_1 | ||
| 35 | |||
| 36 | #endif /* __KERNEL__ */ | 33 | #endif /* __KERNEL__ */ |
| 37 | #endif /* __ASM_SH_CACHEFLUSH_H */ | 34 | #endif /* __ASM_SH_CACHEFLUSH_H */ |
diff --git a/include/asm-sh/cpu-sh3/cacheflush.h b/include/asm-sh/cpu-sh3/cacheflush.h index 6fabbba228de..f70d8ef76a15 100644 --- a/include/asm-sh/cpu-sh3/cacheflush.h +++ b/include/asm-sh/cpu-sh3/cacheflush.h | |||
| @@ -36,6 +36,8 @@ | |||
| 36 | /* 32KB cache, 4kb PAGE sizes need to check bit 12 */ | 36 | /* 32KB cache, 4kb PAGE sizes need to check bit 12 */ |
| 37 | #define CACHE_ALIAS 0x00001000 | 37 | #define CACHE_ALIAS 0x00001000 |
| 38 | 38 | ||
| 39 | #define PG_mapped PG_arch_1 | ||
| 40 | |||
| 39 | void flush_cache_all(void); | 41 | void flush_cache_all(void); |
| 40 | void flush_cache_mm(struct mm_struct *mm); | 42 | void flush_cache_mm(struct mm_struct *mm); |
| 41 | #define flush_cache_dup_mm(mm) flush_cache_mm(mm) | 43 | #define flush_cache_dup_mm(mm) flush_cache_mm(mm) |
diff --git a/include/asm-sh/cpu-sh4/cacheflush.h b/include/asm-sh/cpu-sh4/cacheflush.h index b3746a936a09..5fd5c89ef86a 100644 --- a/include/asm-sh/cpu-sh4/cacheflush.h +++ b/include/asm-sh/cpu-sh4/cacheflush.h | |||
| @@ -39,4 +39,6 @@ void flush_icache_user_range(struct vm_area_struct *vma, struct page *page, | |||
| 39 | /* Initialization of P3 area for copy_user_page */ | 39 | /* Initialization of P3 area for copy_user_page */ |
| 40 | void p3_cache_init(void); | 40 | void p3_cache_init(void); |
| 41 | 41 | ||
| 42 | #define PG_mapped PG_arch_1 | ||
| 43 | |||
| 42 | #endif /* __ASM_CPU_SH4_CACHEFLUSH_H */ | 44 | #endif /* __ASM_CPU_SH4_CACHEFLUSH_H */ |
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/pgtable.h b/include/asm-sh/pgtable.h index 9214c015fe14..184d7fcaaf10 100644 --- a/include/asm-sh/pgtable.h +++ b/include/asm-sh/pgtable.h | |||
| @@ -583,6 +583,11 @@ struct mm_struct; | |||
| 583 | extern unsigned int kobjsize(const void *objp); | 583 | extern unsigned int kobjsize(const void *objp); |
| 584 | #endif /* !CONFIG_MMU */ | 584 | #endif /* !CONFIG_MMU */ |
| 585 | 585 | ||
| 586 | #if defined(CONFIG_CPU_SH4) || defined(CONFIG_SH7705_CACHE_32KB) | ||
| 587 | #define __HAVE_ARCH_PTEP_GET_AND_CLEAR | ||
| 588 | extern pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep); | ||
| 589 | #endif | ||
| 590 | |||
| 586 | extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; | 591 | extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; |
| 587 | extern void paging_init(void); | 592 | extern void paging_init(void); |
| 588 | 593 | ||
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/thread_info.h b/include/asm-sh/thread_info.h index 279e70a77c75..31d55e3782d5 100644 --- a/include/asm-sh/thread_info.h +++ b/include/asm-sh/thread_info.h | |||
| @@ -111,6 +111,7 @@ static inline struct thread_info *current_thread_info(void) | |||
| 111 | #define TIF_SIGPENDING 2 /* signal pending */ | 111 | #define TIF_SIGPENDING 2 /* signal pending */ |
| 112 | #define TIF_NEED_RESCHED 3 /* rescheduling necessary */ | 112 | #define TIF_NEED_RESCHED 3 /* rescheduling necessary */ |
| 113 | #define TIF_RESTORE_SIGMASK 4 /* restore signal mask in do_signal() */ | 113 | #define TIF_RESTORE_SIGMASK 4 /* restore signal mask in do_signal() */ |
| 114 | #define TIF_SINGLESTEP 5 /* singlestepping active */ | ||
| 114 | #define TIF_USEDFPU 16 /* FPU was used by this task this quantum (SMP) */ | 115 | #define TIF_USEDFPU 16 /* FPU was used by this task this quantum (SMP) */ |
| 115 | #define TIF_POLLING_NRFLAG 17 /* true if poll_idle() is polling TIF_NEED_RESCHED */ | 116 | #define TIF_POLLING_NRFLAG 17 /* true if poll_idle() is polling TIF_NEED_RESCHED */ |
| 116 | #define TIF_MEMDIE 18 | 117 | #define TIF_MEMDIE 18 |
| @@ -121,6 +122,7 @@ static inline struct thread_info *current_thread_info(void) | |||
| 121 | #define _TIF_SIGPENDING (1<<TIF_SIGPENDING) | 122 | #define _TIF_SIGPENDING (1<<TIF_SIGPENDING) |
| 122 | #define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED) | 123 | #define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED) |
| 123 | #define _TIF_RESTORE_SIGMASK (1<<TIF_RESTORE_SIGMASK) | 124 | #define _TIF_RESTORE_SIGMASK (1<<TIF_RESTORE_SIGMASK) |
| 125 | #define _TIF_SINGLESTEP (1<<TIF_SINGLESTEP) | ||
| 124 | #define _TIF_USEDFPU (1<<TIF_USEDFPU) | 126 | #define _TIF_USEDFPU (1<<TIF_USEDFPU) |
| 125 | #define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG) | 127 | #define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG) |
| 126 | #define _TIF_FREEZE (1<<TIF_FREEZE) | 128 | #define _TIF_FREEZE (1<<TIF_FREEZE) |
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/parport.h b/include/asm-sparc64/parport.h index be9509c8f8c1..284dfd01a33d 100644 --- a/include/asm-sparc64/parport.h +++ b/include/asm-sparc64/parport.h | |||
| @@ -19,6 +19,17 @@ | |||
| 19 | */ | 19 | */ |
| 20 | #define HAS_DMA | 20 | #define HAS_DMA |
| 21 | 21 | ||
| 22 | static DEFINE_SPINLOCK(dma_spin_lock); | ||
| 23 | |||
| 24 | #define claim_dma_lock() \ | ||
| 25 | ({ unsigned long flags; \ | ||
| 26 | spin_lock_irqsave(&dma_spin_lock, flags); \ | ||
| 27 | flags; \ | ||
| 28 | }) | ||
| 29 | |||
| 30 | #define release_dma_lock(__flags) \ | ||
| 31 | spin_unlock_irqrestore(&dma_spin_lock, __flags); | ||
| 32 | |||
| 22 | static struct sparc_ebus_info { | 33 | static struct sparc_ebus_info { |
| 23 | struct ebus_dma_info info; | 34 | struct ebus_dma_info info; |
| 24 | unsigned int addr; | 35 | unsigned int addr; |
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/compat.h b/include/linux/compat.h index 80b17f440ec1..ccd863dd77fa 100644 --- a/include/linux/compat.h +++ b/include/linux/compat.h | |||
| @@ -234,5 +234,24 @@ asmlinkage long compat_sys_migrate_pages(compat_pid_t pid, | |||
| 234 | compat_ulong_t maxnode, const compat_ulong_t __user *old_nodes, | 234 | compat_ulong_t maxnode, const compat_ulong_t __user *old_nodes, |
| 235 | const compat_ulong_t __user *new_nodes); | 235 | const compat_ulong_t __user *new_nodes); |
| 236 | 236 | ||
| 237 | /* | ||
| 238 | * epoll (fs/eventpoll.c) compat bits follow ... | ||
| 239 | */ | ||
| 240 | #ifndef CONFIG_HAS_COMPAT_EPOLL_EVENT | ||
| 241 | struct epoll_event; | ||
| 242 | #define compat_epoll_event epoll_event | ||
| 243 | #else | ||
| 244 | asmlinkage long compat_sys_epoll_ctl(int epfd, int op, int fd, | ||
| 245 | struct compat_epoll_event __user *event); | ||
| 246 | asmlinkage long compat_sys_epoll_wait(int epfd, | ||
| 247 | struct compat_epoll_event __user *events, | ||
| 248 | int maxevents, int timeout); | ||
| 249 | #endif | ||
| 250 | asmlinkage long compat_sys_epoll_pwait(int epfd, | ||
| 251 | struct compat_epoll_event __user *events, | ||
| 252 | int maxevents, int timeout, | ||
| 253 | const compat_sigset_t __user *sigmask, | ||
| 254 | compat_size_t sigsetsize); | ||
| 255 | |||
| 237 | #endif /* CONFIG_COMPAT */ | 256 | #endif /* CONFIG_COMPAT */ |
| 238 | #endif /* _LINUX_COMPAT_H */ | 257 | #endif /* _LINUX_COMPAT_H */ |
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/mtd/mtd.h b/include/linux/mtd/mtd.h index 6a8570be331b..3d956c3abb31 100644 --- a/include/linux/mtd/mtd.h +++ b/include/linux/mtd/mtd.h | |||
| @@ -121,6 +121,7 @@ struct mtd_info { | |||
| 121 | u_int32_t writesize; | 121 | u_int32_t writesize; |
| 122 | 122 | ||
| 123 | u_int32_t oobsize; // Amount of OOB data per block (e.g. 16) | 123 | u_int32_t oobsize; // Amount of OOB data per block (e.g. 16) |
| 124 | u_int32_t oobavail; // Available OOB bytes per block | ||
| 124 | 125 | ||
| 125 | // Kernel-only stuff starts here. | 126 | // Kernel-only stuff starts here. |
| 126 | char *name; | 127 | char *name; |
diff --git a/include/linux/mtd/onenand.h b/include/linux/mtd/onenand.h index d8af8a95e58d..a56d24ada505 100644 --- a/include/linux/mtd/onenand.h +++ b/include/linux/mtd/onenand.h | |||
| @@ -82,7 +82,8 @@ struct onenand_bufferram { | |||
| 82 | * @wq: [INTERN] wait queue to sleep on if a OneNAND | 82 | * @wq: [INTERN] wait queue to sleep on if a OneNAND |
| 83 | * operation is in progress | 83 | * operation is in progress |
| 84 | * @state: [INTERN] the current state of the OneNAND device | 84 | * @state: [INTERN] the current state of the OneNAND device |
| 85 | * @page_buf: data buffer | 85 | * @page_buf: [INTERN] page main data buffer |
| 86 | * @oob_buf: [INTERN] page oob data buffer | ||
| 86 | * @subpagesize: [INTERN] holds the subpagesize | 87 | * @subpagesize: [INTERN] holds the subpagesize |
| 87 | * @ecclayout: [REPLACEABLE] the default ecc placement scheme | 88 | * @ecclayout: [REPLACEABLE] the default ecc placement scheme |
| 88 | * @bbm: [REPLACEABLE] pointer to Bad Block Management | 89 | * @bbm: [REPLACEABLE] pointer to Bad Block Management |
| @@ -122,6 +123,7 @@ struct onenand_chip { | |||
| 122 | wait_queue_head_t wq; | 123 | wait_queue_head_t wq; |
| 123 | onenand_state_t state; | 124 | onenand_state_t state; |
| 124 | unsigned char *page_buf; | 125 | unsigned char *page_buf; |
| 126 | unsigned char *oob_buf; | ||
| 125 | 127 | ||
| 126 | int subpagesize; | 128 | int subpagesize; |
| 127 | struct nand_ecclayout *ecclayout; | 129 | struct nand_ecclayout *ecclayout; |
| @@ -156,6 +158,7 @@ struct onenand_chip { | |||
| 156 | #define ONENAND_HAS_CONT_LOCK (0x0001) | 158 | #define ONENAND_HAS_CONT_LOCK (0x0001) |
| 157 | #define ONENAND_HAS_UNLOCK_ALL (0x0002) | 159 | #define ONENAND_HAS_UNLOCK_ALL (0x0002) |
| 158 | #define ONENAND_PAGEBUF_ALLOC (0x1000) | 160 | #define ONENAND_PAGEBUF_ALLOC (0x1000) |
| 161 | #define ONENAND_OOBBUF_ALLOC (0x2000) | ||
| 159 | 162 | ||
| 160 | /* | 163 | /* |
| 161 | * OneNAND Flash Manufacturer ID Codes | 164 | * OneNAND Flash Manufacturer ID Codes |
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/sony-laptop.h b/include/linux/sony-laptop.h new file mode 100644 index 000000000000..e2e036d94e4a --- /dev/null +++ b/include/linux/sony-laptop.h | |||
| @@ -0,0 +1,34 @@ | |||
| 1 | #ifndef _SONYLAPTOP_H_ | ||
| 2 | #define _SONYLAPTOP_H_ | ||
| 3 | |||
| 4 | #include <linux/types.h> | ||
| 5 | |||
| 6 | #ifdef __KERNEL__ | ||
| 7 | |||
| 8 | /* used only for communication between v4l and sony-laptop */ | ||
| 9 | |||
| 10 | #define SONY_PIC_COMMAND_GETCAMERA 1 /* obsolete */ | ||
| 11 | #define SONY_PIC_COMMAND_SETCAMERA 2 | ||
| 12 | #define SONY_PIC_COMMAND_GETCAMERABRIGHTNESS 3 /* obsolete */ | ||
| 13 | #define SONY_PIC_COMMAND_SETCAMERABRIGHTNESS 4 | ||
| 14 | #define SONY_PIC_COMMAND_GETCAMERACONTRAST 5 /* obsolete */ | ||
| 15 | #define SONY_PIC_COMMAND_SETCAMERACONTRAST 6 | ||
| 16 | #define SONY_PIC_COMMAND_GETCAMERAHUE 7 /* obsolete */ | ||
| 17 | #define SONY_PIC_COMMAND_SETCAMERAHUE 8 | ||
| 18 | #define SONY_PIC_COMMAND_GETCAMERACOLOR 9 /* obsolete */ | ||
| 19 | #define SONY_PIC_COMMAND_SETCAMERACOLOR 10 | ||
| 20 | #define SONY_PIC_COMMAND_GETCAMERASHARPNESS 11 /* obsolete */ | ||
| 21 | #define SONY_PIC_COMMAND_SETCAMERASHARPNESS 12 | ||
| 22 | #define SONY_PIC_COMMAND_GETCAMERAPICTURE 13 /* obsolete */ | ||
| 23 | #define SONY_PIC_COMMAND_SETCAMERAPICTURE 14 | ||
| 24 | #define SONY_PIC_COMMAND_GETCAMERAAGC 15 /* obsolete */ | ||
| 25 | #define SONY_PIC_COMMAND_SETCAMERAAGC 16 | ||
| 26 | #define SONY_PIC_COMMAND_GETCAMERADIRECTION 17 /* obsolete */ | ||
| 27 | #define SONY_PIC_COMMAND_GETCAMERAROMVERSION 18 /* obsolete */ | ||
| 28 | #define SONY_PIC_COMMAND_GETCAMERAREVISION 19 /* obsolete */ | ||
| 29 | |||
| 30 | int sony_pic_camera_command(int command, u8 value); | ||
| 31 | |||
| 32 | #endif /* __KERNEL__ */ | ||
| 33 | |||
| 34 | #endif /* _SONYLAPTOP_H_ */ | ||
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/net/xfrm.h b/include/net/xfrm.h index 92a1fc46ea59..5a00aa85b756 100644 --- a/include/net/xfrm.h +++ b/include/net/xfrm.h | |||
| @@ -988,8 +988,9 @@ extern int xfrm_policy_walk(u8 type, int (*func)(struct xfrm_policy *, int, int, | |||
| 988 | int xfrm_policy_insert(int dir, struct xfrm_policy *policy, int excl); | 988 | int xfrm_policy_insert(int dir, struct xfrm_policy *policy, int excl); |
| 989 | struct xfrm_policy *xfrm_policy_bysel_ctx(u8 type, int dir, | 989 | struct xfrm_policy *xfrm_policy_bysel_ctx(u8 type, int dir, |
| 990 | struct xfrm_selector *sel, | 990 | struct xfrm_selector *sel, |
| 991 | struct xfrm_sec_ctx *ctx, int delete); | 991 | struct xfrm_sec_ctx *ctx, int delete, |
| 992 | struct xfrm_policy *xfrm_policy_byid(u8, int dir, u32 id, int delete); | 992 | int *err); |
| 993 | struct xfrm_policy *xfrm_policy_byid(u8, int dir, u32 id, int delete, int *err); | ||
| 993 | void xfrm_policy_flush(u8 type, struct xfrm_audit *audit_info); | 994 | void xfrm_policy_flush(u8 type, struct xfrm_audit *audit_info); |
| 994 | u32 xfrm_get_acqseq(void); | 995 | u32 xfrm_get_acqseq(void); |
| 995 | void xfrm_alloc_spi(struct xfrm_state *x, __be32 minspi, __be32 maxspi); | 996 | void xfrm_alloc_spi(struct xfrm_state *x, __be32 minspi, __be32 maxspi); |
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)" |
