diff options
Diffstat (limited to 'include')
201 files changed, 1347 insertions, 842 deletions
diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h index 7b74b60a68a4..19c3ead2a90b 100644 --- a/include/acpi/acpi_bus.h +++ b/include/acpi/acpi_bus.h | |||
@@ -168,8 +168,7 @@ struct acpi_device_flags { | |||
168 | u32 power_manageable:1; | 168 | u32 power_manageable:1; |
169 | u32 performance_manageable:1; | 169 | u32 performance_manageable:1; |
170 | u32 wake_capable:1; /* Wakeup(_PRW) supported? */ | 170 | u32 wake_capable:1; /* Wakeup(_PRW) supported? */ |
171 | u32 force_power_state:1; | 171 | u32 reserved:20; |
172 | u32 reserved:19; | ||
173 | }; | 172 | }; |
174 | 173 | ||
175 | /* File System */ | 174 | /* File System */ |
diff --git a/include/acpi/processor.h b/include/acpi/processor.h index 26d79f6db8a0..76411b1fc4fd 100644 --- a/include/acpi/processor.h +++ b/include/acpi/processor.h | |||
@@ -78,7 +78,6 @@ struct acpi_processor_cx { | |||
78 | struct acpi_processor_power { | 78 | struct acpi_processor_power { |
79 | struct cpuidle_device dev; | 79 | struct cpuidle_device dev; |
80 | struct acpi_processor_cx *state; | 80 | struct acpi_processor_cx *state; |
81 | struct acpi_processor_cx *bm_state; | ||
82 | unsigned long bm_check_timestamp; | 81 | unsigned long bm_check_timestamp; |
83 | u32 default_state; | 82 | u32 default_state; |
84 | u32 bm_activity; | 83 | u32 bm_activity; |
diff --git a/include/asm-arm/arch-at91/board.h b/include/asm-arm/arch-at91/board.h index d96b10fd449f..c0d7075982c1 100644 --- a/include/asm-arm/arch-at91/board.h +++ b/include/asm-arm/arch-at91/board.h | |||
@@ -130,4 +130,7 @@ extern u8 at91_leds_cpu; | |||
130 | extern u8 at91_leds_timer; | 130 | extern u8 at91_leds_timer; |
131 | extern void __init at91_init_leds(u8 cpu_led, u8 timer_led); | 131 | extern void __init at91_init_leds(u8 cpu_led, u8 timer_led); |
132 | 132 | ||
133 | /* FIXME: this needs a better location, but gets stuff building again */ | ||
134 | extern int at91_suspend_entering_slow_clock(void); | ||
135 | |||
133 | #endif | 136 | #endif |
diff --git a/include/asm-arm/arch-davinci/gpio.h b/include/asm-arm/arch-davinci/gpio.h index ea24a0e0bfd6..ff8de30b2fb3 100644 --- a/include/asm-arm/arch-davinci/gpio.h +++ b/include/asm-arm/arch-davinci/gpio.h | |||
@@ -13,6 +13,9 @@ | |||
13 | #ifndef __DAVINCI_GPIO_H | 13 | #ifndef __DAVINCI_GPIO_H |
14 | #define __DAVINCI_GPIO_H | 14 | #define __DAVINCI_GPIO_H |
15 | 15 | ||
16 | #include <linux/io.h> | ||
17 | #include <asm/hardware.h> | ||
18 | |||
16 | /* | 19 | /* |
17 | * basic gpio routines | 20 | * basic gpio routines |
18 | * | 21 | * |
diff --git a/include/asm-arm/arch-pxa/mfp-pxa300.h b/include/asm-arm/arch-pxa/mfp-pxa300.h index 7513c7a3402d..822a27cd7864 100644 --- a/include/asm-arm/arch-pxa/mfp-pxa300.h +++ b/include/asm-arm/arch-pxa/mfp-pxa300.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * PXA300/PXA310 specific MFP configuration definitions | 4 | * PXA300/PXA310 specific MFP configuration definitions |
5 | * | 5 | * |
6 | * Copyright (C) 2007 Marvell International Ltd. | 6 | * Copyright (C) 2007 Marvell International Ltd. |
7 | * 2007-08-21: eric miao <eric.y.miao@gmail.com> | 7 | * 2007-08-21: eric miao <eric.miao@marvell.com> |
8 | * initial version | 8 | * initial version |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
diff --git a/include/asm-arm/arch-pxa/mfp-pxa320.h b/include/asm-arm/arch-pxa/mfp-pxa320.h index ae8ba34194cf..488a5bbc49e9 100644 --- a/include/asm-arm/arch-pxa/mfp-pxa320.h +++ b/include/asm-arm/arch-pxa/mfp-pxa320.h | |||
@@ -4,7 +4,7 @@ | |||
4 | * PXA320 specific MFP configuration definitions | 4 | * PXA320 specific MFP configuration definitions |
5 | * | 5 | * |
6 | * Copyright (C) 2007 Marvell International Ltd. | 6 | * Copyright (C) 2007 Marvell International Ltd. |
7 | * 2007-08-21: eric miao <eric.y.miao@gmail.com> | 7 | * 2007-08-21: eric miao <eric.miao@marvell.com> |
8 | * initial version | 8 | * initial version |
9 | * | 9 | * |
10 | * This program is free software; you can redistribute it and/or modify | 10 | * This program is free software; you can redistribute it and/or modify |
diff --git a/include/asm-arm/arch-pxa/mfp.h b/include/asm-arm/arch-pxa/mfp.h index 60291742ffdd..ac4157af5a8e 100644 --- a/include/asm-arm/arch-pxa/mfp.h +++ b/include/asm-arm/arch-pxa/mfp.h | |||
@@ -5,7 +5,7 @@ | |||
5 | * | 5 | * |
6 | * Copyright (C) 2007 Marvell International Ltd. | 6 | * Copyright (C) 2007 Marvell International Ltd. |
7 | * | 7 | * |
8 | * 2007-8-21: eric miao <eric.y.miao@gmail.com> | 8 | * 2007-8-21: eric miao <eric.miao@marvell.com> |
9 | * initial version | 9 | * initial version |
10 | * | 10 | * |
11 | * This program is free software; you can redistribute it and/or modify | 11 | * This program is free software; you can redistribute it and/or modify |
diff --git a/include/asm-arm/flat.h b/include/asm-arm/flat.h index 16f5375e57b8..9918aa46d9e5 100644 --- a/include/asm-arm/flat.h +++ b/include/asm-arm/flat.h | |||
@@ -11,8 +11,9 @@ | |||
11 | #define flat_argvp_envp_on_stack() 1 | 11 | #define flat_argvp_envp_on_stack() 1 |
12 | #define flat_old_ram_flag(flags) (flags) | 12 | #define flat_old_ram_flag(flags) (flags) |
13 | #define flat_reloc_valid(reloc, size) ((reloc) <= (size)) | 13 | #define flat_reloc_valid(reloc, size) ((reloc) <= (size)) |
14 | #define flat_get_addr_from_rp(rp, relval, flags) get_unaligned(rp) | 14 | #define flat_get_addr_from_rp(rp, relval, flags, persistent) get_unaligned(rp) |
15 | #define flat_put_addr_at_rp(rp, val, relval) put_unaligned(val,rp) | 15 | #define flat_put_addr_at_rp(rp, val, relval) put_unaligned(val,rp) |
16 | #define flat_get_relocate_addr(rel) (rel) | 16 | #define flat_get_relocate_addr(rel) (rel) |
17 | #define flat_set_persistent(relval, p) 0 | ||
17 | 18 | ||
18 | #endif /* __ARM_FLAT_H__ */ | 19 | #endif /* __ARM_FLAT_H__ */ |
diff --git a/include/asm-arm/hardware/iop3xx.h b/include/asm-arm/hardware/iop3xx.h index fb90b421f31c..ede377ec9147 100644 --- a/include/asm-arm/hardware/iop3xx.h +++ b/include/asm-arm/hardware/iop3xx.h | |||
@@ -231,7 +231,7 @@ extern int init_atu; | |||
231 | IOP3XX_PCI_IO_WINDOW_SIZE - 1) | 231 | IOP3XX_PCI_IO_WINDOW_SIZE - 1) |
232 | #define IOP3XX_PCI_UPPER_IO_VA (IOP3XX_PCI_LOWER_IO_VA +\ | 232 | #define IOP3XX_PCI_UPPER_IO_VA (IOP3XX_PCI_LOWER_IO_VA +\ |
233 | IOP3XX_PCI_IO_WINDOW_SIZE - 1) | 233 | IOP3XX_PCI_IO_WINDOW_SIZE - 1) |
234 | #define IOP3XX_PCI_IO_PHYS_TO_VIRT(addr) (((u32) addr -\ | 234 | #define IOP3XX_PCI_IO_PHYS_TO_VIRT(addr) (((u32) (addr) -\ |
235 | IOP3XX_PCI_LOWER_IO_PA) +\ | 235 | IOP3XX_PCI_LOWER_IO_PA) +\ |
236 | IOP3XX_PCI_LOWER_IO_VA) | 236 | IOP3XX_PCI_LOWER_IO_VA) |
237 | 237 | ||
diff --git a/include/asm-arm/pgtable.h b/include/asm-arm/pgtable.h index d2e8171d1d4e..5e0182485d8c 100644 --- a/include/asm-arm/pgtable.h +++ b/include/asm-arm/pgtable.h | |||
@@ -249,7 +249,7 @@ extern struct page *empty_zero_page; | |||
249 | #define set_pte_ext(ptep,pte,ext) cpu_set_pte_ext(ptep,pte,ext) | 249 | #define set_pte_ext(ptep,pte,ext) cpu_set_pte_ext(ptep,pte,ext) |
250 | 250 | ||
251 | #define set_pte_at(mm,addr,ptep,pteval) do { \ | 251 | #define set_pte_at(mm,addr,ptep,pteval) do { \ |
252 | set_pte_ext(ptep, pteval, (addr) >= PAGE_OFFSET ? 0 : PTE_EXT_NG); \ | 252 | set_pte_ext(ptep, pteval, (addr) >= TASK_SIZE ? 0 : PTE_EXT_NG); \ |
253 | } while (0) | 253 | } while (0) |
254 | 254 | ||
255 | /* | 255 | /* |
diff --git a/include/asm-arm/plat-s3c/regs-nand.h b/include/asm-arm/plat-s3c/regs-nand.h index b824d371ae0b..d742205ac172 100644 --- a/include/asm-arm/plat-s3c/regs-nand.h +++ b/include/asm-arm/plat-s3c/regs-nand.h | |||
@@ -35,7 +35,7 @@ | |||
35 | #define S3C2440_NFESTAT1 S3C2410_NFREG(0x28) | 35 | #define S3C2440_NFESTAT1 S3C2410_NFREG(0x28) |
36 | #define S3C2440_NFMECC0 S3C2410_NFREG(0x2C) | 36 | #define S3C2440_NFMECC0 S3C2410_NFREG(0x2C) |
37 | #define S3C2440_NFMECC1 S3C2410_NFREG(0x30) | 37 | #define S3C2440_NFMECC1 S3C2410_NFREG(0x30) |
38 | #define S3C2440_NFSECC S3C24E10_NFREG(0x34) | 38 | #define S3C2440_NFSECC S3C2410_NFREG(0x34) |
39 | #define S3C2440_NFSBLK S3C2410_NFREG(0x38) | 39 | #define S3C2440_NFSBLK S3C2410_NFREG(0x38) |
40 | #define S3C2440_NFEBLK S3C2410_NFREG(0x3C) | 40 | #define S3C2440_NFEBLK S3C2410_NFREG(0x3C) |
41 | 41 | ||
diff --git a/include/asm-arm26/irq_regs.h b/include/asm-arm26/irq_regs.h deleted file mode 100644 index 3dd9c0b70270..000000000000 --- a/include/asm-arm26/irq_regs.h +++ /dev/null | |||
@@ -1 +0,0 @@ | |||
1 | #include <asm-generic/irq_regs.h> | ||
diff --git a/include/asm-avr32/sysreg.h b/include/asm-avr32/sysreg.h index c02bc8304b13..dd21182b60e0 100644 --- a/include/asm-avr32/sysreg.h +++ b/include/asm-avr32/sysreg.h | |||
@@ -215,6 +215,8 @@ | |||
215 | #define SYSREG_IRP_SIZE 6 | 215 | #define SYSREG_IRP_SIZE 6 |
216 | 216 | ||
217 | /* Bitfields in PCCR */ | 217 | /* Bitfields in PCCR */ |
218 | #define SYSREG_PCCR_E_OFFSET 0 | ||
219 | #define SYSREG_PCCR_E_SIZE 1 | ||
218 | #define SYSREG_PCCR_R_OFFSET 1 | 220 | #define SYSREG_PCCR_R_OFFSET 1 |
219 | #define SYSREG_PCCR_R_SIZE 1 | 221 | #define SYSREG_PCCR_R_SIZE 1 |
220 | #define SYSREG_PCCR_C_OFFSET 2 | 222 | #define SYSREG_PCCR_C_OFFSET 2 |
diff --git a/include/asm-blackfin/bfin-global.h b/include/asm-blackfin/bfin-global.h index 14cb8d35924e..39bdd86871cf 100644 --- a/include/asm-blackfin/bfin-global.h +++ b/include/asm-blackfin/bfin-global.h | |||
@@ -50,8 +50,8 @@ extern unsigned long get_sclk(void); | |||
50 | extern unsigned long sclk_to_usecs(unsigned long sclk); | 50 | extern unsigned long sclk_to_usecs(unsigned long sclk); |
51 | extern unsigned long usecs_to_sclk(unsigned long usecs); | 51 | extern unsigned long usecs_to_sclk(unsigned long usecs); |
52 | 52 | ||
53 | extern void dump_thread(struct pt_regs *regs, struct user *dump); | 53 | extern void dump_bfin_process(struct pt_regs *regs); |
54 | extern void dump_bfin_regs(struct pt_regs *fp, void *retaddr); | 54 | extern void dump_bfin_mem(void *retaddr); |
55 | extern void dump_bfin_trace_buffer(void); | 55 | extern void dump_bfin_trace_buffer(void); |
56 | 56 | ||
57 | extern int init_arch_irq(void); | 57 | extern int init_arch_irq(void); |
@@ -63,6 +63,7 @@ extern void bfin_dcache_init(void); | |||
63 | extern int read_iloc(void); | 63 | extern int read_iloc(void); |
64 | extern int bfin_console_init(void); | 64 | extern int bfin_console_init(void); |
65 | extern asmlinkage void lower_to_irq14(void); | 65 | extern asmlinkage void lower_to_irq14(void); |
66 | extern asmlinkage void bfin_return_from_exception(void); | ||
66 | extern void init_exception_vectors(void); | 67 | extern void init_exception_vectors(void); |
67 | extern void init_dma(void); | 68 | extern void init_dma(void); |
68 | extern void program_IAR(void); | 69 | extern void program_IAR(void); |
@@ -80,6 +81,7 @@ extern int atomic_sub32(void); | |||
80 | extern int atomic_ior32(void); | 81 | extern int atomic_ior32(void); |
81 | extern int atomic_and32(void); | 82 | extern int atomic_and32(void); |
82 | extern int atomic_xor32(void); | 83 | extern int atomic_xor32(void); |
84 | extern void safe_user_instruction(void); | ||
83 | extern void sigreturn_stub(void); | 85 | extern void sigreturn_stub(void); |
84 | 86 | ||
85 | extern void *l1_data_A_sram_alloc(size_t); | 87 | extern void *l1_data_A_sram_alloc(size_t); |
diff --git a/include/asm-blackfin/cplbinit.h b/include/asm-blackfin/cplbinit.h index bec6ecdf1bdb..c4d0596e8e9f 100644 --- a/include/asm-blackfin/cplbinit.h +++ b/include/asm-blackfin/cplbinit.h | |||
@@ -27,6 +27,9 @@ | |||
27 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | 27 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
28 | */ | 28 | */ |
29 | 29 | ||
30 | #ifndef __ASM_CPLBINIT_H__ | ||
31 | #define __ASM_CPLBINIT_H__ | ||
32 | |||
30 | #include <asm/blackfin.h> | 33 | #include <asm/blackfin.h> |
31 | #include <asm/cplb.h> | 34 | #include <asm/cplb.h> |
32 | 35 | ||
@@ -57,8 +60,8 @@ struct cplb_tab { | |||
57 | u16 size; | 60 | u16 size; |
58 | }; | 61 | }; |
59 | 62 | ||
60 | extern u_long icplb_table[MAX_CPLBS+1]; | 63 | extern u_long icplb_table[]; |
61 | extern u_long dcplb_table[MAX_CPLBS+1]; | 64 | extern u_long dcplb_table[]; |
62 | 65 | ||
63 | /* Till here we are discussing about the static memory management model. | 66 | /* Till here we are discussing about the static memory management model. |
64 | * However, the operating envoronments commonly define more CPLB | 67 | * However, the operating envoronments commonly define more CPLB |
@@ -69,28 +72,16 @@ extern u_long dcplb_table[MAX_CPLBS+1]; | |||
69 | * This is how Page descriptor Table is implemented in uClinux/Blackfin. | 72 | * This is how Page descriptor Table is implemented in uClinux/Blackfin. |
70 | */ | 73 | */ |
71 | 74 | ||
72 | #ifdef CONFIG_CPLB_SWITCH_TAB_L1 | 75 | extern u_long ipdt_table[]; |
73 | extern u_long ipdt_table[MAX_SWITCH_I_CPLBS+1]__attribute__((l1_data)); | 76 | extern u_long dpdt_table[]; |
74 | extern u_long dpdt_table[MAX_SWITCH_D_CPLBS+1]__attribute__((l1_data)); | ||
75 | |||
76 | #ifdef CONFIG_CPLB_INFO | ||
77 | extern u_long ipdt_swapcount_table[MAX_SWITCH_I_CPLBS]__attribute__((l1_data)); | ||
78 | extern u_long dpdt_swapcount_table[MAX_SWITCH_D_CPLBS]__attribute__((l1_data)); | ||
79 | #endif /* CONFIG_CPLB_INFO */ | ||
80 | |||
81 | #else | ||
82 | |||
83 | extern u_long ipdt_table[MAX_SWITCH_I_CPLBS+1]; | ||
84 | extern u_long dpdt_table[MAX_SWITCH_D_CPLBS+1]; | ||
85 | |||
86 | #ifdef CONFIG_CPLB_INFO | 77 | #ifdef CONFIG_CPLB_INFO |
87 | extern u_long ipdt_swapcount_table[MAX_SWITCH_I_CPLBS]; | 78 | extern u_long ipdt_swapcount_table[]; |
88 | extern u_long dpdt_swapcount_table[MAX_SWITCH_D_CPLBS]; | 79 | extern u_long dpdt_swapcount_table[]; |
89 | #endif /* CONFIG_CPLB_INFO */ | 80 | #endif |
90 | |||
91 | #endif /*CONFIG_CPLB_SWITCH_TAB_L1*/ | ||
92 | 81 | ||
93 | extern unsigned long reserved_mem_dcache_on; | 82 | extern unsigned long reserved_mem_dcache_on; |
94 | extern unsigned long reserved_mem_icache_on; | 83 | extern unsigned long reserved_mem_icache_on; |
95 | 84 | ||
96 | extern void generate_cpl_tables(void); | 85 | extern void generate_cpl_tables(void); |
86 | |||
87 | #endif | ||
diff --git a/include/asm-blackfin/delay.h b/include/asm-blackfin/delay.h index 52e7a10d7ff8..473a8113277f 100644 --- a/include/asm-blackfin/delay.h +++ b/include/asm-blackfin/delay.h | |||
@@ -1,29 +1,47 @@ | |||
1 | #ifndef _BLACKFIN_DELAY_H | ||
2 | #define _BLACKFIN_DELAY_H | ||
3 | |||
4 | static inline void __delay(unsigned long loops) | ||
5 | { | ||
6 | |||
7 | /* FIXME: Currently the assembler doesn't recognize Loop Register Clobbers, | ||
8 | uncomment this as soon those are implemented */ | ||
9 | /* | 1 | /* |
10 | __asm__ __volatile__ ( "\t LSETUP (1f,1f) LC0= %0\n\t" | 2 | * delay.h - delay functions |
11 | "1:\t NOP;\n\t" | 3 | * |
12 | : :"a" (loops) | 4 | * Copyright (c) 2004-2007 Analog Devices Inc. |
13 | : "LT0","LB0","LC0"); | 5 | * |
6 | * Licensed under the GPL-2 or later. | ||
7 | */ | ||
8 | |||
9 | #ifndef __ASM_DELAY_H__ | ||
10 | #define __ASM_DELAY_H__ | ||
14 | 11 | ||
15 | */ | 12 | #include <asm/mach/anomaly.h> |
16 | 13 | ||
17 | __asm__ __volatile__("[--SP] = LC0;\n\t" | 14 | static inline void __delay(unsigned long loops) |
18 | "[--SP] = LT0;\n\t" | 15 | { |
19 | "[--SP] = LB0;\n\t" | 16 | if (ANOMALY_05000312) { |
20 | "LSETUP (1f,1f) LC0 = %0;\n\t" | 17 | /* Interrupted loads to loop registers -> bad */ |
21 | "1:\t NOP;\n\t" | 18 | unsigned long tmp; |
22 | "LB0 = [SP++];\n\t" | 19 | __asm__ __volatile__( |
23 | "LT0 = [SP++];\n\t" | 20 | "[--SP] = LC0;" |
24 | "LC0 = [SP++];\n" | 21 | "[--SP] = LT0;" |
25 | : | 22 | "[--SP] = LB0;" |
26 | :"a" (loops)); | 23 | "LSETUP (1f,1f) LC0 = %1;" |
24 | "1: NOP;" | ||
25 | /* We take advantage of the fact that LC0 is 0 at | ||
26 | * the end of the loop. Otherwise we'd need some | ||
27 | * NOPs after the CLI here. | ||
28 | */ | ||
29 | "CLI %0;" | ||
30 | "LB0 = [SP++];" | ||
31 | "LT0 = [SP++];" | ||
32 | "LC0 = [SP++];" | ||
33 | "STI %0;" | ||
34 | : "=d" (tmp) | ||
35 | : "a" (loops) | ||
36 | ); | ||
37 | } else | ||
38 | __asm__ __volatile__ ( | ||
39 | "LSETUP(1f, 1f) LC0 = %0;" | ||
40 | "1: NOP;" | ||
41 | : | ||
42 | : "a" (loops) | ||
43 | : "LT0", "LB0", "LC0" | ||
44 | ); | ||
27 | } | 45 | } |
28 | 46 | ||
29 | #include <linux/param.h> /* needed for HZ */ | 47 | #include <linux/param.h> /* needed for HZ */ |
@@ -41,4 +59,4 @@ static inline void udelay(unsigned long usecs) | |||
41 | __delay(usecs * loops_per_jiffy / (1000000 / HZ)); | 59 | __delay(usecs * loops_per_jiffy / (1000000 / HZ)); |
42 | } | 60 | } |
43 | 61 | ||
44 | #endif /* defined(_BLACKFIN_DELAY_H) */ | 62 | #endif |
diff --git a/include/asm-blackfin/fixed_code.h b/include/asm-blackfin/fixed_code.h index e6df84ee1557..37db66c7030d 100644 --- a/include/asm-blackfin/fixed_code.h +++ b/include/asm-blackfin/fixed_code.h | |||
@@ -17,4 +17,6 @@ | |||
17 | 17 | ||
18 | #define ATOMIC_SEQS_END 0x480 | 18 | #define ATOMIC_SEQS_END 0x480 |
19 | 19 | ||
20 | #define FIXED_CODE_END 0x480 | 20 | #define SAFE_USER_INSTRUCTION 0x480 |
21 | |||
22 | #define FIXED_CODE_END 0x490 | ||
diff --git a/include/asm-blackfin/gptimers.h b/include/asm-blackfin/gptimers.h index c97ab03e43a6..8265ea473d5b 100644 --- a/include/asm-blackfin/gptimers.h +++ b/include/asm-blackfin/gptimers.h | |||
@@ -197,6 +197,8 @@ uint32_t get_gptimer_period (int timer_id); | |||
197 | uint32_t get_gptimer_count (int timer_id); | 197 | uint32_t get_gptimer_count (int timer_id); |
198 | uint16_t get_gptimer_intr (int timer_id); | 198 | uint16_t get_gptimer_intr (int timer_id); |
199 | void clear_gptimer_intr (int timer_id); | 199 | void clear_gptimer_intr (int timer_id); |
200 | uint16_t get_gptimer_over (int timer_id); | ||
201 | void clear_gptimer_over (int timer_id); | ||
200 | void set_gptimer_config (int timer_id, uint16_t config); | 202 | void set_gptimer_config (int timer_id, uint16_t config); |
201 | uint16_t get_gptimer_config (int timer_id); | 203 | uint16_t get_gptimer_config (int timer_id); |
202 | void set_gptimer_pulse_hi (int timer_id); | 204 | void set_gptimer_pulse_hi (int timer_id); |
diff --git a/include/asm-blackfin/io.h b/include/asm-blackfin/io.h index d1d2e6be3b59..1601d62f39a5 100644 --- a/include/asm-blackfin/io.h +++ b/include/asm-blackfin/io.h | |||
@@ -122,6 +122,7 @@ extern void outsl(unsigned long port, const void *addr, unsigned long count); | |||
122 | extern void insb(unsigned long port, void *addr, unsigned long count); | 122 | extern void insb(unsigned long port, void *addr, unsigned long count); |
123 | extern void insw(unsigned long port, void *addr, unsigned long count); | 123 | extern void insw(unsigned long port, void *addr, unsigned long count); |
124 | extern void insl(unsigned long port, void *addr, unsigned long count); | 124 | extern void insl(unsigned long port, void *addr, unsigned long count); |
125 | extern void insl_16(unsigned long port, void *addr, unsigned long count); | ||
125 | 126 | ||
126 | extern void dma_outsb(unsigned long port, const void *addr, unsigned short count); | 127 | extern void dma_outsb(unsigned long port, const void *addr, unsigned short count); |
127 | extern void dma_outsw(unsigned long port, const void *addr, unsigned short count); | 128 | extern void dma_outsw(unsigned long port, const void *addr, unsigned short count); |
diff --git a/include/asm-blackfin/mach-bf527/defBF52x_base.h b/include/asm-blackfin/mach-bf527/defBF52x_base.h index d6c24c54699d..fc69cf93f149 100644 --- a/include/asm-blackfin/mach-bf527/defBF52x_base.h +++ b/include/asm-blackfin/mach-bf527/defBF52x_base.h | |||
@@ -1718,55 +1718,55 @@ | |||
1718 | 1718 | ||
1719 | /* Bit masks for HOST_CONTROL */ | 1719 | /* Bit masks for HOST_CONTROL */ |
1720 | 1720 | ||
1721 | #define HOST_EN 0x1 /* Host Enable */ | 1721 | #define HOST_CNTR_HOST_EN 0x1 /* Host Enable */ |
1722 | #define nHOST_EN 0x0 | 1722 | #define HOST_CNTR_nHOST_EN 0x0 |
1723 | #define HOST_END 0x2 /* Host Endianess */ | 1723 | #define HOST_CNTR_HOST_END 0x2 /* Host Endianess */ |
1724 | #define nHOST_END 0x0 | 1724 | #define HOST_CNTR_nHOST_END 0x0 |
1725 | #define DATA_SIZE 0x4 /* Data Size */ | 1725 | #define HOST_CNTR_DATA_SIZE 0x4 /* Data Size */ |
1726 | #define nDATA_SIZE 0x0 | 1726 | #define HOST_CNTR_nDATA_SIZE 0x0 |
1727 | #define HOST_RST 0x8 /* Host Reset */ | 1727 | #define HOST_CNTR_HOST_RST 0x8 /* Host Reset */ |
1728 | #define nHOST_RST 0x0 | 1728 | #define HOST_CNTR_nHOST_RST 0x0 |
1729 | #define HRDY_OVR 0x20 /* Host Ready Override */ | 1729 | #define HOST_CNTR_HRDY_OVR 0x20 /* Host Ready Override */ |
1730 | #define nHRDY_OVR 0x0 | 1730 | #define HOST_CNTR_nHRDY_OVR 0x0 |
1731 | #define INT_MODE 0x40 /* Interrupt Mode */ | 1731 | #define HOST_CNTR_INT_MODE 0x40 /* Interrupt Mode */ |
1732 | #define nINT_MODE 0x0 | 1732 | #define HOST_CNTR_nINT_MODE 0x0 |
1733 | #define BT_EN 0x80 /* Bus Timeout Enable */ | 1733 | #define HOST_CNTR_BT_EN 0x80 /* Bus Timeout Enable */ |
1734 | #define nBT_EN 0x0 | 1734 | #define HOST_CNTR_ nBT_EN 0x0 |
1735 | #define EHW 0x100 /* Enable Host Write */ | 1735 | #define HOST_CNTR_EHW 0x100 /* Enable Host Write */ |
1736 | #define nEHW 0x0 | 1736 | #define HOST_CNTR_nEHW 0x0 |
1737 | #define EHR 0x200 /* Enable Host Read */ | 1737 | #define HOST_CNTR_EHR 0x200 /* Enable Host Read */ |
1738 | #define nEHR 0x0 | 1738 | #define HOST_CNTR_nEHR 0x0 |
1739 | #define BDR 0x400 /* Burst DMA Requests */ | 1739 | #define HOST_CNTR_BDR 0x400 /* Burst DMA Requests */ |
1740 | #define nBDR 0x0 | 1740 | #define HOST_CNTR_nBDR 0x0 |
1741 | 1741 | ||
1742 | /* Bit masks for HOST_STATUS */ | 1742 | /* Bit masks for HOST_STATUS */ |
1743 | 1743 | ||
1744 | #define READY 0x1 /* DMA Ready */ | 1744 | #define HOST_STAT_READY 0x1 /* DMA Ready */ |
1745 | #define nREADY 0x0 | 1745 | #define HOST_STAT_nREADY 0x0 |
1746 | #define FIFOFULL 0x2 /* FIFO Full */ | 1746 | #define HOST_STAT_FIFOFULL 0x2 /* FIFO Full */ |
1747 | #define nFIFOFULL 0x0 | 1747 | #define HOST_STAT_nFIFOFULL 0x0 |
1748 | #define FIFOEMPTY 0x4 /* FIFO Empty */ | 1748 | #define HOST_STAT_FIFOEMPTY 0x4 /* FIFO Empty */ |
1749 | #define nFIFOEMPTY 0x0 | 1749 | #define HOST_STAT_nFIFOEMPTY 0x0 |
1750 | #define COMPLETE 0x8 /* DMA Complete */ | 1750 | #define HOST_STAT_COMPLETE 0x8 /* DMA Complete */ |
1751 | #define nCOMPLETE 0x0 | 1751 | #define HOST_STAT_nCOMPLETE 0x0 |
1752 | #define HSHK 0x10 /* Host Handshake */ | 1752 | #define HOST_STAT_HSHK 0x10 /* Host Handshake */ |
1753 | #define nHSHK 0x0 | 1753 | #define HOST_STAT_nHSHK 0x0 |
1754 | #define TIMEOUT 0x20 /* Host Timeout */ | 1754 | #define HOST_STAT_TIMEOUT 0x20 /* Host Timeout */ |
1755 | #define nTIMEOUT 0x0 | 1755 | #define HOST_STAT_nTIMEOUT 0x0 |
1756 | #define HIRQ 0x40 /* Host Interrupt Request */ | 1756 | #define HOST_STAT_HIRQ 0x40 /* Host Interrupt Request */ |
1757 | #define nHIRQ 0x0 | 1757 | #define HOST_STAT_nHIRQ 0x0 |
1758 | #define ALLOW_CNFG 0x80 /* Allow New Configuration */ | 1758 | #define HOST_STAT_ALLOW_CNFG 0x80 /* Allow New Configuration */ |
1759 | #define nALLOW_CNFG 0x0 | 1759 | #define HOST_STAT_nALLOW_CNFG 0x0 |
1760 | #define DMA_DIR 0x100 /* DMA Direction */ | 1760 | #define HOST_STAT_DMA_DIR 0x100 /* DMA Direction */ |
1761 | #define nDMA_DIR 0x0 | 1761 | #define HOST_STAT_nDMA_DIR 0x0 |
1762 | #define BTE 0x200 /* Bus Timeout Enabled */ | 1762 | #define HOST_STAT_BTE 0x200 /* Bus Timeout Enabled */ |
1763 | #define nBTE 0x0 | 1763 | #define HOST_STAT_nBTE 0x0 |
1764 | #define HOSTRD_DONE 0x8000 /* Host Read Completion Interrupt */ | 1764 | #define HOST_STAT_HOSTRD_DONE 0x8000 /* Host Read Completion Interrupt */ |
1765 | #define nHOSTRD_DONE 0x0 | 1765 | #define HOST_STAT_nHOSTRD_DONE 0x0 |
1766 | 1766 | ||
1767 | /* Bit masks for HOST_TIMEOUT */ | 1767 | /* Bit masks for HOST_TIMEOUT */ |
1768 | 1768 | ||
1769 | #define COUNT_TIMEOUT 0x7ff /* Host Timeout count */ | 1769 | #define HOST_COUNT_TIMEOUT 0x7ff /* Host Timeout count */ |
1770 | 1770 | ||
1771 | /* Bit masks for CNT_CONFIG */ | 1771 | /* Bit masks for CNT_CONFIG */ |
1772 | 1772 | ||
diff --git a/include/asm-blackfin/mach-bf527/dma.h b/include/asm-blackfin/mach-bf527/dma.h index a41627ae9134..2dfee12864f6 100644 --- a/include/asm-blackfin/mach-bf527/dma.h +++ b/include/asm-blackfin/mach-bf527/dma.h | |||
@@ -35,7 +35,6 @@ | |||
35 | #define MAX_BLACKFIN_DMA_CHANNEL 16 | 35 | #define MAX_BLACKFIN_DMA_CHANNEL 16 |
36 | 36 | ||
37 | #define CH_PPI 0 /* PPI receive/transmit or NFC */ | 37 | #define CH_PPI 0 /* PPI receive/transmit or NFC */ |
38 | #define CH_NFC 0 /* PPI receive/transmit or NFC */ | ||
39 | #define CH_EMAC_RX 1 /* Ethernet MAC receive or HOSTDP */ | 38 | #define CH_EMAC_RX 1 /* Ethernet MAC receive or HOSTDP */ |
40 | #define CH_EMAC_HOSTDP 1 /* Ethernet MAC receive or HOSTDP */ | 39 | #define CH_EMAC_HOSTDP 1 /* Ethernet MAC receive or HOSTDP */ |
41 | #define CH_EMAC_TX 2 /* Ethernet MAC transmit or NFC */ | 40 | #define CH_EMAC_TX 2 /* Ethernet MAC transmit or NFC */ |
@@ -54,6 +53,12 @@ | |||
54 | #define CH_MEM_STREAM1_DEST 14 /* TX */ | 53 | #define CH_MEM_STREAM1_DEST 14 /* TX */ |
55 | #define CH_MEM_STREAM1_SRC 15 /* RX */ | 54 | #define CH_MEM_STREAM1_SRC 15 /* RX */ |
56 | 55 | ||
56 | #if defined(CONFIG_BF527_NAND_D_PORTF) | ||
57 | #define CH_NFC CH_PPI /* PPI receive/transmit or NFC */ | ||
58 | #elif defined(CONFIG_BF527_NAND_D_PORTH) | ||
59 | #define CH_NFC CH_EMAC_TX /* PPI receive/transmit or NFC */ | ||
60 | #endif | ||
61 | |||
57 | extern int channel2irq(unsigned int channel); | 62 | extern int channel2irq(unsigned int channel); |
58 | extern struct dma_register *base_addr[]; | 63 | extern struct dma_register *base_addr[]; |
59 | 64 | ||
diff --git a/include/asm-blackfin/mach-bf527/irq.h b/include/asm-blackfin/mach-bf527/irq.h index 304f5bcfebe4..4e2b3f2020e5 100644 --- a/include/asm-blackfin/mach-bf527/irq.h +++ b/include/asm-blackfin/mach-bf527/irq.h | |||
@@ -176,11 +176,7 @@ | |||
176 | 176 | ||
177 | #define GPIO_IRQ_BASE IRQ_PF0 | 177 | #define GPIO_IRQ_BASE IRQ_PF0 |
178 | 178 | ||
179 | #ifdef CONFIG_IRQCHIP_DEMUX_GPIO | ||
180 | #define NR_IRQS (IRQ_PH15+1) | 179 | #define NR_IRQS (IRQ_PH15+1) |
181 | #else | ||
182 | #define NR_IRQS (SYS_IRQS+1) | ||
183 | #endif | ||
184 | 180 | ||
185 | #define IVG7 7 | 181 | #define IVG7 7 |
186 | #define IVG8 8 | 182 | #define IVG8 8 |
diff --git a/include/asm-blackfin/mach-bf527/mem_map.h b/include/asm-blackfin/mach-bf527/mem_map.h index c5aa20102b24..193082deaa4e 100644 --- a/include/asm-blackfin/mach-bf527/mem_map.h +++ b/include/asm-blackfin/mach-bf527/mem_map.h | |||
@@ -47,6 +47,7 @@ | |||
47 | /* Boot ROM Memory */ | 47 | /* Boot ROM Memory */ |
48 | 48 | ||
49 | #define BOOT_ROM_START 0xEF000000 | 49 | #define BOOT_ROM_START 0xEF000000 |
50 | #define BOOT_ROM_LENGTH 0x8000 | ||
50 | 51 | ||
51 | /* Level 1 Memory */ | 52 | /* Level 1 Memory */ |
52 | 53 | ||
@@ -90,9 +91,7 @@ | |||
90 | 91 | ||
91 | /* Scratch Pad Memory */ | 92 | /* Scratch Pad Memory */ |
92 | 93 | ||
93 | #if defined(CONFIG_BF527) || defined(CONFIG_BF536) || defined(CONFIG_BF534) | ||
94 | #define L1_SCRATCH_START 0xFFB00000 | 94 | #define L1_SCRATCH_START 0xFFB00000 |
95 | #define L1_SCRATCH_LENGTH 0x1000 | 95 | #define L1_SCRATCH_LENGTH 0x1000 |
96 | #endif | ||
97 | 96 | ||
98 | #endif /* _MEM_MAP_527_H_ */ | 97 | #endif /* _MEM_MAP_527_H_ */ |
diff --git a/include/asm-blackfin/mach-bf533/irq.h b/include/asm-blackfin/mach-bf533/irq.h index 452fb825d891..832e6f6122da 100644 --- a/include/asm-blackfin/mach-bf533/irq.h +++ b/include/asm-blackfin/mach-bf533/irq.h | |||
@@ -130,11 +130,7 @@ Core Emulation ** | |||
130 | 130 | ||
131 | #define GPIO_IRQ_BASE IRQ_PF0 | 131 | #define GPIO_IRQ_BASE IRQ_PF0 |
132 | 132 | ||
133 | #ifdef CONFIG_IRQCHIP_DEMUX_GPIO | ||
134 | #define NR_IRQS (IRQ_PF15+1) | 133 | #define NR_IRQS (IRQ_PF15+1) |
135 | #else | ||
136 | #define NR_IRQS SYS_IRQS | ||
137 | #endif | ||
138 | 134 | ||
139 | #define IVG7 7 | 135 | #define IVG7 7 |
140 | #define IVG8 8 | 136 | #define IVG8 8 |
diff --git a/include/asm-blackfin/mach-bf533/mem_map.h b/include/asm-blackfin/mach-bf533/mem_map.h index 94d8c4062eb7..bd30b6f3be00 100644 --- a/include/asm-blackfin/mach-bf533/mem_map.h +++ b/include/asm-blackfin/mach-bf533/mem_map.h | |||
@@ -1,4 +1,3 @@ | |||
1 | |||
2 | /* | 1 | /* |
3 | * File: include/asm-blackfin/mach-bf533/mem_map.h | 2 | * File: include/asm-blackfin/mach-bf533/mem_map.h |
4 | * Based on: | 3 | * Based on: |
@@ -48,6 +47,7 @@ | |||
48 | /* Boot ROM Memory */ | 47 | /* Boot ROM Memory */ |
49 | 48 | ||
50 | #define BOOT_ROM_START 0xEF000000 | 49 | #define BOOT_ROM_START 0xEF000000 |
50 | #define BOOT_ROM_LENGTH 0x400 | ||
51 | 51 | ||
52 | /* Level 1 Memory */ | 52 | /* Level 1 Memory */ |
53 | 53 | ||
@@ -160,9 +160,7 @@ | |||
160 | 160 | ||
161 | /* Scratch Pad Memory */ | 161 | /* Scratch Pad Memory */ |
162 | 162 | ||
163 | #if defined(CONFIG_BF533) || defined(CONFIG_BF532) || defined(CONFIG_BF531) | ||
164 | #define L1_SCRATCH_START 0xFFB00000 | 163 | #define L1_SCRATCH_START 0xFFB00000 |
165 | #define L1_SCRATCH_LENGTH 0x1000 | 164 | #define L1_SCRATCH_LENGTH 0x1000 |
166 | #endif | ||
167 | 165 | ||
168 | #endif /* _MEM_MAP_533_H_ */ | 166 | #endif /* _MEM_MAP_533_H_ */ |
diff --git a/include/asm-blackfin/mach-bf537/irq.h b/include/asm-blackfin/mach-bf537/irq.h index 36c44bc1a917..be6f2ff77f31 100644 --- a/include/asm-blackfin/mach-bf537/irq.h +++ b/include/asm-blackfin/mach-bf537/irq.h | |||
@@ -162,11 +162,7 @@ Core Emulation ** | |||
162 | 162 | ||
163 | #define GPIO_IRQ_BASE IRQ_PF0 | 163 | #define GPIO_IRQ_BASE IRQ_PF0 |
164 | 164 | ||
165 | #ifdef CONFIG_IRQCHIP_DEMUX_GPIO | ||
166 | #define NR_IRQS (IRQ_PH15+1) | 165 | #define NR_IRQS (IRQ_PH15+1) |
167 | #else | ||
168 | #define NR_IRQS (IRQ_UART1_ERROR+1) | ||
169 | #endif | ||
170 | 166 | ||
171 | #define IVG7 7 | 167 | #define IVG7 7 |
172 | #define IVG8 8 | 168 | #define IVG8 8 |
diff --git a/include/asm-blackfin/mach-bf537/mem_map.h b/include/asm-blackfin/mach-bf537/mem_map.h index 18759e38eaae..5c6726d6f3b1 100644 --- a/include/asm-blackfin/mach-bf537/mem_map.h +++ b/include/asm-blackfin/mach-bf537/mem_map.h | |||
@@ -47,6 +47,7 @@ | |||
47 | /* Boot ROM Memory */ | 47 | /* Boot ROM Memory */ |
48 | 48 | ||
49 | #define BOOT_ROM_START 0xEF000000 | 49 | #define BOOT_ROM_START 0xEF000000 |
50 | #define BOOT_ROM_LENGTH 0x800 | ||
50 | 51 | ||
51 | /* Level 1 Memory */ | 52 | /* Level 1 Memory */ |
52 | 53 | ||
@@ -167,9 +168,7 @@ | |||
167 | 168 | ||
168 | /* Scratch Pad Memory */ | 169 | /* Scratch Pad Memory */ |
169 | 170 | ||
170 | #if defined(CONFIG_BF537) || defined(CONFIG_BF536) || defined(CONFIG_BF534) | ||
171 | #define L1_SCRATCH_START 0xFFB00000 | 171 | #define L1_SCRATCH_START 0xFFB00000 |
172 | #define L1_SCRATCH_LENGTH 0x1000 | 172 | #define L1_SCRATCH_LENGTH 0x1000 |
173 | #endif | ||
174 | 173 | ||
175 | #endif /* _MEM_MAP_537_H_ */ | 174 | #endif /* _MEM_MAP_537_H_ */ |
diff --git a/include/asm-blackfin/mach-bf548/bf548.h b/include/asm-blackfin/mach-bf548/bf548.h index 7e6d349beb08..e748588e8930 100644 --- a/include/asm-blackfin/mach-bf548/bf548.h +++ b/include/asm-blackfin/mach-bf548/bf548.h | |||
@@ -106,24 +106,22 @@ | |||
106 | 106 | ||
107 | #define AMGCTLVAL (V_AMBEN | V_AMCKEN) | 107 | #define AMGCTLVAL (V_AMBEN | V_AMCKEN) |
108 | 108 | ||
109 | #ifdef CONFIG_BF542 | 109 | #if defined(CONFIG_BF542) |
110 | #define CPU "BF542" | 110 | # define CPU "BF542" |
111 | #define CPUID 0x027c8000 | 111 | # define CPUID 0x027c8000 |
112 | #endif | 112 | #elif defined(CONFIG_BF544) |
113 | #ifdef CONFIG_BF544 | 113 | # define CPU "BF544" |
114 | #define CPU "BF544" | 114 | # define CPUID 0x027c8000 |
115 | #define CPUID 0x027c8000 | 115 | #elif defined(CONFIG_BF547) |
116 | #endif | 116 | # define CPU "BF547" |
117 | #ifdef CONFIG_BF548 | 117 | #elif defined(CONFIG_BF548) |
118 | #define CPU "BF548" | 118 | # define CPU "BF548" |
119 | #define CPUID 0x027c6000 | 119 | # define CPUID 0x027c6000 |
120 | #endif | 120 | #elif defined(CONFIG_BF549) |
121 | #ifdef CONFIG_BF549 | 121 | # define CPU "BF549" |
122 | #define CPU "BF549" | 122 | #else |
123 | #endif | 123 | # define CPU "UNKNOWN" |
124 | #ifndef CPU | 124 | # define CPUID 0x0 |
125 | #define CPU "UNKNOWN" | ||
126 | #define CPUID 0x0 | ||
127 | #endif | 125 | #endif |
128 | 126 | ||
129 | #endif /* __MACH_BF48_H__ */ | 127 | #endif /* __MACH_BF48_H__ */ |
diff --git a/include/asm-blackfin/mach-bf548/defBF544.h b/include/asm-blackfin/mach-bf548/defBF544.h index 760307e34b9e..b8b9870e2697 100644 --- a/include/asm-blackfin/mach-bf548/defBF544.h +++ b/include/asm-blackfin/mach-bf548/defBF544.h | |||
@@ -645,7 +645,7 @@ | |||
645 | 645 | ||
646 | /* Bit masks for HOST_STATUS */ | 646 | /* Bit masks for HOST_STATUS */ |
647 | 647 | ||
648 | #define READY 0x1 /* DMA Ready */ | 648 | #define DMA_READY 0x1 /* DMA Ready */ |
649 | #define FIFOFULL 0x2 /* FIFO Full */ | 649 | #define FIFOFULL 0x2 /* FIFO Full */ |
650 | #define FIFOEMPTY 0x4 /* FIFO Empty */ | 650 | #define FIFOEMPTY 0x4 /* FIFO Empty */ |
651 | #define COMPLETE 0x8 /* DMA Complete */ | 651 | #define COMPLETE 0x8 /* DMA Complete */ |
diff --git a/include/asm-blackfin/mach-bf548/defBF548.h b/include/asm-blackfin/mach-bf548/defBF548.h index 70af33c963b0..ecbca952985c 100644 --- a/include/asm-blackfin/mach-bf548/defBF548.h +++ b/include/asm-blackfin/mach-bf548/defBF548.h | |||
@@ -1007,7 +1007,7 @@ | |||
1007 | 1007 | ||
1008 | /* Bit masks for HOST_STATUS */ | 1008 | /* Bit masks for HOST_STATUS */ |
1009 | 1009 | ||
1010 | #define READY 0x1 /* DMA Ready */ | 1010 | #define DMA_READY 0x1 /* DMA Ready */ |
1011 | #define FIFOFULL 0x2 /* FIFO Full */ | 1011 | #define FIFOFULL 0x2 /* FIFO Full */ |
1012 | #define FIFOEMPTY 0x4 /* FIFO Empty */ | 1012 | #define FIFOEMPTY 0x4 /* FIFO Empty */ |
1013 | #define COMPLETE 0x8 /* DMA Complete */ | 1013 | #define COMPLETE 0x8 /* DMA Complete */ |
diff --git a/include/asm-blackfin/mach-bf548/defBF549.h b/include/asm-blackfin/mach-bf548/defBF549.h index 4e46d657e50e..fcb72b41e007 100644 --- a/include/asm-blackfin/mach-bf548/defBF549.h +++ b/include/asm-blackfin/mach-bf548/defBF549.h | |||
@@ -1671,7 +1671,7 @@ | |||
1671 | /* Bit masks for MXVR_DMAx_CONFIG */ | 1671 | /* Bit masks for MXVR_DMAx_CONFIG */ |
1672 | 1672 | ||
1673 | #define MDMAEN 0x1 /* DMA Channel Enable */ | 1673 | #define MDMAEN 0x1 /* DMA Channel Enable */ |
1674 | #define DD 0x2 /* DMA Channel Direction */ | 1674 | #define DMADD 0x2 /* DMA Channel Direction */ |
1675 | #define BY4SWAPEN 0x20 /* DMA Channel Four Byte Swap Enable */ | 1675 | #define BY4SWAPEN 0x20 /* DMA Channel Four Byte Swap Enable */ |
1676 | #define LCHAN 0x3c0 /* DMA Channel Logical Channel */ | 1676 | #define LCHAN 0x3c0 /* DMA Channel Logical Channel */ |
1677 | #define BITSWAPEN 0x400 /* DMA Channel Bit Swap Enable */ | 1677 | #define BITSWAPEN 0x400 /* DMA Channel Bit Swap Enable */ |
diff --git a/include/asm-blackfin/mach-bf548/defBF54x_base.h b/include/asm-blackfin/mach-bf548/defBF54x_base.h index 1d365c844ffe..da979cb62f7d 100644 --- a/include/asm-blackfin/mach-bf548/defBF54x_base.h +++ b/include/asm-blackfin/mach-bf548/defBF54x_base.h | |||
@@ -2252,6 +2252,13 @@ | |||
2252 | #define PLL_OFF 0x2 /* Disable PLL */ | 2252 | #define PLL_OFF 0x2 /* Disable PLL */ |
2253 | #define DF 0x1 /* Divide Frequency */ | 2253 | #define DF 0x1 /* Divide Frequency */ |
2254 | 2254 | ||
2255 | /* SWRST Masks */ | ||
2256 | #define SYSTEM_RESET 0x0007 /* Initiates A System Software Reset */ | ||
2257 | #define DOUBLE_FAULT 0x0008 /* Core Double Fault Causes Reset */ | ||
2258 | #define RESET_DOUBLE 0x2000 /* SW Reset Generated By Core Double-Fault */ | ||
2259 | #define RESET_WDOG 0x4000 /* SW Reset Generated By Watchdog Timer */ | ||
2260 | #define RESET_SOFTWARE 0x8000 /* SW Reset Occurred Since Last Read Of SWRST */ | ||
2261 | |||
2255 | /* Bit masks for PLL_STAT */ | 2262 | /* Bit masks for PLL_STAT */ |
2256 | 2263 | ||
2257 | #define PLL_LOCKED 0x20 /* PLL Locked Status */ | 2264 | #define PLL_LOCKED 0x20 /* PLL Locked Status */ |
diff --git a/include/asm-blackfin/mach-bf548/irq.h b/include/asm-blackfin/mach-bf548/irq.h index 3b08cf9bd6f3..9fb7bc5399a8 100644 --- a/include/asm-blackfin/mach-bf548/irq.h +++ b/include/asm-blackfin/mach-bf548/irq.h | |||
@@ -338,11 +338,7 @@ Events (highest priority) EMU 0 | |||
338 | 338 | ||
339 | #define GPIO_IRQ_BASE IRQ_PA0 | 339 | #define GPIO_IRQ_BASE IRQ_PA0 |
340 | 340 | ||
341 | #ifdef CONFIG_IRQCHIP_DEMUX_GPIO | ||
342 | #define NR_IRQS (IRQ_PJ15+1) | 341 | #define NR_IRQS (IRQ_PJ15+1) |
343 | #else | ||
344 | #define NR_IRQS (SYS_IRQS+1) | ||
345 | #endif | ||
346 | 342 | ||
347 | /* For compatibility reasons with existing code */ | 343 | /* For compatibility reasons with existing code */ |
348 | 344 | ||
diff --git a/include/asm-blackfin/mach-bf548/mem_map.h b/include/asm-blackfin/mach-bf548/mem_map.h index ec1597e31831..f99f47bc3a07 100644 --- a/include/asm-blackfin/mach-bf548/mem_map.h +++ b/include/asm-blackfin/mach-bf548/mem_map.h | |||
@@ -47,6 +47,12 @@ | |||
47 | /* Boot ROM Memory */ | 47 | /* Boot ROM Memory */ |
48 | 48 | ||
49 | #define BOOT_ROM_START 0xEF000000 | 49 | #define BOOT_ROM_START 0xEF000000 |
50 | #define BOOT_ROM_LENGTH 0x1000 | ||
51 | |||
52 | /* L1 Instruction ROM */ | ||
53 | |||
54 | #define L1_ROM_START 0xFFA14000 | ||
55 | #define L1_ROM_LENGTH 0x10000 | ||
50 | 56 | ||
51 | /* Level 1 Memory */ | 57 | /* Level 1 Memory */ |
52 | 58 | ||
@@ -87,11 +93,19 @@ | |||
87 | #define BFIN_DSUPBANKS 0 | 93 | #define BFIN_DSUPBANKS 0 |
88 | #endif /*CONFIG_BFIN_DCACHE*/ | 94 | #endif /*CONFIG_BFIN_DCACHE*/ |
89 | 95 | ||
96 | /* Level 2 Memory */ | ||
97 | #if !defined(CONFIG_BF542) | ||
98 | # define L2_START 0xFEB00000 | ||
99 | # if defined(CONFIG_BF544) | ||
100 | # define L2_LENGTH 0x10000 | ||
101 | # else | ||
102 | # define L2_LENGTH 0x20000 | ||
103 | # endif | ||
104 | #endif | ||
105 | |||
90 | /* Scratch Pad Memory */ | 106 | /* Scratch Pad Memory */ |
91 | 107 | ||
92 | #if defined(CONFIG_BF54x) | ||
93 | #define L1_SCRATCH_START 0xFFB00000 | 108 | #define L1_SCRATCH_START 0xFFB00000 |
94 | #define L1_SCRATCH_LENGTH 0x1000 | 109 | #define L1_SCRATCH_LENGTH 0x1000 |
95 | #endif | ||
96 | 110 | ||
97 | #endif/* _MEM_MAP_548_H_ */ | 111 | #endif/* _MEM_MAP_548_H_ */ |
diff --git a/include/asm-blackfin/mach-bf548/portmux.h b/include/asm-blackfin/mach-bf548/portmux.h index b382deb501a7..6b485120015f 100644 --- a/include/asm-blackfin/mach-bf548/portmux.h +++ b/include/asm-blackfin/mach-bf548/portmux.h | |||
@@ -267,4 +267,18 @@ | |||
267 | #define P_AMC_BG (P_DEFINED | P_IDENT(GPIO_PJ12) | P_FUNCT(0)) | 267 | #define P_AMC_BG (P_DEFINED | P_IDENT(GPIO_PJ12) | P_FUNCT(0)) |
268 | #define P_AMC_BGH (P_DEFINED | P_IDENT(GPIO_PJ13) | P_FUNCT(0)) | 268 | #define P_AMC_BGH (P_DEFINED | P_IDENT(GPIO_PJ13) | P_FUNCT(0)) |
269 | 269 | ||
270 | |||
271 | #define P_NAND_D0 (P_DONTCARE) | ||
272 | #define P_NAND_D1 (P_DONTCARE) | ||
273 | #define P_NAND_D2 (P_DONTCARE) | ||
274 | #define P_NAND_D3 (P_DONTCARE) | ||
275 | #define P_NAND_D4 (P_DONTCARE) | ||
276 | #define P_NAND_D5 (P_DONTCARE) | ||
277 | #define P_NAND_D6 (P_DONTCARE) | ||
278 | #define P_NAND_D7 (P_DONTCARE) | ||
279 | #define P_NAND_WE (P_DONTCARE) | ||
280 | #define P_NAND_RE (P_DONTCARE) | ||
281 | #define P_NAND_CLE (P_DONTCARE) | ||
282 | #define P_NAND_ALE (P_DONTCARE) | ||
283 | |||
270 | #endif /* _MACH_PORTMUX_H_ */ | 284 | #endif /* _MACH_PORTMUX_H_ */ |
diff --git a/include/asm-blackfin/mach-bf561/bf561.h b/include/asm-blackfin/mach-bf561/bf561.h index 17e1d5dcef02..3ef9e5f36136 100644 --- a/include/asm-blackfin/mach-bf561/bf561.h +++ b/include/asm-blackfin/mach-bf561/bf561.h | |||
@@ -33,25 +33,6 @@ | |||
33 | #define SUPPORTED_REVID 0x3 | 33 | #define SUPPORTED_REVID 0x3 |
34 | 34 | ||
35 | #define OFFSET_(x) ((x) & 0x0000FFFF) | 35 | #define OFFSET_(x) ((x) & 0x0000FFFF) |
36 | #define L1_ISRAM 0xFFA00000 | ||
37 | #define L1_ISRAM_END 0xFFA04000 | ||
38 | #define DATA_BANKA_SRAM 0xFF800000 | ||
39 | #define DATA_BANKA_SRAM_END 0xFF804000 | ||
40 | #define DATA_BANKB_SRAM 0xFF900000 | ||
41 | #define DATA_BANKB_SRAM_END 0xFF904000 | ||
42 | #define L1_DSRAMA 0xFF800000 | ||
43 | #define L1_DSRAMA_END 0xFF804000 | ||
44 | #define L1_DSRAMB 0xFF900000 | ||
45 | #define L1_DSRAMB_END 0xFF904000 | ||
46 | #define L2_SRAM 0xFEB00000 | ||
47 | #define L2_SRAM_END 0xFEB20000 | ||
48 | #define AMB_FLASH 0x20000000 | ||
49 | #define AMB_FLASH_END 0x21000000 | ||
50 | #define AMB_FLASH_LENGTH 0x01000000 | ||
51 | #define L1_ISRAM_LENGTH 0x4000 | ||
52 | #define L1_DSRAMA_LENGTH 0x4000 | ||
53 | #define L1_DSRAMB_LENGTH 0x4000 | ||
54 | #define L2_SRAM_LENGTH 0x20000 | ||
55 | 36 | ||
56 | /*some misc defines*/ | 37 | /*some misc defines*/ |
57 | #define IMASK_IVG15 0x8000 | 38 | #define IMASK_IVG15 0x8000 |
diff --git a/include/asm-blackfin/mach-bf561/defBF561.h b/include/asm-blackfin/mach-bf561/defBF561.h index bf7dc4e00065..c3c0eb13c819 100644 --- a/include/asm-blackfin/mach-bf561/defBF561.h +++ b/include/asm-blackfin/mach-bf561/defBF561.h | |||
@@ -55,6 +55,10 @@ | |||
55 | /* For MMR's that are reserved on Core B, set up defines to better integrate with other ports */ | 55 | /* For MMR's that are reserved on Core B, set up defines to better integrate with other ports */ |
56 | #define SWRST SICA_SWRST | 56 | #define SWRST SICA_SWRST |
57 | #define SYSCR SICA_SYSCR | 57 | #define SYSCR SICA_SYSCR |
58 | #define DOUBLE_FAULT (DOUBLE_FAULT_B|DOUBLE_FAULT_A) | ||
59 | #define RESET_DOUBLE (SWRST_DBL_FAULT_B|SWRST_DBL_FAULT_A) | ||
60 | #define RESET_WDOG (SWRST_WDT_B|SWRST_WDT_A) | ||
61 | #define RESET_SOFTWARE (SWRST_OCCURRED) | ||
58 | 62 | ||
59 | /* System Reset and Interrupt Controller registers for core A (0xFFC0 0100-0xFFC0 01FF) */ | 63 | /* System Reset and Interrupt Controller registers for core A (0xFFC0 0100-0xFFC0 01FF) */ |
60 | #define SICA_SWRST 0xFFC00100 /* Software Reset register */ | 64 | #define SICA_SWRST 0xFFC00100 /* Software Reset register */ |
@@ -874,12 +878,14 @@ | |||
874 | #define PLL_LOCKED 0x0020 /* PLL_LOCKCNT Has Been Reached */ | 878 | #define PLL_LOCKED 0x0020 /* PLL_LOCKCNT Has Been Reached */ |
875 | 879 | ||
876 | /* SWRST Mask */ | 880 | /* SWRST Mask */ |
877 | #define SYSTEM_RESET 0x00000007 /* Initiates a system software reset */ | 881 | #define SYSTEM_RESET 0x0007 /* Initiates a system software reset */ |
878 | #define SWRST_DBL_FAULT_B 0x00000800 /* SWRST Core B Double Fault */ | 882 | #define DOUBLE_FAULT_A 0x0008 /* Core A Double Fault Causes Reset */ |
879 | #define SWRST_DBL_FAULT_A 0x00001000 /* SWRST Core A Double Fault */ | 883 | #define DOUBLE_FAULT_B 0x0010 /* Core B Double Fault Causes Reset */ |
880 | #define SWRST_WDT_B 0x00002000 /* SWRST Watchdog B */ | 884 | #define SWRST_DBL_FAULT_A 0x0800 /* SWRST Core A Double Fault */ |
881 | #define SWRST_WDT_A 0x00004000 /* SWRST Watchdog A */ | 885 | #define SWRST_DBL_FAULT_B 0x1000 /* SWRST Core B Double Fault */ |
882 | #define SWRST_OCCURRED 0x00008000 /* SWRST Status */ | 886 | #define SWRST_WDT_B 0x2000 /* SWRST Watchdog B */ |
887 | #define SWRST_WDT_A 0x4000 /* SWRST Watchdog A */ | ||
888 | #define SWRST_OCCURRED 0x8000 /* SWRST Status */ | ||
883 | 889 | ||
884 | /* ************* SYSTEM INTERRUPT CONTROLLER MASKS ***************** */ | 890 | /* ************* SYSTEM INTERRUPT CONTROLLER MASKS ***************** */ |
885 | 891 | ||
diff --git a/include/asm-blackfin/mach-bf561/irq.h b/include/asm-blackfin/mach-bf561/irq.h index 12789927db3d..83f0383957d2 100644 --- a/include/asm-blackfin/mach-bf561/irq.h +++ b/include/asm-blackfin/mach-bf561/irq.h | |||
@@ -291,11 +291,7 @@ | |||
291 | 291 | ||
292 | #define GPIO_IRQ_BASE IRQ_PF0 | 292 | #define GPIO_IRQ_BASE IRQ_PF0 |
293 | 293 | ||
294 | #ifdef CONFIG_IRQCHIP_DEMUX_GPIO | ||
295 | #define NR_IRQS (IRQ_PF47 + 1) | 294 | #define NR_IRQS (IRQ_PF47 + 1) |
296 | #else | ||
297 | #define NR_IRQS SYS_IRQS | ||
298 | #endif | ||
299 | 295 | ||
300 | #define IVG7 7 | 296 | #define IVG7 7 |
301 | #define IVG8 8 | 297 | #define IVG8 8 |
diff --git a/include/asm-blackfin/mach-bf561/mem_map.h b/include/asm-blackfin/mach-bf561/mem_map.h index f7ac09cf2c3d..c26d8486cc4b 100644 --- a/include/asm-blackfin/mach-bf561/mem_map.h +++ b/include/asm-blackfin/mach-bf561/mem_map.h | |||
@@ -19,6 +19,11 @@ | |||
19 | #define ASYNC_BANK0_BASE 0x20000000 /* Async Bank 0 */ | 19 | #define ASYNC_BANK0_BASE 0x20000000 /* Async Bank 0 */ |
20 | #define ASYNC_BANK0_SIZE 0x04000000 /* 64M */ | 20 | #define ASYNC_BANK0_SIZE 0x04000000 /* 64M */ |
21 | 21 | ||
22 | /* Boot ROM Memory */ | ||
23 | |||
24 | #define BOOT_ROM_START 0xEF000000 | ||
25 | #define BOOT_ROM_LENGTH 0x800 | ||
26 | |||
22 | /* Level 1 Memory */ | 27 | /* Level 1 Memory */ |
23 | 28 | ||
24 | #ifdef CONFIG_BFIN_ICACHE | 29 | #ifdef CONFIG_BFIN_ICACHE |
@@ -67,9 +72,7 @@ | |||
67 | 72 | ||
68 | /* Scratch Pad Memory */ | 73 | /* Scratch Pad Memory */ |
69 | 74 | ||
70 | #if defined(CONFIG_BF561) | ||
71 | #define L1_SCRATCH_START 0xFFB00000 | 75 | #define L1_SCRATCH_START 0xFFB00000 |
72 | #define L1_SCRATCH_LENGTH 0x1000 | 76 | #define L1_SCRATCH_LENGTH 0x1000 |
73 | #endif | ||
74 | 77 | ||
75 | #endif /* _MEM_MAP_533_H_ */ | 78 | #endif /* _MEM_MAP_533_H_ */ |
diff --git a/include/asm-blackfin/mach-common/def_LPBlackfin.h b/include/asm-blackfin/mach-common/def_LPBlackfin.h index c1d8c4a78fcf..e8967f6124f7 100644 --- a/include/asm-blackfin/mach-common/def_LPBlackfin.h +++ b/include/asm-blackfin/mach-common/def_LPBlackfin.h | |||
@@ -46,7 +46,7 @@ | |||
46 | #endif | 46 | #endif |
47 | 47 | ||
48 | #define bfin_read8(addr) ({ \ | 48 | #define bfin_read8(addr) ({ \ |
49 | uint8_t __v; \ | 49 | uint32_t __v; \ |
50 | __asm__ __volatile__( \ | 50 | __asm__ __volatile__( \ |
51 | NOP_PAD_ANOMALY_05000198 \ | 51 | NOP_PAD_ANOMALY_05000198 \ |
52 | "%0 = b[%1] (z);" \ | 52 | "%0 = b[%1] (z);" \ |
@@ -56,7 +56,7 @@ | |||
56 | __v; }) | 56 | __v; }) |
57 | 57 | ||
58 | #define bfin_read16(addr) ({ \ | 58 | #define bfin_read16(addr) ({ \ |
59 | uint16_t __v; \ | 59 | uint32_t __v; \ |
60 | __asm__ __volatile__( \ | 60 | __asm__ __volatile__( \ |
61 | NOP_PAD_ANOMALY_05000198 \ | 61 | NOP_PAD_ANOMALY_05000198 \ |
62 | "%0 = w[%1] (z);" \ | 62 | "%0 = w[%1] (z);" \ |
@@ -80,7 +80,7 @@ | |||
80 | NOP_PAD_ANOMALY_05000198 \ | 80 | NOP_PAD_ANOMALY_05000198 \ |
81 | "b[%0] = %1;" \ | 81 | "b[%0] = %1;" \ |
82 | : \ | 82 | : \ |
83 | : "a" (addr), "d" (val) \ | 83 | : "a" (addr), "d" ((uint8_t)(val)) \ |
84 | : "memory" \ | 84 | : "memory" \ |
85 | ) | 85 | ) |
86 | 86 | ||
@@ -89,7 +89,7 @@ | |||
89 | NOP_PAD_ANOMALY_05000198 \ | 89 | NOP_PAD_ANOMALY_05000198 \ |
90 | "w[%0] = %1;" \ | 90 | "w[%0] = %1;" \ |
91 | : \ | 91 | : \ |
92 | : "a" (addr), "d" (val) \ | 92 | : "a" (addr), "d" ((uint16_t)(val)) \ |
93 | : "memory" \ | 93 | : "memory" \ |
94 | ) | 94 | ) |
95 | 95 | ||
diff --git a/include/asm-blackfin/page_offset.h b/include/asm-blackfin/page_offset.h index 3b671d5fd70d..cbaff24b4b25 100644 --- a/include/asm-blackfin/page_offset.h +++ b/include/asm-blackfin/page_offset.h | |||
@@ -1,6 +1,6 @@ | |||
1 | 1 | ||
2 | /* This handles the memory map.. */ | 2 | /* This handles the memory map.. */ |
3 | 3 | ||
4 | #ifdef CONFIG_BFIN | 4 | #ifdef CONFIG_BLACKFIN |
5 | #define PAGE_OFFSET_RAW 0x00000000 | 5 | #define PAGE_OFFSET_RAW 0x00000000 |
6 | #endif | 6 | #endif |
diff --git a/include/asm-blackfin/string.h b/include/asm-blackfin/string.h index e8ada91ab002..321f4d96e4ae 100644 --- a/include/asm-blackfin/string.h +++ b/include/asm-blackfin/string.h | |||
@@ -1,6 +1,8 @@ | |||
1 | #ifndef _BLACKFIN_STRING_H_ | 1 | #ifndef _BLACKFIN_STRING_H_ |
2 | #define _BLACKFIN_STRING_H_ | 2 | #define _BLACKFIN_STRING_H_ |
3 | 3 | ||
4 | #include <linux/types.h> | ||
5 | |||
4 | #ifdef __KERNEL__ /* only set these up for kernel code */ | 6 | #ifdef __KERNEL__ /* only set these up for kernel code */ |
5 | 7 | ||
6 | #define __HAVE_ARCH_STRCPY | 8 | #define __HAVE_ARCH_STRCPY |
diff --git a/include/asm-blackfin/traps.h b/include/asm-blackfin/traps.h index fe365b1b7ca8..ee1cbf73a9ab 100644 --- a/include/asm-blackfin/traps.h +++ b/include/asm-blackfin/traps.h | |||
@@ -48,28 +48,80 @@ | |||
48 | 48 | ||
49 | #ifndef __ASSEMBLY__ | 49 | #ifndef __ASSEMBLY__ |
50 | 50 | ||
51 | #define HWC_x2 "System MMR Error\nAn error occurred due to an invalid access to an System MMR location\nPossible reason: a 32-bit register is accessed with a 16-bit instruction,\nor a 16-bit register is accessed with a 32-bit instruction.\n" | 51 | #define HWC_x2(level) \ |
52 | #define HWC_x3 "External Memory Addressing Error\n" | 52 | "System MMR Error\n" \ |
53 | #define HWC_x12 "Performance Monitor Overflow\n" | 53 | level " - An error occurred due to an invalid access to an System MMR location\n" \ |
54 | #define HWC_x18 "RAISE 5 instruction\n Software issued a RAISE 5 instruction to invoke the Hardware\n" | 54 | level " Possible reason: a 32-bit register is accessed with a 16-bit instruction\n" \ |
55 | #define HWC_default "Reserved\n" | 55 | level " or a 16-bit register is accessed with a 32-bit instruction.\n" |
56 | 56 | #define HWC_x3(level) \ | |
57 | #define EXC_0x03 "Application stack overflow\n - Please increase the stack size of the application using elf2flt -s option,\n and/or reduce the stack use of the application.\n" | 57 | "External Memory Addressing Error\n" |
58 | #define EXC_0x10 "Single step\n - When the processor is in single step mode, every instruction\n generates an exception. Primarily used for debugging.\n" | 58 | #define HWC_x12(level) \ |
59 | #define EXC_0x11 "Exception caused by a trace buffer full condition\n - The processor takes this exception when the trace\n buffer overflows (only when enabled by the Trace Unit Control register).\n" | 59 | "Performance Monitor Overflow\n" |
60 | #define EXC_0x21 "Undefined instruction\n - May be used to emulate instructions that are not defined for\n a particular processor implementation.\n" | 60 | #define HWC_x18(level) \ |
61 | #define EXC_0x22 "Illegal instruction combination\n - See section for multi-issue rules in the ADSP-BF53x Blackfin\n Processor Instruction Set Reference.\n" | 61 | "RAISE 5 instruction\n" \ |
62 | #define EXC_0x23 "Data access CPLB protection violation\n - Attempted read or write to Supervisor resource,\n or illegal data memory access. \n" | 62 | level " Software issued a RAISE 5 instruction to invoke the Hardware\n" |
63 | #define EXC_0x24 "Data access misaligned address violation\n - Attempted misaligned data memory or data cache access.\n" | 63 | #define HWC_default(level) \ |
64 | #define EXC_0x25 "Unrecoverable event\n - For example, an exception generated while processing a previous exception.\n" | 64 | "Reserved\n" |
65 | #define EXC_0x26 "Data access CPLB miss\n - Used by the MMU to signal a CPLB miss on a data access.\n" | 65 | #define EXC_0x03(level) \ |
66 | #define EXC_0x27 "Data access multiple CPLB hits\n - More than one CPLB entry matches data fetch address.\n" | 66 | "Application stack overflow\n" \ |
67 | #define EXC_0x28 "Program Sequencer Exception caused by an emulation watchpoint match\n - There is a watchpoint match, and one of the EMUSW\n bits in the Watchpoint Instruction Address Control register (WPIACTL) is set.\n" | 67 | level " - Please increase the stack size of the application using elf2flt -s option,\n" \ |
68 | #define EXC_0x2A "Instruction fetch misaligned address violation\n - Attempted misaligned instruction cache fetch. On a misaligned instruction fetch exception,\n the return address provided in RETX is the destination address which is misaligned, rather than the address of the offending instruction.\n" | 68 | level " and/or reduce the stack use of the application.\n" |
69 | #define EXC_0x2B "CPLB protection violation\n - Illegal instruction fetch access (memory protection violation).\n" | 69 | #define EXC_0x10(level) \ |
70 | #define EXC_0x2C "Instruction fetch CPLB miss\n - CPLB miss on an instruction fetch.\n" | 70 | "Single step\n" \ |
71 | #define EXC_0x2D "Instruction fetch multiple CPLB hits\n - More than one CPLB entry matches instruction fetch address.\n" | 71 | level " - When the processor is in single step mode, every instruction\n" \ |
72 | #define EXC_0x2E "Illegal use of supervisor resource\n - Attempted to use a Supervisor register or instruction from User mode.\n Supervisor resources are registers and instructions that are reserved\n for Supervisor use: Supervisor only registers, all MMRs, and Supervisor\n only instructions.\n" | 72 | level " generates an exception. Primarily used for debugging.\n" |
73 | #define EXC_0x11(level) \ | ||
74 | "Exception caused by a trace buffer full condition\n" \ | ||
75 | level " - The processor takes this exception when the trace\n" \ | ||
76 | level " buffer overflows (only when enabled by the Trace Unit Control register).\n" | ||
77 | #define EXC_0x21(level) \ | ||
78 | "Undefined instruction\n" \ | ||
79 | level " - May be used to emulate instructions that are not defined for\n" \ | ||
80 | level " a particular processor implementation.\n" | ||
81 | #define EXC_0x22(level) \ | ||
82 | "Illegal instruction combination\n" \ | ||
83 | level " - See section for multi-issue rules in the ADSP-BF53x Blackfin\n" \ | ||
84 | level " Processor Instruction Set Reference.\n" | ||
85 | #define EXC_0x23(level) \ | ||
86 | "Data access CPLB protection violation\n" \ | ||
87 | level " - Attempted read or write to Supervisor resource,\n" \ | ||
88 | level " or illegal data memory access. \n" | ||
89 | #define EXC_0x24(level) \ | ||
90 | "Data access misaligned address violation\n" \ | ||
91 | level " - Attempted misaligned data memory or data cache access.\n" | ||
92 | #define EXC_0x25(level) \ | ||
93 | "Unrecoverable event\n" \ | ||
94 | level " - For example, an exception generated while processing a previous exception.\n" | ||
95 | #define EXC_0x26(level) \ | ||
96 | "Data access CPLB miss\n" \ | ||
97 | level " - Used by the MMU to signal a CPLB miss on a data access.\n" | ||
98 | #define EXC_0x27(level) \ | ||
99 | "Data access multiple CPLB hits\n" \ | ||
100 | level " - More than one CPLB entry matches data fetch address.\n" | ||
101 | #define EXC_0x28(level) \ | ||
102 | "Program Sequencer Exception caused by an emulation watchpoint match\n" \ | ||
103 | level " - There is a watchpoint match, and one of the EMUSW\n" \ | ||
104 | level " bits in the Watchpoint Instruction Address Control register (WPIACTL) is set.\n" | ||
105 | #define EXC_0x2A(level) \ | ||
106 | "Instruction fetch misaligned address violation\n" \ | ||
107 | level " - Attempted misaligned instruction cache fetch. On a misaligned instruction fetch\n" \ | ||
108 | level " exception, the return address provided in RETX is the destination address which is\n" \ | ||
109 | level " misaligned, rather than the address of the offending instruction.\n" | ||
110 | #define EXC_0x2B(level) \ | ||
111 | "CPLB protection violation\n" \ | ||
112 | level " - Illegal instruction fetch access (memory protection violation).\n" | ||
113 | #define EXC_0x2C(level) \ | ||
114 | "Instruction fetch CPLB miss\n" \ | ||
115 | level " - CPLB miss on an instruction fetch.\n" | ||
116 | #define EXC_0x2D(level) \ | ||
117 | "Instruction fetch multiple CPLB hits\n" \ | ||
118 | level " - More than one CPLB entry matches instruction fetch address.\n" | ||
119 | #define EXC_0x2E(level) \ | ||
120 | "Illegal use of supervisor resource\n" \ | ||
121 | level " - Attempted to use a Supervisor register or instruction from User mode.\n" \ | ||
122 | level " Supervisor resources are registers and instructions that are reserved\n" \ | ||
123 | level " for Supervisor use: Supervisor only registers, all MMRs, and Supervisor\n" \ | ||
124 | level " only instructions.\n" | ||
73 | 125 | ||
74 | #endif /* __ASSEMBLY__ */ | 126 | #endif /* __ASSEMBLY__ */ |
75 | #endif /* _BFIN_TRAPS_H */ | 127 | #endif /* _BFIN_TRAPS_H */ |
diff --git a/include/asm-cris/atomic.h b/include/asm-cris/atomic.h index 0b51a87e5532..2949a945876a 100644 --- a/include/asm-cris/atomic.h +++ b/include/asm-cris/atomic.h | |||
@@ -3,6 +3,8 @@ | |||
3 | #ifndef __ASM_CRIS_ATOMIC__ | 3 | #ifndef __ASM_CRIS_ATOMIC__ |
4 | #define __ASM_CRIS_ATOMIC__ | 4 | #define __ASM_CRIS_ATOMIC__ |
5 | 5 | ||
6 | #include <linux/compiler.h> | ||
7 | |||
6 | #include <asm/system.h> | 8 | #include <asm/system.h> |
7 | #include <asm/arch/atomic.h> | 9 | #include <asm/arch/atomic.h> |
8 | 10 | ||
diff --git a/include/asm-cris/checksum.h b/include/asm-cris/checksum.h index 180dbf2757b0..c6c5be62c698 100644 --- a/include/asm-cris/checksum.h +++ b/include/asm-cris/checksum.h | |||
@@ -62,7 +62,7 @@ static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl) | |||
62 | * returns a 16-bit checksum, already complemented | 62 | * returns a 16-bit checksum, already complemented |
63 | */ | 63 | */ |
64 | 64 | ||
65 | static inline __sum16 int csum_tcpudp_magic(__be32 saddr, __be32 daddr, | 65 | static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr, |
66 | unsigned short len, | 66 | unsigned short len, |
67 | unsigned short proto, | 67 | unsigned short proto, |
68 | __wsum sum) | 68 | __wsum sum) |
diff --git a/include/asm-cris/ethernet.h b/include/asm-cris/ethernet.h index 30da58a7d00d..4d58652c3a49 100644 --- a/include/asm-cris/ethernet.h +++ b/include/asm-cris/ethernet.h | |||
@@ -15,4 +15,7 @@ | |||
15 | #define SET_ETH_DUPLEX_AUTO SIOCDEVPRIVATE+3 /* Auto neg duplex */ | 15 | #define SET_ETH_DUPLEX_AUTO SIOCDEVPRIVATE+3 /* Auto neg duplex */ |
16 | #define SET_ETH_DUPLEX_HALF SIOCDEVPRIVATE+4 /* Full duplex */ | 16 | #define SET_ETH_DUPLEX_HALF SIOCDEVPRIVATE+4 /* Full duplex */ |
17 | #define SET_ETH_DUPLEX_FULL SIOCDEVPRIVATE+5 /* Half duplex */ | 17 | #define SET_ETH_DUPLEX_FULL SIOCDEVPRIVATE+5 /* Half duplex */ |
18 | #define SET_ETH_ENABLE_LEDS SIOCDEVPRIVATE+6 /* Enable net LEDs */ | ||
19 | #define SET_ETH_DISABLE_LEDS SIOCDEVPRIVATE+7 /* Disable net LEDs */ | ||
20 | #define SET_ETH_AUTONEG SIOCDEVPRIVATE+8 | ||
18 | #endif /* _CRIS_ETHERNET_H */ | 21 | #endif /* _CRIS_ETHERNET_H */ |
diff --git a/include/asm-cris/fasttimer.h b/include/asm-cris/fasttimer.h index a3a77132ce32..8f8a8d6c9653 100644 --- a/include/asm-cris/fasttimer.h +++ b/include/asm-cris/fasttimer.h | |||
@@ -1,9 +1,8 @@ | |||
1 | /* $Id: fasttimer.h,v 1.3 2004/05/14 10:19:19 starvik Exp $ | 1 | /* |
2 | * linux/include/asm-cris/fasttimer.h | 2 | * linux/include/asm-cris/fasttimer.h |
3 | * | 3 | * |
4 | * Fast timers for ETRAX100LX | 4 | * Fast timers for ETRAX100LX |
5 | * This may be useful in other OS than Linux so use 2 space indentation... | 5 | * Copyright (C) 2000-2007 Axis Communications AB |
6 | * Copyright (C) 2000, 2002 Axis Communications AB | ||
7 | */ | 6 | */ |
8 | #include <linux/time.h> /* struct timeval */ | 7 | #include <linux/time.h> /* struct timeval */ |
9 | #include <linux/timex.h> | 8 | #include <linux/timex.h> |
@@ -12,11 +11,16 @@ | |||
12 | 11 | ||
13 | typedef void fast_timer_function_type(unsigned long); | 12 | typedef void fast_timer_function_type(unsigned long); |
14 | 13 | ||
14 | struct fasttime_t { | ||
15 | unsigned long tv_jiff; /* jiffies */ | ||
16 | unsigned long tv_usec; /* microseconds */ | ||
17 | }; | ||
18 | |||
15 | struct fast_timer{ /* Close to timer_list */ | 19 | struct fast_timer{ /* Close to timer_list */ |
16 | struct fast_timer *next; | 20 | struct fast_timer *next; |
17 | struct fast_timer *prev; | 21 | struct fast_timer *prev; |
18 | struct timeval tv_set; | 22 | struct fasttime_t tv_set; |
19 | struct timeval tv_expires; | 23 | struct fasttime_t tv_expires; |
20 | unsigned long delay_us; | 24 | unsigned long delay_us; |
21 | fast_timer_function_type *function; | 25 | fast_timer_function_type *function; |
22 | unsigned long data; | 26 | unsigned long data; |
@@ -38,6 +42,6 @@ int del_fast_timer(struct fast_timer * t); | |||
38 | void schedule_usleep(unsigned long us); | 42 | void schedule_usleep(unsigned long us); |
39 | 43 | ||
40 | 44 | ||
41 | void fast_timer_init(void); | 45 | int fast_timer_init(void); |
42 | 46 | ||
43 | #endif | 47 | #endif |
diff --git a/include/asm-cris/hardirq.h b/include/asm-cris/hardirq.h index 1c13dd3faac3..74178adeb1cd 100644 --- a/include/asm-cris/hardirq.h +++ b/include/asm-cris/hardirq.h | |||
@@ -1,6 +1,7 @@ | |||
1 | #ifndef __ASM_HARDIRQ_H | 1 | #ifndef __ASM_HARDIRQ_H |
2 | #define __ASM_HARDIRQ_H | 2 | #define __ASM_HARDIRQ_H |
3 | 3 | ||
4 | #include <asm/irq.h> | ||
4 | #include <linux/threads.h> | 5 | #include <linux/threads.h> |
5 | #include <linux/cache.h> | 6 | #include <linux/cache.h> |
6 | 7 | ||
diff --git a/include/asm-cris/posix_types.h b/include/asm-cris/posix_types.h index 92000d0c3f97..3a5e4c43eae7 100644 --- a/include/asm-cris/posix_types.h +++ b/include/asm-cris/posix_types.h | |||
@@ -52,7 +52,6 @@ typedef struct { | |||
52 | } __kernel_fsid_t; | 52 | } __kernel_fsid_t; |
53 | 53 | ||
54 | #ifdef __KERNEL__ | 54 | #ifdef __KERNEL__ |
55 | #include <linux/bitops.h> | ||
56 | 55 | ||
57 | #undef __FD_SET | 56 | #undef __FD_SET |
58 | #define __FD_SET(fd,fdsetp) set_bit(fd, (void *)(fdsetp)) | 57 | #define __FD_SET(fd,fdsetp) set_bit(fd, (void *)(fdsetp)) |
diff --git a/include/asm-cris/termbits.h b/include/asm-cris/termbits.h index 71c1b36269b8..66e1a7492a0c 100644 --- a/include/asm-cris/termbits.h +++ b/include/asm-cris/termbits.h | |||
@@ -171,6 +171,19 @@ struct ktermios { | |||
171 | #define B115200 0010002 | 171 | #define B115200 0010002 |
172 | #define B230400 0010003 | 172 | #define B230400 0010003 |
173 | #define B460800 0010004 | 173 | #define B460800 0010004 |
174 | |||
175 | /* Unsupported rates, but needed to avoid compile error. */ | ||
176 | #define B500000 0010005 | ||
177 | #define B576000 0010006 | ||
178 | #define B1000000 0010010 | ||
179 | #define B1152000 0010011 | ||
180 | #define B1500000 0010012 | ||
181 | #define B2000000 0010013 | ||
182 | #define B2500000 0010014 | ||
183 | #define B3000000 0010015 | ||
184 | #define B3500000 0010016 | ||
185 | #define B4000000 0010017 | ||
186 | |||
174 | /* etrax supports these additional three baud rates */ | 187 | /* etrax supports these additional three baud rates */ |
175 | #define B921600 0010005 | 188 | #define B921600 0010005 |
176 | #define B1843200 0010006 | 189 | #define B1843200 0010006 |
diff --git a/include/asm-cris/thread_info.h b/include/asm-cris/thread_info.h index fde39f6c49c7..784668ab0fa2 100644 --- a/include/asm-cris/thread_info.h +++ b/include/asm-cris/thread_info.h | |||
@@ -32,6 +32,7 @@ struct thread_info { | |||
32 | unsigned long flags; /* low level flags */ | 32 | unsigned long flags; /* low level flags */ |
33 | __u32 cpu; /* current CPU */ | 33 | __u32 cpu; /* current CPU */ |
34 | int preempt_count; /* 0 => preemptable, <0 => BUG */ | 34 | int preempt_count; /* 0 => preemptable, <0 => BUG */ |
35 | __u32 tls; /* TLS for this thread */ | ||
35 | 36 | ||
36 | mm_segment_t addr_limit; /* thread address space: | 37 | mm_segment_t addr_limit; /* thread address space: |
37 | 0-0xBFFFFFFF for user-thead | 38 | 0-0xBFFFFFFF for user-thead |
@@ -79,14 +80,18 @@ struct thread_info { | |||
79 | * - other flags in MSW | 80 | * - other flags in MSW |
80 | */ | 81 | */ |
81 | #define TIF_SYSCALL_TRACE 0 /* syscall trace active */ | 82 | #define TIF_SYSCALL_TRACE 0 /* syscall trace active */ |
82 | #define TIF_SIGPENDING 1 /* signal pending */ | 83 | #define TIF_NOTIFY_RESUME 1 /* resumption notification requested */ |
83 | #define TIF_NEED_RESCHED 2 /* rescheduling necessary */ | 84 | #define TIF_SIGPENDING 2 /* signal pending */ |
85 | #define TIF_NEED_RESCHED 3 /* rescheduling necessary */ | ||
86 | #define TIF_RESTORE_SIGMASK 9 /* restore signal mask in do_signal() */ | ||
84 | #define TIF_POLLING_NRFLAG 16 /* true if poll_idle() is polling TIF_NEED_RESCHED */ | 87 | #define TIF_POLLING_NRFLAG 16 /* true if poll_idle() is polling TIF_NEED_RESCHED */ |
85 | #define TIF_MEMDIE 17 | 88 | #define TIF_MEMDIE 17 |
86 | 89 | ||
87 | #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE) | 90 | #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE) |
91 | #define _TIF_NOTIFY_RESUME (1<<TIF_NOTIFY_RESUME) | ||
88 | #define _TIF_SIGPENDING (1<<TIF_SIGPENDING) | 92 | #define _TIF_SIGPENDING (1<<TIF_SIGPENDING) |
89 | #define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED) | 93 | #define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED) |
94 | #define _TIF_RESTORE_SIGMASK (1<<TIF_RESTORE_SIGMASK) | ||
90 | #define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG) | 95 | #define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG) |
91 | 96 | ||
92 | #define _TIF_WORK_MASK 0x0000FFFE /* work to do on interrupt/exception return */ | 97 | #define _TIF_WORK_MASK 0x0000FFFE /* work to do on interrupt/exception return */ |
diff --git a/include/asm-cris/tlb.h b/include/asm-cris/tlb.h index 6cc26debe40f..7724246a2601 100644 --- a/include/asm-cris/tlb.h +++ b/include/asm-cris/tlb.h | |||
@@ -1,6 +1,8 @@ | |||
1 | #ifndef _CRIS_TLB_H | 1 | #ifndef _CRIS_TLB_H |
2 | #define _CRIS_TLB_H | 2 | #define _CRIS_TLB_H |
3 | 3 | ||
4 | #include <linux/pagemap.h> | ||
5 | |||
4 | #include <asm/arch/tlb.h> | 6 | #include <asm/arch/tlb.h> |
5 | 7 | ||
6 | /* | 8 | /* |
diff --git a/include/asm-cris/unistd.h b/include/asm-cris/unistd.h index 7c90fa970c38..6f2d924f4fd6 100644 --- a/include/asm-cris/unistd.h +++ b/include/asm-cris/unistd.h | |||
@@ -255,6 +255,7 @@ | |||
255 | #define __NR_io_submit 248 | 255 | #define __NR_io_submit 248 |
256 | #define __NR_io_cancel 249 | 256 | #define __NR_io_cancel 249 |
257 | #define __NR_fadvise64 250 | 257 | #define __NR_fadvise64 250 |
258 | /* 251 is available for reuse (was briefly sys_set_zone_reclaim) */ | ||
258 | #define __NR_exit_group 252 | 259 | #define __NR_exit_group 252 |
259 | #define __NR_lookup_dcookie 253 | 260 | #define __NR_lookup_dcookie 253 |
260 | #define __NR_epoll_create 254 | 261 | #define __NR_epoll_create 254 |
@@ -292,10 +293,46 @@ | |||
292 | #define __NR_add_key 286 | 293 | #define __NR_add_key 286 |
293 | #define __NR_request_key 287 | 294 | #define __NR_request_key 287 |
294 | #define __NR_keyctl 288 | 295 | #define __NR_keyctl 288 |
296 | #define __NR_ioprio_set 289 | ||
297 | #define __NR_ioprio_get 290 | ||
298 | #define __NR_inotify_init 291 | ||
299 | #define __NR_inotify_add_watch 292 | ||
300 | #define __NR_inotify_rm_watch 293 | ||
301 | #define __NR_migrate_pages 294 | ||
302 | #define __NR_openat 295 | ||
303 | #define __NR_mkdirat 296 | ||
304 | #define __NR_mknodat 297 | ||
305 | #define __NR_fchownat 298 | ||
306 | #define __NR_futimesat 299 | ||
307 | #define __NR_fstatat64 300 | ||
308 | #define __NR_unlinkat 301 | ||
309 | #define __NR_renameat 302 | ||
310 | #define __NR_linkat 303 | ||
311 | #define __NR_symlinkat 304 | ||
312 | #define __NR_readlinkat 305 | ||
313 | #define __NR_fchmodat 306 | ||
314 | #define __NR_faccessat 307 | ||
315 | #define __NR_pselect6 308 | ||
316 | #define __NR_ppoll 309 | ||
317 | #define __NR_unshare 310 | ||
318 | #define __NR_set_robust_list 311 | ||
319 | #define __NR_get_robust_list 312 | ||
320 | #define __NR_splice 313 | ||
321 | #define __NR_sync_file_range 314 | ||
322 | #define __NR_tee 315 | ||
323 | #define __NR_vmsplice 316 | ||
324 | #define __NR_move_pages 317 | ||
325 | #define __NR_getcpu 318 | ||
326 | #define __NR_epoll_pwait 319 | ||
327 | #define __NR_utimensat 320 | ||
328 | #define __NR_signalfd 321 | ||
329 | #define __NR_timerfd 322 | ||
330 | #define __NR_eventfd 323 | ||
331 | #define __NR_fallocate 324 | ||
295 | 332 | ||
296 | #ifdef __KERNEL__ | 333 | #ifdef __KERNEL__ |
297 | 334 | ||
298 | #define NR_syscalls 289 | 335 | #define NR_syscalls 325 |
299 | 336 | ||
300 | #include <asm/arch/unistd.h> | 337 | #include <asm/arch/unistd.h> |
301 | 338 | ||
diff --git a/include/asm-frv/irq.h b/include/asm-frv/irq.h index 8fefd6b827aa..3a66ebd754bd 100644 --- a/include/asm-frv/irq.h +++ b/include/asm-frv/irq.h | |||
@@ -12,9 +12,6 @@ | |||
12 | #ifndef _ASM_IRQ_H_ | 12 | #ifndef _ASM_IRQ_H_ |
13 | #define _ASM_IRQ_H_ | 13 | #define _ASM_IRQ_H_ |
14 | 14 | ||
15 | /* this number is used when no interrupt has been assigned */ | ||
16 | #define NO_IRQ (-1) | ||
17 | |||
18 | #define NR_IRQS 48 | 15 | #define NR_IRQS 48 |
19 | #define IRQ_BASE_CPU (0 * 16) | 16 | #define IRQ_BASE_CPU (0 * 16) |
20 | #define IRQ_BASE_FPGA (1 * 16) | 17 | #define IRQ_BASE_FPGA (1 * 16) |
diff --git a/include/asm-generic/resource.h b/include/asm-generic/resource.h index cfe3692b23e5..a4a22cc35898 100644 --- a/include/asm-generic/resource.h +++ b/include/asm-generic/resource.h | |||
@@ -12,7 +12,7 @@ | |||
12 | * then it defines them prior including asm-generic/resource.h. ) | 12 | * then it defines them prior including asm-generic/resource.h. ) |
13 | */ | 13 | */ |
14 | 14 | ||
15 | #define RLIMIT_CPU 0 /* CPU time in ms */ | 15 | #define RLIMIT_CPU 0 /* CPU time in sec */ |
16 | #define RLIMIT_FSIZE 1 /* Maximum filesize */ | 16 | #define RLIMIT_FSIZE 1 /* Maximum filesize */ |
17 | #define RLIMIT_DATA 2 /* max data size */ | 17 | #define RLIMIT_DATA 2 /* max data size */ |
18 | #define RLIMIT_STACK 3 /* max stack size */ | 18 | #define RLIMIT_STACK 3 /* max stack size */ |
diff --git a/include/asm-ia64/acpi.h b/include/asm-ia64/acpi.h index 49730ffbbae4..81bcd5e51789 100644 --- a/include/asm-ia64/acpi.h +++ b/include/asm-ia64/acpi.h | |||
@@ -94,6 +94,7 @@ ia64_acpi_release_global_lock (unsigned int *lock) | |||
94 | #define acpi_noirq 0 /* ACPI always enabled on IA64 */ | 94 | #define acpi_noirq 0 /* ACPI always enabled on IA64 */ |
95 | #define acpi_pci_disabled 0 /* ACPI PCI always enabled on IA64 */ | 95 | #define acpi_pci_disabled 0 /* ACPI PCI always enabled on IA64 */ |
96 | #define acpi_strict 1 /* no ACPI spec workarounds on IA64 */ | 96 | #define acpi_strict 1 /* no ACPI spec workarounds on IA64 */ |
97 | #define acpi_processor_cstate_check(x) (x) /* no idle limits on IA64 :) */ | ||
97 | static inline void disable_acpi(void) { } | 98 | static inline void disable_acpi(void) { } |
98 | 99 | ||
99 | const char *acpi_get_sysname (void); | 100 | const char *acpi_get_sysname (void); |
diff --git a/include/asm-ia64/pal.h b/include/asm-ia64/pal.h index abfcb3a2588f..8a695d3407d2 100644 --- a/include/asm-ia64/pal.h +++ b/include/asm-ia64/pal.h | |||
@@ -1379,10 +1379,11 @@ struct pal_features_s; | |||
1379 | static inline s64 | 1379 | static inline s64 |
1380 | ia64_pal_proc_get_features (u64 *features_avail, | 1380 | ia64_pal_proc_get_features (u64 *features_avail, |
1381 | u64 *features_status, | 1381 | u64 *features_status, |
1382 | u64 *features_control) | 1382 | u64 *features_control, |
1383 | u64 features_set) | ||
1383 | { | 1384 | { |
1384 | struct ia64_pal_retval iprv; | 1385 | struct ia64_pal_retval iprv; |
1385 | PAL_CALL_PHYS(iprv, PAL_PROC_GET_FEATURES, 0, 0, 0); | 1386 | PAL_CALL_PHYS(iprv, PAL_PROC_GET_FEATURES, 0, features_set, 0); |
1386 | if (iprv.status == 0) { | 1387 | if (iprv.status == 0) { |
1387 | *features_avail = iprv.v0; | 1388 | *features_avail = iprv.v0; |
1388 | *features_status = iprv.v1; | 1389 | *features_status = iprv.v1; |
diff --git a/include/asm-ia64/percpu.h b/include/asm-ia64/percpu.h index 43a7aac414e0..c4f1e328a5ba 100644 --- a/include/asm-ia64/percpu.h +++ b/include/asm-ia64/percpu.h | |||
@@ -46,7 +46,7 @@ | |||
46 | #ifdef CONFIG_SMP | 46 | #ifdef CONFIG_SMP |
47 | 47 | ||
48 | extern unsigned long __per_cpu_offset[NR_CPUS]; | 48 | extern unsigned long __per_cpu_offset[NR_CPUS]; |
49 | #define per_cpu_offset(x) (__per_cpu_offset(x)) | 49 | #define per_cpu_offset(x) (__per_cpu_offset[x]) |
50 | 50 | ||
51 | /* Equal to __per_cpu_offset[smp_processor_id()], but faster to access: */ | 51 | /* Equal to __per_cpu_offset[smp_processor_id()], but faster to access: */ |
52 | DECLARE_PER_CPU(unsigned long, local_per_cpu_offset); | 52 | DECLARE_PER_CPU(unsigned long, local_per_cpu_offset); |
diff --git a/include/asm-ia64/smp.h b/include/asm-ia64/smp.h index 471cc2ee9ac4..4fa733dd417a 100644 --- a/include/asm-ia64/smp.h +++ b/include/asm-ia64/smp.h | |||
@@ -60,7 +60,6 @@ extern cpumask_t cpu_online_map; | |||
60 | extern cpumask_t cpu_core_map[NR_CPUS]; | 60 | extern cpumask_t cpu_core_map[NR_CPUS]; |
61 | DECLARE_PER_CPU(cpumask_t, cpu_sibling_map); | 61 | DECLARE_PER_CPU(cpumask_t, cpu_sibling_map); |
62 | extern int smp_num_siblings; | 62 | extern int smp_num_siblings; |
63 | extern int smp_num_cpucores; | ||
64 | extern void __iomem *ipi_base_addr; | 63 | extern void __iomem *ipi_base_addr; |
65 | extern unsigned char smp_int_redirect; | 64 | extern unsigned char smp_int_redirect; |
66 | 65 | ||
diff --git a/include/asm-m68knommu/unistd.h b/include/asm-m68knommu/unistd.h index eb1b566793fe..27c2f9bb4dbd 100644 --- a/include/asm-m68knommu/unistd.h +++ b/include/asm-m68knommu/unistd.h | |||
@@ -185,8 +185,8 @@ | |||
185 | #define __NR_rt_sigtimedwait 177 | 185 | #define __NR_rt_sigtimedwait 177 |
186 | #define __NR_rt_sigqueueinfo 178 | 186 | #define __NR_rt_sigqueueinfo 178 |
187 | #define __NR_rt_sigsuspend 179 | 187 | #define __NR_rt_sigsuspend 179 |
188 | #define __NR_pread 180 | 188 | #define __NR_pread64 180 |
189 | #define __NR_pwrite 181 | 189 | #define __NR_pwrite64 181 |
190 | #define __NR_lchown 182 | 190 | #define __NR_lchown 182 |
191 | #define __NR_getcwd 183 | 191 | #define __NR_getcwd 183 |
192 | #define __NR_capget 184 | 192 | #define __NR_capget 184 |
diff --git a/include/asm-mips/8253pit.h b/include/asm-mips/8253pit.h deleted file mode 100644 index 285f78488ccb..000000000000 --- a/include/asm-mips/8253pit.h +++ /dev/null | |||
@@ -1,10 +0,0 @@ | |||
1 | /* | ||
2 | * 8253/8254 Programmable Interval Timer | ||
3 | */ | ||
4 | |||
5 | #ifndef _8253PIT_H | ||
6 | #define _8253PIT_H | ||
7 | |||
8 | #define PIT_TICK_RATE 1193182UL | ||
9 | |||
10 | #endif | ||
diff --git a/include/asm-mips/cpu-info.h b/include/asm-mips/cpu-info.h index 94f1c8172360..ed5c02c6afbb 100644 --- a/include/asm-mips/cpu-info.h +++ b/include/asm-mips/cpu-info.h | |||
@@ -54,6 +54,7 @@ struct cpuinfo_mips { | |||
54 | struct cache_desc dcache; /* Primary D or combined I/D cache */ | 54 | struct cache_desc dcache; /* Primary D or combined I/D cache */ |
55 | struct cache_desc scache; /* Secondary cache */ | 55 | struct cache_desc scache; /* Secondary cache */ |
56 | struct cache_desc tcache; /* Tertiary/split secondary cache */ | 56 | struct cache_desc tcache; /* Tertiary/split secondary cache */ |
57 | int srsets; /* Shadow register sets */ | ||
57 | #if defined(CONFIG_MIPS_MT_SMTC) | 58 | #if defined(CONFIG_MIPS_MT_SMTC) |
58 | /* | 59 | /* |
59 | * In the MIPS MT "SMTC" model, each TC is considered | 60 | * In the MIPS MT "SMTC" model, each TC is considered |
diff --git a/include/asm-mips/dma.h b/include/asm-mips/dma.h index 833437d31ef1..d6a6c21f16db 100644 --- a/include/asm-mips/dma.h +++ b/include/asm-mips/dma.h | |||
@@ -92,6 +92,7 @@ | |||
92 | #define MAX_DMA_ADDRESS (PAGE_OFFSET + 0x01000000) | 92 | #define MAX_DMA_ADDRESS (PAGE_OFFSET + 0x01000000) |
93 | #endif | 93 | #endif |
94 | #define MAX_DMA_PFN PFN_DOWN(virt_to_phys((void *)MAX_DMA_ADDRESS)) | 94 | #define MAX_DMA_PFN PFN_DOWN(virt_to_phys((void *)MAX_DMA_ADDRESS)) |
95 | #define MAX_DMA32_PFN (1UL << (32 - PAGE_SHIFT)) | ||
95 | 96 | ||
96 | /* 8237 DMA controllers */ | 97 | /* 8237 DMA controllers */ |
97 | #define IO_DMA1_BASE 0x00 /* 8 bit slave DMA, channels 0..3 */ | 98 | #define IO_DMA1_BASE 0x00 /* 8 bit slave DMA, channels 0..3 */ |
diff --git a/include/asm-mips/futex.h b/include/asm-mips/futex.h index 3e7e30d4f418..17f082cfea85 100644 --- a/include/asm-mips/futex.h +++ b/include/asm-mips/futex.h | |||
@@ -35,7 +35,7 @@ | |||
35 | " .set mips0 \n" \ | 35 | " .set mips0 \n" \ |
36 | " .section .fixup,\"ax\" \n" \ | 36 | " .section .fixup,\"ax\" \n" \ |
37 | "4: li %0, %6 \n" \ | 37 | "4: li %0, %6 \n" \ |
38 | " j 2b \n" \ | 38 | " j 3b \n" \ |
39 | " .previous \n" \ | 39 | " .previous \n" \ |
40 | " .section __ex_table,\"a\" \n" \ | 40 | " .section __ex_table,\"a\" \n" \ |
41 | " "__UA_ADDR "\t1b, 4b \n" \ | 41 | " "__UA_ADDR "\t1b, 4b \n" \ |
@@ -61,7 +61,7 @@ | |||
61 | " .set mips0 \n" \ | 61 | " .set mips0 \n" \ |
62 | " .section .fixup,\"ax\" \n" \ | 62 | " .section .fixup,\"ax\" \n" \ |
63 | "4: li %0, %6 \n" \ | 63 | "4: li %0, %6 \n" \ |
64 | " j 2b \n" \ | 64 | " j 3b \n" \ |
65 | " .previous \n" \ | 65 | " .previous \n" \ |
66 | " .section __ex_table,\"a\" \n" \ | 66 | " .section __ex_table,\"a\" \n" \ |
67 | " "__UA_ADDR "\t1b, 4b \n" \ | 67 | " "__UA_ADDR "\t1b, 4b \n" \ |
@@ -200,4 +200,4 @@ futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval) | |||
200 | } | 200 | } |
201 | 201 | ||
202 | #endif | 202 | #endif |
203 | #endif | 203 | #endif /* _ASM_FUTEX_H */ |
diff --git a/include/asm-mips/i8253.h b/include/asm-mips/i8253.h index affb32ce4af9..5dabc870b322 100644 --- a/include/asm-mips/i8253.h +++ b/include/asm-mips/i8253.h | |||
@@ -5,25 +5,16 @@ | |||
5 | #ifndef __ASM_I8253_H | 5 | #ifndef __ASM_I8253_H |
6 | #define __ASM_I8253_H | 6 | #define __ASM_I8253_H |
7 | 7 | ||
8 | #include <linux/spinlock.h> | ||
9 | |||
8 | /* i8253A PIT registers */ | 10 | /* i8253A PIT registers */ |
9 | #define PIT_MODE 0x43 | 11 | #define PIT_MODE 0x43 |
10 | #define PIT_CH0 0x40 | 12 | #define PIT_CH0 0x40 |
11 | #define PIT_CH2 0x42 | 13 | #define PIT_CH2 0x42 |
12 | 14 | ||
13 | /* i8259A PIC registers */ | 15 | #define PIT_TICK_RATE 1193182UL |
14 | #define PIC_MASTER_CMD 0x20 | ||
15 | #define PIC_MASTER_IMR 0x21 | ||
16 | #define PIC_MASTER_ISR PIC_MASTER_CMD | ||
17 | #define PIC_MASTER_POLL PIC_MASTER_ISR | ||
18 | #define PIC_MASTER_OCW3 PIC_MASTER_ISR | ||
19 | #define PIC_SLAVE_CMD 0xa0 | ||
20 | #define PIC_SLAVE_IMR 0xa1 | ||
21 | 16 | ||
22 | /* i8259A PIC related value */ | 17 | extern spinlock_t i8253_lock; |
23 | #define PIC_CASCADE_IR 2 | ||
24 | #define MASTER_ICW4_DEFAULT 0x01 | ||
25 | #define SLAVE_ICW4_DEFAULT 0x01 | ||
26 | #define PIC_ICW4_AEOI 2 | ||
27 | 18 | ||
28 | extern void setup_pit_timer(void); | 19 | extern void setup_pit_timer(void); |
29 | 20 | ||
diff --git a/include/asm-mips/ip32/ip32_ints.h b/include/asm-mips/ip32/ip32_ints.h index 042f821899a8..85bc5302bce0 100644 --- a/include/asm-mips/ip32/ip32_ints.h +++ b/include/asm-mips/ip32/ip32_ints.h | |||
@@ -22,10 +22,12 @@ enum ip32_irq_no { | |||
22 | * CPU interrupts are 0 ... 7 | 22 | * CPU interrupts are 0 ... 7 |
23 | */ | 23 | */ |
24 | 24 | ||
25 | CRIME_IRQ_BASE = MIPS_CPU_IRQ_BASE + 8, | ||
26 | |||
25 | /* | 27 | /* |
26 | * MACE | 28 | * MACE |
27 | */ | 29 | */ |
28 | MACE_VID_IN1_IRQ = MIPS_CPU_IRQ_BASE + 8, | 30 | MACE_VID_IN1_IRQ = CRIME_IRQ_BASE, |
29 | MACE_VID_IN2_IRQ, | 31 | MACE_VID_IN2_IRQ, |
30 | MACE_VID_OUT_IRQ, | 32 | MACE_VID_OUT_IRQ, |
31 | MACE_ETHERNET_IRQ, | 33 | MACE_ETHERNET_IRQ, |
diff --git a/include/asm-mips/jmr3927/jmr3927.h b/include/asm-mips/jmr3927/jmr3927.h index b2dc35f56181..81602c8047eb 100644 --- a/include/asm-mips/jmr3927/jmr3927.h +++ b/include/asm-mips/jmr3927/jmr3927.h | |||
@@ -132,9 +132,7 @@ | |||
132 | #define JMR3927_IRQ_IRC_DMA (JMR3927_IRQ_IRC + TX3927_IR_DMA) | 132 | #define JMR3927_IRQ_IRC_DMA (JMR3927_IRQ_IRC + TX3927_IR_DMA) |
133 | #define JMR3927_IRQ_IRC_PIO (JMR3927_IRQ_IRC + TX3927_IR_PIO) | 133 | #define JMR3927_IRQ_IRC_PIO (JMR3927_IRQ_IRC + TX3927_IR_PIO) |
134 | #define JMR3927_IRQ_IRC_PCI (JMR3927_IRQ_IRC + TX3927_IR_PCI) | 134 | #define JMR3927_IRQ_IRC_PCI (JMR3927_IRQ_IRC + TX3927_IR_PCI) |
135 | #define JMR3927_IRQ_IRC_TMR0 (JMR3927_IRQ_IRC + TX3927_IR_TMR0) | 135 | #define JMR3927_IRQ_IRC_TMR(ch) (JMR3927_IRQ_IRC + TX3927_IR_TMR(ch)) |
136 | #define JMR3927_IRQ_IRC_TMR1 (JMR3927_IRQ_IRC + TX3927_IR_TMR1) | ||
137 | #define JMR3927_IRQ_IRC_TMR2 (JMR3927_IRQ_IRC + TX3927_IR_TMR2) | ||
138 | #define JMR3927_IRQ_IOC_PCIA (JMR3927_IRQ_IOC + JMR3927_IOC_INTB_PCIA) | 136 | #define JMR3927_IRQ_IOC_PCIA (JMR3927_IRQ_IOC + JMR3927_IOC_INTB_PCIA) |
139 | #define JMR3927_IRQ_IOC_PCIB (JMR3927_IRQ_IOC + JMR3927_IOC_INTB_PCIB) | 137 | #define JMR3927_IRQ_IOC_PCIB (JMR3927_IRQ_IOC + JMR3927_IOC_INTB_PCIB) |
140 | #define JMR3927_IRQ_IOC_PCIC (JMR3927_IRQ_IOC + JMR3927_IOC_INTB_PCIC) | 138 | #define JMR3927_IRQ_IOC_PCIC (JMR3927_IRQ_IOC + JMR3927_IOC_INTB_PCIC) |
@@ -148,17 +146,12 @@ | |||
148 | #define JMR3927_IRQ_IOCINT JMR3927_IRQ_IRC_INT1 | 146 | #define JMR3927_IRQ_IOCINT JMR3927_IRQ_IRC_INT1 |
149 | /* TC35815 100M Ether (JMR-TX3912:JPW4:2-3 Short) */ | 147 | /* TC35815 100M Ether (JMR-TX3912:JPW4:2-3 Short) */ |
150 | #define JMR3927_IRQ_ETHER0 JMR3927_IRQ_IRC_INT3 | 148 | #define JMR3927_IRQ_ETHER0 JMR3927_IRQ_IRC_INT3 |
151 | /* Clock Tick (10ms) */ | ||
152 | #define JMR3927_IRQ_TICK JMR3927_IRQ_IRC_TMR0 | ||
153 | 149 | ||
154 | /* Clocks */ | 150 | /* Clocks */ |
155 | #define JMR3927_CORECLK 132710400 /* 132.7MHz */ | 151 | #define JMR3927_CORECLK 132710400 /* 132.7MHz */ |
156 | #define JMR3927_GBUSCLK (JMR3927_CORECLK / 2) /* 66.35MHz */ | 152 | #define JMR3927_GBUSCLK (JMR3927_CORECLK / 2) /* 66.35MHz */ |
157 | #define JMR3927_IMCLK (JMR3927_CORECLK / 4) /* 33.17MHz */ | 153 | #define JMR3927_IMCLK (JMR3927_CORECLK / 4) /* 33.17MHz */ |
158 | 154 | ||
159 | #define jmr3927_tmrptr tx3927_tmrptr(0) /* TMR0 */ | ||
160 | |||
161 | |||
162 | /* | 155 | /* |
163 | * TX3927 Pin Configuration: | 156 | * TX3927 Pin Configuration: |
164 | * | 157 | * |
diff --git a/include/asm-mips/jmr3927/tx3927.h b/include/asm-mips/jmr3927/tx3927.h index 211bcf47fffb..338f99882a39 100644 --- a/include/asm-mips/jmr3927/tx3927.h +++ b/include/asm-mips/jmr3927/tx3927.h | |||
@@ -222,9 +222,7 @@ struct tx3927_ccfg_reg { | |||
222 | #define TX3927_IR_DMA 8 | 222 | #define TX3927_IR_DMA 8 |
223 | #define TX3927_IR_PIO 9 | 223 | #define TX3927_IR_PIO 9 |
224 | #define TX3927_IR_PCI 10 | 224 | #define TX3927_IR_PCI 10 |
225 | #define TX3927_IR_TMR0 13 | 225 | #define TX3927_IR_TMR(ch) (13 + (ch)) |
226 | #define TX3927_IR_TMR1 14 | ||
227 | #define TX3927_IR_TMR2 15 | ||
228 | #define TX3927_NUM_IR 16 | 226 | #define TX3927_NUM_IR 16 |
229 | 227 | ||
230 | /* | 228 | /* |
diff --git a/include/asm-mips/jmr3927/txx927.h b/include/asm-mips/jmr3927/txx927.h index 58a8ff6be815..0474fe8dac3f 100644 --- a/include/asm-mips/jmr3927/txx927.h +++ b/include/asm-mips/jmr3927/txx927.h | |||
@@ -10,22 +10,6 @@ | |||
10 | #ifndef __ASM_TXX927_H | 10 | #ifndef __ASM_TXX927_H |
11 | #define __ASM_TXX927_H | 11 | #define __ASM_TXX927_H |
12 | 12 | ||
13 | struct txx927_tmr_reg { | ||
14 | volatile unsigned long tcr; | ||
15 | volatile unsigned long tisr; | ||
16 | volatile unsigned long cpra; | ||
17 | volatile unsigned long cprb; | ||
18 | volatile unsigned long itmr; | ||
19 | volatile unsigned long unused0[3]; | ||
20 | volatile unsigned long ccdr; | ||
21 | volatile unsigned long unused1[3]; | ||
22 | volatile unsigned long pgmr; | ||
23 | volatile unsigned long unused2[3]; | ||
24 | volatile unsigned long wtmr; | ||
25 | volatile unsigned long unused3[43]; | ||
26 | volatile unsigned long trr; | ||
27 | }; | ||
28 | |||
29 | struct txx927_sio_reg { | 13 | struct txx927_sio_reg { |
30 | volatile unsigned long lcr; | 14 | volatile unsigned long lcr; |
31 | volatile unsigned long dicr; | 15 | volatile unsigned long dicr; |
@@ -51,27 +35,6 @@ struct txx927_pio_reg { | |||
51 | }; | 35 | }; |
52 | 36 | ||
53 | /* | 37 | /* |
54 | * TMR | ||
55 | */ | ||
56 | /* TMTCR : Timer Control */ | ||
57 | #define TXx927_TMTCR_TCE 0x00000080 | ||
58 | #define TXx927_TMTCR_CCDE 0x00000040 | ||
59 | #define TXx927_TMTCR_CRE 0x00000020 | ||
60 | #define TXx927_TMTCR_ECES 0x00000008 | ||
61 | #define TXx927_TMTCR_CCS 0x00000004 | ||
62 | #define TXx927_TMTCR_TMODE_MASK 0x00000003 | ||
63 | #define TXx927_TMTCR_TMODE_ITVL 0x00000000 | ||
64 | |||
65 | /* TMTISR : Timer Int. Status */ | ||
66 | #define TXx927_TMTISR_TPIBS 0x00000004 | ||
67 | #define TXx927_TMTISR_TPIAS 0x00000002 | ||
68 | #define TXx927_TMTISR_TIIS 0x00000001 | ||
69 | |||
70 | /* TMTITMR : Interval Timer Mode */ | ||
71 | #define TXx927_TMTITMR_TIIE 0x00008000 | ||
72 | #define TXx927_TMTITMR_TZCE 0x00000001 | ||
73 | |||
74 | /* | ||
75 | * SIO | 38 | * SIO |
76 | */ | 39 | */ |
77 | /* SILCR : Line Control */ | 40 | /* SILCR : Line Control */ |
diff --git a/include/asm-mips/lasat/lasatint.h b/include/asm-mips/lasat/lasatint.h index 581dc45685a2..e0d2458b43d0 100644 --- a/include/asm-mips/lasat/lasatint.h +++ b/include/asm-mips/lasat/lasatint.h | |||
@@ -1,11 +1,6 @@ | |||
1 | #ifndef __ASM_LASAT_LASATINT_H | 1 | #ifndef __ASM_LASAT_LASATINT_H |
2 | #define __ASM_LASAT_LASATINT_H | 2 | #define __ASM_LASAT_LASATINT_H |
3 | 3 | ||
4 | #include <linux/irq.h> | ||
5 | |||
6 | #define LASATINT_BASE MIPS_CPU_IRQ_BASE | ||
7 | #define LASATINT_END (LASATINT_BASE + 16) | ||
8 | |||
9 | /* lasat 100 */ | 4 | /* lasat 100 */ |
10 | #define LASAT_INT_STATUS_REG_100 (KSEG1ADDR(0x1c880000)) | 5 | #define LASAT_INT_STATUS_REG_100 (KSEG1ADDR(0x1c880000)) |
11 | #define LASAT_INT_MASK_REG_100 (KSEG1ADDR(0x1c890000)) | 6 | #define LASAT_INT_MASK_REG_100 (KSEG1ADDR(0x1c890000)) |
diff --git a/include/asm-mips/mach-au1x00/timex.h b/include/asm-mips/mach-au1x00/timex.h deleted file mode 100644 index e3ada66cb636..000000000000 --- a/include/asm-mips/mach-au1x00/timex.h +++ /dev/null | |||
@@ -1,13 +0,0 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 2003 by Ralf Baechle | ||
7 | */ | ||
8 | #ifndef __ASM_MACH_AU1X00_TIMEX_H | ||
9 | #define __ASM_MACH_AU1X00_TIMEX_H | ||
10 | |||
11 | #define CLOCK_TICK_RATE ((HZ * 100000UL) / 2) | ||
12 | |||
13 | #endif /* __ASM_MACH_AU1X00_TIMEX_H */ | ||
diff --git a/include/asm-mips/mach-cobalt/irq.h b/include/asm-mips/mach-cobalt/irq.h index 179d0e850b59..57c8c9ac5851 100644 --- a/include/asm-mips/mach-cobalt/irq.h +++ b/include/asm-mips/mach-cobalt/irq.h | |||
@@ -35,7 +35,7 @@ | |||
35 | * 4 - ethernet | 35 | * 4 - ethernet |
36 | * 5 - 16550 UART | 36 | * 5 - 16550 UART |
37 | * 6 - cascade i8259 | 37 | * 6 - cascade i8259 |
38 | * 7 - CP0 counter (unused) | 38 | * 7 - CP0 counter |
39 | */ | 39 | */ |
40 | #define MIPS_CPU_IRQ_BASE 16 | 40 | #define MIPS_CPU_IRQ_BASE 16 |
41 | 41 | ||
@@ -48,7 +48,6 @@ | |||
48 | #define SCSI_IRQ (MIPS_CPU_IRQ_BASE + 5) | 48 | #define SCSI_IRQ (MIPS_CPU_IRQ_BASE + 5) |
49 | #define I8259_CASCADE_IRQ (MIPS_CPU_IRQ_BASE + 6) | 49 | #define I8259_CASCADE_IRQ (MIPS_CPU_IRQ_BASE + 6) |
50 | 50 | ||
51 | |||
52 | #define GT641XX_IRQ_BASE 24 | 51 | #define GT641XX_IRQ_BASE 24 |
53 | 52 | ||
54 | #include <asm/irq_gt641xx.h> | 53 | #include <asm/irq_gt641xx.h> |
diff --git a/include/asm-mips/mach-generic/timex.h b/include/asm-mips/mach-generic/timex.h deleted file mode 100644 index 48b4cfaa0d50..000000000000 --- a/include/asm-mips/mach-generic/timex.h +++ /dev/null | |||
@@ -1,13 +0,0 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 2003, 2005 by Ralf Baechle | ||
7 | */ | ||
8 | #ifndef __ASM_MACH_GENERIC_TIMEX_H | ||
9 | #define __ASM_MACH_GENERIC_TIMEX_H | ||
10 | |||
11 | #define CLOCK_TICK_RATE 500000 | ||
12 | |||
13 | #endif /* __ASM_MACH_GENERIC_TIMEX_H */ | ||
diff --git a/include/asm-mips/mach-jazz/timex.h b/include/asm-mips/mach-jazz/timex.h deleted file mode 100644 index 93affa33dfa8..000000000000 --- a/include/asm-mips/mach-jazz/timex.h +++ /dev/null | |||
@@ -1,16 +0,0 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 2003 by Ralf Baechle | ||
7 | */ | ||
8 | #ifndef __ASM_MACH_JAZZ_TIMEX_H | ||
9 | #define __ASM_MACH_JAZZ_TIMEX_H | ||
10 | |||
11 | /* | ||
12 | * Jazz is still using the R4030 100Hz counter | ||
13 | */ | ||
14 | #define CLOCK_TICK_RATE 100 | ||
15 | |||
16 | #endif /* __ASM_MACH_JAZZ_TIMEX_H */ | ||
diff --git a/include/asm-mips/mach-lasat/irq.h b/include/asm-mips/mach-lasat/irq.h new file mode 100644 index 000000000000..da75f89f3723 --- /dev/null +++ b/include/asm-mips/mach-lasat/irq.h | |||
@@ -0,0 +1,13 @@ | |||
1 | #ifndef _ASM_MACH_LASAT_IRQ_H | ||
2 | #define _ASM_MACH_LASAT_IRQ_H | ||
3 | |||
4 | #define LASAT_CASCADE_IRQ (MIPS_CPU_IRQ_BASE + 0) | ||
5 | |||
6 | #define LASAT_IRQ_BASE 8 | ||
7 | #define LASAT_IRQ_END 23 | ||
8 | |||
9 | #define NR_IRQS 24 | ||
10 | |||
11 | #include_next <irq.h> | ||
12 | |||
13 | #endif /* _ASM_MACH_LASAT_IRQ_H */ | ||
diff --git a/include/asm-mips/mach-qemu/timex.h b/include/asm-mips/mach-qemu/timex.h deleted file mode 100644 index cd543693fb0a..000000000000 --- a/include/asm-mips/mach-qemu/timex.h +++ /dev/null | |||
@@ -1,16 +0,0 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 2005 Daniel Jacobowitz | ||
7 | */ | ||
8 | #ifndef __ASM_MACH_QEMU_TIMEX_H | ||
9 | #define __ASM_MACH_QEMU_TIMEX_H | ||
10 | |||
11 | /* | ||
12 | * We use a simulated i8254 PIC... | ||
13 | */ | ||
14 | #define CLOCK_TICK_RATE 1193182 | ||
15 | |||
16 | #endif /* __ASM_MACH_QEMU_TIMEX_H */ | ||
diff --git a/include/asm-mips/mach-rm/timex.h b/include/asm-mips/mach-rm/timex.h deleted file mode 100644 index 11ff6cb0f214..000000000000 --- a/include/asm-mips/mach-rm/timex.h +++ /dev/null | |||
@@ -1,13 +0,0 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 2003, 2005 by Ralf Baechle | ||
7 | */ | ||
8 | #ifndef __ASM_MACH_RM200_TIMEX_H | ||
9 | #define __ASM_MACH_RM200_TIMEX_H | ||
10 | |||
11 | #define CLOCK_TICK_RATE 1193182 | ||
12 | |||
13 | #endif /* __ASM_MACH_RM200_TIMEX_H */ | ||
diff --git a/include/asm-mips/system.h b/include/asm-mips/system.h index 90e4b403f531..1030562d6ea6 100644 --- a/include/asm-mips/system.h +++ b/include/asm-mips/system.h | |||
@@ -68,11 +68,15 @@ do { \ | |||
68 | if (cpu_has_dsp) \ | 68 | if (cpu_has_dsp) \ |
69 | __save_dsp(prev); \ | 69 | __save_dsp(prev); \ |
70 | (last) = resume(prev, next, task_thread_info(next)); \ | 70 | (last) = resume(prev, next, task_thread_info(next)); \ |
71 | } while (0) | ||
72 | |||
73 | #define finish_arch_switch(prev) \ | ||
74 | do { \ | ||
71 | if (cpu_has_dsp) \ | 75 | if (cpu_has_dsp) \ |
72 | __restore_dsp(current); \ | 76 | __restore_dsp(current); \ |
73 | if (cpu_has_userlocal) \ | 77 | if (cpu_has_userlocal) \ |
74 | write_c0_userlocal(task_thread_info(current)->tp_value);\ | 78 | write_c0_userlocal(current_thread_info()->tp_value); \ |
75 | } while(0) | 79 | } while (0) |
76 | 80 | ||
77 | static inline unsigned long __xchg_u32(volatile int * m, unsigned int val) | 81 | static inline unsigned long __xchg_u32(volatile int * m, unsigned int val) |
78 | { | 82 | { |
diff --git a/include/asm-mips/time.h b/include/asm-mips/time.h index bc47af313bcd..7717934f94c3 100644 --- a/include/asm-mips/time.h +++ b/include/asm-mips/time.h | |||
@@ -10,15 +10,10 @@ | |||
10 | * under the terms of the GNU General Public License as published by the | 10 | * under the terms of the GNU General Public License as published by the |
11 | * Free Software Foundation; either version 2 of the License, or (at your | 11 | * Free Software Foundation; either version 2 of the License, or (at your |
12 | * option) any later version. | 12 | * option) any later version. |
13 | * | ||
14 | * Please refer to Documentation/mips/time.README. | ||
15 | */ | 13 | */ |
16 | #ifndef _ASM_TIME_H | 14 | #ifndef _ASM_TIME_H |
17 | #define _ASM_TIME_H | 15 | #define _ASM_TIME_H |
18 | 16 | ||
19 | #include <linux/interrupt.h> | ||
20 | #include <linux/linkage.h> | ||
21 | #include <linux/ptrace.h> | ||
22 | #include <linux/rtc.h> | 17 | #include <linux/rtc.h> |
23 | #include <linux/spinlock.h> | 18 | #include <linux/spinlock.h> |
24 | #include <linux/clockchips.h> | 19 | #include <linux/clockchips.h> |
@@ -38,27 +33,13 @@ extern int rtc_mips_set_mmss(unsigned long); | |||
38 | /* | 33 | /* |
39 | * Timer interrupt functions. | 34 | * Timer interrupt functions. |
40 | * mips_timer_state is needed for high precision timer calibration. | 35 | * mips_timer_state is needed for high precision timer calibration. |
41 | * mips_timer_ack may be NULL if the interrupt is self-recoverable. | ||
42 | */ | 36 | */ |
43 | extern int (*mips_timer_state)(void); | 37 | extern int (*mips_timer_state)(void); |
44 | 38 | ||
45 | /* | 39 | /* |
46 | * High precision timer clocksource. | ||
47 | * If .read is NULL, an R4k-compatible timer setup is attempted. | ||
48 | */ | ||
49 | extern struct clocksource clocksource_mips; | ||
50 | |||
51 | /* | ||
52 | * profiling and process accouting is done separately in local_timer_interrupt | ||
53 | */ | ||
54 | extern void local_timer_interrupt(int irq, void *dev_id); | ||
55 | |||
56 | /* | ||
57 | * board specific routines required by time_init(). | 40 | * board specific routines required by time_init(). |
58 | */ | 41 | */ |
59 | struct irqaction; | ||
60 | extern void plat_time_init(void); | 42 | extern void plat_time_init(void); |
61 | extern void plat_timer_setup(struct irqaction *irq); | ||
62 | 43 | ||
63 | /* | 44 | /* |
64 | * mips_hpt_frequency - must be set if you intend to use an R4k-compatible | 45 | * mips_hpt_frequency - must be set if you intend to use an R4k-compatible |
@@ -77,9 +58,22 @@ extern int (*perf_irq)(void); | |||
77 | * Initialize the calling CPU's compare interrupt as clockevent device | 58 | * Initialize the calling CPU's compare interrupt as clockevent device |
78 | */ | 59 | */ |
79 | #ifdef CONFIG_CEVT_R4K | 60 | #ifdef CONFIG_CEVT_R4K |
80 | extern void mips_clockevent_init(void); | 61 | extern int mips_clockevent_init(void); |
62 | extern unsigned int __weak get_c0_compare_int(void); | ||
63 | #else | ||
64 | static inline int mips_clockevent_init(void) | ||
65 | { | ||
66 | return -ENXIO; | ||
67 | } | ||
68 | #endif | ||
69 | |||
70 | /* | ||
71 | * Initialize the count register as a clocksource | ||
72 | */ | ||
73 | #ifdef CONFIG_CEVT_R4K | ||
74 | extern void init_mips_clocksource(void); | ||
81 | #else | 75 | #else |
82 | static inline void mips_clockevent_init(void) | 76 | static inline void init_mips_clocksource(void) |
83 | { | 77 | { |
84 | } | 78 | } |
85 | #endif | 79 | #endif |
diff --git a/include/asm-mips/timex.h b/include/asm-mips/timex.h index 87c68ae76ff8..6529704aa73a 100644 --- a/include/asm-mips/timex.h +++ b/include/asm-mips/timex.h | |||
@@ -13,27 +13,12 @@ | |||
13 | #include <asm/mipsregs.h> | 13 | #include <asm/mipsregs.h> |
14 | 14 | ||
15 | /* | 15 | /* |
16 | * This is the frequency of the timer used for Linux's timer interrupt. | 16 | * This is the clock rate of the i8253 PIT. A MIPS system may not have |
17 | * The value should be defined as accurate as possible or under certain | 17 | * a PIT by the symbol is used all over the kernel including some APIs. |
18 | * circumstances Linux timekeeping might become inaccurate or fail. | 18 | * So keeping it defined to the number for the PIT is the only sane thing |
19 | * | 19 | * for now. |
20 | * For many system the exact clockrate of the timer isn't known but due to | ||
21 | * the way this value is used we can get away with a wrong value as long | ||
22 | * as this value is: | ||
23 | * | ||
24 | * - a multiple of HZ | ||
25 | * - a divisor of the actual rate | ||
26 | * | ||
27 | * 500000 is a good such cheat value. | ||
28 | * | ||
29 | * The obscure number 1193182 is the same as used by the original i8254 | ||
30 | * time in legacy PC hardware; the chip unfortunately also found in a | ||
31 | * bunch of MIPS systems. The last remaining user of the i8254 for the | ||
32 | * timer interrupt is the RM200; it's a very standard system so there is | ||
33 | * no reason to make this a separate architecture. | ||
34 | */ | 20 | */ |
35 | 21 | #define CLOCK_TICK_RATE 1193182 | |
36 | #include <timex.h> | ||
37 | 22 | ||
38 | /* | 23 | /* |
39 | * Standard way to access the cycle counter. | 24 | * Standard way to access the cycle counter. |
@@ -50,7 +35,7 @@ typedef unsigned int cycles_t; | |||
50 | 35 | ||
51 | static inline cycles_t get_cycles(void) | 36 | static inline cycles_t get_cycles(void) |
52 | { | 37 | { |
53 | return read_c0_count(); | 38 | return 0; |
54 | } | 39 | } |
55 | 40 | ||
56 | #endif /* __KERNEL__ */ | 41 | #endif /* __KERNEL__ */ |
diff --git a/include/asm-mips/tx4927/tx4927_pci.h b/include/asm-mips/tx4927/tx4927_pci.h index f98b2bb719d5..3f1e470192e3 100644 --- a/include/asm-mips/tx4927/tx4927_pci.h +++ b/include/asm-mips/tx4927/tx4927_pci.h | |||
@@ -9,6 +9,7 @@ | |||
9 | #define __ASM_TX4927_TX4927_PCI_H | 9 | #define __ASM_TX4927_TX4927_PCI_H |
10 | 10 | ||
11 | #define TX4927_CCFG_TOE 0x00004000 | 11 | #define TX4927_CCFG_TOE 0x00004000 |
12 | #define TX4927_CCFG_TINTDIS 0x01000000 | ||
12 | 13 | ||
13 | #define TX4927_PCIMEM 0x08000000 | 14 | #define TX4927_PCIMEM 0x08000000 |
14 | #define TX4927_PCIMEM_SIZE 0x08000000 | 15 | #define TX4927_PCIMEM_SIZE 0x08000000 |
@@ -20,6 +21,8 @@ | |||
20 | #define TX4927_PCIC_REG 0xff1fd000 | 21 | #define TX4927_PCIC_REG 0xff1fd000 |
21 | #define TX4927_CCFG_REG 0xff1fe000 | 22 | #define TX4927_CCFG_REG 0xff1fe000 |
22 | #define TX4927_IRC_REG 0xff1ff600 | 23 | #define TX4927_IRC_REG 0xff1ff600 |
24 | #define TX4927_NR_TMR 3 | ||
25 | #define TX4927_TMR_REG(ch) (0xff1ff000 + (ch) * 0x100) | ||
23 | #define TX4927_CE3 0x17f00000 /* 1M */ | 26 | #define TX4927_CE3 0x17f00000 /* 1M */ |
24 | #define TX4927_PCIRESET_ADDR 0xbc00f006 | 27 | #define TX4927_PCIRESET_ADDR 0xbc00f006 |
25 | #define TX4927_PCI_CLK_ADDR (KSEG1 + TX4927_CE3 + 0x00040020) | 28 | #define TX4927_PCI_CLK_ADDR (KSEG1 + TX4927_CE3 + 0x00040020) |
diff --git a/include/asm-mips/tx4938/tx4938.h b/include/asm-mips/tx4938/tx4938.h index 650b010761f9..f7c448b90578 100644 --- a/include/asm-mips/tx4938/tx4938.h +++ b/include/asm-mips/tx4938/tx4938.h | |||
@@ -641,7 +641,6 @@ struct tx4938_ccfg_reg { | |||
641 | #define tx4938_pcicptr ((struct tx4938_pcic_reg *)TX4938_PCIC_REG) | 641 | #define tx4938_pcicptr ((struct tx4938_pcic_reg *)TX4938_PCIC_REG) |
642 | #define tx4938_pcic1ptr ((struct tx4938_pcic_reg *)TX4938_PCIC1_REG) | 642 | #define tx4938_pcic1ptr ((struct tx4938_pcic_reg *)TX4938_PCIC1_REG) |
643 | #define tx4938_ccfgptr ((struct tx4938_ccfg_reg *)TX4938_CCFG_REG) | 643 | #define tx4938_ccfgptr ((struct tx4938_ccfg_reg *)TX4938_CCFG_REG) |
644 | #define tx4938_tmrptr(ch) ((struct tx4938_tmr_reg *)TX4938_TMR_REG(ch)) | ||
645 | #define tx4938_sioptr(ch) ((struct tx4938_sio_reg *)TX4938_SIO_REG(ch)) | 644 | #define tx4938_sioptr(ch) ((struct tx4938_sio_reg *)TX4938_SIO_REG(ch)) |
646 | #define tx4938_pioptr ((struct tx4938_pio_reg *)TX4938_PIO_REG) | 645 | #define tx4938_pioptr ((struct tx4938_pio_reg *)TX4938_PIO_REG) |
647 | #define tx4938_aclcptr ((struct tx4938_aclc_reg *)TX4938_ACLC_REG) | 646 | #define tx4938_aclcptr ((struct tx4938_aclc_reg *)TX4938_ACLC_REG) |
diff --git a/include/asm-mips/txx9tmr.h b/include/asm-mips/txx9tmr.h new file mode 100644 index 000000000000..67f70a8f09bd --- /dev/null +++ b/include/asm-mips/txx9tmr.h | |||
@@ -0,0 +1,67 @@ | |||
1 | /* | ||
2 | * include/asm-mips/txx9tmr.h | ||
3 | * TX39/TX49 timer controller definitions. | ||
4 | * | ||
5 | * This file is subject to the terms and conditions of the GNU General Public | ||
6 | * License. See the file "COPYING" in the main directory of this archive | ||
7 | * for more details. | ||
8 | */ | ||
9 | #ifndef __ASM_TXX9TMR_H | ||
10 | #define __ASM_TXX9TMR_H | ||
11 | |||
12 | #include <linux/types.h> | ||
13 | |||
14 | struct txx9_tmr_reg { | ||
15 | u32 tcr; | ||
16 | u32 tisr; | ||
17 | u32 cpra; | ||
18 | u32 cprb; | ||
19 | u32 itmr; | ||
20 | u32 unused0[3]; | ||
21 | u32 ccdr; | ||
22 | u32 unused1[3]; | ||
23 | u32 pgmr; | ||
24 | u32 unused2[3]; | ||
25 | u32 wtmr; | ||
26 | u32 unused3[43]; | ||
27 | u32 trr; | ||
28 | }; | ||
29 | |||
30 | /* TMTCR : Timer Control */ | ||
31 | #define TXx9_TMTCR_TCE 0x00000080 | ||
32 | #define TXx9_TMTCR_CCDE 0x00000040 | ||
33 | #define TXx9_TMTCR_CRE 0x00000020 | ||
34 | #define TXx9_TMTCR_ECES 0x00000008 | ||
35 | #define TXx9_TMTCR_CCS 0x00000004 | ||
36 | #define TXx9_TMTCR_TMODE_MASK 0x00000003 | ||
37 | #define TXx9_TMTCR_TMODE_ITVL 0x00000000 | ||
38 | #define TXx9_TMTCR_TMODE_PGEN 0x00000001 | ||
39 | #define TXx9_TMTCR_TMODE_WDOG 0x00000002 | ||
40 | |||
41 | /* TMTISR : Timer Int. Status */ | ||
42 | #define TXx9_TMTISR_TPIBS 0x00000004 | ||
43 | #define TXx9_TMTISR_TPIAS 0x00000002 | ||
44 | #define TXx9_TMTISR_TIIS 0x00000001 | ||
45 | |||
46 | /* TMITMR : Interval Timer Mode */ | ||
47 | #define TXx9_TMITMR_TIIE 0x00008000 | ||
48 | #define TXx9_TMITMR_TZCE 0x00000001 | ||
49 | |||
50 | /* TMWTMR : Watchdog Timer Mode */ | ||
51 | #define TXx9_TMWTMR_TWIE 0x00008000 | ||
52 | #define TXx9_TMWTMR_WDIS 0x00000080 | ||
53 | #define TXx9_TMWTMR_TWC 0x00000001 | ||
54 | |||
55 | void txx9_clocksource_init(unsigned long baseaddr, | ||
56 | unsigned int imbusclk); | ||
57 | void txx9_clockevent_init(unsigned long baseaddr, int irq, | ||
58 | unsigned int imbusclk); | ||
59 | void txx9_tmr_init(unsigned long baseaddr); | ||
60 | |||
61 | #ifdef CONFIG_CPU_TX39XX | ||
62 | #define TXX9_TIMER_BITS 24 | ||
63 | #else | ||
64 | #define TXX9_TIMER_BITS 32 | ||
65 | #endif | ||
66 | |||
67 | #endif /* __ASM_TXX9TMR_H */ | ||
diff --git a/include/asm-powerpc/commproc.h b/include/asm-powerpc/commproc.h index 0307c84a5c1d..a2328b8addd8 100644 --- a/include/asm-powerpc/commproc.h +++ b/include/asm-powerpc/commproc.h | |||
@@ -91,7 +91,7 @@ extern uint m8xx_cpm_hostalloc(uint size); | |||
91 | extern int m8xx_cpm_hostfree(uint start); | 91 | extern int m8xx_cpm_hostfree(uint start); |
92 | extern void m8xx_cpm_hostdump(void); | 92 | extern void m8xx_cpm_hostdump(void); |
93 | 93 | ||
94 | extern void cpm_load_patch(volatile immap_t *immr); | 94 | extern void cpm_load_patch(cpm8xx_t *cp); |
95 | 95 | ||
96 | /* Buffer descriptors used by many of the CPM protocols. | 96 | /* Buffer descriptors used by many of the CPM protocols. |
97 | */ | 97 | */ |
diff --git a/include/asm-powerpc/cputable.h b/include/asm-powerpc/cputable.h index 9d74338e3dec..4525c784dfd0 100644 --- a/include/asm-powerpc/cputable.h +++ b/include/asm-powerpc/cputable.h | |||
@@ -138,6 +138,7 @@ extern void do_feature_fixups(unsigned long value, void *fixup_start, | |||
138 | #define CPU_FTR_FPU_UNAVAILABLE ASM_CONST(0x0000000000800000) | 138 | #define CPU_FTR_FPU_UNAVAILABLE ASM_CONST(0x0000000000800000) |
139 | #define CPU_FTR_UNIFIED_ID_CACHE ASM_CONST(0x0000000001000000) | 139 | #define CPU_FTR_UNIFIED_ID_CACHE ASM_CONST(0x0000000001000000) |
140 | #define CPU_FTR_SPE ASM_CONST(0x0000000002000000) | 140 | #define CPU_FTR_SPE ASM_CONST(0x0000000002000000) |
141 | #define CPU_FTR_NEED_PAIRED_STWCX ASM_CONST(0x0000000004000000) | ||
141 | 142 | ||
142 | /* | 143 | /* |
143 | * Add the 64-bit processor unique features in the top half of the word; | 144 | * Add the 64-bit processor unique features in the top half of the word; |
@@ -261,25 +262,25 @@ extern void do_feature_fixups(unsigned long value, void *fixup_start, | |||
261 | #define CPU_FTRS_7450_20 (CPU_FTR_COMMON | \ | 262 | #define CPU_FTRS_7450_20 (CPU_FTR_COMMON | \ |
262 | CPU_FTR_USE_TB | CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | \ | 263 | CPU_FTR_USE_TB | CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | \ |
263 | CPU_FTR_L3CR | CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | \ | 264 | CPU_FTR_L3CR | CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | \ |
264 | CPU_FTR_NEED_COHERENT | CPU_FTR_PPC_LE) | 265 | CPU_FTR_NEED_COHERENT | CPU_FTR_PPC_LE | CPU_FTR_NEED_PAIRED_STWCX) |
265 | #define CPU_FTRS_7450_21 (CPU_FTR_COMMON | \ | 266 | #define CPU_FTRS_7450_21 (CPU_FTR_COMMON | \ |
266 | CPU_FTR_USE_TB | \ | 267 | CPU_FTR_USE_TB | \ |
267 | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | \ | 268 | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | \ |
268 | CPU_FTR_L3CR | CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | \ | 269 | CPU_FTR_L3CR | CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | \ |
269 | CPU_FTR_NAP_DISABLE_L2_PR | CPU_FTR_L3_DISABLE_NAP | \ | 270 | CPU_FTR_NAP_DISABLE_L2_PR | CPU_FTR_L3_DISABLE_NAP | \ |
270 | CPU_FTR_NEED_COHERENT | CPU_FTR_PPC_LE) | 271 | CPU_FTR_NEED_COHERENT | CPU_FTR_PPC_LE | CPU_FTR_NEED_PAIRED_STWCX) |
271 | #define CPU_FTRS_7450_23 (CPU_FTR_COMMON | \ | 272 | #define CPU_FTRS_7450_23 (CPU_FTR_COMMON | \ |
272 | CPU_FTR_USE_TB | \ | 273 | CPU_FTR_USE_TB | CPU_FTR_NEED_PAIRED_STWCX | \ |
273 | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | \ | 274 | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | \ |
274 | CPU_FTR_L3CR | CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | \ | 275 | CPU_FTR_L3CR | CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | \ |
275 | CPU_FTR_NAP_DISABLE_L2_PR | CPU_FTR_NEED_COHERENT | CPU_FTR_PPC_LE) | 276 | CPU_FTR_NAP_DISABLE_L2_PR | CPU_FTR_NEED_COHERENT | CPU_FTR_PPC_LE) |
276 | #define CPU_FTRS_7455_1 (CPU_FTR_COMMON | \ | 277 | #define CPU_FTRS_7455_1 (CPU_FTR_COMMON | \ |
277 | CPU_FTR_USE_TB | \ | 278 | CPU_FTR_USE_TB | CPU_FTR_NEED_PAIRED_STWCX | \ |
278 | CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | CPU_FTR_L3CR | \ | 279 | CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | CPU_FTR_L3CR | \ |
279 | CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | CPU_FTR_HAS_HIGH_BATS | \ | 280 | CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | CPU_FTR_HAS_HIGH_BATS | \ |
280 | CPU_FTR_NEED_COHERENT | CPU_FTR_PPC_LE) | 281 | CPU_FTR_NEED_COHERENT | CPU_FTR_PPC_LE) |
281 | #define CPU_FTRS_7455_20 (CPU_FTR_COMMON | \ | 282 | #define CPU_FTRS_7455_20 (CPU_FTR_COMMON | \ |
282 | CPU_FTR_USE_TB | \ | 283 | CPU_FTR_USE_TB | CPU_FTR_NEED_PAIRED_STWCX | \ |
283 | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | \ | 284 | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | \ |
284 | CPU_FTR_L3CR | CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | \ | 285 | CPU_FTR_L3CR | CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | \ |
285 | CPU_FTR_NAP_DISABLE_L2_PR | CPU_FTR_L3_DISABLE_NAP | \ | 286 | CPU_FTR_NAP_DISABLE_L2_PR | CPU_FTR_L3_DISABLE_NAP | \ |
@@ -289,31 +290,32 @@ extern void do_feature_fixups(unsigned long value, void *fixup_start, | |||
289 | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | \ | 290 | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | \ |
290 | CPU_FTR_L3CR | CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | \ | 291 | CPU_FTR_L3CR | CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | \ |
291 | CPU_FTR_NAP_DISABLE_L2_PR | CPU_FTR_HAS_HIGH_BATS | \ | 292 | CPU_FTR_NAP_DISABLE_L2_PR | CPU_FTR_HAS_HIGH_BATS | \ |
292 | CPU_FTR_NEED_COHERENT | CPU_FTR_PPC_LE) | 293 | CPU_FTR_NEED_COHERENT | CPU_FTR_PPC_LE | CPU_FTR_NEED_PAIRED_STWCX) |
293 | #define CPU_FTRS_7447_10 (CPU_FTR_COMMON | \ | 294 | #define CPU_FTRS_7447_10 (CPU_FTR_COMMON | \ |
294 | CPU_FTR_USE_TB | \ | 295 | CPU_FTR_USE_TB | \ |
295 | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | \ | 296 | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | \ |
296 | CPU_FTR_L3CR | CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | \ | 297 | CPU_FTR_L3CR | CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | \ |
297 | CPU_FTR_NAP_DISABLE_L2_PR | CPU_FTR_HAS_HIGH_BATS | \ | 298 | CPU_FTR_NAP_DISABLE_L2_PR | CPU_FTR_HAS_HIGH_BATS | \ |
298 | CPU_FTR_NEED_COHERENT | CPU_FTR_NO_BTIC | CPU_FTR_PPC_LE) | 299 | CPU_FTR_NEED_COHERENT | CPU_FTR_NO_BTIC | CPU_FTR_PPC_LE | \ |
300 | CPU_FTR_NEED_PAIRED_STWCX) | ||
299 | #define CPU_FTRS_7447 (CPU_FTR_COMMON | \ | 301 | #define CPU_FTRS_7447 (CPU_FTR_COMMON | \ |
300 | CPU_FTR_USE_TB | \ | 302 | CPU_FTR_USE_TB | \ |
301 | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | \ | 303 | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | \ |
302 | CPU_FTR_L3CR | CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | \ | 304 | CPU_FTR_L3CR | CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | \ |
303 | CPU_FTR_NAP_DISABLE_L2_PR | CPU_FTR_HAS_HIGH_BATS | \ | 305 | CPU_FTR_NAP_DISABLE_L2_PR | CPU_FTR_HAS_HIGH_BATS | \ |
304 | CPU_FTR_NEED_COHERENT | CPU_FTR_PPC_LE) | 306 | CPU_FTR_NEED_COHERENT | CPU_FTR_PPC_LE | CPU_FTR_NEED_PAIRED_STWCX) |
305 | #define CPU_FTRS_7447A (CPU_FTR_COMMON | \ | 307 | #define CPU_FTRS_7447A (CPU_FTR_COMMON | \ |
306 | CPU_FTR_USE_TB | \ | 308 | CPU_FTR_USE_TB | \ |
307 | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | \ | 309 | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | \ |
308 | CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | \ | 310 | CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | \ |
309 | CPU_FTR_NAP_DISABLE_L2_PR | CPU_FTR_HAS_HIGH_BATS | \ | 311 | CPU_FTR_NAP_DISABLE_L2_PR | CPU_FTR_HAS_HIGH_BATS | \ |
310 | CPU_FTR_NEED_COHERENT | CPU_FTR_PPC_LE) | 312 | CPU_FTR_NEED_COHERENT | CPU_FTR_PPC_LE | CPU_FTR_NEED_PAIRED_STWCX) |
311 | #define CPU_FTRS_7448 (CPU_FTR_COMMON | \ | 313 | #define CPU_FTRS_7448 (CPU_FTR_COMMON | \ |
312 | CPU_FTR_USE_TB | \ | 314 | CPU_FTR_USE_TB | \ |
313 | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | \ | 315 | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_L2CR | CPU_FTR_ALTIVEC_COMP | \ |
314 | CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | \ | 316 | CPU_FTR_HPTE_TABLE | CPU_FTR_SPEC7450 | \ |
315 | CPU_FTR_NAP_DISABLE_L2_PR | CPU_FTR_HAS_HIGH_BATS | \ | 317 | CPU_FTR_NAP_DISABLE_L2_PR | CPU_FTR_HAS_HIGH_BATS | \ |
316 | CPU_FTR_PPC_LE) | 318 | CPU_FTR_PPC_LE | CPU_FTR_NEED_PAIRED_STWCX) |
317 | #define CPU_FTRS_82XX (CPU_FTR_COMMON | \ | 319 | #define CPU_FTRS_82XX (CPU_FTR_COMMON | \ |
318 | CPU_FTR_MAYBE_CAN_DOZE | CPU_FTR_USE_TB) | 320 | CPU_FTR_MAYBE_CAN_DOZE | CPU_FTR_USE_TB) |
319 | #define CPU_FTRS_G2_LE (CPU_FTR_COMMON | CPU_FTR_MAYBE_CAN_DOZE | \ | 321 | #define CPU_FTRS_G2_LE (CPU_FTR_COMMON | CPU_FTR_MAYBE_CAN_DOZE | \ |
diff --git a/include/asm-powerpc/page_32.h b/include/asm-powerpc/page_32.h index 374d0db37e1c..17110aff26e7 100644 --- a/include/asm-powerpc/page_32.h +++ b/include/asm-powerpc/page_32.h | |||
@@ -6,6 +6,10 @@ | |||
6 | 6 | ||
7 | #define PPC_MEMSTART 0 | 7 | #define PPC_MEMSTART 0 |
8 | 8 | ||
9 | #ifdef CONFIG_NOT_COHERENT_CACHE | ||
10 | #define ARCH_KMALLOC_MINALIGN L1_CACHE_BYTES | ||
11 | #endif | ||
12 | |||
9 | #ifndef __ASSEMBLY__ | 13 | #ifndef __ASSEMBLY__ |
10 | /* | 14 | /* |
11 | * The basic type of a PTE - 64 bits for those CPUs with > 32 bit | 15 | * The basic type of a PTE - 64 bits for those CPUs with > 32 bit |
diff --git a/include/asm-powerpc/pci-bridge.h b/include/asm-powerpc/pci-bridge.h index dc318458b5fe..d8bdc79db12e 100644 --- a/include/asm-powerpc/pci-bridge.h +++ b/include/asm-powerpc/pci-bridge.h | |||
@@ -246,7 +246,6 @@ static inline struct pci_controller *pci_bus_to_host(struct pci_bus *bus) | |||
246 | return PCI_DN(busdn)->phb; | 246 | return PCI_DN(busdn)->phb; |
247 | } | 247 | } |
248 | 248 | ||
249 | extern void pcibios_free_controller(struct pci_controller *phb); | ||
250 | 249 | ||
251 | extern void isa_bridge_find_early(struct pci_controller *hose); | 250 | extern void isa_bridge_find_early(struct pci_controller *hose); |
252 | 251 | ||
@@ -282,9 +281,11 @@ extern void | |||
282 | pci_process_bridge_OF_ranges(struct pci_controller *hose, | 281 | pci_process_bridge_OF_ranges(struct pci_controller *hose, |
283 | struct device_node *dev, int primary); | 282 | struct device_node *dev, int primary); |
284 | 283 | ||
285 | /* Allocate a new PCI host bridge structure */ | 284 | /* Allocate & free a PCI host bridge structure */ |
286 | extern struct pci_controller * | 285 | extern struct pci_controller * |
287 | pcibios_alloc_controller(struct device_node *dev); | 286 | pcibios_alloc_controller(struct device_node *dev); |
287 | extern void pcibios_free_controller(struct pci_controller *phb); | ||
288 | |||
288 | #ifdef CONFIG_PCI | 289 | #ifdef CONFIG_PCI |
289 | extern unsigned long pci_address_to_pio(phys_addr_t address); | 290 | extern unsigned long pci_address_to_pio(phys_addr_t address); |
290 | extern int pcibios_vaddr_is_ioport(void __iomem *address); | 291 | extern int pcibios_vaddr_is_ioport(void __iomem *address); |
diff --git a/include/asm-powerpc/pgtable-ppc32.h b/include/asm-powerpc/pgtable-ppc32.h index 86a54a4a8a2a..fea2d8ff1e73 100644 --- a/include/asm-powerpc/pgtable-ppc32.h +++ b/include/asm-powerpc/pgtable-ppc32.h | |||
@@ -11,6 +11,11 @@ | |||
11 | extern unsigned long va_to_phys(unsigned long address); | 11 | extern unsigned long va_to_phys(unsigned long address); |
12 | extern pte_t *va_to_pte(unsigned long address); | 12 | extern pte_t *va_to_pte(unsigned long address); |
13 | extern unsigned long ioremap_bot, ioremap_base; | 13 | extern unsigned long ioremap_bot, ioremap_base; |
14 | |||
15 | #ifdef CONFIG_44x | ||
16 | extern int icache_44x_need_flush; | ||
17 | #endif | ||
18 | |||
14 | #endif /* __ASSEMBLY__ */ | 19 | #endif /* __ASSEMBLY__ */ |
15 | 20 | ||
16 | /* | 21 | /* |
@@ -562,6 +567,10 @@ static inline unsigned long pte_update(pte_t *p, unsigned long clr, | |||
562 | : "=&r" (old), "=&r" (tmp), "=m" (*p) | 567 | : "=&r" (old), "=&r" (tmp), "=m" (*p) |
563 | : "r" (p), "r" (clr), "r" (set), "m" (*p) | 568 | : "r" (p), "r" (clr), "r" (set), "m" (*p) |
564 | : "cc" ); | 569 | : "cc" ); |
570 | #ifdef CONFIG_44x | ||
571 | if ((old & _PAGE_USER) && (old & _PAGE_HWEXEC)) | ||
572 | icache_44x_need_flush = 1; | ||
573 | #endif | ||
565 | return old; | 574 | return old; |
566 | } | 575 | } |
567 | #else | 576 | #else |
@@ -582,6 +591,10 @@ static inline unsigned long long pte_update(pte_t *p, unsigned long clr, | |||
582 | : "=&r" (old), "=&r" (tmp), "=m" (*p) | 591 | : "=&r" (old), "=&r" (tmp), "=m" (*p) |
583 | : "r" (p), "r" ((unsigned long)(p) + 4), "r" (clr), "r" (set), "m" (*p) | 592 | : "r" (p), "r" ((unsigned long)(p) + 4), "r" (clr), "r" (set), "m" (*p) |
584 | : "cc" ); | 593 | : "cc" ); |
594 | #ifdef CONFIG_44x | ||
595 | if ((old & _PAGE_USER) && (old & _PAGE_HWEXEC)) | ||
596 | icache_44x_need_flush = 1; | ||
597 | #endif | ||
585 | return old; | 598 | return old; |
586 | } | 599 | } |
587 | #endif | 600 | #endif |
diff --git a/include/asm-powerpc/rtas.h b/include/asm-powerpc/rtas.h index 8eaa7b28d9d0..87db8728e82d 100644 --- a/include/asm-powerpc/rtas.h +++ b/include/asm-powerpc/rtas.h | |||
@@ -164,7 +164,8 @@ extern int rtas_call(int token, int, int, int *, ...); | |||
164 | extern void rtas_restart(char *cmd); | 164 | extern void rtas_restart(char *cmd); |
165 | extern void rtas_power_off(void); | 165 | extern void rtas_power_off(void); |
166 | extern void rtas_halt(void); | 166 | extern void rtas_halt(void); |
167 | extern void rtas_os_term(char *str); | 167 | extern void rtas_panic_msg(char *str); |
168 | extern void rtas_os_term(void); | ||
168 | extern int rtas_get_sensor(int sensor, int index, int *state); | 169 | extern int rtas_get_sensor(int sensor, int index, int *state); |
169 | extern int rtas_get_power_level(int powerdomain, int *level); | 170 | extern int rtas_get_power_level(int powerdomain, int *level); |
170 | extern int rtas_set_power_level(int powerdomain, int level, int *setlevel); | 171 | extern int rtas_set_power_level(int powerdomain, int level, int *setlevel); |
diff --git a/include/asm-powerpc/systbl.h b/include/asm-powerpc/systbl.h index cc6d87228258..11d5383b2f09 100644 --- a/include/asm-powerpc/systbl.h +++ b/include/asm-powerpc/systbl.h | |||
@@ -308,8 +308,8 @@ COMPAT_SYS_SPU(move_pages) | |||
308 | SYSCALL_SPU(getcpu) | 308 | SYSCALL_SPU(getcpu) |
309 | COMPAT_SYS(epoll_pwait) | 309 | COMPAT_SYS(epoll_pwait) |
310 | COMPAT_SYS_SPU(utimensat) | 310 | COMPAT_SYS_SPU(utimensat) |
311 | COMPAT_SYS(fallocate) | ||
312 | COMPAT_SYS_SPU(signalfd) | 311 | COMPAT_SYS_SPU(signalfd) |
313 | COMPAT_SYS_SPU(timerfd) | 312 | COMPAT_SYS_SPU(timerfd) |
314 | SYSCALL_SPU(eventfd) | 313 | SYSCALL_SPU(eventfd) |
315 | COMPAT_SYS_SPU(sync_file_range2) | 314 | COMPAT_SYS_SPU(sync_file_range2) |
315 | COMPAT_SYS(fallocate) | ||
diff --git a/include/asm-powerpc/time.h b/include/asm-powerpc/time.h index f05895522f7f..780f82642756 100644 --- a/include/asm-powerpc/time.h +++ b/include/asm-powerpc/time.h | |||
@@ -176,25 +176,31 @@ static inline unsigned int get_dec(void) | |||
176 | #endif | 176 | #endif |
177 | } | 177 | } |
178 | 178 | ||
179 | /* | ||
180 | * Note: Book E and 4xx processors differ from other PowerPC processors | ||
181 | * in when the decrementer generates its interrupt: on the 1 to 0 | ||
182 | * transition for Book E/4xx, but on the 0 to -1 transition for others. | ||
183 | */ | ||
179 | static inline void set_dec(int val) | 184 | static inline void set_dec(int val) |
180 | { | 185 | { |
181 | #if defined(CONFIG_40x) | 186 | #if defined(CONFIG_40x) |
182 | mtspr(SPRN_PIT, val); | 187 | mtspr(SPRN_PIT, val); |
183 | #elif defined(CONFIG_8xx_CPU6) | 188 | #elif defined(CONFIG_8xx_CPU6) |
184 | set_dec_cpu6(val); | 189 | set_dec_cpu6(val - 1); |
185 | #else | 190 | #else |
191 | #ifndef CONFIG_BOOKE | ||
192 | --val; | ||
193 | #endif | ||
186 | #ifdef CONFIG_PPC_ISERIES | 194 | #ifdef CONFIG_PPC_ISERIES |
187 | int cur_dec; | ||
188 | |||
189 | if (firmware_has_feature(FW_FEATURE_ISERIES) && | 195 | if (firmware_has_feature(FW_FEATURE_ISERIES) && |
190 | get_lppaca()->shared_proc) { | 196 | get_lppaca()->shared_proc) { |
191 | get_lppaca()->virtual_decr = val; | 197 | get_lppaca()->virtual_decr = val; |
192 | cur_dec = get_dec(); | 198 | if (get_dec() > val) |
193 | if (cur_dec > val) | ||
194 | HvCall_setVirtualDecr(); | 199 | HvCall_setVirtualDecr(); |
195 | } else | 200 | return; |
201 | } | ||
196 | #endif | 202 | #endif |
197 | mtspr(SPRN_DEC, val); | 203 | mtspr(SPRN_DEC, val); |
198 | #endif /* not 40x or 8xx_CPU6 */ | 204 | #endif /* not 40x or 8xx_CPU6 */ |
199 | } | 205 | } |
200 | 206 | ||
diff --git a/include/asm-powerpc/tlbflush.h b/include/asm-powerpc/tlbflush.h index b6b036ccee34..5c9108147644 100644 --- a/include/asm-powerpc/tlbflush.h +++ b/include/asm-powerpc/tlbflush.h | |||
@@ -1,5 +1,6 @@ | |||
1 | #ifndef _ASM_POWERPC_TLBFLUSH_H | 1 | #ifndef _ASM_POWERPC_TLBFLUSH_H |
2 | #define _ASM_POWERPC_TLBFLUSH_H | 2 | #define _ASM_POWERPC_TLBFLUSH_H |
3 | |||
3 | /* | 4 | /* |
4 | * TLB flushing: | 5 | * TLB flushing: |
5 | * | 6 | * |
@@ -16,9 +17,6 @@ | |||
16 | */ | 17 | */ |
17 | #ifdef __KERNEL__ | 18 | #ifdef __KERNEL__ |
18 | 19 | ||
19 | struct mm_struct; | ||
20 | struct vm_area_struct; | ||
21 | |||
22 | #if defined(CONFIG_4xx) || defined(CONFIG_8xx) || defined(CONFIG_FSL_BOOKE) | 20 | #if defined(CONFIG_4xx) || defined(CONFIG_8xx) || defined(CONFIG_FSL_BOOKE) |
23 | /* | 21 | /* |
24 | * TLB flushing for software loaded TLB chips | 22 | * TLB flushing for software loaded TLB chips |
@@ -28,7 +26,9 @@ struct vm_area_struct; | |||
28 | * specific tlbie's | 26 | * specific tlbie's |
29 | */ | 27 | */ |
30 | 28 | ||
31 | extern void _tlbie(unsigned long address); | 29 | #include <linux/mm.h> |
30 | |||
31 | extern void _tlbie(unsigned long address, unsigned int pid); | ||
32 | 32 | ||
33 | #if defined(CONFIG_40x) || defined(CONFIG_8xx) | 33 | #if defined(CONFIG_40x) || defined(CONFIG_8xx) |
34 | #define _tlbia() asm volatile ("tlbia; sync" : : : "memory") | 34 | #define _tlbia() asm volatile ("tlbia; sync" : : : "memory") |
@@ -44,13 +44,13 @@ static inline void flush_tlb_mm(struct mm_struct *mm) | |||
44 | static inline void flush_tlb_page(struct vm_area_struct *vma, | 44 | static inline void flush_tlb_page(struct vm_area_struct *vma, |
45 | unsigned long vmaddr) | 45 | unsigned long vmaddr) |
46 | { | 46 | { |
47 | _tlbie(vmaddr); | 47 | _tlbie(vmaddr, vma ? vma->vm_mm->context.id : 0); |
48 | } | 48 | } |
49 | 49 | ||
50 | static inline void flush_tlb_page_nohash(struct vm_area_struct *vma, | 50 | static inline void flush_tlb_page_nohash(struct vm_area_struct *vma, |
51 | unsigned long vmaddr) | 51 | unsigned long vmaddr) |
52 | { | 52 | { |
53 | _tlbie(vmaddr); | 53 | _tlbie(vmaddr, vma ? vma->vm_mm->context.id : 0); |
54 | } | 54 | } |
55 | 55 | ||
56 | static inline void flush_tlb_range(struct vm_area_struct *vma, | 56 | static inline void flush_tlb_range(struct vm_area_struct *vma, |
diff --git a/include/asm-powerpc/vdso_datapage.h b/include/asm-powerpc/vdso_datapage.h index 8a94f0eba5e9..f01393224b52 100644 --- a/include/asm-powerpc/vdso_datapage.h +++ b/include/asm-powerpc/vdso_datapage.h | |||
@@ -77,6 +77,10 @@ struct vdso_data { | |||
77 | /* those additional ones don't have to be located anywhere | 77 | /* those additional ones don't have to be located anywhere |
78 | * special as they were not part of the original systemcfg | 78 | * special as they were not part of the original systemcfg |
79 | */ | 79 | */ |
80 | __u32 dcache_block_size; /* L1 d-cache block size */ | ||
81 | __u32 icache_block_size; /* L1 i-cache block size */ | ||
82 | __u32 dcache_log_block_size; /* L1 d-cache log block size */ | ||
83 | __u32 icache_log_block_size; /* L1 i-cache log block size */ | ||
80 | __s32 wtom_clock_sec; /* Wall to monotonic clock */ | 84 | __s32 wtom_clock_sec; /* Wall to monotonic clock */ |
81 | __s32 wtom_clock_nsec; | 85 | __s32 wtom_clock_nsec; |
82 | __u32 syscall_map_64[SYSCALL_MAP_SIZE]; /* map of syscalls */ | 86 | __u32 syscall_map_64[SYSCALL_MAP_SIZE]; /* map of syscalls */ |
@@ -99,6 +103,10 @@ struct vdso_data { | |||
99 | __s32 wtom_clock_sec; /* Wall to monotonic clock */ | 103 | __s32 wtom_clock_sec; /* Wall to monotonic clock */ |
100 | __s32 wtom_clock_nsec; | 104 | __s32 wtom_clock_nsec; |
101 | __u32 syscall_map_32[SYSCALL_MAP_SIZE]; /* map of syscalls */ | 105 | __u32 syscall_map_32[SYSCALL_MAP_SIZE]; /* map of syscalls */ |
106 | __u32 dcache_block_size; /* L1 d-cache block size */ | ||
107 | __u32 icache_block_size; /* L1 i-cache block size */ | ||
108 | __u32 dcache_log_block_size; /* L1 d-cache log block size */ | ||
109 | __u32 icache_log_block_size; /* L1 i-cache log block size */ | ||
102 | }; | 110 | }; |
103 | 111 | ||
104 | #endif /* CONFIG_PPC64 */ | 112 | #endif /* CONFIG_PPC64 */ |
diff --git a/include/asm-s390/system.h b/include/asm-s390/system.h index d866d3385556..44bda786eef7 100644 --- a/include/asm-s390/system.h +++ b/include/asm-s390/system.h | |||
@@ -388,6 +388,11 @@ extern void (*_machine_power_off)(void); | |||
388 | 388 | ||
389 | #define arch_align_stack(x) (x) | 389 | #define arch_align_stack(x) (x) |
390 | 390 | ||
391 | #ifdef CONFIG_TRACE_IRQFLAGS | ||
392 | extern psw_t sysc_restore_trace_psw; | ||
393 | extern psw_t io_restore_trace_psw; | ||
394 | #endif | ||
395 | |||
391 | #endif /* __KERNEL__ */ | 396 | #endif /* __KERNEL__ */ |
392 | 397 | ||
393 | #endif | 398 | #endif |
diff --git a/include/asm-sh/cache.h b/include/asm-sh/cache.h index 7a18649d1ccb..01e5cf51ba9b 100644 --- a/include/asm-sh/cache.h +++ b/include/asm-sh/cache.h | |||
@@ -18,9 +18,8 @@ | |||
18 | #define SH_CACHE_ASSOC 8 | 18 | #define SH_CACHE_ASSOC 8 |
19 | 19 | ||
20 | #define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT) | 20 | #define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT) |
21 | #define SMP_CACHE_BYTES L1_CACHE_BYTES | ||
22 | 21 | ||
23 | #define L1_CACHE_ALIGN(x) (((x)+(L1_CACHE_BYTES-1))&~(L1_CACHE_BYTES-1)) | 22 | #define __read_mostly __attribute__((__section__(".data.read_mostly"))) |
24 | 23 | ||
25 | #ifndef __ASSEMBLY__ | 24 | #ifndef __ASSEMBLY__ |
26 | struct cache_info { | 25 | struct cache_info { |
diff --git a/include/asm-sh/cacheflush.h b/include/asm-sh/cacheflush.h index aa558da08471..9d528ada3c14 100644 --- a/include/asm-sh/cacheflush.h +++ b/include/asm-sh/cacheflush.h | |||
@@ -43,21 +43,31 @@ extern void __flush_purge_region(void *start, int size); | |||
43 | extern void __flush_invalidate_region(void *start, int size); | 43 | extern void __flush_invalidate_region(void *start, int size); |
44 | #endif | 44 | #endif |
45 | 45 | ||
46 | #define flush_cache_vmap(start, end) flush_cache_all() | 46 | #if defined(CONFIG_CPU_SH4) && !defined(CONFIG_CACHE_OFF) |
47 | #define flush_cache_vunmap(start, end) flush_cache_all() | 47 | extern void copy_to_user_page(struct vm_area_struct *vma, |
48 | struct page *page, unsigned long vaddr, void *dst, const void *src, | ||
49 | unsigned long len); | ||
48 | 50 | ||
49 | #define copy_to_user_page(vma, page, vaddr, dst, src, len) \ | 51 | extern void copy_from_user_page(struct vm_area_struct *vma, |
52 | struct page *page, unsigned long vaddr, void *dst, const void *src, | ||
53 | unsigned long len); | ||
54 | #else | ||
55 | #define copy_to_user_page(vma, page, vaddr, dst, src, len) \ | ||
50 | do { \ | 56 | do { \ |
51 | flush_cache_page(vma, vaddr, page_to_pfn(page));\ | 57 | flush_cache_page(vma, vaddr, page_to_pfn(page));\ |
52 | memcpy(dst, src, len); \ | 58 | memcpy(dst, src, len); \ |
53 | flush_icache_user_range(vma, page, vaddr, len); \ | 59 | flush_icache_user_range(vma, page, vaddr, len); \ |
54 | } while (0) | 60 | } while (0) |
55 | 61 | ||
56 | #define copy_from_user_page(vma, page, vaddr, dst, src, len) \ | 62 | #define copy_from_user_page(vma, page, vaddr, dst, src, len) \ |
57 | do { \ | 63 | do { \ |
58 | flush_cache_page(vma, vaddr, page_to_pfn(page));\ | 64 | flush_cache_page(vma, vaddr, page_to_pfn(page));\ |
59 | memcpy(dst, src, len); \ | 65 | memcpy(dst, src, len); \ |
60 | } while (0) | 66 | } while (0) |
67 | #endif | ||
68 | |||
69 | #define flush_cache_vmap(start, end) flush_cache_all() | ||
70 | #define flush_cache_vunmap(start, end) flush_cache_all() | ||
61 | 71 | ||
62 | #define HAVE_ARCH_UNMAPPED_AREA | 72 | #define HAVE_ARCH_UNMAPPED_AREA |
63 | 73 | ||
diff --git a/include/asm-sh/cpu-sh3/timer.h b/include/asm-sh/cpu-sh3/timer.h index 3880ce047fe0..7b795ac5477c 100644 --- a/include/asm-sh/cpu-sh3/timer.h +++ b/include/asm-sh/cpu-sh3/timer.h | |||
@@ -23,8 +23,7 @@ | |||
23 | * --------------------------------------------------------------------------- | 23 | * --------------------------------------------------------------------------- |
24 | */ | 24 | */ |
25 | 25 | ||
26 | #if !defined(CONFIG_CPU_SUBTYPE_SH7720) && \ | 26 | #if !defined(CONFIG_CPU_SUBTYPE_SH7720) |
27 | !defined(CONFIG_CPU_SUBTYPE_SH7727) | ||
28 | #define TMU_TOCR 0xfffffe90 /* Byte access */ | 27 | #define TMU_TOCR 0xfffffe90 /* Byte access */ |
29 | #endif | 28 | #endif |
30 | 29 | ||
@@ -58,8 +57,7 @@ | |||
58 | #define TMU2_TCOR 0xfffffeac /* Long access */ | 57 | #define TMU2_TCOR 0xfffffeac /* Long access */ |
59 | #define TMU2_TCNT 0xfffffeb0 /* Long access */ | 58 | #define TMU2_TCNT 0xfffffeb0 /* Long access */ |
60 | #define TMU2_TCR 0xfffffeb4 /* Word access */ | 59 | #define TMU2_TCR 0xfffffeb4 /* Word access */ |
61 | #if !defined(CONFIG_CPU_SUBTYPE_SH7720) && \ | 60 | #if !defined(CONFIG_CPU_SUBTYPE_SH7720) |
62 | !defined(CONFIG_CPU_SUBTYPE_SH7727) | ||
63 | #define TMU2_TCPR2 0xfffffeb8 /* Long access */ | 61 | #define TMU2_TCPR2 0xfffffeb8 /* Long access */ |
64 | #endif | 62 | #endif |
65 | #endif | 63 | #endif |
diff --git a/include/asm-sh/irq.h b/include/asm-sh/irq.h index c61d902b8bff..11850f65c922 100644 --- a/include/asm-sh/irq.h +++ b/include/asm-sh/irq.h | |||
@@ -41,7 +41,7 @@ static inline int generic_irq_demux(int irq) | |||
41 | #define irq_canonicalize(irq) (irq) | 41 | #define irq_canonicalize(irq) (irq) |
42 | #define irq_demux(irq) sh_mv.mv_irq_demux(irq) | 42 | #define irq_demux(irq) sh_mv.mv_irq_demux(irq) |
43 | 43 | ||
44 | #ifdef CONFIG_4KSTACKS | 44 | #ifdef CONFIG_IRQSTACKS |
45 | extern void irq_ctx_init(int cpu); | 45 | extern void irq_ctx_init(int cpu); |
46 | extern void irq_ctx_exit(int cpu); | 46 | extern void irq_ctx_exit(int cpu); |
47 | # define __ARCH_HAS_DO_SOFTIRQ | 47 | # define __ARCH_HAS_DO_SOFTIRQ |
diff --git a/include/asm-sh/page.h b/include/asm-sh/page.h index cb3d46c59eab..d00a8fde7c7f 100644 --- a/include/asm-sh/page.h +++ b/include/asm-sh/page.h | |||
@@ -73,10 +73,13 @@ extern void copy_page_nommu(void *to, void *from); | |||
73 | #if !defined(CONFIG_CACHE_OFF) && defined(CONFIG_MMU) && \ | 73 | #if !defined(CONFIG_CACHE_OFF) && defined(CONFIG_MMU) && \ |
74 | (defined(CONFIG_CPU_SH4) || defined(CONFIG_SH7705_CACHE_32KB)) | 74 | (defined(CONFIG_CPU_SH4) || defined(CONFIG_SH7705_CACHE_32KB)) |
75 | struct page; | 75 | struct page; |
76 | extern void clear_user_page(void *to, unsigned long address, struct page *pg); | 76 | struct vm_area_struct; |
77 | extern void copy_user_page(void *to, void *from, unsigned long address, struct page *pg); | 77 | extern void clear_user_page(void *to, unsigned long address, struct page *page); |
78 | extern void __clear_user_page(void *to, void *orig_to); | 78 | #ifdef CONFIG_CPU_SH4 |
79 | extern void __copy_user_page(void *to, void *from, void *orig_to); | 79 | extern void copy_user_highpage(struct page *to, struct page *from, |
80 | unsigned long vaddr, struct vm_area_struct *vma); | ||
81 | #define __HAVE_ARCH_COPY_USER_HIGHPAGE | ||
82 | #endif | ||
80 | #else | 83 | #else |
81 | #define clear_user_page(page, vaddr, pg) clear_page(page) | 84 | #define clear_user_page(page, vaddr, pg) clear_page(page) |
82 | #define copy_user_page(to, from, vaddr, pg) copy_page(to, from) | 85 | #define copy_user_page(to, from, vaddr, pg) copy_page(to, from) |
@@ -128,7 +131,6 @@ typedef struct { unsigned long pgd; } pgd_t; | |||
128 | #define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET)) | 131 | #define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET)) |
129 | #define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT) | 132 | #define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT) |
130 | 133 | ||
131 | #define phys_to_page(phys) (pfn_to_page(phys >> PAGE_SHIFT)) | ||
132 | #define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT) | 134 | #define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT) |
133 | 135 | ||
134 | /* PFN start number, because of __MEMORY_START */ | 136 | /* PFN start number, because of __MEMORY_START */ |
diff --git a/include/asm-sh/pgtable.h b/include/asm-sh/pgtable.h index cf0dd2b648c2..8f1e8be8d15d 100644 --- a/include/asm-sh/pgtable.h +++ b/include/asm-sh/pgtable.h | |||
@@ -322,7 +322,9 @@ extern unsigned long empty_zero_page[PAGE_SIZE / sizeof(unsigned long)]; | |||
322 | #define PAGE_KERNEL __pgprot(0) | 322 | #define PAGE_KERNEL __pgprot(0) |
323 | #define PAGE_KERNEL_NOCACHE __pgprot(0) | 323 | #define PAGE_KERNEL_NOCACHE __pgprot(0) |
324 | #define PAGE_KERNEL_RO __pgprot(0) | 324 | #define PAGE_KERNEL_RO __pgprot(0) |
325 | #define PAGE_KERNEL_PCC __pgprot(0) | 325 | |
326 | #define PAGE_KERNEL_PCC(slot, type) \ | ||
327 | __pgprot(0) | ||
326 | #endif | 328 | #endif |
327 | 329 | ||
328 | #endif /* __ASSEMBLY__ */ | 330 | #endif /* __ASSEMBLY__ */ |
@@ -399,7 +401,7 @@ static inline void set_pte(pte_t *ptep, pte_t pte) | |||
399 | #define pmd_bad(x) (pmd_val(x) & ~PAGE_MASK) | 401 | #define pmd_bad(x) (pmd_val(x) & ~PAGE_MASK) |
400 | 402 | ||
401 | #define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT)) | 403 | #define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT)) |
402 | #define pte_page(x) phys_to_page(pte_val(x)&PTE_PHYS_MASK) | 404 | #define pte_page(x) pfn_to_page(pte_pfn(x)) |
403 | 405 | ||
404 | /* | 406 | /* |
405 | * The following only work if pte_present() is true. | 407 | * The following only work if pte_present() is true. |
diff --git a/include/asm-sh/processor.h b/include/asm-sh/processor.h index 4f2922a1979c..fda68480f377 100644 --- a/include/asm-sh/processor.h +++ b/include/asm-sh/processor.h | |||
@@ -49,7 +49,7 @@ enum cpu_type { | |||
49 | 49 | ||
50 | /* SH-4 types */ | 50 | /* SH-4 types */ |
51 | CPU_SH7750, CPU_SH7750S, CPU_SH7750R, CPU_SH7751, CPU_SH7751R, | 51 | CPU_SH7750, CPU_SH7750S, CPU_SH7750R, CPU_SH7751, CPU_SH7751R, |
52 | CPU_SH7760, CPU_ST40RA, CPU_ST40GX1, CPU_SH4_202, CPU_SH4_501, | 52 | CPU_SH7760, CPU_SH4_202, CPU_SH4_501, |
53 | 53 | ||
54 | /* SH-4A types */ | 54 | /* SH-4A types */ |
55 | CPU_SH7770, CPU_SH7780, CPU_SH7781, CPU_SH7785, CPU_SHX3, | 55 | CPU_SH7770, CPU_SH7780, CPU_SH7781, CPU_SH7785, CPU_SHX3, |
@@ -71,7 +71,7 @@ struct sh_cpuinfo { | |||
71 | struct cache_info scache; /* Secondary cache */ | 71 | struct cache_info scache; /* Secondary cache */ |
72 | 72 | ||
73 | unsigned long flags; | 73 | unsigned long flags; |
74 | } __attribute__ ((aligned(SMP_CACHE_BYTES))); | 74 | } __attribute__ ((aligned(L1_CACHE_BYTES))); |
75 | 75 | ||
76 | extern struct sh_cpuinfo cpu_data[]; | 76 | extern struct sh_cpuinfo cpu_data[]; |
77 | #define boot_cpu_data cpu_data[0] | 77 | #define boot_cpu_data cpu_data[0] |
diff --git a/include/asm-sh/ptrace.h b/include/asm-sh/ptrace.h index ed358a376e6e..b9789c8b4d15 100644 --- a/include/asm-sh/ptrace.h +++ b/include/asm-sh/ptrace.h | |||
@@ -42,9 +42,6 @@ | |||
42 | #define REG_FPSCR 55 | 42 | #define REG_FPSCR 55 |
43 | #define REG_FPUL 56 | 43 | #define REG_FPUL 56 |
44 | 44 | ||
45 | /* options set using PTRACE_SETOPTIONS */ | ||
46 | #define PTRACE_O_TRACESYSGOOD 0x00000001 | ||
47 | |||
48 | /* | 45 | /* |
49 | * This struct defines the way the registers are stored on the | 46 | * This struct defines the way the registers are stored on the |
50 | * kernel stack during a system call or other kernel entry. | 47 | * kernel stack during a system call or other kernel entry. |
diff --git a/include/asm-sh/setup.h b/include/asm-sh/setup.h index 586a9711a75d..55a2bd328d99 100644 --- a/include/asm-sh/setup.h +++ b/include/asm-sh/setup.h | |||
@@ -5,6 +5,20 @@ | |||
5 | 5 | ||
6 | #ifdef __KERNEL__ | 6 | #ifdef __KERNEL__ |
7 | 7 | ||
8 | /* | ||
9 | * This is set up by the setup-routine at boot-time | ||
10 | */ | ||
11 | #define PARAM ((unsigned char *)empty_zero_page) | ||
12 | |||
13 | #define MOUNT_ROOT_RDONLY (*(unsigned long *) (PARAM+0x000)) | ||
14 | #define RAMDISK_FLAGS (*(unsigned long *) (PARAM+0x004)) | ||
15 | #define ORIG_ROOT_DEV (*(unsigned long *) (PARAM+0x008)) | ||
16 | #define LOADER_TYPE (*(unsigned long *) (PARAM+0x00c)) | ||
17 | #define INITRD_START (*(unsigned long *) (PARAM+0x010)) | ||
18 | #define INITRD_SIZE (*(unsigned long *) (PARAM+0x014)) | ||
19 | /* ... */ | ||
20 | #define COMMAND_LINE ((char *) (PARAM+0x100)) | ||
21 | |||
8 | int setup_early_printk(char *); | 22 | int setup_early_printk(char *); |
9 | void sh_mv_setup(void); | 23 | void sh_mv_setup(void); |
10 | 24 | ||
diff --git a/include/asm-sh/vga.h b/include/asm-sh/vga.h new file mode 100644 index 000000000000..06a5de8ace1a --- /dev/null +++ b/include/asm-sh/vga.h | |||
@@ -0,0 +1,6 @@ | |||
1 | #ifndef __ASM_SH_VGA_H | ||
2 | #define __ASM_SH_VGA_H | ||
3 | |||
4 | /* Stupid drivers. */ | ||
5 | |||
6 | #endif /* __ASM_SH_VGA_H */ | ||
diff --git a/include/asm-sh64/dma-mapping.h b/include/asm-sh64/dma-mapping.h index 1438b763a5ea..18f8dd642ac5 100644 --- a/include/asm-sh64/dma-mapping.h +++ b/include/asm-sh64/dma-mapping.h | |||
@@ -42,8 +42,9 @@ static inline void dma_free_coherent(struct device *dev, size_t size, | |||
42 | static inline void dma_cache_sync(struct device *dev, void *vaddr, size_t size, | 42 | static inline void dma_cache_sync(struct device *dev, void *vaddr, size_t size, |
43 | enum dma_data_direction dir) | 43 | enum dma_data_direction dir) |
44 | { | 44 | { |
45 | unsigned long s = (unsigned long) vaddr & L1_CACHE_ALIGN_MASK; | 45 | unsigned long start = (unsigned long) vaddr; |
46 | unsigned long e = (vaddr + size) & L1_CACHE_ALIGN_MASK; | 46 | unsigned long s = start & L1_CACHE_ALIGN_MASK; |
47 | unsigned long e = (start + size) & L1_CACHE_ALIGN_MASK; | ||
47 | 48 | ||
48 | for (; s <= e; s += L1_CACHE_BYTES) | 49 | for (; s <= e; s += L1_CACHE_BYTES) |
49 | asm volatile ("ocbp %0, 0" : : "r" (s)); | 50 | asm volatile ("ocbp %0, 0" : : "r" (s)); |
diff --git a/include/asm-sh64/pci.h b/include/asm-sh64/pci.h index 57a67cf7a5c4..18055dbbb4b5 100644 --- a/include/asm-sh64/pci.h +++ b/include/asm-sh64/pci.h | |||
@@ -72,15 +72,6 @@ static inline void pcibios_penalize_isa_irq(int irq, int active) | |||
72 | #define pci_unmap_len_set(PTR, LEN_NAME, VAL) do { } while (0) | 72 | #define pci_unmap_len_set(PTR, LEN_NAME, VAL) do { } while (0) |
73 | #endif | 73 | #endif |
74 | 74 | ||
75 | /* These macros should be used after a pci_map_sg call has been done | ||
76 | * to get bus addresses of each of the SG entries and their lengths. | ||
77 | * You should only work with the number of sg entries pci_map_sg | ||
78 | * returns, or alternatively stop on the first sg_dma_len(sg) which | ||
79 | * is 0. | ||
80 | */ | ||
81 | #define sg_dma_address(sg) ((sg)->dma_address) | ||
82 | #define sg_dma_len(sg) ((sg)->length) | ||
83 | |||
84 | #ifdef CONFIG_PCI | 75 | #ifdef CONFIG_PCI |
85 | static inline void pci_dma_burst_advice(struct pci_dev *pdev, | 76 | static inline void pci_dma_burst_advice(struct pci_dev *pdev, |
86 | enum pci_dma_burst_strategy *strat, | 77 | enum pci_dma_burst_strategy *strat, |
diff --git a/include/asm-sh64/ptrace.h b/include/asm-sh64/ptrace.h index a6d4da519db6..c424f80e3ae0 100644 --- a/include/asm-sh64/ptrace.h +++ b/include/asm-sh64/ptrace.h | |||
@@ -32,6 +32,4 @@ struct pt_regs { | |||
32 | extern void show_regs(struct pt_regs *); | 32 | extern void show_regs(struct pt_regs *); |
33 | #endif | 33 | #endif |
34 | 34 | ||
35 | #define PTRACE_O_TRACESYSGOOD 0x00000001 | ||
36 | |||
37 | #endif /* __ASM_SH64_PTRACE_H */ | 35 | #endif /* __ASM_SH64_PTRACE_H */ |
diff --git a/include/asm-sh64/scatterlist.h b/include/asm-sh64/scatterlist.h index 5109251970e7..7f729bbfce43 100644 --- a/include/asm-sh64/scatterlist.h +++ b/include/asm-sh64/scatterlist.h | |||
@@ -23,6 +23,15 @@ struct scatterlist { | |||
23 | unsigned int length; | 23 | unsigned int length; |
24 | }; | 24 | }; |
25 | 25 | ||
26 | /* These macros should be used after a pci_map_sg call has been done | ||
27 | * to get bus addresses of each of the SG entries and their lengths. | ||
28 | * You should only work with the number of sg entries pci_map_sg | ||
29 | * returns, or alternatively stop on the first sg_dma_len(sg) which | ||
30 | * is 0. | ||
31 | */ | ||
32 | #define sg_dma_address(sg) ((sg)->dma_address) | ||
33 | #define sg_dma_len(sg) ((sg)->length) | ||
34 | |||
26 | #define ISA_DMA_THRESHOLD (0xffffffff) | 35 | #define ISA_DMA_THRESHOLD (0xffffffff) |
27 | 36 | ||
28 | #endif /* !__ASM_SH64_SCATTERLIST_H */ | 37 | #endif /* !__ASM_SH64_SCATTERLIST_H */ |
diff --git a/include/asm-sparc64/futex.h b/include/asm-sparc64/futex.h index 876312fe82cc..df1097d6ffbe 100644 --- a/include/asm-sparc64/futex.h +++ b/include/asm-sparc64/futex.h | |||
@@ -17,7 +17,8 @@ | |||
17 | "3:\n" \ | 17 | "3:\n" \ |
18 | " .section .fixup,#alloc,#execinstr\n" \ | 18 | " .section .fixup,#alloc,#execinstr\n" \ |
19 | " .align 4\n" \ | 19 | " .align 4\n" \ |
20 | "4: ba 3b\n" \ | 20 | "4: sethi %%hi(3b), %0\n" \ |
21 | " jmpl %0 + %%lo(3b), %%g0\n" \ | ||
21 | " mov %5, %0\n" \ | 22 | " mov %5, %0\n" \ |
22 | " .previous\n" \ | 23 | " .previous\n" \ |
23 | " .section __ex_table,\"a\"\n" \ | 24 | " .section __ex_table,\"a\"\n" \ |
@@ -91,7 +92,8 @@ futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval) | |||
91 | "2:\n" | 92 | "2:\n" |
92 | " .section .fixup,#alloc,#execinstr\n" | 93 | " .section .fixup,#alloc,#execinstr\n" |
93 | " .align 4\n" | 94 | " .align 4\n" |
94 | "3: ba 2b\n" | 95 | "3: sethi %%hi(2b), %0\n" |
96 | " jmpl %0 + %%lo(2b), %%g0\n" | ||
95 | " mov %4, %0\n" | 97 | " mov %4, %0\n" |
96 | " .previous\n" | 98 | " .previous\n" |
97 | " .section __ex_table,\"a\"\n" | 99 | " .section __ex_table,\"a\"\n" |
diff --git a/include/asm-sparc64/system.h b/include/asm-sparc64/system.h index 159e62b51d70..99a669c190c7 100644 --- a/include/asm-sparc64/system.h +++ b/include/asm-sparc64/system.h | |||
@@ -178,7 +178,9 @@ do { if (test_thread_flag(TIF_PERFCTR)) { \ | |||
178 | "ldx [%%g6 + %9], %%g4\n\t" \ | 178 | "ldx [%%g6 + %9], %%g4\n\t" \ |
179 | "brz,pt %%o7, 1f\n\t" \ | 179 | "brz,pt %%o7, 1f\n\t" \ |
180 | " mov %%g7, %0\n\t" \ | 180 | " mov %%g7, %0\n\t" \ |
181 | "b,a ret_from_syscall\n\t" \ | 181 | "sethi %%hi(ret_from_syscall), %%g1\n\t" \ |
182 | "jmpl %%g1 + %%lo(ret_from_syscall), %%g0\n\t" \ | ||
183 | " nop\n\t" \ | ||
182 | "1:\n\t" \ | 184 | "1:\n\t" \ |
183 | : "=&r" (last), "=r" (current), "=r" (current_thread_info_reg), \ | 185 | : "=&r" (last), "=r" (current), "=r" (current_thread_info_reg), \ |
184 | "=r" (__local_per_cpu_offset) \ | 186 | "=r" (__local_per_cpu_offset) \ |
diff --git a/include/asm-sparc64/uaccess.h b/include/asm-sparc64/uaccess.h index afe236ba555b..93720e7b0289 100644 --- a/include/asm-sparc64/uaccess.h +++ b/include/asm-sparc64/uaccess.h | |||
@@ -123,7 +123,8 @@ __asm__ __volatile__( \ | |||
123 | ".section .fixup,#alloc,#execinstr\n\t" \ | 123 | ".section .fixup,#alloc,#execinstr\n\t" \ |
124 | ".align 4\n" \ | 124 | ".align 4\n" \ |
125 | "3:\n\t" \ | 125 | "3:\n\t" \ |
126 | "b 2b\n\t" \ | 126 | "sethi %%hi(2b), %0\n\t" \ |
127 | "jmpl %0 + %%lo(2b), %%g0\n\t" \ | ||
127 | " mov %3, %0\n\n\t" \ | 128 | " mov %3, %0\n\n\t" \ |
128 | ".previous\n\t" \ | 129 | ".previous\n\t" \ |
129 | ".section __ex_table,\"a\"\n\t" \ | 130 | ".section __ex_table,\"a\"\n\t" \ |
@@ -165,8 +166,9 @@ __asm__ __volatile__( \ | |||
165 | ".section .fixup,#alloc,#execinstr\n\t" \ | 166 | ".section .fixup,#alloc,#execinstr\n\t" \ |
166 | ".align 4\n" \ | 167 | ".align 4\n" \ |
167 | "3:\n\t" \ | 168 | "3:\n\t" \ |
169 | "sethi %%hi(2b), %0\n\t" \ | ||
168 | "clr %1\n\t" \ | 170 | "clr %1\n\t" \ |
169 | "b 2b\n\t" \ | 171 | "jmpl %0 + %%lo(2b), %%g0\n\t" \ |
170 | " mov %3, %0\n\n\t" \ | 172 | " mov %3, %0\n\n\t" \ |
171 | ".previous\n\t" \ | 173 | ".previous\n\t" \ |
172 | ".section __ex_table,\"a\"\n\t" \ | 174 | ".section __ex_table,\"a\"\n\t" \ |
diff --git a/include/asm-sparc64/vio.h b/include/asm-sparc64/vio.h index f7417e91b170..d4de32f0f8af 100644 --- a/include/asm-sparc64/vio.h +++ b/include/asm-sparc64/vio.h | |||
@@ -8,6 +8,7 @@ | |||
8 | #include <linux/spinlock.h> | 8 | #include <linux/spinlock.h> |
9 | #include <linux/completion.h> | 9 | #include <linux/completion.h> |
10 | #include <linux/list.h> | 10 | #include <linux/list.h> |
11 | #include <linux/log2.h> | ||
11 | 12 | ||
12 | #include <asm/ldc.h> | 13 | #include <asm/ldc.h> |
13 | #include <asm/mdesc.h> | 14 | #include <asm/mdesc.h> |
@@ -257,8 +258,7 @@ static inline void *vio_dring_entry(struct vio_dring_state *dr, | |||
257 | static inline u32 vio_dring_avail(struct vio_dring_state *dr, | 258 | static inline u32 vio_dring_avail(struct vio_dring_state *dr, |
258 | unsigned int ring_size) | 259 | unsigned int ring_size) |
259 | { | 260 | { |
260 | /* Ensure build-time power-of-2. */ | 261 | BUILD_BUG_ON(!is_power_of_2(ring_size)); |
261 | BUILD_BUG_ON(ring_size & (ring_size - 1)); | ||
262 | 262 | ||
263 | return (dr->pending - | 263 | return (dr->pending - |
264 | ((dr->prod - dr->cons) & (ring_size - 1))); | 264 | ((dr->prod - dr->cons) & (ring_size - 1))); |
diff --git a/include/asm-um/pgtable-3level.h b/include/asm-um/pgtable-3level.h index aa82b88db805..3ebafbaacb24 100644 --- a/include/asm-um/pgtable-3level.h +++ b/include/asm-um/pgtable-3level.h | |||
@@ -71,7 +71,7 @@ static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address) | |||
71 | 71 | ||
72 | static inline void pud_clear (pud_t *pud) | 72 | static inline void pud_clear (pud_t *pud) |
73 | { | 73 | { |
74 | set_pud(pud, __pud(0)); | 74 | set_pud(pud, __pud(_PAGE_NEWPAGE)); |
75 | } | 75 | } |
76 | 76 | ||
77 | #define pud_page(pud) phys_to_page(pud_val(pud) & PAGE_MASK) | 77 | #define pud_page(pud) phys_to_page(pud_val(pud) & PAGE_MASK) |
diff --git a/include/asm-um/unistd.h b/include/asm-um/unistd.h index 732c83f04c3d..38bd9d94ee46 100644 --- a/include/asm-um/unistd.h +++ b/include/asm-um/unistd.h | |||
@@ -14,7 +14,6 @@ extern int um_execve(const char *file, char *const argv[], char *const env[]); | |||
14 | 14 | ||
15 | #ifdef __KERNEL__ | 15 | #ifdef __KERNEL__ |
16 | /* We get __ARCH_WANT_OLD_STAT and __ARCH_WANT_STAT64 from the base arch */ | 16 | /* We get __ARCH_WANT_OLD_STAT and __ARCH_WANT_STAT64 from the base arch */ |
17 | #define __ARCH_WANT_IPC_PARSE_VERSION | ||
18 | #define __ARCH_WANT_OLD_READDIR | 17 | #define __ARCH_WANT_OLD_READDIR |
19 | #define __ARCH_WANT_SYS_ALARM | 18 | #define __ARCH_WANT_SYS_ALARM |
20 | #define __ARCH_WANT_SYS_GETHOSTNAME | 19 | #define __ARCH_WANT_SYS_GETHOSTNAME |
diff --git a/include/asm-x86/acpi.h b/include/asm-x86/acpi.h index 0693689d4146..f8a89793ac8c 100644 --- a/include/asm-x86/acpi.h +++ b/include/asm-x86/acpi.h | |||
@@ -1,5 +1,32 @@ | |||
1 | #ifndef _ASM_X86_ACPI_H | ||
2 | #define _ASM_X86_ACPI_H | ||
3 | |||
1 | #ifdef CONFIG_X86_32 | 4 | #ifdef CONFIG_X86_32 |
2 | # include "acpi_32.h" | 5 | # include "acpi_32.h" |
3 | #else | 6 | #else |
4 | # include "acpi_64.h" | 7 | # include "acpi_64.h" |
5 | #endif | 8 | #endif |
9 | |||
10 | #include <asm/processor.h> | ||
11 | |||
12 | /* | ||
13 | * Check if the CPU can handle C2 and deeper | ||
14 | */ | ||
15 | static inline unsigned int acpi_processor_cstate_check(unsigned int max_cstate) | ||
16 | { | ||
17 | /* | ||
18 | * Early models (<=5) of AMD Opterons are not supposed to go into | ||
19 | * C2 state. | ||
20 | * | ||
21 | * Steppings 0x0A and later are good | ||
22 | */ | ||
23 | if (boot_cpu_data.x86 == 0x0F && | ||
24 | boot_cpu_data.x86_vendor == X86_VENDOR_AMD && | ||
25 | boot_cpu_data.x86_model <= 0x05 && | ||
26 | boot_cpu_data.x86_mask < 0x0A) | ||
27 | return 1; | ||
28 | else | ||
29 | return max_cstate; | ||
30 | } | ||
31 | |||
32 | #endif | ||
diff --git a/include/asm-x86/apic_32.h b/include/asm-x86/apic_32.h index 4091b33dcb10..be158b27d54b 100644 --- a/include/asm-x86/apic_32.h +++ b/include/asm-x86/apic_32.h | |||
@@ -120,6 +120,7 @@ extern int local_apic_timer_disabled; | |||
120 | 120 | ||
121 | #else /* !CONFIG_X86_LOCAL_APIC */ | 121 | #else /* !CONFIG_X86_LOCAL_APIC */ |
122 | static inline void lapic_shutdown(void) { } | 122 | static inline void lapic_shutdown(void) { } |
123 | #define local_apic_timer_c2_ok 1 | ||
123 | 124 | ||
124 | #endif /* !CONFIG_X86_LOCAL_APIC */ | 125 | #endif /* !CONFIG_X86_LOCAL_APIC */ |
125 | 126 | ||
diff --git a/include/asm-x86/gart.h b/include/asm-x86/gart.h new file mode 100644 index 000000000000..f704c50519b8 --- /dev/null +++ b/include/asm-x86/gart.h | |||
@@ -0,0 +1,29 @@ | |||
1 | #ifndef _ASM_X8664_IOMMU_H | ||
2 | #define _ASM_X8664_IOMMU_H 1 | ||
3 | |||
4 | extern void pci_iommu_shutdown(void); | ||
5 | extern void no_iommu_init(void); | ||
6 | extern int force_iommu, no_iommu; | ||
7 | extern int iommu_detected; | ||
8 | #ifdef CONFIG_GART_IOMMU | ||
9 | extern void gart_iommu_init(void); | ||
10 | extern void gart_iommu_shutdown(void); | ||
11 | extern void __init gart_parse_options(char *); | ||
12 | extern void gart_iommu_hole_init(void); | ||
13 | extern int fallback_aper_order; | ||
14 | extern int fallback_aper_force; | ||
15 | extern int gart_iommu_aperture; | ||
16 | extern int gart_iommu_aperture_allowed; | ||
17 | extern int gart_iommu_aperture_disabled; | ||
18 | extern int fix_aperture; | ||
19 | #else | ||
20 | #define gart_iommu_aperture 0 | ||
21 | #define gart_iommu_aperture_allowed 0 | ||
22 | |||
23 | static inline void gart_iommu_shutdown(void) | ||
24 | { | ||
25 | } | ||
26 | |||
27 | #endif | ||
28 | |||
29 | #endif | ||
diff --git a/include/asm-x86/i387_64.h b/include/asm-x86/i387_64.h index 0217b74cc9fc..3a4ffba3d6bc 100644 --- a/include/asm-x86/i387_64.h +++ b/include/asm-x86/i387_64.h | |||
@@ -203,6 +203,11 @@ static inline void save_init_fpu(struct task_struct *tsk) | |||
203 | */ | 203 | */ |
204 | static inline int restore_i387(struct _fpstate __user *buf) | 204 | static inline int restore_i387(struct _fpstate __user *buf) |
205 | { | 205 | { |
206 | set_used_math(); | ||
207 | if (!(task_thread_info(current)->status & TS_USEDFPU)) { | ||
208 | clts(); | ||
209 | task_thread_info(current)->status |= TS_USEDFPU; | ||
210 | } | ||
206 | return restore_fpu_checking((__force struct i387_fxsave_struct *)buf); | 211 | return restore_fpu_checking((__force struct i387_fxsave_struct *)buf); |
207 | } | 212 | } |
208 | 213 | ||
diff --git a/include/asm-x86/iommu.h b/include/asm-x86/iommu.h index 5af471f228ee..07862fdd23c0 100644 --- a/include/asm-x86/iommu.h +++ b/include/asm-x86/iommu.h | |||
@@ -1,5 +1,5 @@ | |||
1 | #ifndef _ASM_X8664_IOMMU_H | 1 | #ifndef _ASM_X8664_GART_H |
2 | #define _ASM_X8664_IOMMU_H 1 | 2 | #define _ASM_X8664_GART_H 1 |
3 | 3 | ||
4 | extern void pci_iommu_shutdown(void); | 4 | extern void pci_iommu_shutdown(void); |
5 | extern void no_iommu_init(void); | 5 | extern void no_iommu_init(void); |
diff --git a/include/asm-x86/irqflags_32.h b/include/asm-x86/irqflags_32.h index d058b04e0083..4c7720089cb5 100644 --- a/include/asm-x86/irqflags_32.h +++ b/include/asm-x86/irqflags_32.h | |||
@@ -129,6 +129,27 @@ static inline int raw_irqs_disabled(void) | |||
129 | 129 | ||
130 | return raw_irqs_disabled_flags(flags); | 130 | return raw_irqs_disabled_flags(flags); |
131 | } | 131 | } |
132 | |||
133 | /* | ||
134 | * makes the traced hardirq state match with the machine state | ||
135 | * | ||
136 | * should be a rarely used function, only in places where its | ||
137 | * otherwise impossible to know the irq state, like in traps. | ||
138 | */ | ||
139 | static inline void trace_hardirqs_fixup_flags(unsigned long flags) | ||
140 | { | ||
141 | if (raw_irqs_disabled_flags(flags)) | ||
142 | trace_hardirqs_off(); | ||
143 | else | ||
144 | trace_hardirqs_on(); | ||
145 | } | ||
146 | |||
147 | static inline void trace_hardirqs_fixup(void) | ||
148 | { | ||
149 | unsigned long flags = __raw_local_save_flags(); | ||
150 | |||
151 | trace_hardirqs_fixup_flags(flags); | ||
152 | } | ||
132 | #endif /* __ASSEMBLY__ */ | 153 | #endif /* __ASSEMBLY__ */ |
133 | 154 | ||
134 | /* | 155 | /* |
diff --git a/include/asm-x86/irqflags_64.h b/include/asm-x86/irqflags_64.h index 5341ea1f815a..bb9163bb29d1 100644 --- a/include/asm-x86/irqflags_64.h +++ b/include/asm-x86/irqflags_64.h | |||
@@ -112,6 +112,26 @@ static inline int raw_irqs_disabled(void) | |||
112 | } | 112 | } |
113 | 113 | ||
114 | /* | 114 | /* |
115 | * makes the traced hardirq state match with the machine state | ||
116 | * | ||
117 | * should be a rarely used function, only in places where its | ||
118 | * otherwise impossible to know the irq state, like in traps. | ||
119 | */ | ||
120 | static inline void trace_hardirqs_fixup_flags(unsigned long flags) | ||
121 | { | ||
122 | if (raw_irqs_disabled_flags(flags)) | ||
123 | trace_hardirqs_off(); | ||
124 | else | ||
125 | trace_hardirqs_on(); | ||
126 | } | ||
127 | |||
128 | static inline void trace_hardirqs_fixup(void) | ||
129 | { | ||
130 | unsigned long flags = __raw_local_save_flags(); | ||
131 | |||
132 | trace_hardirqs_fixup_flags(flags); | ||
133 | } | ||
134 | /* | ||
115 | * Used in the idle loop; sti takes one instruction cycle | 135 | * Used in the idle loop; sti takes one instruction cycle |
116 | * to complete: | 136 | * to complete: |
117 | */ | 137 | */ |
diff --git a/include/asm-x86/lguest_hcall.h b/include/asm-x86/lguest_hcall.h index 9c5092b6aa9f..2091779e91fb 100644 --- a/include/asm-x86/lguest_hcall.h +++ b/include/asm-x86/lguest_hcall.h | |||
@@ -54,9 +54,6 @@ hcall(unsigned long call, | |||
54 | } | 54 | } |
55 | /*:*/ | 55 | /*:*/ |
56 | 56 | ||
57 | void async_hcall(unsigned long call, | ||
58 | unsigned long arg1, unsigned long arg2, unsigned long arg3); | ||
59 | |||
60 | /* Can't use our min() macro here: needs to be a constant */ | 57 | /* Can't use our min() macro here: needs to be a constant */ |
61 | #define LGUEST_IRQS (NR_IRQS < 32 ? NR_IRQS: 32) | 58 | #define LGUEST_IRQS (NR_IRQS < 32 ? NR_IRQS: 32) |
62 | 59 | ||
diff --git a/include/asm-x86/mach-default/mach_reboot.h b/include/asm-x86/mach-default/mach_reboot.h index e23fd9fbebb3..6adee6a97dec 100644 --- a/include/asm-x86/mach-default/mach_reboot.h +++ b/include/asm-x86/mach-default/mach_reboot.h | |||
@@ -49,7 +49,7 @@ static inline void mach_reboot(void) | |||
49 | udelay(50); | 49 | udelay(50); |
50 | kb_wait(); | 50 | kb_wait(); |
51 | udelay(50); | 51 | udelay(50); |
52 | outb(cmd | 0x04, 0x60); /* set "System flag" */ | 52 | outb(cmd | 0x14, 0x60); /* set "System flag" and "Keyboard Disabled" */ |
53 | udelay(50); | 53 | udelay(50); |
54 | kb_wait(); | 54 | kb_wait(); |
55 | udelay(50); | 55 | udelay(50); |
diff --git a/include/asm-x86/mach-es7000/mach_mpparse.h b/include/asm-x86/mach-es7000/mach_mpparse.h index 8aa10547b4b1..52ee75cd0fe1 100644 --- a/include/asm-x86/mach-es7000/mach_mpparse.h +++ b/include/asm-x86/mach-es7000/mach_mpparse.h | |||
@@ -29,9 +29,9 @@ extern int mps_oem_check(struct mp_config_table *mpc, char *oem, | |||
29 | static inline int es7000_check_dsdt(void) | 29 | static inline int es7000_check_dsdt(void) |
30 | { | 30 | { |
31 | struct acpi_table_header header; | 31 | struct acpi_table_header header; |
32 | memcpy(&header, 0, sizeof(struct acpi_table_header)); | 32 | |
33 | acpi_get_table_header(ACPI_SIG_DSDT, 0, &header); | 33 | if (ACPI_SUCCESS(acpi_get_table_header(ACPI_SIG_DSDT, 0, &header)) && |
34 | if (!strncmp(header.oem_id, "UNISYS", 6)) | 34 | !strncmp(header.oem_id, "UNISYS", 6)) |
35 | return 1; | 35 | return 1; |
36 | return 0; | 36 | return 0; |
37 | } | 37 | } |
diff --git a/include/asm-x86/mach-voyager/setup_arch.h b/include/asm-x86/mach-voyager/setup_arch.h index 84d01ad33459..71729ca05cd7 100644 --- a/include/asm-x86/mach-voyager/setup_arch.h +++ b/include/asm-x86/mach-voyager/setup_arch.h | |||
@@ -1,5 +1,7 @@ | |||
1 | #include <asm/voyager.h> | 1 | #include <asm/voyager.h> |
2 | #define VOYAGER_BIOS_INFO ((struct voyager_bios_info *)(PARAM+0x40)) | 2 | #include <asm/setup.h> |
3 | #define VOYAGER_BIOS_INFO ((struct voyager_bios_info *) \ | ||
4 | (&boot_params.apm_bios_info)) | ||
3 | 5 | ||
4 | /* Hook to call BIOS initialisation function */ | 6 | /* Hook to call BIOS initialisation function */ |
5 | 7 | ||
diff --git a/include/asm-x86/pci_64.h b/include/asm-x86/pci_64.h index 9baa46d9f594..ef54226a9325 100644 --- a/include/asm-x86/pci_64.h +++ b/include/asm-x86/pci_64.h | |||
@@ -37,7 +37,7 @@ extern int iommu_setup(char *opt); | |||
37 | */ | 37 | */ |
38 | #define PCI_DMA_BUS_IS_PHYS (dma_ops->is_phys) | 38 | #define PCI_DMA_BUS_IS_PHYS (dma_ops->is_phys) |
39 | 39 | ||
40 | #if defined(CONFIG_IOMMU) || defined(CONFIG_CALGARY_IOMMU) | 40 | #if defined(CONFIG_GART_IOMMU) || defined(CONFIG_CALGARY_IOMMU) |
41 | 41 | ||
42 | #define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) \ | 42 | #define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) \ |
43 | dma_addr_t ADDR_NAME; | 43 | dma_addr_t ADDR_NAME; |
diff --git a/include/asm-x86/ptrace.h b/include/asm-x86/ptrace.h index 213c97300cb3..51ddb2590870 100644 --- a/include/asm-x86/ptrace.h +++ b/include/asm-x86/ptrace.h | |||
@@ -60,7 +60,7 @@ static inline int v8086_mode(struct pt_regs *regs) | |||
60 | 60 | ||
61 | #define instruction_pointer(regs) ((regs)->eip) | 61 | #define instruction_pointer(regs) ((regs)->eip) |
62 | #define frame_pointer(regs) ((regs)->ebp) | 62 | #define frame_pointer(regs) ((regs)->ebp) |
63 | #define stack_pointer(regs) ((regs)->esp) | 63 | #define stack_pointer(regs) ((unsigned long)(regs)) |
64 | #define regs_return_value(regs) ((regs)->eax) | 64 | #define regs_return_value(regs) ((regs)->eax) |
65 | 65 | ||
66 | extern unsigned long profile_pc(struct pt_regs *regs); | 66 | extern unsigned long profile_pc(struct pt_regs *regs); |
diff --git a/include/asm-x86/smp_32.h b/include/asm-x86/smp_32.h index 7056d8684522..e10b7affdfe5 100644 --- a/include/asm-x86/smp_32.h +++ b/include/asm-x86/smp_32.h | |||
@@ -94,9 +94,12 @@ static inline void smp_send_reschedule(int cpu) | |||
94 | { | 94 | { |
95 | smp_ops.smp_send_reschedule(cpu); | 95 | smp_ops.smp_send_reschedule(cpu); |
96 | } | 96 | } |
97 | extern int smp_call_function_mask(cpumask_t mask, | 97 | static inline int smp_call_function_mask(cpumask_t mask, |
98 | void (*func) (void *info), void *info, | 98 | void (*func) (void *info), void *info, |
99 | int wait); | 99 | int wait) |
100 | { | ||
101 | return smp_ops.smp_call_function_mask(mask, func, info, wait); | ||
102 | } | ||
100 | 103 | ||
101 | void native_smp_prepare_boot_cpu(void); | 104 | void native_smp_prepare_boot_cpu(void); |
102 | void native_smp_prepare_cpus(unsigned int max_cpus); | 105 | void native_smp_prepare_cpus(unsigned int max_cpus); |
diff --git a/include/linux/Kbuild b/include/linux/Kbuild index 6a65231bc785..37bfa19d8064 100644 --- a/include/linux/Kbuild +++ b/include/linux/Kbuild | |||
@@ -149,6 +149,7 @@ header-y += ticable.h | |||
149 | header-y += times.h | 149 | header-y += times.h |
150 | header-y += tiocl.h | 150 | header-y += tiocl.h |
151 | header-y += tipc.h | 151 | header-y += tipc.h |
152 | header-y += tipc_config.h | ||
152 | header-y += toshiba.h | 153 | header-y += toshiba.h |
153 | header-y += ultrasound.h | 154 | header-y += ultrasound.h |
154 | header-y += un.h | 155 | header-y += un.h |
@@ -325,6 +326,7 @@ unifdef-y += sonypi.h | |||
325 | unifdef-y += soundcard.h | 326 | unifdef-y += soundcard.h |
326 | unifdef-y += stat.h | 327 | unifdef-y += stat.h |
327 | unifdef-y += stddef.h | 328 | unifdef-y += stddef.h |
329 | unifdef-y += string.h | ||
328 | unifdef-y += synclink.h | 330 | unifdef-y += synclink.h |
329 | unifdef-y += sysctl.h | 331 | unifdef-y += sysctl.h |
330 | unifdef-y += tcp.h | 332 | unifdef-y += tcp.h |
diff --git a/include/linux/acpi.h b/include/linux/acpi.h index 8ccedf7a0a5a..e3c16c981e46 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h | |||
@@ -132,6 +132,11 @@ extern unsigned long acpi_realmode_flags; | |||
132 | int acpi_register_gsi (u32 gsi, int triggering, int polarity); | 132 | int acpi_register_gsi (u32 gsi, int triggering, int polarity); |
133 | int acpi_gsi_to_irq (u32 gsi, unsigned int *irq); | 133 | int acpi_gsi_to_irq (u32 gsi, unsigned int *irq); |
134 | 134 | ||
135 | #ifdef CONFIG_X86_IO_APIC | ||
136 | extern int acpi_get_override_irq(int bus_irq, int *trigger, int *polarity); | ||
137 | #else | ||
138 | #define acpi_get_override_irq(bus, trigger, polarity) (-1) | ||
139 | #endif | ||
135 | /* | 140 | /* |
136 | * This function undoes the effect of one call to acpi_register_gsi(). | 141 | * This function undoes the effect of one call to acpi_register_gsi(). |
137 | * If this matches the last registration, any IRQ resources for gsi | 142 | * If this matches the last registration, any IRQ resources for gsi |
diff --git a/include/linux/ata.h b/include/linux/ata.h index 8263a7b74d34..5c4e54a2a8d6 100644 --- a/include/linux/ata.h +++ b/include/linux/ata.h | |||
@@ -43,6 +43,7 @@ enum { | |||
43 | ATA_MAX_SECTORS_128 = 128, | 43 | ATA_MAX_SECTORS_128 = 128, |
44 | ATA_MAX_SECTORS = 256, | 44 | ATA_MAX_SECTORS = 256, |
45 | ATA_MAX_SECTORS_LBA48 = 65535,/* TODO: 65536? */ | 45 | ATA_MAX_SECTORS_LBA48 = 65535,/* TODO: 65536? */ |
46 | ATA_MAX_SECTORS_TAPE = 65535, | ||
46 | 47 | ||
47 | ATA_ID_WORDS = 256, | 48 | ATA_ID_WORDS = 256, |
48 | ATA_ID_SERNO = 10, | 49 | ATA_ID_SERNO = 10, |
@@ -180,6 +181,7 @@ enum { | |||
180 | ATA_CMD_VERIFY_EXT = 0x42, | 181 | ATA_CMD_VERIFY_EXT = 0x42, |
181 | ATA_CMD_STANDBYNOW1 = 0xE0, | 182 | ATA_CMD_STANDBYNOW1 = 0xE0, |
182 | ATA_CMD_IDLEIMMEDIATE = 0xE1, | 183 | ATA_CMD_IDLEIMMEDIATE = 0xE1, |
184 | ATA_CMD_SLEEP = 0xE6, | ||
183 | ATA_CMD_INIT_DEV_PARAMS = 0x91, | 185 | ATA_CMD_INIT_DEV_PARAMS = 0x91, |
184 | ATA_CMD_READ_NATIVE_MAX = 0xF8, | 186 | ATA_CMD_READ_NATIVE_MAX = 0xF8, |
185 | ATA_CMD_READ_NATIVE_MAX_EXT = 0x27, | 187 | ATA_CMD_READ_NATIVE_MAX_EXT = 0x27, |
@@ -235,6 +237,7 @@ enum { | |||
235 | 237 | ||
236 | /* SETFEATURE Sector counts for SATA features */ | 238 | /* SETFEATURE Sector counts for SATA features */ |
237 | SATA_AN = 0x05, /* Asynchronous Notification */ | 239 | SATA_AN = 0x05, /* Asynchronous Notification */ |
240 | SATA_DIPM = 0x03, /* Device Initiated Power Management */ | ||
238 | 241 | ||
239 | /* ATAPI stuff */ | 242 | /* ATAPI stuff */ |
240 | ATAPI_PKT_DMA = (1 << 0), | 243 | ATAPI_PKT_DMA = (1 << 0), |
@@ -377,6 +380,26 @@ struct ata_taskfile { | |||
377 | 380 | ||
378 | #define ata_id_cdb_intr(id) (((id)[0] & 0x60) == 0x20) | 381 | #define ata_id_cdb_intr(id) (((id)[0] & 0x60) == 0x20) |
379 | 382 | ||
383 | static inline bool ata_id_has_hipm(const u16 *id) | ||
384 | { | ||
385 | u16 val = id[76]; | ||
386 | |||
387 | if (val == 0 || val == 0xffff) | ||
388 | return false; | ||
389 | |||
390 | return val & (1 << 9); | ||
391 | } | ||
392 | |||
393 | static inline bool ata_id_has_dipm(const u16 *id) | ||
394 | { | ||
395 | u16 val = id[78]; | ||
396 | |||
397 | if (val == 0 || val == 0xffff) | ||
398 | return false; | ||
399 | |||
400 | return val & (1 << 3); | ||
401 | } | ||
402 | |||
380 | static inline int ata_id_has_fua(const u16 *id) | 403 | static inline int ata_id_has_fua(const u16 *id) |
381 | { | 404 | { |
382 | if ((id[84] & 0xC000) != 0x4000) | 405 | if ((id[84] & 0xC000) != 0x4000) |
@@ -402,6 +425,8 @@ static inline int ata_id_has_lba48(const u16 *id) | |||
402 | { | 425 | { |
403 | if ((id[83] & 0xC000) != 0x4000) | 426 | if ((id[83] & 0xC000) != 0x4000) |
404 | return 0; | 427 | return 0; |
428 | if (!ata_id_u64(id, 100)) | ||
429 | return 0; | ||
405 | return id[83] & (1 << 10); | 430 | return id[83] & (1 << 10); |
406 | } | 431 | } |
407 | 432 | ||
@@ -512,6 +537,15 @@ static inline int ata_drive_40wire(const u16 *dev_id) | |||
512 | return 1; | 537 | return 1; |
513 | } | 538 | } |
514 | 539 | ||
540 | static inline int ata_drive_40wire_relaxed(const u16 *dev_id) | ||
541 | { | ||
542 | if (ata_id_is_sata(dev_id)) | ||
543 | return 0; /* SATA */ | ||
544 | if ((dev_id[93] & 0x2000) == 0x2000) | ||
545 | return 0; /* 80 wire */ | ||
546 | return 1; | ||
547 | } | ||
548 | |||
515 | static inline int atapi_cdb_len(const u16 *dev_id) | 549 | static inline int atapi_cdb_len(const u16 *dev_id) |
516 | { | 550 | { |
517 | u16 tmp = dev_id[0] & 0x3; | 551 | u16 tmp = dev_id[0] & 0x3; |
@@ -522,6 +556,11 @@ static inline int atapi_cdb_len(const u16 *dev_id) | |||
522 | } | 556 | } |
523 | } | 557 | } |
524 | 558 | ||
559 | static inline int atapi_command_packet_set(const u16 *dev_id) | ||
560 | { | ||
561 | return (dev_id[0] >> 8) & 0x1f; | ||
562 | } | ||
563 | |||
525 | static inline int is_atapi_taskfile(const struct ata_taskfile *tf) | 564 | static inline int is_atapi_taskfile(const struct ata_taskfile *tf) |
526 | { | 565 | { |
527 | return (tf->protocol == ATA_PROT_ATAPI) || | 566 | return (tf->protocol == ATA_PROT_ATAPI) || |
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index bbf906a0b419..d18ee67b40f8 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
@@ -341,7 +341,6 @@ enum blk_queue_state { | |||
341 | struct blk_queue_tag { | 341 | struct blk_queue_tag { |
342 | struct request **tag_index; /* map of busy tags */ | 342 | struct request **tag_index; /* map of busy tags */ |
343 | unsigned long *tag_map; /* bit map of free/busy tags */ | 343 | unsigned long *tag_map; /* bit map of free/busy tags */ |
344 | struct list_head busy_list; /* fifo list of busy tags */ | ||
345 | int busy; /* current depth */ | 344 | int busy; /* current depth */ |
346 | int max_depth; /* what we will send to device */ | 345 | int max_depth; /* what we will send to device */ |
347 | int real_max_depth; /* what the array can hold */ | 346 | int real_max_depth; /* what the array can hold */ |
@@ -435,6 +434,7 @@ struct request_queue | |||
435 | unsigned int dma_alignment; | 434 | unsigned int dma_alignment; |
436 | 435 | ||
437 | struct blk_queue_tag *queue_tags; | 436 | struct blk_queue_tag *queue_tags; |
437 | struct list_head tag_busy_list; | ||
438 | 438 | ||
439 | unsigned int nr_sorted; | 439 | unsigned int nr_sorted; |
440 | unsigned int in_flight; | 440 | unsigned int in_flight; |
@@ -697,6 +697,7 @@ extern int blk_execute_rq(struct request_queue *, struct gendisk *, | |||
697 | extern void blk_execute_rq_nowait(struct request_queue *, struct gendisk *, | 697 | extern void blk_execute_rq_nowait(struct request_queue *, struct gendisk *, |
698 | struct request *, int, rq_end_io_fn *); | 698 | struct request *, int, rq_end_io_fn *); |
699 | extern int blk_verify_command(unsigned char *, int); | 699 | extern int blk_verify_command(unsigned char *, int); |
700 | extern void blk_unplug(struct request_queue *q); | ||
700 | 701 | ||
701 | static inline struct request_queue *bdev_get_queue(struct block_device *bdev) | 702 | static inline struct request_queue *bdev_get_queue(struct block_device *bdev) |
702 | { | 703 | { |
diff --git a/include/linux/bootmem.h b/include/linux/bootmem.h index c83534ee1e79..0365ec9fc0c9 100644 --- a/include/linux/bootmem.h +++ b/include/linux/bootmem.h | |||
@@ -59,7 +59,6 @@ extern void *__alloc_bootmem_core(struct bootmem_data *bdata, | |||
59 | unsigned long align, | 59 | unsigned long align, |
60 | unsigned long goal, | 60 | unsigned long goal, |
61 | unsigned long limit); | 61 | unsigned long limit); |
62 | extern void *alloc_bootmem_high_node(pg_data_t *pgdat, unsigned long size); | ||
63 | 62 | ||
64 | #ifndef CONFIG_HAVE_ARCH_BOOTMEM_NODE | 63 | #ifndef CONFIG_HAVE_ARCH_BOOTMEM_NODE |
65 | extern void reserve_bootmem(unsigned long addr, unsigned long size); | 64 | extern void reserve_bootmem(unsigned long addr, unsigned long size); |
diff --git a/include/linux/cgroup_subsys.h b/include/linux/cgroup_subsys.h index 0b9bfbde8168..d62fcee9a08a 100644 --- a/include/linux/cgroup_subsys.h +++ b/include/linux/cgroup_subsys.h | |||
@@ -13,12 +13,6 @@ SUBSYS(cpuset) | |||
13 | 13 | ||
14 | /* */ | 14 | /* */ |
15 | 15 | ||
16 | #ifdef CONFIG_CGROUP_CPUACCT | ||
17 | SUBSYS(cpuacct) | ||
18 | #endif | ||
19 | |||
20 | /* */ | ||
21 | |||
22 | #ifdef CONFIG_CGROUP_DEBUG | 16 | #ifdef CONFIG_CGROUP_DEBUG |
23 | SUBSYS(debug) | 17 | SUBSYS(debug) |
24 | #endif | 18 | #endif |
diff --git a/include/linux/cpu_acct.h b/include/linux/cpu_acct.h deleted file mode 100644 index 6b5fd8a66c8d..000000000000 --- a/include/linux/cpu_acct.h +++ /dev/null | |||
@@ -1,14 +0,0 @@ | |||
1 | |||
2 | #ifndef _LINUX_CPU_ACCT_H | ||
3 | #define _LINUX_CPU_ACCT_H | ||
4 | |||
5 | #include <linux/cgroup.h> | ||
6 | #include <asm/cputime.h> | ||
7 | |||
8 | #ifdef CONFIG_CGROUP_CPUACCT | ||
9 | extern void cpuacct_charge(struct task_struct *, cputime_t cputime); | ||
10 | #else | ||
11 | static void inline cpuacct_charge(struct task_struct *p, cputime_t cputime) {} | ||
12 | #endif | ||
13 | |||
14 | #endif | ||
diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h index 16a51546db44..c4e00161a247 100644 --- a/include/linux/cpuidle.h +++ b/include/linux/cpuidle.h | |||
@@ -92,6 +92,7 @@ struct cpuidle_device { | |||
92 | struct kobject kobj; | 92 | struct kobject kobj; |
93 | struct completion kobj_unregister; | 93 | struct completion kobj_unregister; |
94 | void *governor_data; | 94 | void *governor_data; |
95 | struct cpuidle_state *safe_state; | ||
95 | }; | 96 | }; |
96 | 97 | ||
97 | DECLARE_PER_CPU(struct cpuidle_device *, cpuidle_devices); | 98 | DECLARE_PER_CPU(struct cpuidle_device *, cpuidle_devices); |
diff --git a/include/linux/device-mapper.h b/include/linux/device-mapper.h index 37c66d1254b5..b8b7c51389fe 100644 --- a/include/linux/device-mapper.h +++ b/include/linux/device-mapper.h | |||
@@ -116,6 +116,7 @@ struct io_restrictions { | |||
116 | unsigned short hardsect_size; | 116 | unsigned short hardsect_size; |
117 | unsigned int max_segment_size; | 117 | unsigned int max_segment_size; |
118 | unsigned long seg_boundary_mask; | 118 | unsigned long seg_boundary_mask; |
119 | unsigned long bounce_pfn; | ||
119 | unsigned char no_cluster; /* inverted so that 0 is default */ | 120 | unsigned char no_cluster; /* inverted so that 0 is default */ |
120 | }; | 121 | }; |
121 | 122 | ||
diff --git a/include/linux/eventpoll.h b/include/linux/eventpoll.h index d2a96cbf4f0e..cf79853967ff 100644 --- a/include/linux/eventpoll.h +++ b/include/linux/eventpoll.h | |||
@@ -32,18 +32,13 @@ | |||
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 | * | 34 | * |
35 | * UML/x86_64 needs the same packing as x86_64 - UML + UML_X86 + | 35 | * UML/x86_64 needs the same packing as x86_64 |
36 | * 64_BIT adds up to UML/x86_64. | ||
37 | */ | 36 | */ |
38 | #ifdef __x86_64__ | 37 | #ifdef __x86_64__ |
39 | #define EPOLL_PACKED __attribute__((packed)) | 38 | #define EPOLL_PACKED __attribute__((packed)) |
40 | #else | 39 | #else |
41 | #if defined(CONFIG_UML) && defined(CONFIG_UML_X86) && defined(CONFIG_64BIT) | ||
42 | #define EPOLL_PACKED __attribute__((packed)) | ||
43 | #else | ||
44 | #define EPOLL_PACKED | 40 | #define EPOLL_PACKED |
45 | #endif | 41 | #endif |
46 | #endif | ||
47 | 42 | ||
48 | struct epoll_event { | 43 | struct epoll_event { |
49 | __u32 events; | 44 | __u32 events; |
diff --git a/include/linux/ext3_fs.h b/include/linux/ext3_fs.h index 64134456ed8c..241c01cb92b2 100644 --- a/include/linux/ext3_fs.h +++ b/include/linux/ext3_fs.h | |||
@@ -656,6 +656,26 @@ struct ext3_dir_entry_2 { | |||
656 | #define EXT3_DIR_ROUND (EXT3_DIR_PAD - 1) | 656 | #define EXT3_DIR_ROUND (EXT3_DIR_PAD - 1) |
657 | #define EXT3_DIR_REC_LEN(name_len) (((name_len) + 8 + EXT3_DIR_ROUND) & \ | 657 | #define EXT3_DIR_REC_LEN(name_len) (((name_len) + 8 + EXT3_DIR_ROUND) & \ |
658 | ~EXT3_DIR_ROUND) | 658 | ~EXT3_DIR_ROUND) |
659 | #define EXT3_MAX_REC_LEN ((1<<16)-1) | ||
660 | |||
661 | static inline unsigned ext3_rec_len_from_disk(__le16 dlen) | ||
662 | { | ||
663 | unsigned len = le16_to_cpu(dlen); | ||
664 | |||
665 | if (len == EXT3_MAX_REC_LEN) | ||
666 | return 1 << 16; | ||
667 | return len; | ||
668 | } | ||
669 | |||
670 | static inline __le16 ext3_rec_len_to_disk(unsigned len) | ||
671 | { | ||
672 | if (len == (1 << 16)) | ||
673 | return cpu_to_le16(EXT3_MAX_REC_LEN); | ||
674 | else if (len > (1 << 16)) | ||
675 | BUG(); | ||
676 | return cpu_to_le16(len); | ||
677 | } | ||
678 | |||
659 | /* | 679 | /* |
660 | * Hash Tree Directory indexing | 680 | * Hash Tree Directory indexing |
661 | * (c) Daniel Phillips, 2001 | 681 | * (c) Daniel Phillips, 2001 |
diff --git a/include/linux/f75375s.h b/include/linux/f75375s.h new file mode 100644 index 000000000000..e99e22500668 --- /dev/null +++ b/include/linux/f75375s.h | |||
@@ -0,0 +1,21 @@ | |||
1 | /* | ||
2 | * f75375s.h - platform data structure for f75375s sensor | ||
3 | * | ||
4 | * This file is subject to the terms and conditions of the GNU General Public | ||
5 | * License. See the file "COPYING" in the main directory of this archive | ||
6 | * for more details. | ||
7 | * | ||
8 | * Copyright (C) 2007, Riku Voipio <riku.voipio@iki.fi> | ||
9 | */ | ||
10 | |||
11 | #ifndef __LINUX_F75375S_H | ||
12 | #define __LINUX_F75375S_H | ||
13 | |||
14 | /* We want to set fans spinning on systems where there is no | ||
15 | * BIOS to do that for us */ | ||
16 | struct f75375s_platform_data { | ||
17 | u8 pwm[2]; | ||
18 | u8 pwm_enable[2]; | ||
19 | }; | ||
20 | |||
21 | #endif /* __LINUX_F75375S_H */ | ||
diff --git a/include/linux/futex.h b/include/linux/futex.h index 99650353adfa..92d420fe03f8 100644 --- a/include/linux/futex.h +++ b/include/linux/futex.h | |||
@@ -149,10 +149,6 @@ union futex_key { | |||
149 | int offset; | 149 | int offset; |
150 | } both; | 150 | } both; |
151 | }; | 151 | }; |
152 | int get_futex_key(u32 __user *uaddr, struct rw_semaphore *shared, | ||
153 | union futex_key *key); | ||
154 | void get_futex_key_refs(union futex_key *key); | ||
155 | void drop_futex_key_refs(union futex_key *key); | ||
156 | 152 | ||
157 | #ifdef CONFIG_FUTEX | 153 | #ifdef CONFIG_FUTEX |
158 | extern void exit_robust_list(struct task_struct *curr); | 154 | extern void exit_robust_list(struct task_struct *curr); |
diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h index ea0f50bfbe03..24968790bc3e 100644 --- a/include/linux/hugetlb.h +++ b/include/linux/hugetlb.h | |||
@@ -19,7 +19,7 @@ static inline int is_vm_hugetlb_page(struct vm_area_struct *vma) | |||
19 | int hugetlb_sysctl_handler(struct ctl_table *, int, struct file *, void __user *, size_t *, loff_t *); | 19 | int hugetlb_sysctl_handler(struct ctl_table *, int, struct file *, void __user *, size_t *, loff_t *); |
20 | int hugetlb_treat_movable_handler(struct ctl_table *, int, struct file *, void __user *, size_t *, loff_t *); | 20 | int hugetlb_treat_movable_handler(struct ctl_table *, int, struct file *, void __user *, size_t *, loff_t *); |
21 | int copy_hugetlb_page_range(struct mm_struct *, struct mm_struct *, struct vm_area_struct *); | 21 | int copy_hugetlb_page_range(struct mm_struct *, struct mm_struct *, struct vm_area_struct *); |
22 | int follow_hugetlb_page(struct mm_struct *, struct vm_area_struct *, struct page **, struct vm_area_struct **, unsigned long *, int *, int); | 22 | int follow_hugetlb_page(struct mm_struct *, struct vm_area_struct *, struct page **, struct vm_area_struct **, unsigned long *, int *, int, int); |
23 | void unmap_hugepage_range(struct vm_area_struct *, unsigned long, unsigned long); | 23 | void unmap_hugepage_range(struct vm_area_struct *, unsigned long, unsigned long); |
24 | void __unmap_hugepage_range(struct vm_area_struct *, unsigned long, unsigned long); | 24 | void __unmap_hugepage_range(struct vm_area_struct *, unsigned long, unsigned long); |
25 | int hugetlb_prefault(struct address_space *, struct vm_area_struct *); | 25 | int hugetlb_prefault(struct address_space *, struct vm_area_struct *); |
@@ -106,7 +106,7 @@ static inline unsigned long hugetlb_total_pages(void) | |||
106 | return 0; | 106 | return 0; |
107 | } | 107 | } |
108 | 108 | ||
109 | #define follow_hugetlb_page(m,v,p,vs,a,b,i) ({ BUG(); 0; }) | 109 | #define follow_hugetlb_page(m,v,p,vs,a,b,i,w) ({ BUG(); 0; }) |
110 | #define follow_huge_addr(mm, addr, write) ERR_PTR(-EINVAL) | 110 | #define follow_huge_addr(mm, addr, write) ERR_PTR(-EINVAL) |
111 | #define copy_hugetlb_page_range(src, dst, vma) ({ BUG(); 0; }) | 111 | #define copy_hugetlb_page_range(src, dst, vma) ({ BUG(); 0; }) |
112 | #define hugetlb_prefault(mapping, vma) ({ BUG(); 0; }) | 112 | #define hugetlb_prefault(mapping, vma) ({ BUG(); 0; }) |
@@ -165,8 +165,10 @@ static inline struct hugetlbfs_sb_info *HUGETLBFS_SB(struct super_block *sb) | |||
165 | extern const struct file_operations hugetlbfs_file_operations; | 165 | extern const struct file_operations hugetlbfs_file_operations; |
166 | extern struct vm_operations_struct hugetlb_vm_ops; | 166 | extern struct vm_operations_struct hugetlb_vm_ops; |
167 | struct file *hugetlb_file_setup(const char *name, size_t); | 167 | struct file *hugetlb_file_setup(const char *name, size_t); |
168 | int hugetlb_get_quota(struct address_space *mapping); | 168 | int hugetlb_get_quota(struct address_space *mapping, long delta); |
169 | void hugetlb_put_quota(struct address_space *mapping); | 169 | void hugetlb_put_quota(struct address_space *mapping, long delta); |
170 | |||
171 | #define BLOCKS_PER_HUGEPAGE (HPAGE_SIZE / 512) | ||
170 | 172 | ||
171 | static inline int is_file_hugepages(struct file *file) | 173 | static inline int is_file_hugepages(struct file *file) |
172 | { | 174 | { |
diff --git a/include/linux/i2c.h b/include/linux/i2c.h index 8033e6b33271..a100c9f8eb7c 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h | |||
@@ -400,11 +400,6 @@ extern int i2c_release_client(struct i2c_client *); | |||
400 | extern void i2c_clients_command(struct i2c_adapter *adap, | 400 | extern void i2c_clients_command(struct i2c_adapter *adap, |
401 | unsigned int cmd, void *arg); | 401 | unsigned int cmd, void *arg); |
402 | 402 | ||
403 | /* returns -EBUSY if address has been taken, 0 if not. Note that the only | ||
404 | other place at which this is called is within i2c_attach_client; so | ||
405 | you can cheat by simply not registering. Not recommended, of course! */ | ||
406 | extern int i2c_check_addr (struct i2c_adapter *adapter, int addr); | ||
407 | |||
408 | /* Detect function. It iterates over all possible addresses itself. | 403 | /* Detect function. It iterates over all possible addresses itself. |
409 | * It will only call found_proc if some client is connected at the | 404 | * It will only call found_proc if some client is connected at the |
410 | * specific address (unless a 'force' matched); | 405 | * specific address (unless a 'force' matched); |
diff --git a/include/linux/ide.h b/include/linux/ide.h index 4ed4777bba67..dc75ccbcf991 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h | |||
@@ -1031,14 +1031,7 @@ ide_startstop_t __ide_abort(ide_drive_t *, struct request *); | |||
1031 | extern ide_startstop_t ide_abort(ide_drive_t *, const char *); | 1031 | extern ide_startstop_t ide_abort(ide_drive_t *, const char *); |
1032 | 1032 | ||
1033 | extern void ide_fix_driveid(struct hd_driveid *); | 1033 | extern void ide_fix_driveid(struct hd_driveid *); |
1034 | /* | 1034 | |
1035 | * ide_fixstring() cleans up and (optionally) byte-swaps a text string, | ||
1036 | * removing leading/trailing blanks and compressing internal blanks. | ||
1037 | * It is primarily used to tidy up the model name/number fields as | ||
1038 | * returned by the WIN_[P]IDENTIFY commands. | ||
1039 | * | ||
1040 | * (s, bytecount, byteswap) | ||
1041 | */ | ||
1042 | extern void ide_fixstring(u8 *, const int, const int); | 1035 | extern void ide_fixstring(u8 *, const int, const int); |
1043 | 1036 | ||
1044 | int ide_wait_stat(ide_startstop_t *, ide_drive_t *, u8, u8, unsigned long); | 1037 | int ide_wait_stat(ide_startstop_t *, ide_drive_t *, u8, u8, unsigned long); |
diff --git a/include/linux/ipmi_smi.h b/include/linux/ipmi_smi.h index 56ae438ae510..6e8cec503380 100644 --- a/include/linux/ipmi_smi.h +++ b/include/linux/ipmi_smi.h | |||
@@ -173,7 +173,7 @@ static inline int ipmi_demangle_device_id(const unsigned char *data, | |||
173 | id->firmware_revision_2 = data[3]; | 173 | id->firmware_revision_2 = data[3]; |
174 | id->ipmi_version = data[4]; | 174 | id->ipmi_version = data[4]; |
175 | id->additional_device_support = data[5]; | 175 | id->additional_device_support = data[5]; |
176 | if (data_len >= 6) { | 176 | if (data_len >= 11) { |
177 | id->manufacturer_id = (data[6] | (data[7] << 8) | | 177 | id->manufacturer_id = (data[6] | (data[7] << 8) | |
178 | (data[8] << 16)); | 178 | (data[8] << 16)); |
179 | id->product_id = data[9] | (data[10] << 8); | 179 | id->product_id = data[9] | (data[10] << 8); |
diff --git a/include/linux/kallsyms.h b/include/linux/kallsyms.h index f73de6fb5c68..82de2fb62cb7 100644 --- a/include/linux/kallsyms.h +++ b/include/linux/kallsyms.h | |||
@@ -6,6 +6,7 @@ | |||
6 | #define _LINUX_KALLSYMS_H | 6 | #define _LINUX_KALLSYMS_H |
7 | 7 | ||
8 | #include <linux/errno.h> | 8 | #include <linux/errno.h> |
9 | #include <linux/stddef.h> | ||
9 | 10 | ||
10 | #define KSYM_NAME_LEN 128 | 11 | #define KSYM_NAME_LEN 128 |
11 | #define KSYM_SYMBOL_LEN (sizeof("%s+%#lx/%#lx [%s]") + (KSYM_NAME_LEN - 1) + \ | 12 | #define KSYM_SYMBOL_LEN (sizeof("%s+%#lx/%#lx [%s]") + (KSYM_NAME_LEN - 1) + \ |
diff --git a/include/linux/libata.h b/include/linux/libata.h index 6fd24e03622e..ef52a07c43d8 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
@@ -133,11 +133,14 @@ enum { | |||
133 | ATA_DFLAG_ACPI_PENDING = (1 << 5), /* ACPI resume action pending */ | 133 | ATA_DFLAG_ACPI_PENDING = (1 << 5), /* ACPI resume action pending */ |
134 | ATA_DFLAG_ACPI_FAILED = (1 << 6), /* ACPI on devcfg has failed */ | 134 | ATA_DFLAG_ACPI_FAILED = (1 << 6), /* ACPI on devcfg has failed */ |
135 | ATA_DFLAG_AN = (1 << 7), /* AN configured */ | 135 | ATA_DFLAG_AN = (1 << 7), /* AN configured */ |
136 | ATA_DFLAG_HIPM = (1 << 8), /* device supports HIPM */ | ||
137 | ATA_DFLAG_DIPM = (1 << 9), /* device supports DIPM */ | ||
136 | ATA_DFLAG_CFG_MASK = (1 << 12) - 1, | 138 | ATA_DFLAG_CFG_MASK = (1 << 12) - 1, |
137 | 139 | ||
138 | ATA_DFLAG_PIO = (1 << 12), /* device limited to PIO mode */ | 140 | ATA_DFLAG_PIO = (1 << 12), /* device limited to PIO mode */ |
139 | ATA_DFLAG_NCQ_OFF = (1 << 13), /* device limited to non-NCQ mode */ | 141 | ATA_DFLAG_NCQ_OFF = (1 << 13), /* device limited to non-NCQ mode */ |
140 | ATA_DFLAG_SPUNDOWN = (1 << 14), /* XXX: for spindown_compat */ | 142 | ATA_DFLAG_SPUNDOWN = (1 << 14), /* XXX: for spindown_compat */ |
143 | ATA_DFLAG_SLEEPING = (1 << 15), /* device is sleeping */ | ||
141 | ATA_DFLAG_INIT_MASK = (1 << 16) - 1, | 144 | ATA_DFLAG_INIT_MASK = (1 << 16) - 1, |
142 | 145 | ||
143 | ATA_DFLAG_DETACH = (1 << 16), | 146 | ATA_DFLAG_DETACH = (1 << 16), |
@@ -185,6 +188,7 @@ enum { | |||
185 | ATA_FLAG_ACPI_SATA = (1 << 17), /* need native SATA ACPI layout */ | 188 | ATA_FLAG_ACPI_SATA = (1 << 17), /* need native SATA ACPI layout */ |
186 | ATA_FLAG_AN = (1 << 18), /* controller supports AN */ | 189 | ATA_FLAG_AN = (1 << 18), /* controller supports AN */ |
187 | ATA_FLAG_PMP = (1 << 19), /* controller supports PMP */ | 190 | ATA_FLAG_PMP = (1 << 19), /* controller supports PMP */ |
191 | ATA_FLAG_IPM = (1 << 20), /* driver can handle IPM */ | ||
188 | 192 | ||
189 | /* The following flag belongs to ap->pflags but is kept in | 193 | /* The following flag belongs to ap->pflags but is kept in |
190 | * ap->flags because it's referenced in many LLDs and will be | 194 | * ap->flags because it's referenced in many LLDs and will be |
@@ -217,6 +221,7 @@ enum { | |||
217 | ATA_QCFLAG_IO = (1 << 3), /* standard IO command */ | 221 | ATA_QCFLAG_IO = (1 << 3), /* standard IO command */ |
218 | ATA_QCFLAG_RESULT_TF = (1 << 4), /* result TF requested */ | 222 | ATA_QCFLAG_RESULT_TF = (1 << 4), /* result TF requested */ |
219 | ATA_QCFLAG_CLEAR_EXCL = (1 << 5), /* clear excl_link on completion */ | 223 | ATA_QCFLAG_CLEAR_EXCL = (1 << 5), /* clear excl_link on completion */ |
224 | ATA_QCFLAG_QUIET = (1 << 6), /* don't report device error */ | ||
220 | 225 | ||
221 | ATA_QCFLAG_FAILED = (1 << 16), /* cmd failed and is owned by EH */ | 226 | ATA_QCFLAG_FAILED = (1 << 16), /* cmd failed and is owned by EH */ |
222 | ATA_QCFLAG_SENSE_VALID = (1 << 17), /* sense data valid */ | 227 | ATA_QCFLAG_SENSE_VALID = (1 << 17), /* sense data valid */ |
@@ -234,6 +239,13 @@ enum { | |||
234 | ATA_TMOUT_INTERNAL = 30 * HZ, | 239 | ATA_TMOUT_INTERNAL = 30 * HZ, |
235 | ATA_TMOUT_INTERNAL_QUICK = 5 * HZ, | 240 | ATA_TMOUT_INTERNAL_QUICK = 5 * HZ, |
236 | 241 | ||
242 | /* FIXME: GoVault needs 2s but we can't afford that without | ||
243 | * parallel probing. 800ms is enough for iVDR disk | ||
244 | * HHD424020F7SV00. Increase to 2secs when parallel probing | ||
245 | * is in place. | ||
246 | */ | ||
247 | ATA_TMOUT_FF_WAIT = 4 * HZ / 5, | ||
248 | |||
237 | /* ATA bus states */ | 249 | /* ATA bus states */ |
238 | BUS_UNKNOWN = 0, | 250 | BUS_UNKNOWN = 0, |
239 | BUS_DMA = 1, | 251 | BUS_DMA = 1, |
@@ -294,6 +306,7 @@ enum { | |||
294 | ATA_EHI_RESUME_LINK = (1 << 1), /* resume link (reset modifier) */ | 306 | ATA_EHI_RESUME_LINK = (1 << 1), /* resume link (reset modifier) */ |
295 | ATA_EHI_NO_AUTOPSY = (1 << 2), /* no autopsy */ | 307 | ATA_EHI_NO_AUTOPSY = (1 << 2), /* no autopsy */ |
296 | ATA_EHI_QUIET = (1 << 3), /* be quiet */ | 308 | ATA_EHI_QUIET = (1 << 3), /* be quiet */ |
309 | ATA_EHI_LPM = (1 << 4), /* link power management action */ | ||
297 | 310 | ||
298 | ATA_EHI_DID_SOFTRESET = (1 << 16), /* already soft-reset this port */ | 311 | ATA_EHI_DID_SOFTRESET = (1 << 16), /* already soft-reset this port */ |
299 | ATA_EHI_DID_HARDRESET = (1 << 17), /* already soft-reset this port */ | 312 | ATA_EHI_DID_HARDRESET = (1 << 17), /* already soft-reset this port */ |
@@ -325,6 +338,9 @@ enum { | |||
325 | ATA_HORKAGE_BROKEN_HPA = (1 << 4), /* Broken HPA */ | 338 | ATA_HORKAGE_BROKEN_HPA = (1 << 4), /* Broken HPA */ |
326 | ATA_HORKAGE_SKIP_PM = (1 << 5), /* Skip PM operations */ | 339 | ATA_HORKAGE_SKIP_PM = (1 << 5), /* Skip PM operations */ |
327 | ATA_HORKAGE_HPA_SIZE = (1 << 6), /* native size off by one */ | 340 | ATA_HORKAGE_HPA_SIZE = (1 << 6), /* native size off by one */ |
341 | ATA_HORKAGE_IPM = (1 << 7), /* Link PM problems */ | ||
342 | ATA_HORKAGE_IVB = (1 << 8), /* cbl det validity bit bugs */ | ||
343 | ATA_HORKAGE_STUCK_ERR = (1 << 9), /* stuck ERR on next PACKET */ | ||
328 | 344 | ||
329 | /* DMA mask for user DMA control: User visible values; DO NOT | 345 | /* DMA mask for user DMA control: User visible values; DO NOT |
330 | renumber */ | 346 | renumber */ |
@@ -370,6 +386,18 @@ typedef int (*ata_reset_fn_t)(struct ata_link *link, unsigned int *classes, | |||
370 | unsigned long deadline); | 386 | unsigned long deadline); |
371 | typedef void (*ata_postreset_fn_t)(struct ata_link *link, unsigned int *classes); | 387 | typedef void (*ata_postreset_fn_t)(struct ata_link *link, unsigned int *classes); |
372 | 388 | ||
389 | /* | ||
390 | * host pm policy: If you alter this, you also need to alter libata-scsi.c | ||
391 | * (for the ascii descriptions) | ||
392 | */ | ||
393 | enum link_pm { | ||
394 | NOT_AVAILABLE, | ||
395 | MIN_POWER, | ||
396 | MAX_PERFORMANCE, | ||
397 | MEDIUM_POWER, | ||
398 | }; | ||
399 | extern struct class_device_attribute class_device_attr_link_power_management_policy; | ||
400 | |||
373 | struct ata_ioports { | 401 | struct ata_ioports { |
374 | void __iomem *cmd_addr; | 402 | void __iomem *cmd_addr; |
375 | void __iomem *data_addr; | 403 | void __iomem *data_addr; |
@@ -616,6 +644,7 @@ struct ata_port { | |||
616 | 644 | ||
617 | pm_message_t pm_mesg; | 645 | pm_message_t pm_mesg; |
618 | int *pm_result; | 646 | int *pm_result; |
647 | enum link_pm pm_policy; | ||
619 | 648 | ||
620 | struct timer_list fastdrain_timer; | 649 | struct timer_list fastdrain_timer; |
621 | unsigned long fastdrain_cnt; | 650 | unsigned long fastdrain_cnt; |
@@ -683,7 +712,8 @@ struct ata_port_operations { | |||
683 | 712 | ||
684 | int (*port_suspend) (struct ata_port *ap, pm_message_t mesg); | 713 | int (*port_suspend) (struct ata_port *ap, pm_message_t mesg); |
685 | int (*port_resume) (struct ata_port *ap); | 714 | int (*port_resume) (struct ata_port *ap); |
686 | 715 | int (*enable_pm) (struct ata_port *ap, enum link_pm policy); | |
716 | void (*disable_pm) (struct ata_port *ap); | ||
687 | int (*port_start) (struct ata_port *ap); | 717 | int (*port_start) (struct ata_port *ap); |
688 | void (*port_stop) (struct ata_port *ap); | 718 | void (*port_stop) (struct ata_port *ap); |
689 | 719 | ||
@@ -742,8 +772,6 @@ static inline int ata_port_is_dummy(struct ata_port *ap) | |||
742 | 772 | ||
743 | extern void sata_print_link_status(struct ata_link *link); | 773 | extern void sata_print_link_status(struct ata_link *link); |
744 | extern void ata_port_probe(struct ata_port *); | 774 | extern void ata_port_probe(struct ata_port *); |
745 | extern void __sata_phy_reset(struct ata_port *ap); | ||
746 | extern void sata_phy_reset(struct ata_port *ap); | ||
747 | extern void ata_bus_reset(struct ata_port *ap); | 775 | extern void ata_bus_reset(struct ata_port *ap); |
748 | extern int sata_set_spd(struct ata_link *link); | 776 | extern int sata_set_spd(struct ata_link *link); |
749 | extern int sata_link_debounce(struct ata_link *link, | 777 | extern int sata_link_debounce(struct ata_link *link, |
@@ -799,6 +827,7 @@ extern void ata_host_resume(struct ata_host *host); | |||
799 | extern int ata_ratelimit(void); | 827 | extern int ata_ratelimit(void); |
800 | extern int ata_busy_sleep(struct ata_port *ap, | 828 | extern int ata_busy_sleep(struct ata_port *ap, |
801 | unsigned long timeout_pat, unsigned long timeout); | 829 | unsigned long timeout_pat, unsigned long timeout); |
830 | extern void ata_wait_after_reset(struct ata_port *ap, unsigned long deadline); | ||
802 | extern int ata_wait_ready(struct ata_port *ap, unsigned long deadline); | 831 | extern int ata_wait_ready(struct ata_port *ap, unsigned long deadline); |
803 | extern void ata_port_queue_task(struct ata_port *ap, work_func_t fn, | 832 | extern void ata_port_queue_task(struct ata_port *ap, work_func_t fn, |
804 | void *data, unsigned long delay); | 833 | void *data, unsigned long delay); |
@@ -964,8 +993,6 @@ extern void sata_pmp_do_eh(struct ata_port *ap, | |||
964 | /* | 993 | /* |
965 | * EH | 994 | * EH |
966 | */ | 995 | */ |
967 | extern void ata_eng_timeout(struct ata_port *ap); | ||
968 | |||
969 | extern void ata_port_schedule_eh(struct ata_port *ap); | 996 | extern void ata_port_schedule_eh(struct ata_port *ap); |
970 | extern int ata_link_abort(struct ata_link *link); | 997 | extern int ata_link_abort(struct ata_link *link); |
971 | extern int ata_port_abort(struct ata_port *ap); | 998 | extern int ata_port_abort(struct ata_port *ap); |
diff --git a/include/linux/mc146818rtc.h b/include/linux/mc146818rtc.h index 580b3f4956ee..2f4e957af656 100644 --- a/include/linux/mc146818rtc.h +++ b/include/linux/mc146818rtc.h | |||
@@ -109,8 +109,11 @@ struct cmos_rtc_board_info { | |||
109 | #ifndef ARCH_RTC_LOCATION /* Override by <asm/mc146818rtc.h>? */ | 109 | #ifndef ARCH_RTC_LOCATION /* Override by <asm/mc146818rtc.h>? */ |
110 | 110 | ||
111 | #define RTC_IO_EXTENT 0x8 | 111 | #define RTC_IO_EXTENT 0x8 |
112 | #define RTC_IO_EXTENT_USED 0x2 | ||
112 | #define RTC_IOMAPPED 1 /* Default to I/O mapping. */ | 113 | #define RTC_IOMAPPED 1 /* Default to I/O mapping. */ |
113 | 114 | ||
115 | #else | ||
116 | #define RTC_IO_EXTENT_USED RTC_IO_EXTENT | ||
114 | #endif /* ARCH_RTC_LOCATION */ | 117 | #endif /* ARCH_RTC_LOCATION */ |
115 | 118 | ||
116 | #endif /* _MC146818RTC_H */ | 119 | #endif /* _MC146818RTC_H */ |
diff --git a/include/linux/mroute.h b/include/linux/mroute.h index 7da2cee8e132..35a8277ec1bd 100644 --- a/include/linux/mroute.h +++ b/include/linux/mroute.h | |||
@@ -128,6 +128,18 @@ struct igmpmsg | |||
128 | #ifdef __KERNEL__ | 128 | #ifdef __KERNEL__ |
129 | #include <net/sock.h> | 129 | #include <net/sock.h> |
130 | 130 | ||
131 | #ifdef CONFIG_IP_MROUTE | ||
132 | static inline int ip_mroute_opt(int opt) | ||
133 | { | ||
134 | return (opt >= MRT_BASE) && (opt <= MRT_BASE + 10); | ||
135 | } | ||
136 | #else | ||
137 | static inline int ip_mroute_opt(int opt) | ||
138 | { | ||
139 | return 0; | ||
140 | } | ||
141 | #endif | ||
142 | |||
131 | extern int ip_mroute_setsockopt(struct sock *, int, char __user *, int); | 143 | extern int ip_mroute_setsockopt(struct sock *, int, char __user *, int); |
132 | extern int ip_mroute_getsockopt(struct sock *, int, char __user *, int __user *); | 144 | extern int ip_mroute_getsockopt(struct sock *, int, char __user *, int __user *); |
133 | extern int ipmr_ioctl(struct sock *sk, int cmd, void __user *arg); | 145 | extern int ipmr_ioctl(struct sock *sk, int cmd, void __user *arg); |
diff --git a/include/linux/mv643xx_eth.h b/include/linux/mv643xx_eth.h index 3f272396642b..30e11aa3c1c9 100644 --- a/include/linux/mv643xx_eth.h +++ b/include/linux/mv643xx_eth.h | |||
@@ -8,6 +8,9 @@ | |||
8 | #define MV643XX_ETH_NAME "mv643xx_eth" | 8 | #define MV643XX_ETH_NAME "mv643xx_eth" |
9 | #define MV643XX_ETH_SHARED_REGS 0x2000 | 9 | #define MV643XX_ETH_SHARED_REGS 0x2000 |
10 | #define MV643XX_ETH_SHARED_REGS_SIZE 0x2000 | 10 | #define MV643XX_ETH_SHARED_REGS_SIZE 0x2000 |
11 | #define MV643XX_ETH_BAR_4 0x2220 | ||
12 | #define MV643XX_ETH_SIZE_REG_4 0x2224 | ||
13 | #define MV643XX_ETH_BASE_ADDR_ENABLE_REG 0x2290 | ||
11 | 14 | ||
12 | struct mv643xx_eth_platform_data { | 15 | struct mv643xx_eth_platform_data { |
13 | int port_number; | 16 | int port_number; |
diff --git a/include/linux/net.h b/include/linux/net.h index dd79cdb8c4cf..596131ea46f4 100644 --- a/include/linux/net.h +++ b/include/linux/net.h | |||
@@ -95,6 +95,12 @@ enum sock_type { | |||
95 | 95 | ||
96 | #endif /* ARCH_HAS_SOCKET_TYPES */ | 96 | #endif /* ARCH_HAS_SOCKET_TYPES */ |
97 | 97 | ||
98 | enum sock_shutdown_cmd { | ||
99 | SHUT_RD = 0, | ||
100 | SHUT_WR = 1, | ||
101 | SHUT_RDWR = 2, | ||
102 | }; | ||
103 | |||
98 | /** | 104 | /** |
99 | * struct socket - general BSD socket | 105 | * struct socket - general BSD socket |
100 | * @state: socket state (%SS_CONNECTED, etc) | 106 | * @state: socket state (%SS_CONNECTED, etc) |
@@ -223,6 +229,8 @@ extern int kernel_setsockopt(struct socket *sock, int level, int optname, | |||
223 | extern int kernel_sendpage(struct socket *sock, struct page *page, int offset, | 229 | extern int kernel_sendpage(struct socket *sock, struct page *page, int offset, |
224 | size_t size, int flags); | 230 | size_t size, int flags); |
225 | extern int kernel_sock_ioctl(struct socket *sock, int cmd, unsigned long arg); | 231 | extern int kernel_sock_ioctl(struct socket *sock, int cmd, unsigned long arg); |
232 | extern int kernel_sock_shutdown(struct socket *sock, | ||
233 | enum sock_shutdown_cmd how); | ||
226 | 234 | ||
227 | #ifndef CONFIG_SMP | 235 | #ifndef CONFIG_SMP |
228 | #define SOCKOPS_WRAPPED(name) name | 236 | #define SOCKOPS_WRAPPED(name) name |
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 9b0c8f12373e..1e6af4f174b6 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
@@ -739,6 +739,16 @@ static inline void *netdev_priv(const struct net_device *dev) | |||
739 | */ | 739 | */ |
740 | #define SET_NETDEV_DEV(net, pdev) ((net)->dev.parent = (pdev)) | 740 | #define SET_NETDEV_DEV(net, pdev) ((net)->dev.parent = (pdev)) |
741 | 741 | ||
742 | /** | ||
743 | * netif_napi_add - initialize a napi context | ||
744 | * @dev: network device | ||
745 | * @napi: napi context | ||
746 | * @poll: polling function | ||
747 | * @weight: default weight | ||
748 | * | ||
749 | * netif_napi_add() must be used to initialize a napi context prior to calling | ||
750 | * *any* of the other napi related functions. | ||
751 | */ | ||
742 | static inline void netif_napi_add(struct net_device *dev, | 752 | static inline void netif_napi_add(struct net_device *dev, |
743 | struct napi_struct *napi, | 753 | struct napi_struct *napi, |
744 | int (*poll)(struct napi_struct *, int), | 754 | int (*poll)(struct napi_struct *, int), |
diff --git a/include/linux/netfilter/Kbuild b/include/linux/netfilter/Kbuild index f2eaea2234ec..b87e83a5e070 100644 --- a/include/linux/netfilter/Kbuild +++ b/include/linux/netfilter/Kbuild | |||
@@ -4,25 +4,28 @@ header-y += nfnetlink_conntrack.h | |||
4 | header-y += nfnetlink_log.h | 4 | header-y += nfnetlink_log.h |
5 | header-y += nfnetlink_queue.h | 5 | header-y += nfnetlink_queue.h |
6 | header-y += xt_CLASSIFY.h | 6 | header-y += xt_CLASSIFY.h |
7 | header-y += xt_CONNMARK.h | ||
8 | header-y += xt_CONNSECMARK.h | ||
9 | header-y += xt_DSCP.h | ||
10 | header-y += xt_MARK.h | ||
11 | header-y += xt_NFLOG.h | ||
12 | header-y += xt_NFQUEUE.h | ||
13 | header-y += xt_SECMARK.h | ||
14 | header-y += xt_TCPMSS.h | ||
7 | header-y += xt_comment.h | 15 | header-y += xt_comment.h |
8 | header-y += xt_connbytes.h | 16 | header-y += xt_connbytes.h |
9 | header-y += xt_connmark.h | 17 | header-y += xt_connmark.h |
10 | header-y += xt_CONNMARK.h | ||
11 | header-y += xt_conntrack.h | 18 | header-y += xt_conntrack.h |
12 | header-y += xt_dccp.h | 19 | header-y += xt_dccp.h |
13 | header-y += xt_dscp.h | 20 | header-y += xt_dscp.h |
14 | header-y += xt_DSCP.h | ||
15 | header-y += xt_esp.h | 21 | header-y += xt_esp.h |
16 | header-y += xt_helper.h | ||
17 | header-y += xt_hashlimit.h | 22 | header-y += xt_hashlimit.h |
23 | header-y += xt_helper.h | ||
18 | header-y += xt_length.h | 24 | header-y += xt_length.h |
19 | header-y += xt_limit.h | 25 | header-y += xt_limit.h |
20 | header-y += xt_mac.h | 26 | header-y += xt_mac.h |
21 | header-y += xt_mark.h | 27 | header-y += xt_mark.h |
22 | header-y += xt_MARK.h | ||
23 | header-y += xt_multiport.h | 28 | header-y += xt_multiport.h |
24 | header-y += xt_NFQUEUE.h | ||
25 | header-y += xt_NFLOG.h | ||
26 | header-y += xt_pkttype.h | 29 | header-y += xt_pkttype.h |
27 | header-y += xt_policy.h | 30 | header-y += xt_policy.h |
28 | header-y += xt_realm.h | 31 | header-y += xt_realm.h |
@@ -32,9 +35,6 @@ header-y += xt_statistic.h | |||
32 | header-y += xt_string.h | 35 | header-y += xt_string.h |
33 | header-y += xt_tcpmss.h | 36 | header-y += xt_tcpmss.h |
34 | header-y += xt_tcpudp.h | 37 | header-y += xt_tcpudp.h |
35 | header-y += xt_SECMARK.h | ||
36 | header-y += xt_CONNSECMARK.h | ||
37 | header-y += xt_TCPMSS.h | ||
38 | 38 | ||
39 | unifdef-y += nf_conntrack_common.h | 39 | unifdef-y += nf_conntrack_common.h |
40 | unifdef-y += nf_conntrack_ftp.h | 40 | unifdef-y += nf_conntrack_ftp.h |
diff --git a/include/linux/netfilter_ipv4/Kbuild b/include/linux/netfilter_ipv4/Kbuild index 7185792b900f..3a7105bb8f33 100644 --- a/include/linux/netfilter_ipv4/Kbuild +++ b/include/linux/netfilter_ipv4/Kbuild | |||
@@ -1,47 +1,47 @@ | |||
1 | header-y += ipt_addrtype.h | ||
2 | header-y += ipt_ah.h | ||
3 | header-y += ipt_CLASSIFY.h | 1 | header-y += ipt_CLASSIFY.h |
4 | header-y += ipt_CLUSTERIP.h | 2 | header-y += ipt_CLUSTERIP.h |
3 | header-y += ipt_CONNMARK.h | ||
4 | header-y += ipt_DSCP.h | ||
5 | header-y += ipt_ECN.h | ||
6 | header-y += ipt_LOG.h | ||
7 | header-y += ipt_MARK.h | ||
8 | header-y += ipt_NFQUEUE.h | ||
9 | header-y += ipt_REJECT.h | ||
10 | header-y += ipt_SAME.h | ||
11 | header-y += ipt_TCPMSS.h | ||
12 | header-y += ipt_TOS.h | ||
13 | header-y += ipt_TTL.h | ||
14 | header-y += ipt_ULOG.h | ||
15 | header-y += ipt_addrtype.h | ||
16 | header-y += ipt_ah.h | ||
5 | header-y += ipt_comment.h | 17 | header-y += ipt_comment.h |
6 | header-y += ipt_connbytes.h | 18 | header-y += ipt_connbytes.h |
7 | header-y += ipt_connmark.h | 19 | header-y += ipt_connmark.h |
8 | header-y += ipt_CONNMARK.h | ||
9 | header-y += ipt_conntrack.h | 20 | header-y += ipt_conntrack.h |
10 | header-y += ipt_dccp.h | 21 | header-y += ipt_dccp.h |
11 | header-y += ipt_dscp.h | 22 | header-y += ipt_dscp.h |
12 | header-y += ipt_DSCP.h | ||
13 | header-y += ipt_ecn.h | 23 | header-y += ipt_ecn.h |
14 | header-y += ipt_ECN.h | ||
15 | header-y += ipt_esp.h | 24 | header-y += ipt_esp.h |
16 | header-y += ipt_hashlimit.h | 25 | header-y += ipt_hashlimit.h |
17 | header-y += ipt_helper.h | 26 | header-y += ipt_helper.h |
18 | header-y += ipt_iprange.h | 27 | header-y += ipt_iprange.h |
19 | header-y += ipt_length.h | 28 | header-y += ipt_length.h |
20 | header-y += ipt_limit.h | 29 | header-y += ipt_limit.h |
21 | header-y += ipt_LOG.h | ||
22 | header-y += ipt_mac.h | 30 | header-y += ipt_mac.h |
23 | header-y += ipt_mark.h | 31 | header-y += ipt_mark.h |
24 | header-y += ipt_MARK.h | ||
25 | header-y += ipt_multiport.h | 32 | header-y += ipt_multiport.h |
26 | header-y += ipt_NFQUEUE.h | ||
27 | header-y += ipt_owner.h | 33 | header-y += ipt_owner.h |
28 | header-y += ipt_physdev.h | 34 | header-y += ipt_physdev.h |
29 | header-y += ipt_pkttype.h | 35 | header-y += ipt_pkttype.h |
30 | header-y += ipt_policy.h | 36 | header-y += ipt_policy.h |
31 | header-y += ipt_realm.h | 37 | header-y += ipt_realm.h |
32 | header-y += ipt_recent.h | 38 | header-y += ipt_recent.h |
33 | header-y += ipt_REJECT.h | ||
34 | header-y += ipt_SAME.h | ||
35 | header-y += ipt_sctp.h | 39 | header-y += ipt_sctp.h |
36 | header-y += ipt_state.h | 40 | header-y += ipt_state.h |
37 | header-y += ipt_string.h | 41 | header-y += ipt_string.h |
38 | header-y += ipt_tcpmss.h | 42 | header-y += ipt_tcpmss.h |
39 | header-y += ipt_TCPMSS.h | ||
40 | header-y += ipt_tos.h | 43 | header-y += ipt_tos.h |
41 | header-y += ipt_TOS.h | ||
42 | header-y += ipt_ttl.h | 44 | header-y += ipt_ttl.h |
43 | header-y += ipt_TTL.h | ||
44 | header-y += ipt_ULOG.h | ||
45 | 45 | ||
46 | unifdef-y += ip_queue.h | 46 | unifdef-y += ip_queue.h |
47 | unifdef-y += ip_tables.h | 47 | unifdef-y += ip_tables.h |
diff --git a/include/linux/netfilter_ipv6/Kbuild b/include/linux/netfilter_ipv6/Kbuild index 9dd978d149ff..8887a5fcd1d0 100644 --- a/include/linux/netfilter_ipv6/Kbuild +++ b/include/linux/netfilter_ipv6/Kbuild | |||
@@ -14,8 +14,8 @@ header-y += ip6t_mark.h | |||
14 | header-y += ip6t_multiport.h | 14 | header-y += ip6t_multiport.h |
15 | header-y += ip6t_opts.h | 15 | header-y += ip6t_opts.h |
16 | header-y += ip6t_owner.h | 16 | header-y += ip6t_owner.h |
17 | header-y += ip6t_policy.h | ||
18 | header-y += ip6t_physdev.h | 17 | header-y += ip6t_physdev.h |
18 | header-y += ip6t_policy.h | ||
19 | header-y += ip6t_rt.h | 19 | header-y += ip6t_rt.h |
20 | 20 | ||
21 | unifdef-y += ip6_tables.h | 21 | unifdef-y += ip6_tables.h |
diff --git a/include/linux/netlink.h b/include/linux/netlink.h index 7c1f3b1d2ee5..d5bfaba595c7 100644 --- a/include/linux/netlink.h +++ b/include/linux/netlink.h | |||
@@ -192,7 +192,7 @@ extern int netlink_unregister_notifier(struct notifier_block *nb); | |||
192 | /* finegrained unicast helpers: */ | 192 | /* finegrained unicast helpers: */ |
193 | struct sock *netlink_getsockbyfilp(struct file *filp); | 193 | struct sock *netlink_getsockbyfilp(struct file *filp); |
194 | int netlink_attachskb(struct sock *sk, struct sk_buff *skb, int nonblock, | 194 | int netlink_attachskb(struct sock *sk, struct sk_buff *skb, int nonblock, |
195 | long timeo, struct sock *ssk); | 195 | long *timeo, struct sock *ssk); |
196 | void netlink_detachskb(struct sock *sk, struct sk_buff *skb); | 196 | void netlink_detachskb(struct sock *sk, struct sk_buff *skb); |
197 | int netlink_sendskb(struct sock *sk, struct sk_buff *skb); | 197 | int netlink_sendskb(struct sock *sk, struct sk_buff *skb); |
198 | 198 | ||
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h index e82a6ebc725d..2d15d4aac094 100644 --- a/include/linux/nfs_fs.h +++ b/include/linux/nfs_fs.h | |||
@@ -422,7 +422,6 @@ extern long nfs_sync_mapping_wait(struct address_space *, struct writeback_contr | |||
422 | extern int nfs_wb_all(struct inode *inode); | 422 | extern int nfs_wb_all(struct inode *inode); |
423 | extern int nfs_wb_nocommit(struct inode *inode); | 423 | extern int nfs_wb_nocommit(struct inode *inode); |
424 | extern int nfs_wb_page(struct inode *inode, struct page* page); | 424 | extern int nfs_wb_page(struct inode *inode, struct page* page); |
425 | extern int nfs_wb_page_priority(struct inode *inode, struct page* page, int how); | ||
426 | extern int nfs_wb_page_cancel(struct inode *inode, struct page* page); | 425 | extern int nfs_wb_page_cancel(struct inode *inode, struct page* page); |
427 | #if defined(CONFIG_NFS_V3) || defined(CONFIG_NFS_V4) | 426 | #if defined(CONFIG_NFS_V3) || defined(CONFIG_NFS_V4) |
428 | extern int nfs_commit_inode(struct inode *, int); | 427 | extern int nfs_commit_inode(struct inode *, int); |
diff --git a/include/linux/pci.h b/include/linux/pci.h index 5d2281f661f7..0dd93bb62fbe 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
@@ -109,6 +109,14 @@ enum pcie_reset_state { | |||
109 | pcie_hot_reset = (__force pcie_reset_state_t) 3 | 109 | pcie_hot_reset = (__force pcie_reset_state_t) 3 |
110 | }; | 110 | }; |
111 | 111 | ||
112 | typedef unsigned short __bitwise pci_dev_flags_t; | ||
113 | enum pci_dev_flags { | ||
114 | /* INTX_DISABLE in PCI_COMMAND register disables MSI | ||
115 | * generation too. | ||
116 | */ | ||
117 | PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG = (__force pci_dev_flags_t) 1, | ||
118 | }; | ||
119 | |||
112 | typedef unsigned short __bitwise pci_bus_flags_t; | 120 | typedef unsigned short __bitwise pci_bus_flags_t; |
113 | enum pci_bus_flags { | 121 | enum pci_bus_flags { |
114 | PCI_BUS_FLAGS_NO_MSI = (__force pci_bus_flags_t) 1, | 122 | PCI_BUS_FLAGS_NO_MSI = (__force pci_bus_flags_t) 1, |
@@ -185,6 +193,7 @@ struct pci_dev { | |||
185 | unsigned int msix_enabled:1; | 193 | unsigned int msix_enabled:1; |
186 | unsigned int is_managed:1; | 194 | unsigned int is_managed:1; |
187 | unsigned int is_pcie:1; | 195 | unsigned int is_pcie:1; |
196 | pci_dev_flags_t dev_flags; | ||
188 | atomic_t enable_cnt; /* pci_enable_device has been called */ | 197 | atomic_t enable_cnt; /* pci_enable_device has been called */ |
189 | 198 | ||
190 | u32 saved_config_space[16]; /* config space saved at suspend time */ | 199 | u32 saved_config_space[16]; /* config space saved at suspend time */ |
@@ -479,8 +488,11 @@ extern void pci_sort_breadthfirst(void); | |||
479 | 488 | ||
480 | /* Generic PCI functions exported to card drivers */ | 489 | /* Generic PCI functions exported to card drivers */ |
481 | 490 | ||
491 | #ifdef CONFIG_PCI_LEGACY | ||
482 | struct pci_dev __deprecated *pci_find_device (unsigned int vendor, unsigned int device, const struct pci_dev *from); | 492 | struct pci_dev __deprecated *pci_find_device (unsigned int vendor, unsigned int device, const struct pci_dev *from); |
483 | struct pci_dev __deprecated *pci_find_slot (unsigned int bus, unsigned int devfn); | 493 | struct pci_dev __deprecated *pci_find_slot (unsigned int bus, unsigned int devfn); |
494 | #endif /* CONFIG_PCI_LEGACY */ | ||
495 | |||
484 | int pci_find_capability (struct pci_dev *dev, int cap); | 496 | int pci_find_capability (struct pci_dev *dev, int cap); |
485 | int pci_find_next_capability (struct pci_dev *dev, u8 pos, int cap); | 497 | int pci_find_next_capability (struct pci_dev *dev, u8 pos, int cap); |
486 | int pci_find_ext_capability (struct pci_dev *dev, int cap); | 498 | int pci_find_ext_capability (struct pci_dev *dev, int cap); |
@@ -622,7 +634,6 @@ static inline int __must_check pci_register_driver(struct pci_driver *driver) | |||
622 | void pci_unregister_driver(struct pci_driver *); | 634 | void pci_unregister_driver(struct pci_driver *); |
623 | void pci_remove_behind_bridge(struct pci_dev *); | 635 | void pci_remove_behind_bridge(struct pci_dev *); |
624 | struct pci_driver *pci_dev_driver(const struct pci_dev *); | 636 | struct pci_driver *pci_dev_driver(const struct pci_dev *); |
625 | const struct pci_device_id *pci_match_device(struct pci_driver *drv, struct pci_dev *dev); | ||
626 | const struct pci_device_id *pci_match_id(const struct pci_device_id *ids, struct pci_dev *dev); | 637 | const struct pci_device_id *pci_match_id(const struct pci_device_id *ids, struct pci_dev *dev); |
627 | int pci_scan_bridge(struct pci_bus *bus, struct pci_dev * dev, int max, int pass); | 638 | int pci_scan_bridge(struct pci_bus *bus, struct pci_dev * dev, int max, int pass); |
628 | 639 | ||
@@ -751,7 +762,6 @@ static inline void pci_unregister_driver(struct pci_driver *drv) { } | |||
751 | static inline int pci_find_capability (struct pci_dev *dev, int cap) {return 0; } | 762 | static inline int pci_find_capability (struct pci_dev *dev, int cap) {return 0; } |
752 | static inline int pci_find_next_capability (struct pci_dev *dev, u8 post, int cap) { return 0; } | 763 | static inline int pci_find_next_capability (struct pci_dev *dev, u8 post, int cap) { return 0; } |
753 | static inline int pci_find_ext_capability (struct pci_dev *dev, int cap) {return 0; } | 764 | static inline int pci_find_ext_capability (struct pci_dev *dev, int cap) {return 0; } |
754 | static inline const struct pci_device_id *pci_match_device(const struct pci_device_id *ids, const struct pci_dev *dev) { return NULL; } | ||
755 | 765 | ||
756 | /* Power management related routines */ | 766 | /* Power management related routines */ |
757 | static inline int pci_save_state(struct pci_dev *dev) { return 0; } | 767 | static inline int pci_save_state(struct pci_dev *dev) { return 0; } |
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index e44aac8cf5ff..1ee009e8fec8 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
@@ -360,9 +360,6 @@ | |||
360 | #define PCI_DEVICE_ID_ATI_RS400_166 0x5a32 | 360 | #define PCI_DEVICE_ID_ATI_RS400_166 0x5a32 |
361 | #define PCI_DEVICE_ID_ATI_RS400_200 0x5a33 | 361 | #define PCI_DEVICE_ID_ATI_RS400_200 0x5a33 |
362 | #define PCI_DEVICE_ID_ATI_RS480 0x5950 | 362 | #define PCI_DEVICE_ID_ATI_RS480 0x5950 |
363 | #define PCI_DEVICE_ID_ATI_RD580 0x5952 | ||
364 | #define PCI_DEVICE_ID_ATI_RX790 0x5957 | ||
365 | #define PCI_DEVICE_ID_ATI_RS690 0x7910 | ||
366 | /* ATI IXP Chipset */ | 363 | /* ATI IXP Chipset */ |
367 | #define PCI_DEVICE_ID_ATI_IXP200_IDE 0x4349 | 364 | #define PCI_DEVICE_ID_ATI_IXP200_IDE 0x4349 |
368 | #define PCI_DEVICE_ID_ATI_IXP200_SMBUS 0x4353 | 365 | #define PCI_DEVICE_ID_ATI_IXP200_SMBUS 0x4353 |
@@ -1436,8 +1433,8 @@ | |||
1436 | #define PCI_DEVICE_ID_SERVERWORKS_HE 0x0008 | 1433 | #define PCI_DEVICE_ID_SERVERWORKS_HE 0x0008 |
1437 | #define PCI_DEVICE_ID_SERVERWORKS_LE 0x0009 | 1434 | #define PCI_DEVICE_ID_SERVERWORKS_LE 0x0009 |
1438 | #define PCI_DEVICE_ID_SERVERWORKS_GCNB_LE 0x0017 | 1435 | #define PCI_DEVICE_ID_SERVERWORKS_GCNB_LE 0x0017 |
1436 | #define PCI_DEVICE_ID_SERVERWORKS_HT1000_PXB 0x0036 | ||
1439 | #define PCI_DEVICE_ID_SERVERWORKS_EPB 0x0103 | 1437 | #define PCI_DEVICE_ID_SERVERWORKS_EPB 0x0103 |
1440 | #define PCI_DEVICE_ID_SERVERWORKS_HT1000_PCIX 0x0104 | ||
1441 | #define PCI_DEVICE_ID_SERVERWORKS_HT2000_PCIE 0x0132 | 1438 | #define PCI_DEVICE_ID_SERVERWORKS_HT2000_PCIE 0x0132 |
1442 | #define PCI_DEVICE_ID_SERVERWORKS_OSB4 0x0200 | 1439 | #define PCI_DEVICE_ID_SERVERWORKS_OSB4 0x0200 |
1443 | #define PCI_DEVICE_ID_SERVERWORKS_CSB5 0x0201 | 1440 | #define PCI_DEVICE_ID_SERVERWORKS_CSB5 0x0201 |
@@ -2279,6 +2276,9 @@ | |||
2279 | #define PCI_DEVICE_ID_INTEL_82915G_IG 0x2582 | 2276 | #define PCI_DEVICE_ID_INTEL_82915G_IG 0x2582 |
2280 | #define PCI_DEVICE_ID_INTEL_82915GM_HB 0x2590 | 2277 | #define PCI_DEVICE_ID_INTEL_82915GM_HB 0x2590 |
2281 | #define PCI_DEVICE_ID_INTEL_82915GM_IG 0x2592 | 2278 | #define PCI_DEVICE_ID_INTEL_82915GM_IG 0x2592 |
2279 | #define PCI_DEVICE_ID_INTEL_5000_ERR 0x25F0 | ||
2280 | #define PCI_DEVICE_ID_INTEL_5000_FBD0 0x25F5 | ||
2281 | #define PCI_DEVICE_ID_INTEL_5000_FBD1 0x25F6 | ||
2282 | #define PCI_DEVICE_ID_INTEL_82945G_HB 0x2770 | 2282 | #define PCI_DEVICE_ID_INTEL_82945G_HB 0x2770 |
2283 | #define PCI_DEVICE_ID_INTEL_82945G_IG 0x2772 | 2283 | #define PCI_DEVICE_ID_INTEL_82945G_IG 0x2772 |
2284 | #define PCI_DEVICE_ID_INTEL_3000_HB 0x2778 | 2284 | #define PCI_DEVICE_ID_INTEL_3000_HB 0x2778 |
@@ -2332,6 +2332,7 @@ | |||
2332 | #define PCI_DEVICE_ID_INTEL_MCH_PC1 0x359a | 2332 | #define PCI_DEVICE_ID_INTEL_MCH_PC1 0x359a |
2333 | #define PCI_DEVICE_ID_INTEL_E7525_MCH 0x359e | 2333 | #define PCI_DEVICE_ID_INTEL_E7525_MCH 0x359e |
2334 | #define PCI_DEVICE_ID_INTEL_IOAT_CNB 0x360b | 2334 | #define PCI_DEVICE_ID_INTEL_IOAT_CNB 0x360b |
2335 | #define PCI_DEVICE_ID_INTEL_IOAT_SNB 0x402f | ||
2335 | #define PCI_DEVICE_ID_INTEL_IOAT_SCNB 0x65ff | 2336 | #define PCI_DEVICE_ID_INTEL_IOAT_SCNB 0x65ff |
2336 | #define PCI_DEVICE_ID_INTEL_TOLAPAI_0 0x5031 | 2337 | #define PCI_DEVICE_ID_INTEL_TOLAPAI_0 0x5031 |
2337 | #define PCI_DEVICE_ID_INTEL_TOLAPAI_1 0x5032 | 2338 | #define PCI_DEVICE_ID_INTEL_TOLAPAI_1 0x5032 |
diff --git a/include/linux/pid_namespace.h b/include/linux/pid_namespace.h index 0135c76c76c6..1689e28483e4 100644 --- a/include/linux/pid_namespace.h +++ b/include/linux/pid_namespace.h | |||
@@ -29,6 +29,7 @@ struct pid_namespace { | |||
29 | 29 | ||
30 | extern struct pid_namespace init_pid_ns; | 30 | extern struct pid_namespace init_pid_ns; |
31 | 31 | ||
32 | #ifdef CONFIG_PID_NS | ||
32 | static inline struct pid_namespace *get_pid_ns(struct pid_namespace *ns) | 33 | static inline struct pid_namespace *get_pid_ns(struct pid_namespace *ns) |
33 | { | 34 | { |
34 | if (ns != &init_pid_ns) | 35 | if (ns != &init_pid_ns) |
@@ -45,6 +46,28 @@ static inline void put_pid_ns(struct pid_namespace *ns) | |||
45 | kref_put(&ns->kref, free_pid_ns); | 46 | kref_put(&ns->kref, free_pid_ns); |
46 | } | 47 | } |
47 | 48 | ||
49 | #else /* !CONFIG_PID_NS */ | ||
50 | #include <linux/err.h> | ||
51 | |||
52 | static inline struct pid_namespace *get_pid_ns(struct pid_namespace *ns) | ||
53 | { | ||
54 | return ns; | ||
55 | } | ||
56 | |||
57 | static inline struct pid_namespace * | ||
58 | copy_pid_ns(unsigned long flags, struct pid_namespace *ns) | ||
59 | { | ||
60 | if (flags & CLONE_NEWPID) | ||
61 | ns = ERR_PTR(-EINVAL); | ||
62 | return ns; | ||
63 | } | ||
64 | |||
65 | static inline void put_pid_ns(struct pid_namespace *ns) | ||
66 | { | ||
67 | } | ||
68 | |||
69 | #endif /* CONFIG_PID_NS */ | ||
70 | |||
48 | static inline struct pid_namespace *task_active_pid_ns(struct task_struct *tsk) | 71 | static inline struct pid_namespace *task_active_pid_ns(struct task_struct *tsk) |
49 | { | 72 | { |
50 | return tsk->nsproxy->pid_ns; | 73 | return tsk->nsproxy->pid_ns; |
diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h index 1ff461672060..1273c6ec535c 100644 --- a/include/linux/proc_fs.h +++ b/include/linux/proc_fs.h | |||
@@ -196,8 +196,6 @@ static inline struct proc_dir_entry *create_proc_info_entry(const char *name, | |||
196 | return res; | 196 | return res; |
197 | } | 197 | } |
198 | 198 | ||
199 | extern struct proc_dir_entry *proc_net_create(struct net *net, | ||
200 | const char *name, mode_t mode, get_info_t *get_info); | ||
201 | extern struct proc_dir_entry *proc_net_fops_create(struct net *net, | 199 | extern struct proc_dir_entry *proc_net_fops_create(struct net *net, |
202 | const char *name, mode_t mode, const struct file_operations *fops); | 200 | const char *name, mode_t mode, const struct file_operations *fops); |
203 | extern void proc_net_remove(struct net *net, const char *name); | 201 | extern void proc_net_remove(struct net *net, const char *name); |
@@ -208,7 +206,6 @@ extern void proc_net_remove(struct net *net, const char *name); | |||
208 | #define proc_bus NULL | 206 | #define proc_bus NULL |
209 | 207 | ||
210 | #define proc_net_fops_create(net, name, mode, fops) ({ (void)(mode), NULL; }) | 208 | #define proc_net_fops_create(net, name, mode, fops) ({ (void)(mode), NULL; }) |
211 | #define proc_net_create(net, name, mode, info) ({ (void)(mode), NULL; }) | ||
212 | static inline void proc_net_remove(struct net *net, const char *name) {} | 209 | static inline void proc_net_remove(struct net *net, const char *name) {} |
213 | 210 | ||
214 | static inline void proc_flush_task(struct task_struct *task) | 211 | static inline void proc_flush_task(struct task_struct *task) |
diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h index 5bf618241ab9..4e81836191df 100644 --- a/include/linux/rtnetlink.h +++ b/include/linux/rtnetlink.h | |||
@@ -491,9 +491,11 @@ struct nduseroptmsg | |||
491 | unsigned char nduseropt_family; | 491 | unsigned char nduseropt_family; |
492 | unsigned char nduseropt_pad1; | 492 | unsigned char nduseropt_pad1; |
493 | unsigned short nduseropt_opts_len; /* Total length of options */ | 493 | unsigned short nduseropt_opts_len; /* Total length of options */ |
494 | int nduseropt_ifindex; | ||
494 | __u8 nduseropt_icmp_type; | 495 | __u8 nduseropt_icmp_type; |
495 | __u8 nduseropt_icmp_code; | 496 | __u8 nduseropt_icmp_code; |
496 | unsigned short nduseropt_pad2; | 497 | unsigned short nduseropt_pad2; |
498 | unsigned int nduseropt_pad3; | ||
497 | /* Followed by one or more ND options */ | 499 | /* Followed by one or more ND options */ |
498 | }; | 500 | }; |
499 | 501 | ||
diff --git a/include/linux/scatterlist.h b/include/linux/scatterlist.h index 457123171389..259735044148 100644 --- a/include/linux/scatterlist.h +++ b/include/linux/scatterlist.h | |||
@@ -150,7 +150,7 @@ static inline struct scatterlist *sg_last(struct scatterlist *sgl, | |||
150 | struct scatterlist *ret = &sgl[nents - 1]; | 150 | struct scatterlist *ret = &sgl[nents - 1]; |
151 | #else | 151 | #else |
152 | struct scatterlist *sg, *ret = NULL; | 152 | struct scatterlist *sg, *ret = NULL; |
153 | int i; | 153 | unsigned int i; |
154 | 154 | ||
155 | for_each_sg(sgl, sg, nents, i) | 155 | for_each_sg(sgl, sg, nents, i) |
156 | ret = sg; | 156 | ret = sg; |
@@ -179,48 +179,32 @@ static inline void sg_chain(struct scatterlist *prv, unsigned int prv_nents, | |||
179 | #ifndef ARCH_HAS_SG_CHAIN | 179 | #ifndef ARCH_HAS_SG_CHAIN |
180 | BUG(); | 180 | BUG(); |
181 | #endif | 181 | #endif |
182 | prv[prv_nents - 1].page_link = (unsigned long) sgl | 0x01; | 182 | /* |
183 | * Set lowest bit to indicate a link pointer, and make sure to clear | ||
184 | * the termination bit if it happens to be set. | ||
185 | */ | ||
186 | prv[prv_nents - 1].page_link = ((unsigned long) sgl | 0x01) & ~0x02; | ||
183 | } | 187 | } |
184 | 188 | ||
185 | /** | 189 | /** |
186 | * sg_mark_end - Mark the end of the scatterlist | 190 | * sg_mark_end - Mark the end of the scatterlist |
187 | * @sgl: Scatterlist | 191 | * @sg: SG entryScatterlist |
188 | * @nents: Number of entries in sgl | ||
189 | * | 192 | * |
190 | * Description: | 193 | * Description: |
191 | * Marks the last entry as the termination point for sg_next() | 194 | * Marks the passed in sg entry as the termination point for the sg |
192 | * | 195 | * table. A call to sg_next() on this entry will return NULL. |
193 | **/ | ||
194 | static inline void sg_mark_end(struct scatterlist *sgl, unsigned int nents) | ||
195 | { | ||
196 | sgl[nents - 1].page_link = 0x02; | ||
197 | } | ||
198 | |||
199 | static inline void __sg_mark_end(struct scatterlist *sg) | ||
200 | { | ||
201 | sg->page_link |= 0x02; | ||
202 | } | ||
203 | |||
204 | /** | ||
205 | * sg_init_one - Initialize a single entry sg list | ||
206 | * @sg: SG entry | ||
207 | * @buf: Virtual address for IO | ||
208 | * @buflen: IO length | ||
209 | * | ||
210 | * Notes: | ||
211 | * This should not be used on a single entry that is part of a larger | ||
212 | * table. Use sg_init_table() for that. | ||
213 | * | 196 | * |
214 | **/ | 197 | **/ |
215 | static inline void sg_init_one(struct scatterlist *sg, const void *buf, | 198 | static inline void sg_mark_end(struct scatterlist *sg) |
216 | unsigned int buflen) | ||
217 | { | 199 | { |
218 | memset(sg, 0, sizeof(*sg)); | ||
219 | #ifdef CONFIG_DEBUG_SG | 200 | #ifdef CONFIG_DEBUG_SG |
220 | sg->sg_magic = SG_MAGIC; | 201 | BUG_ON(sg->sg_magic != SG_MAGIC); |
221 | #endif | 202 | #endif |
222 | sg_mark_end(sg, 1); | 203 | /* |
223 | sg_set_buf(sg, buf, buflen); | 204 | * Set termination bit, clear potential chain bit |
205 | */ | ||
206 | sg->page_link |= 0x02; | ||
207 | sg->page_link &= ~0x01; | ||
224 | } | 208 | } |
225 | 209 | ||
226 | /** | 210 | /** |
@@ -236,14 +220,32 @@ static inline void sg_init_one(struct scatterlist *sg, const void *buf, | |||
236 | static inline void sg_init_table(struct scatterlist *sgl, unsigned int nents) | 220 | static inline void sg_init_table(struct scatterlist *sgl, unsigned int nents) |
237 | { | 221 | { |
238 | memset(sgl, 0, sizeof(*sgl) * nents); | 222 | memset(sgl, 0, sizeof(*sgl) * nents); |
239 | sg_mark_end(sgl, nents); | ||
240 | #ifdef CONFIG_DEBUG_SG | 223 | #ifdef CONFIG_DEBUG_SG |
241 | { | 224 | { |
242 | int i; | 225 | unsigned int i; |
243 | for (i = 0; i < nents; i++) | 226 | for (i = 0; i < nents; i++) |
244 | sgl[i].sg_magic = SG_MAGIC; | 227 | sgl[i].sg_magic = SG_MAGIC; |
245 | } | 228 | } |
246 | #endif | 229 | #endif |
230 | sg_mark_end(&sgl[nents - 1]); | ||
231 | } | ||
232 | |||
233 | /** | ||
234 | * sg_init_one - Initialize a single entry sg list | ||
235 | * @sg: SG entry | ||
236 | * @buf: Virtual address for IO | ||
237 | * @buflen: IO length | ||
238 | * | ||
239 | * Notes: | ||
240 | * This should not be used on a single entry that is part of a larger | ||
241 | * table. Use sg_init_table() for that. | ||
242 | * | ||
243 | **/ | ||
244 | static inline void sg_init_one(struct scatterlist *sg, const void *buf, | ||
245 | unsigned int buflen) | ||
246 | { | ||
247 | sg_init_table(sg, 1); | ||
248 | sg_set_buf(sg, buf, buflen); | ||
247 | } | 249 | } |
248 | 250 | ||
249 | /** | 251 | /** |
diff --git a/include/linux/sched.h b/include/linux/sched.h index 3c07d595979f..ee800e7a70de 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -254,6 +254,7 @@ long io_schedule_timeout(long timeout); | |||
254 | 254 | ||
255 | extern void cpu_init (void); | 255 | extern void cpu_init (void); |
256 | extern void trap_init(void); | 256 | extern void trap_init(void); |
257 | extern void account_process_tick(struct task_struct *task, int user); | ||
257 | extern void update_process_times(int user); | 258 | extern void update_process_times(int user); |
258 | extern void scheduler_tick(void); | 259 | extern void scheduler_tick(void); |
259 | 260 | ||
@@ -862,7 +863,6 @@ struct sched_entity { | |||
862 | struct load_weight load; /* for load-balancing */ | 863 | struct load_weight load; /* for load-balancing */ |
863 | struct rb_node run_node; | 864 | struct rb_node run_node; |
864 | unsigned int on_rq; | 865 | unsigned int on_rq; |
865 | int peer_preempt; | ||
866 | 866 | ||
867 | u64 exec_start; | 867 | u64 exec_start; |
868 | u64 sum_exec_runtime; | 868 | u64 sum_exec_runtime; |
@@ -1009,6 +1009,7 @@ struct task_struct { | |||
1009 | unsigned int rt_priority; | 1009 | unsigned int rt_priority; |
1010 | cputime_t utime, stime, utimescaled, stimescaled; | 1010 | cputime_t utime, stime, utimescaled, stimescaled; |
1011 | cputime_t gtime; | 1011 | cputime_t gtime; |
1012 | cputime_t prev_utime, prev_stime; | ||
1012 | unsigned long nvcsw, nivcsw; /* context switch counts */ | 1013 | unsigned long nvcsw, nivcsw; /* context switch counts */ |
1013 | struct timespec start_time; /* monotonic time */ | 1014 | struct timespec start_time; /* monotonic time */ |
1014 | struct timespec real_start_time; /* boot based time */ | 1015 | struct timespec real_start_time; /* boot based time */ |
@@ -1459,12 +1460,17 @@ extern void sched_idle_next(void); | |||
1459 | 1460 | ||
1460 | #ifdef CONFIG_SCHED_DEBUG | 1461 | #ifdef CONFIG_SCHED_DEBUG |
1461 | extern unsigned int sysctl_sched_latency; | 1462 | extern unsigned int sysctl_sched_latency; |
1462 | extern unsigned int sysctl_sched_nr_latency; | 1463 | extern unsigned int sysctl_sched_min_granularity; |
1463 | extern unsigned int sysctl_sched_wakeup_granularity; | 1464 | extern unsigned int sysctl_sched_wakeup_granularity; |
1464 | extern unsigned int sysctl_sched_batch_wakeup_granularity; | 1465 | extern unsigned int sysctl_sched_batch_wakeup_granularity; |
1465 | extern unsigned int sysctl_sched_child_runs_first; | 1466 | extern unsigned int sysctl_sched_child_runs_first; |
1466 | extern unsigned int sysctl_sched_features; | 1467 | extern unsigned int sysctl_sched_features; |
1467 | extern unsigned int sysctl_sched_migration_cost; | 1468 | extern unsigned int sysctl_sched_migration_cost; |
1469 | extern unsigned int sysctl_sched_nr_migrate; | ||
1470 | |||
1471 | int sched_nr_latency_handler(struct ctl_table *table, int write, | ||
1472 | struct file *file, void __user *buffer, size_t *length, | ||
1473 | loff_t *ppos); | ||
1468 | #endif | 1474 | #endif |
1469 | 1475 | ||
1470 | extern unsigned int sysctl_sched_compat_yield; | 1476 | extern unsigned int sysctl_sched_compat_yield; |
@@ -1982,6 +1988,14 @@ static inline void inc_syscw(struct task_struct *tsk) | |||
1982 | } | 1988 | } |
1983 | #endif | 1989 | #endif |
1984 | 1990 | ||
1991 | #ifdef CONFIG_SMP | ||
1992 | void migration_init(void); | ||
1993 | #else | ||
1994 | static inline void migration_init(void) | ||
1995 | { | ||
1996 | } | ||
1997 | #endif | ||
1998 | |||
1985 | #endif /* __KERNEL__ */ | 1999 | #endif /* __KERNEL__ */ |
1986 | 2000 | ||
1987 | #endif | 2001 | #endif |
diff --git a/include/linux/selinux.h b/include/linux/selinux.h index d1b7ca6c1c57..6080f73fc85f 100644 --- a/include/linux/selinux.h +++ b/include/linux/selinux.h | |||
@@ -136,7 +136,7 @@ static inline int selinux_audit_rule_init(u32 field, u32 op, | |||
136 | char *rulestr, | 136 | char *rulestr, |
137 | struct selinux_audit_rule **rule) | 137 | struct selinux_audit_rule **rule) |
138 | { | 138 | { |
139 | return -ENOTSUPP; | 139 | return -EOPNOTSUPP; |
140 | } | 140 | } |
141 | 141 | ||
142 | static inline void selinux_audit_rule_free(struct selinux_audit_rule *rule) | 142 | static inline void selinux_audit_rule_free(struct selinux_audit_rule *rule) |
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 94e49915a8c0..bddd50bd6878 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h | |||
@@ -356,7 +356,6 @@ static inline struct sk_buff *alloc_skb_fclone(unsigned int size, | |||
356 | return __alloc_skb(size, priority, 1, -1); | 356 | return __alloc_skb(size, priority, 1, -1); |
357 | } | 357 | } |
358 | 358 | ||
359 | extern void kfree_skbmem(struct sk_buff *skb); | ||
360 | extern struct sk_buff *skb_morph(struct sk_buff *dst, struct sk_buff *src); | 359 | extern struct sk_buff *skb_morph(struct sk_buff *dst, struct sk_buff *src); |
361 | extern struct sk_buff *skb_clone(struct sk_buff *skb, | 360 | extern struct sk_buff *skb_clone(struct sk_buff *skb, |
362 | gfp_t priority); | 361 | gfp_t priority); |
@@ -387,7 +386,9 @@ extern void skb_truesize_bug(struct sk_buff *skb); | |||
387 | 386 | ||
388 | static inline void skb_truesize_check(struct sk_buff *skb) | 387 | static inline void skb_truesize_check(struct sk_buff *skb) |
389 | { | 388 | { |
390 | if (unlikely((int)skb->truesize < sizeof(struct sk_buff) + skb->len)) | 389 | int len = sizeof(struct sk_buff) + skb->len; |
390 | |||
391 | if (unlikely((int)skb->truesize < len)) | ||
391 | skb_truesize_bug(skb); | 392 | skb_truesize_bug(skb); |
392 | } | 393 | } |
393 | 394 | ||
diff --git a/include/linux/smp.h b/include/linux/smp.h index 259a13c3bd98..c25e66bcecf3 100644 --- a/include/linux/smp.h +++ b/include/linux/smp.h | |||
@@ -84,11 +84,12 @@ void smp_prepare_boot_cpu(void); | |||
84 | * These macros fold the SMP functionality into a single CPU system | 84 | * These macros fold the SMP functionality into a single CPU system |
85 | */ | 85 | */ |
86 | #define raw_smp_processor_id() 0 | 86 | #define raw_smp_processor_id() 0 |
87 | static inline int up_smp_call_function(void) | 87 | static inline int up_smp_call_function(void (*func)(void *), void *info) |
88 | { | 88 | { |
89 | return 0; | 89 | return 0; |
90 | } | 90 | } |
91 | #define smp_call_function(func,info,retry,wait) (up_smp_call_function()) | 91 | #define smp_call_function(func, info, retry, wait) \ |
92 | (up_smp_call_function(func, info)) | ||
92 | #define on_each_cpu(func,info,retry,wait) \ | 93 | #define on_each_cpu(func,info,retry,wait) \ |
93 | ({ \ | 94 | ({ \ |
94 | local_irq_disable(); \ | 95 | local_irq_disable(); \ |
@@ -107,6 +108,8 @@ static inline void smp_send_reschedule(int cpu) { } | |||
107 | local_irq_enable(); \ | 108 | local_irq_enable(); \ |
108 | 0; \ | 109 | 0; \ |
109 | }) | 110 | }) |
111 | #define smp_call_function_mask(mask, func, info, wait) \ | ||
112 | (up_smp_call_function(func, info)) | ||
110 | 113 | ||
111 | #endif /* !SMP */ | 114 | #endif /* !SMP */ |
112 | 115 | ||
diff --git a/include/linux/string.h b/include/linux/string.h index 836062b7582a..c5d3fcad7b57 100644 --- a/include/linux/string.h +++ b/include/linux/string.h | |||
@@ -3,16 +3,14 @@ | |||
3 | 3 | ||
4 | /* We don't want strings.h stuff being user by user stuff by accident */ | 4 | /* We don't want strings.h stuff being user by user stuff by accident */ |
5 | 5 | ||
6 | #ifdef __KERNEL__ | 6 | #ifndef __KERNEL__ |
7 | #include <string.h> | ||
8 | #else | ||
7 | 9 | ||
8 | #include <linux/compiler.h> /* for inline */ | 10 | #include <linux/compiler.h> /* for inline */ |
9 | #include <linux/types.h> /* for size_t */ | 11 | #include <linux/types.h> /* for size_t */ |
10 | #include <linux/stddef.h> /* for NULL */ | 12 | #include <linux/stddef.h> /* for NULL */ |
11 | 13 | ||
12 | #ifdef __cplusplus | ||
13 | extern "C" { | ||
14 | #endif | ||
15 | |||
16 | extern char *strndup_user(const char __user *, long); | 14 | extern char *strndup_user(const char __user *, long); |
17 | 15 | ||
18 | /* | 16 | /* |
@@ -111,9 +109,5 @@ extern void *kmemdup(const void *src, size_t len, gfp_t gfp); | |||
111 | extern char **argv_split(gfp_t gfp, const char *str, int *argcp); | 109 | extern char **argv_split(gfp_t gfp, const char *str, int *argcp); |
112 | extern void argv_free(char **argv); | 110 | extern void argv_free(char **argv); |
113 | 111 | ||
114 | #ifdef __cplusplus | ||
115 | } | ||
116 | #endif | ||
117 | |||
118 | #endif | 112 | #endif |
119 | #endif /* _LINUX_STRING_H_ */ | 113 | #endif /* _LINUX_STRING_H_ */ |
diff --git a/include/linux/sunrpc/debug.h b/include/linux/sunrpc/debug.h index 3347c72b848a..3912cf16361e 100644 --- a/include/linux/sunrpc/debug.h +++ b/include/linux/sunrpc/debug.h | |||
@@ -88,11 +88,6 @@ enum { | |||
88 | CTL_SLOTTABLE_TCP, | 88 | CTL_SLOTTABLE_TCP, |
89 | CTL_MIN_RESVPORT, | 89 | CTL_MIN_RESVPORT, |
90 | CTL_MAX_RESVPORT, | 90 | CTL_MAX_RESVPORT, |
91 | CTL_SLOTTABLE_RDMA, | ||
92 | CTL_RDMA_MAXINLINEREAD, | ||
93 | CTL_RDMA_MAXINLINEWRITE, | ||
94 | CTL_RDMA_WRITEPADDING, | ||
95 | CTL_RDMA_MEMREG, | ||
96 | }; | 91 | }; |
97 | 92 | ||
98 | #endif /* _LINUX_SUNRPC_DEBUG_H_ */ | 93 | #endif /* _LINUX_SUNRPC_DEBUG_H_ */ |
diff --git a/include/linux/sunrpc/rpc_rdma.h b/include/linux/sunrpc/rpc_rdma.h index 0013a0d8dc6b..87b895d5c786 100644 --- a/include/linux/sunrpc/rpc_rdma.h +++ b/include/linux/sunrpc/rpc_rdma.h | |||
@@ -41,17 +41,17 @@ | |||
41 | #define _LINUX_SUNRPC_RPC_RDMA_H | 41 | #define _LINUX_SUNRPC_RPC_RDMA_H |
42 | 42 | ||
43 | struct rpcrdma_segment { | 43 | struct rpcrdma_segment { |
44 | uint32_t rs_handle; /* Registered memory handle */ | 44 | __be32 rs_handle; /* Registered memory handle */ |
45 | uint32_t rs_length; /* Length of the chunk in bytes */ | 45 | __be32 rs_length; /* Length of the chunk in bytes */ |
46 | uint64_t rs_offset; /* Chunk virtual address or offset */ | 46 | __be64 rs_offset; /* Chunk virtual address or offset */ |
47 | }; | 47 | }; |
48 | 48 | ||
49 | /* | 49 | /* |
50 | * read chunk(s), encoded as a linked list. | 50 | * read chunk(s), encoded as a linked list. |
51 | */ | 51 | */ |
52 | struct rpcrdma_read_chunk { | 52 | struct rpcrdma_read_chunk { |
53 | uint32_t rc_discrim; /* 1 indicates presence */ | 53 | __be32 rc_discrim; /* 1 indicates presence */ |
54 | uint32_t rc_position; /* Position in XDR stream */ | 54 | __be32 rc_position; /* Position in XDR stream */ |
55 | struct rpcrdma_segment rc_target; | 55 | struct rpcrdma_segment rc_target; |
56 | }; | 56 | }; |
57 | 57 | ||
@@ -66,29 +66,29 @@ struct rpcrdma_write_chunk { | |||
66 | * write chunk(s), encoded as a counted array. | 66 | * write chunk(s), encoded as a counted array. |
67 | */ | 67 | */ |
68 | struct rpcrdma_write_array { | 68 | struct rpcrdma_write_array { |
69 | uint32_t wc_discrim; /* 1 indicates presence */ | 69 | __be32 wc_discrim; /* 1 indicates presence */ |
70 | uint32_t wc_nchunks; /* Array count */ | 70 | __be32 wc_nchunks; /* Array count */ |
71 | struct rpcrdma_write_chunk wc_array[0]; | 71 | struct rpcrdma_write_chunk wc_array[0]; |
72 | }; | 72 | }; |
73 | 73 | ||
74 | struct rpcrdma_msg { | 74 | struct rpcrdma_msg { |
75 | uint32_t rm_xid; /* Mirrors the RPC header xid */ | 75 | __be32 rm_xid; /* Mirrors the RPC header xid */ |
76 | uint32_t rm_vers; /* Version of this protocol */ | 76 | __be32 rm_vers; /* Version of this protocol */ |
77 | uint32_t rm_credit; /* Buffers requested/granted */ | 77 | __be32 rm_credit; /* Buffers requested/granted */ |
78 | uint32_t rm_type; /* Type of message (enum rpcrdma_proc) */ | 78 | __be32 rm_type; /* Type of message (enum rpcrdma_proc) */ |
79 | union { | 79 | union { |
80 | 80 | ||
81 | struct { /* no chunks */ | 81 | struct { /* no chunks */ |
82 | uint32_t rm_empty[3]; /* 3 empty chunk lists */ | 82 | __be32 rm_empty[3]; /* 3 empty chunk lists */ |
83 | } rm_nochunks; | 83 | } rm_nochunks; |
84 | 84 | ||
85 | struct { /* no chunks and padded */ | 85 | struct { /* no chunks and padded */ |
86 | uint32_t rm_align; /* Padding alignment */ | 86 | __be32 rm_align; /* Padding alignment */ |
87 | uint32_t rm_thresh; /* Padding threshold */ | 87 | __be32 rm_thresh; /* Padding threshold */ |
88 | uint32_t rm_pempty[3]; /* 3 empty chunk lists */ | 88 | __be32 rm_pempty[3]; /* 3 empty chunk lists */ |
89 | } rm_padded; | 89 | } rm_padded; |
90 | 90 | ||
91 | uint32_t rm_chunks[0]; /* read, write and reply chunks */ | 91 | __be32 rm_chunks[0]; /* read, write and reply chunks */ |
92 | 92 | ||
93 | } rm_body; | 93 | } rm_body; |
94 | }; | 94 | }; |
diff --git a/include/linux/sunrpc/xprtsock.h b/include/linux/sunrpc/xprtsock.h index 2c6c2c2783d8..c2a46c45c8f7 100644 --- a/include/linux/sunrpc/xprtsock.h +++ b/include/linux/sunrpc/xprtsock.h | |||
@@ -9,12 +9,6 @@ | |||
9 | 9 | ||
10 | #ifdef __KERNEL__ | 10 | #ifdef __KERNEL__ |
11 | 11 | ||
12 | /* | ||
13 | * Socket transport setup operations | ||
14 | */ | ||
15 | struct rpc_xprt *xs_setup_udp(struct xprt_create *args); | ||
16 | struct rpc_xprt *xs_setup_tcp(struct xprt_create *args); | ||
17 | |||
18 | int init_socket_xprt(void); | 12 | int init_socket_xprt(void); |
19 | void cleanup_socket_xprt(void); | 13 | void cleanup_socket_xprt(void); |
20 | 14 | ||
diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h index e99171f01b4c..4f5047df8a9e 100644 --- a/include/linux/sysctl.h +++ b/include/linux/sysctl.h | |||
@@ -70,7 +70,6 @@ enum | |||
70 | CTL_ABI=9, /* Binary emulation */ | 70 | CTL_ABI=9, /* Binary emulation */ |
71 | CTL_CPU=10, /* CPU stuff (speed scaling, etc) */ | 71 | CTL_CPU=10, /* CPU stuff (speed scaling, etc) */ |
72 | CTL_ARLAN=254, /* arlan wireless driver */ | 72 | CTL_ARLAN=254, /* arlan wireless driver */ |
73 | CTL_APPLDATA=2120, /* s390 appldata */ | ||
74 | CTL_S390DBF=5677, /* s390 debug */ | 73 | CTL_S390DBF=5677, /* s390 debug */ |
75 | CTL_SUNRPC=7249, /* sunrpc debug */ | 74 | CTL_SUNRPC=7249, /* sunrpc debug */ |
76 | CTL_PM=9899, /* frv power management */ | 75 | CTL_PM=9899, /* frv power management */ |
@@ -207,11 +206,6 @@ enum | |||
207 | VM_PANIC_ON_OOM=33, /* panic at out-of-memory */ | 206 | VM_PANIC_ON_OOM=33, /* panic at out-of-memory */ |
208 | VM_VDSO_ENABLED=34, /* map VDSO into new processes? */ | 207 | VM_VDSO_ENABLED=34, /* map VDSO into new processes? */ |
209 | VM_MIN_SLAB=35, /* Percent pages ignored by zone reclaim */ | 208 | VM_MIN_SLAB=35, /* Percent pages ignored by zone reclaim */ |
210 | |||
211 | /* s390 vm cmm sysctls */ | ||
212 | VM_CMM_PAGES=1111, | ||
213 | VM_CMM_TIMED_PAGES=1112, | ||
214 | VM_CMM_TIMEOUT=1113, | ||
215 | }; | 209 | }; |
216 | 210 | ||
217 | 211 | ||
diff --git a/include/linux/timex.h b/include/linux/timex.h index 37ac3ff90faf..24c6a2b59511 100644 --- a/include/linux/timex.h +++ b/include/linux/timex.h | |||
@@ -137,6 +137,7 @@ struct timex { | |||
137 | #define ADJ_TIMECONST 0x0020 /* pll time constant */ | 137 | #define ADJ_TIMECONST 0x0020 /* pll time constant */ |
138 | #define ADJ_TICK 0x4000 /* tick value */ | 138 | #define ADJ_TICK 0x4000 /* tick value */ |
139 | #define ADJ_OFFSET_SINGLESHOT 0x8001 /* old-fashioned adjtime */ | 139 | #define ADJ_OFFSET_SINGLESHOT 0x8001 /* old-fashioned adjtime */ |
140 | #define ADJ_OFFSET_SS_READ 0xa001 /* read-only adjtime */ | ||
140 | 141 | ||
141 | /* xntp 3.4 compatibility names */ | 142 | /* xntp 3.4 compatibility names */ |
142 | #define MOD_OFFSET ADJ_OFFSET | 143 | #define MOD_OFFSET ADJ_OFFSET |
diff --git a/include/linux/tty.h b/include/linux/tty.h index 56164d7ba0ad..c555f5442bd7 100644 --- a/include/linux/tty.h +++ b/include/linux/tty.h | |||
@@ -332,7 +332,9 @@ extern void tty_ldisc_flush(struct tty_struct *tty); | |||
332 | 332 | ||
333 | extern int tty_ioctl(struct inode *inode, struct file *file, unsigned int cmd, | 333 | extern int tty_ioctl(struct inode *inode, struct file *file, unsigned int cmd, |
334 | unsigned long arg); | 334 | unsigned long arg); |
335 | 335 | extern int tty_mode_ioctl(struct tty_struct *tty, struct file *file, | |
336 | unsigned int cmd, unsigned long arg); | ||
337 | extern int tty_perform_flush(struct tty_struct *tty, unsigned long arg); | ||
336 | extern dev_t tty_devnum(struct tty_struct *tty); | 338 | extern dev_t tty_devnum(struct tty_struct *tty); |
337 | extern void proc_clear_tty(struct task_struct *p); | 339 | extern void proc_clear_tty(struct task_struct *p); |
338 | extern struct tty_struct *get_current_tty(void); | 340 | extern struct tty_struct *get_current_tty(void); |
diff --git a/include/linux/types.h b/include/linux/types.h index 4f0dad21c917..f4f8d19158e4 100644 --- a/include/linux/types.h +++ b/include/linux/types.h | |||
@@ -37,6 +37,8 @@ typedef __kernel_gid32_t gid_t; | |||
37 | typedef __kernel_uid16_t uid16_t; | 37 | typedef __kernel_uid16_t uid16_t; |
38 | typedef __kernel_gid16_t gid16_t; | 38 | typedef __kernel_gid16_t gid16_t; |
39 | 39 | ||
40 | typedef unsigned long uintptr_t; | ||
41 | |||
40 | #ifdef CONFIG_UID16 | 42 | #ifdef CONFIG_UID16 |
41 | /* This is defined by include/asm-{arch}/posix_types.h */ | 43 | /* This is defined by include/asm-{arch}/posix_types.h */ |
42 | typedef __kernel_old_uid_t old_uid_t; | 44 | typedef __kernel_old_uid_t old_uid_t; |
diff --git a/include/linux/virtio_ring.h b/include/linux/virtio_ring.h index ac69e7bb5a14..1a4ed49f6478 100644 --- a/include/linux/virtio_ring.h +++ b/include/linux/virtio_ring.h | |||
@@ -67,7 +67,7 @@ struct vring { | |||
67 | }; | 67 | }; |
68 | 68 | ||
69 | /* The standard layout for the ring is a continuous chunk of memory which looks | 69 | /* The standard layout for the ring is a continuous chunk of memory which looks |
70 | * like this. The used fields will be aligned to a "num+1" boundary. | 70 | * like this. We assume num is a power of 2. |
71 | * | 71 | * |
72 | * struct vring | 72 | * struct vring |
73 | * { | 73 | * { |
@@ -79,8 +79,8 @@ struct vring { | |||
79 | * __u16 avail_idx; | 79 | * __u16 avail_idx; |
80 | * __u16 available[num]; | 80 | * __u16 available[num]; |
81 | * | 81 | * |
82 | * // Padding so a correctly-chosen num value will cache-align used_idx. | 82 | * // Padding to the next page boundary. |
83 | * char pad[sizeof(struct vring_desc) - sizeof(avail_flags)]; | 83 | * char pad[]; |
84 | * | 84 | * |
85 | * // A ring of used descriptor heads with free-running index. | 85 | * // A ring of used descriptor heads with free-running index. |
86 | * __u16 used_flags; | 86 | * __u16 used_flags; |
@@ -88,18 +88,21 @@ struct vring { | |||
88 | * struct vring_used_elem used[num]; | 88 | * struct vring_used_elem used[num]; |
89 | * }; | 89 | * }; |
90 | */ | 90 | */ |
91 | static inline void vring_init(struct vring *vr, unsigned int num, void *p) | 91 | static inline void vring_init(struct vring *vr, unsigned int num, void *p, |
92 | unsigned int pagesize) | ||
92 | { | 93 | { |
93 | vr->num = num; | 94 | vr->num = num; |
94 | vr->desc = p; | 95 | vr->desc = p; |
95 | vr->avail = p + num*sizeof(struct vring); | 96 | vr->avail = p + num*sizeof(struct vring_desc); |
96 | vr->used = p + (num+1)*(sizeof(struct vring) + sizeof(__u16)); | 97 | vr->used = (void *)(((unsigned long)&vr->avail->ring[num] + pagesize-1) |
98 | & ~(pagesize - 1)); | ||
97 | } | 99 | } |
98 | 100 | ||
99 | static inline unsigned vring_size(unsigned int num) | 101 | static inline unsigned vring_size(unsigned int num, unsigned int pagesize) |
100 | { | 102 | { |
101 | return (num + 1) * (sizeof(struct vring_desc) + sizeof(__u16)) | 103 | return ((sizeof(struct vring_desc) * num + sizeof(__u16) * (2 + num) |
102 | + sizeof(__u32) + num * sizeof(struct vring_used_elem); | 104 | + pagesize - 1) & ~(pagesize - 1)) |
105 | + sizeof(__u16) * 2 + sizeof(struct vring_used_elem) * num; | ||
103 | } | 106 | } |
104 | 107 | ||
105 | #ifdef __KERNEL__ | 108 | #ifdef __KERNEL__ |
diff --git a/include/net/af_unix.h b/include/net/af_unix.h index 0864a775de24..a1c805d7f488 100644 --- a/include/net/af_unix.h +++ b/include/net/af_unix.h | |||
@@ -12,7 +12,7 @@ extern void unix_gc(void); | |||
12 | 12 | ||
13 | #define UNIX_HASH_SIZE 256 | 13 | #define UNIX_HASH_SIZE 256 |
14 | 14 | ||
15 | extern atomic_t unix_tot_inflight; | 15 | extern unsigned int unix_tot_inflight; |
16 | 16 | ||
17 | struct unix_address { | 17 | struct unix_address { |
18 | atomic_t refcnt; | 18 | atomic_t refcnt; |
diff --git a/include/net/dst.h b/include/net/dst.h index e9ff4a4caef9..2f65e894b829 100644 --- a/include/net/dst.h +++ b/include/net/dst.h | |||
@@ -143,6 +143,13 @@ static inline void dst_hold(struct dst_entry * dst) | |||
143 | atomic_inc(&dst->__refcnt); | 143 | atomic_inc(&dst->__refcnt); |
144 | } | 144 | } |
145 | 145 | ||
146 | static inline void dst_use(struct dst_entry *dst, unsigned long time) | ||
147 | { | ||
148 | dst_hold(dst); | ||
149 | dst->__use++; | ||
150 | dst->lastuse = time; | ||
151 | } | ||
152 | |||
146 | static inline | 153 | static inline |
147 | struct dst_entry * dst_clone(struct dst_entry * dst) | 154 | struct dst_entry * dst_clone(struct dst_entry * dst) |
148 | { | 155 | { |
diff --git a/include/net/esp.h b/include/net/esp.h index c1bc529809da..c05f529bff28 100644 --- a/include/net/esp.h +++ b/include/net/esp.h | |||
@@ -3,7 +3,7 @@ | |||
3 | 3 | ||
4 | #include <linux/crypto.h> | 4 | #include <linux/crypto.h> |
5 | #include <net/xfrm.h> | 5 | #include <net/xfrm.h> |
6 | #include <asm/scatterlist.h> | 6 | #include <linux/scatterlist.h> |
7 | 7 | ||
8 | #define ESP_NUM_FAST_SG 4 | 8 | #define ESP_NUM_FAST_SG 4 |
9 | 9 | ||
diff --git a/include/net/fib_rules.h b/include/net/fib_rules.h index 017aebd90683..41a301e38643 100644 --- a/include/net/fib_rules.h +++ b/include/net/fib_rules.h | |||
@@ -107,4 +107,7 @@ extern int fib_rules_unregister(struct fib_rules_ops *); | |||
107 | extern int fib_rules_lookup(struct fib_rules_ops *, | 107 | extern int fib_rules_lookup(struct fib_rules_ops *, |
108 | struct flowi *, int flags, | 108 | struct flowi *, int flags, |
109 | struct fib_lookup_arg *); | 109 | struct fib_lookup_arg *); |
110 | extern int fib_default_rule_add(struct fib_rules_ops *, | ||
111 | u32 pref, u32 table, | ||
112 | u32 flags); | ||
110 | #endif | 113 | #endif |
diff --git a/include/net/ieee80211.h b/include/net/ieee80211.h index 164d13211165..d8ae48439f12 100644 --- a/include/net/ieee80211.h +++ b/include/net/ieee80211.h | |||
@@ -115,8 +115,16 @@ extern u32 ieee80211_debug_level; | |||
115 | do { if (ieee80211_debug_level & (level)) \ | 115 | do { if (ieee80211_debug_level & (level)) \ |
116 | printk(KERN_DEBUG "ieee80211: %c %s " fmt, \ | 116 | printk(KERN_DEBUG "ieee80211: %c %s " fmt, \ |
117 | in_interrupt() ? 'I' : 'U', __FUNCTION__ , ## args); } while (0) | 117 | in_interrupt() ? 'I' : 'U', __FUNCTION__ , ## args); } while (0) |
118 | static inline bool ieee80211_ratelimit_debug(u32 level) | ||
119 | { | ||
120 | return (ieee80211_debug_level & level) && net_ratelimit(); | ||
121 | } | ||
118 | #else | 122 | #else |
119 | #define IEEE80211_DEBUG(level, fmt, args...) do {} while (0) | 123 | #define IEEE80211_DEBUG(level, fmt, args...) do {} while (0) |
124 | static inline bool ieee80211_ratelimit_debug(u32 level) | ||
125 | { | ||
126 | return false; | ||
127 | } | ||
120 | #endif /* CONFIG_IEEE80211_DEBUG */ | 128 | #endif /* CONFIG_IEEE80211_DEBUG */ |
121 | 129 | ||
122 | /* escape_essid() is intended to be used in debug (and possibly error) | 130 | /* escape_essid() is intended to be used in debug (and possibly error) |
diff --git a/include/net/inet_common.h b/include/net/inet_common.h index 227adcbdfec8..38d5a1e9980d 100644 --- a/include/net/inet_common.h +++ b/include/net/inet_common.h | |||
@@ -13,9 +13,6 @@ struct sock; | |||
13 | struct sockaddr; | 13 | struct sockaddr; |
14 | struct socket; | 14 | struct socket; |
15 | 15 | ||
16 | extern void inet_remove_sock(struct sock *sk1); | ||
17 | extern void inet_put_sock(unsigned short num, | ||
18 | struct sock *sk); | ||
19 | extern int inet_release(struct socket *sock); | 16 | extern int inet_release(struct socket *sock); |
20 | extern int inet_stream_connect(struct socket *sock, | 17 | extern int inet_stream_connect(struct socket *sock, |
21 | struct sockaddr * uaddr, | 18 | struct sockaddr * uaddr, |
@@ -30,7 +27,6 @@ extern int inet_sendmsg(struct kiocb *iocb, | |||
30 | struct msghdr *msg, | 27 | struct msghdr *msg, |
31 | size_t size); | 28 | size_t size); |
32 | extern int inet_shutdown(struct socket *sock, int how); | 29 | extern int inet_shutdown(struct socket *sock, int how); |
33 | extern unsigned int inet_poll(struct file * file, struct socket *sock, struct poll_table_struct *wait); | ||
34 | extern int inet_listen(struct socket *sock, int backlog); | 30 | extern int inet_listen(struct socket *sock, int backlog); |
35 | 31 | ||
36 | extern void inet_sock_destruct(struct sock *sk); | 32 | extern void inet_sock_destruct(struct sock *sk); |
diff --git a/include/net/inet_hashtables.h b/include/net/inet_hashtables.h index 4427dcd1e53a..37f6cb112127 100644 --- a/include/net/inet_hashtables.h +++ b/include/net/inet_hashtables.h | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <linux/spinlock.h> | 23 | #include <linux/spinlock.h> |
24 | #include <linux/types.h> | 24 | #include <linux/types.h> |
25 | #include <linux/wait.h> | 25 | #include <linux/wait.h> |
26 | #include <linux/vmalloc.h> | ||
26 | 27 | ||
27 | #include <net/inet_connection_sock.h> | 28 | #include <net/inet_connection_sock.h> |
28 | #include <net/inet_sock.h> | 29 | #include <net/inet_sock.h> |
@@ -37,7 +38,6 @@ | |||
37 | * I'll experiment with dynamic table growth later. | 38 | * I'll experiment with dynamic table growth later. |
38 | */ | 39 | */ |
39 | struct inet_ehash_bucket { | 40 | struct inet_ehash_bucket { |
40 | rwlock_t lock; | ||
41 | struct hlist_head chain; | 41 | struct hlist_head chain; |
42 | struct hlist_head twchain; | 42 | struct hlist_head twchain; |
43 | }; | 43 | }; |
@@ -100,6 +100,9 @@ struct inet_hashinfo { | |||
100 | * TIME_WAIT sockets use a separate chain (twchain). | 100 | * TIME_WAIT sockets use a separate chain (twchain). |
101 | */ | 101 | */ |
102 | struct inet_ehash_bucket *ehash; | 102 | struct inet_ehash_bucket *ehash; |
103 | rwlock_t *ehash_locks; | ||
104 | unsigned int ehash_size; | ||
105 | unsigned int ehash_locks_mask; | ||
103 | 106 | ||
104 | /* Ok, let's try this, I give up, we do need a local binding | 107 | /* Ok, let's try this, I give up, we do need a local binding |
105 | * TCP hash as well as the others for fast bind/connect. | 108 | * TCP hash as well as the others for fast bind/connect. |
@@ -107,7 +110,7 @@ struct inet_hashinfo { | |||
107 | struct inet_bind_hashbucket *bhash; | 110 | struct inet_bind_hashbucket *bhash; |
108 | 111 | ||
109 | unsigned int bhash_size; | 112 | unsigned int bhash_size; |
110 | unsigned int ehash_size; | 113 | /* Note : 4 bytes padding on 64 bit arches */ |
111 | 114 | ||
112 | /* All sockets in TCP_LISTEN state will be in here. This is the only | 115 | /* All sockets in TCP_LISTEN state will be in here. This is the only |
113 | * table where wildcard'd TCP sockets can exist. Hash function here | 116 | * table where wildcard'd TCP sockets can exist. Hash function here |
@@ -134,6 +137,61 @@ static inline struct inet_ehash_bucket *inet_ehash_bucket( | |||
134 | return &hashinfo->ehash[hash & (hashinfo->ehash_size - 1)]; | 137 | return &hashinfo->ehash[hash & (hashinfo->ehash_size - 1)]; |
135 | } | 138 | } |
136 | 139 | ||
140 | static inline rwlock_t *inet_ehash_lockp( | ||
141 | struct inet_hashinfo *hashinfo, | ||
142 | unsigned int hash) | ||
143 | { | ||
144 | return &hashinfo->ehash_locks[hash & hashinfo->ehash_locks_mask]; | ||
145 | } | ||
146 | |||
147 | static inline int inet_ehash_locks_alloc(struct inet_hashinfo *hashinfo) | ||
148 | { | ||
149 | unsigned int i, size = 256; | ||
150 | #if defined(CONFIG_PROVE_LOCKING) | ||
151 | unsigned int nr_pcpus = 2; | ||
152 | #else | ||
153 | unsigned int nr_pcpus = num_possible_cpus(); | ||
154 | #endif | ||
155 | if (nr_pcpus >= 4) | ||
156 | size = 512; | ||
157 | if (nr_pcpus >= 8) | ||
158 | size = 1024; | ||
159 | if (nr_pcpus >= 16) | ||
160 | size = 2048; | ||
161 | if (nr_pcpus >= 32) | ||
162 | size = 4096; | ||
163 | if (sizeof(rwlock_t) != 0) { | ||
164 | #ifdef CONFIG_NUMA | ||
165 | if (size * sizeof(rwlock_t) > PAGE_SIZE) | ||
166 | hashinfo->ehash_locks = vmalloc(size * sizeof(rwlock_t)); | ||
167 | else | ||
168 | #endif | ||
169 | hashinfo->ehash_locks = kmalloc(size * sizeof(rwlock_t), | ||
170 | GFP_KERNEL); | ||
171 | if (!hashinfo->ehash_locks) | ||
172 | return ENOMEM; | ||
173 | for (i = 0; i < size; i++) | ||
174 | rwlock_init(&hashinfo->ehash_locks[i]); | ||
175 | } | ||
176 | hashinfo->ehash_locks_mask = size - 1; | ||
177 | return 0; | ||
178 | } | ||
179 | |||
180 | static inline void inet_ehash_locks_free(struct inet_hashinfo *hashinfo) | ||
181 | { | ||
182 | if (hashinfo->ehash_locks) { | ||
183 | #ifdef CONFIG_NUMA | ||
184 | unsigned int size = (hashinfo->ehash_locks_mask + 1) * | ||
185 | sizeof(rwlock_t); | ||
186 | if (size > PAGE_SIZE) | ||
187 | vfree(hashinfo->ehash_locks); | ||
188 | else | ||
189 | #endif | ||
190 | kfree(hashinfo->ehash_locks); | ||
191 | hashinfo->ehash_locks = NULL; | ||
192 | } | ||
193 | } | ||
194 | |||
137 | extern struct inet_bind_bucket * | 195 | extern struct inet_bind_bucket * |
138 | inet_bind_bucket_create(struct kmem_cache *cachep, | 196 | inet_bind_bucket_create(struct kmem_cache *cachep, |
139 | struct inet_bind_hashbucket *head, | 197 | struct inet_bind_hashbucket *head, |
@@ -222,7 +280,7 @@ static inline void __inet_hash(struct inet_hashinfo *hashinfo, | |||
222 | sk->sk_hash = inet_sk_ehashfn(sk); | 280 | sk->sk_hash = inet_sk_ehashfn(sk); |
223 | head = inet_ehash_bucket(hashinfo, sk->sk_hash); | 281 | head = inet_ehash_bucket(hashinfo, sk->sk_hash); |
224 | list = &head->chain; | 282 | list = &head->chain; |
225 | lock = &head->lock; | 283 | lock = inet_ehash_lockp(hashinfo, sk->sk_hash); |
226 | write_lock(lock); | 284 | write_lock(lock); |
227 | } | 285 | } |
228 | __sk_add_node(sk, list); | 286 | __sk_add_node(sk, list); |
@@ -253,7 +311,7 @@ static inline void inet_unhash(struct inet_hashinfo *hashinfo, struct sock *sk) | |||
253 | inet_listen_wlock(hashinfo); | 311 | inet_listen_wlock(hashinfo); |
254 | lock = &hashinfo->lhash_lock; | 312 | lock = &hashinfo->lhash_lock; |
255 | } else { | 313 | } else { |
256 | lock = &inet_ehash_bucket(hashinfo, sk->sk_hash)->lock; | 314 | lock = inet_ehash_lockp(hashinfo, sk->sk_hash); |
257 | write_lock_bh(lock); | 315 | write_lock_bh(lock); |
258 | } | 316 | } |
259 | 317 | ||
@@ -354,9 +412,10 @@ static inline struct sock * | |||
354 | */ | 412 | */ |
355 | unsigned int hash = inet_ehashfn(daddr, hnum, saddr, sport); | 413 | unsigned int hash = inet_ehashfn(daddr, hnum, saddr, sport); |
356 | struct inet_ehash_bucket *head = inet_ehash_bucket(hashinfo, hash); | 414 | struct inet_ehash_bucket *head = inet_ehash_bucket(hashinfo, hash); |
415 | rwlock_t *lock = inet_ehash_lockp(hashinfo, hash); | ||
357 | 416 | ||
358 | prefetch(head->chain.first); | 417 | prefetch(head->chain.first); |
359 | read_lock(&head->lock); | 418 | read_lock(lock); |
360 | sk_for_each(sk, node, &head->chain) { | 419 | sk_for_each(sk, node, &head->chain) { |
361 | if (INET_MATCH(sk, hash, acookie, saddr, daddr, ports, dif)) | 420 | if (INET_MATCH(sk, hash, acookie, saddr, daddr, ports, dif)) |
362 | goto hit; /* You sunk my battleship! */ | 421 | goto hit; /* You sunk my battleship! */ |
@@ -369,7 +428,7 @@ static inline struct sock * | |||
369 | } | 428 | } |
370 | sk = NULL; | 429 | sk = NULL; |
371 | out: | 430 | out: |
372 | read_unlock(&head->lock); | 431 | read_unlock(lock); |
373 | return sk; | 432 | return sk; |
374 | hit: | 433 | hit: |
375 | sock_hold(sk); | 434 | sock_hold(sk); |
diff --git a/include/net/inetpeer.h b/include/net/inetpeer.h index aa10a8178e70..ad8404b56113 100644 --- a/include/net/inetpeer.h +++ b/include/net/inetpeer.h | |||
@@ -22,7 +22,7 @@ struct inet_peer | |||
22 | __be32 v4daddr; /* peer's address */ | 22 | __be32 v4daddr; /* peer's address */ |
23 | __u16 avl_height; | 23 | __u16 avl_height; |
24 | __u16 ip_id_count; /* IP ID for the next packet */ | 24 | __u16 ip_id_count; /* IP ID for the next packet */ |
25 | struct inet_peer *unused_next, **unused_prevp; | 25 | struct list_head unused; |
26 | __u32 dtime; /* the time of last use of not | 26 | __u32 dtime; /* the time of last use of not |
27 | * referenced entries */ | 27 | * referenced entries */ |
28 | atomic_t refcnt; | 28 | atomic_t refcnt; |
diff --git a/include/net/ip_fib.h b/include/net/ip_fib.h index 8cadc77c7df4..ed514bfb61ba 100644 --- a/include/net/ip_fib.h +++ b/include/net/ip_fib.h | |||
@@ -185,6 +185,12 @@ static inline void fib_select_default(const struct flowi *flp, struct fib_result | |||
185 | } | 185 | } |
186 | 186 | ||
187 | #else /* CONFIG_IP_MULTIPLE_TABLES */ | 187 | #else /* CONFIG_IP_MULTIPLE_TABLES */ |
188 | extern void __init fib4_rules_init(void); | ||
189 | |||
190 | #ifdef CONFIG_NET_CLS_ROUTE | ||
191 | extern u32 fib_rules_tclass(struct fib_result *res); | ||
192 | #endif | ||
193 | |||
188 | #define ip_fib_local_table fib_get_table(RT_TABLE_LOCAL) | 194 | #define ip_fib_local_table fib_get_table(RT_TABLE_LOCAL) |
189 | #define ip_fib_main_table fib_get_table(RT_TABLE_MAIN) | 195 | #define ip_fib_main_table fib_get_table(RT_TABLE_MAIN) |
190 | 196 | ||
@@ -214,15 +220,6 @@ extern __be32 __fib_res_prefsrc(struct fib_result *res); | |||
214 | /* Exported by fib_hash.c */ | 220 | /* Exported by fib_hash.c */ |
215 | extern struct fib_table *fib_hash_init(u32 id); | 221 | extern struct fib_table *fib_hash_init(u32 id); |
216 | 222 | ||
217 | #ifdef CONFIG_IP_MULTIPLE_TABLES | ||
218 | extern void __init fib4_rules_init(void); | ||
219 | |||
220 | #ifdef CONFIG_NET_CLS_ROUTE | ||
221 | extern u32 fib_rules_tclass(struct fib_result *res); | ||
222 | #endif | ||
223 | |||
224 | #endif | ||
225 | |||
226 | static inline void fib_combine_itag(u32 *itag, struct fib_result *res) | 223 | static inline void fib_combine_itag(u32 *itag, struct fib_result *res) |
227 | { | 224 | { |
228 | #ifdef CONFIG_NET_CLS_ROUTE | 225 | #ifdef CONFIG_NET_CLS_ROUTE |
diff --git a/include/net/ip_vs.h b/include/net/ip_vs.h index 41870564df8e..8a7d59be8a0d 100644 --- a/include/net/ip_vs.h +++ b/include/net/ip_vs.h | |||
@@ -328,40 +328,6 @@ extern int ip_vs_get_debug_level(void); | |||
328 | #define FTPDATA __constant_htons(20) | 328 | #define FTPDATA __constant_htons(20) |
329 | 329 | ||
330 | /* | 330 | /* |
331 | * IPVS sysctl variables under the /proc/sys/net/ipv4/vs/ | ||
332 | */ | ||
333 | #define NET_IPV4_VS 21 | ||
334 | |||
335 | enum { | ||
336 | NET_IPV4_VS_DEBUG_LEVEL=1, | ||
337 | NET_IPV4_VS_AMEMTHRESH=2, | ||
338 | NET_IPV4_VS_AMDROPRATE=3, | ||
339 | NET_IPV4_VS_DROP_ENTRY=4, | ||
340 | NET_IPV4_VS_DROP_PACKET=5, | ||
341 | NET_IPV4_VS_SECURE_TCP=6, | ||
342 | NET_IPV4_VS_TO_ES=7, | ||
343 | NET_IPV4_VS_TO_SS=8, | ||
344 | NET_IPV4_VS_TO_SR=9, | ||
345 | NET_IPV4_VS_TO_FW=10, | ||
346 | NET_IPV4_VS_TO_TW=11, | ||
347 | NET_IPV4_VS_TO_CL=12, | ||
348 | NET_IPV4_VS_TO_CW=13, | ||
349 | NET_IPV4_VS_TO_LA=14, | ||
350 | NET_IPV4_VS_TO_LI=15, | ||
351 | NET_IPV4_VS_TO_SA=16, | ||
352 | NET_IPV4_VS_TO_UDP=17, | ||
353 | NET_IPV4_VS_TO_ICMP=18, | ||
354 | NET_IPV4_VS_LBLC_EXPIRE=19, | ||
355 | NET_IPV4_VS_LBLCR_EXPIRE=20, | ||
356 | NET_IPV4_VS_CACHE_BYPASS=22, | ||
357 | NET_IPV4_VS_EXPIRE_NODEST_CONN=23, | ||
358 | NET_IPV4_VS_SYNC_THRESHOLD=24, | ||
359 | NET_IPV4_VS_NAT_ICMP_SEND=25, | ||
360 | NET_IPV4_VS_EXPIRE_QUIESCENT_TEMPLATE=26, | ||
361 | NET_IPV4_VS_LAST | ||
362 | }; | ||
363 | |||
364 | /* | ||
365 | * TCP State Values | 331 | * TCP State Values |
366 | */ | 332 | */ |
367 | enum { | 333 | enum { |
@@ -520,6 +486,10 @@ struct ip_vs_conn { | |||
520 | spinlock_t lock; /* lock for state transition */ | 486 | spinlock_t lock; /* lock for state transition */ |
521 | volatile __u16 flags; /* status flags */ | 487 | volatile __u16 flags; /* status flags */ |
522 | volatile __u16 state; /* state info */ | 488 | volatile __u16 state; /* state info */ |
489 | volatile __u16 old_state; /* old state, to be used for | ||
490 | * state transition triggerd | ||
491 | * synchronization | ||
492 | */ | ||
523 | 493 | ||
524 | /* Control members */ | 494 | /* Control members */ |
525 | struct ip_vs_conn *control; /* Master control connection */ | 495 | struct ip_vs_conn *control; /* Master control connection */ |
@@ -901,6 +871,10 @@ extern int ip_vs_use_count_inc(void); | |||
901 | extern void ip_vs_use_count_dec(void); | 871 | extern void ip_vs_use_count_dec(void); |
902 | extern int ip_vs_control_init(void); | 872 | extern int ip_vs_control_init(void); |
903 | extern void ip_vs_control_cleanup(void); | 873 | extern void ip_vs_control_cleanup(void); |
874 | extern struct ip_vs_dest * | ||
875 | ip_vs_find_dest(__be32 daddr, __be16 dport, | ||
876 | __be32 vaddr, __be16 vport, __u16 protocol); | ||
877 | extern struct ip_vs_dest *ip_vs_try_bind_dest(struct ip_vs_conn *cp); | ||
904 | 878 | ||
905 | 879 | ||
906 | /* | 880 | /* |
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index 5fcc4c104340..17b60391fcd6 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
@@ -706,11 +706,16 @@ enum ieee80211_hw_flags { | |||
706 | * | 706 | * |
707 | * @queues: number of available hardware transmit queues for | 707 | * @queues: number of available hardware transmit queues for |
708 | * data packets. WMM/QoS requires at least four. | 708 | * data packets. WMM/QoS requires at least four. |
709 | * | ||
710 | * @rate_control_algorithm: rate control algorithm for this hardware. | ||
711 | * If unset (NULL), the default algorithm will be used. Must be | ||
712 | * set before calling ieee80211_register_hw(). | ||
709 | */ | 713 | */ |
710 | struct ieee80211_hw { | 714 | struct ieee80211_hw { |
711 | struct ieee80211_conf conf; | 715 | struct ieee80211_conf conf; |
712 | struct wiphy *wiphy; | 716 | struct wiphy *wiphy; |
713 | struct workqueue_struct *workqueue; | 717 | struct workqueue_struct *workqueue; |
718 | const char *rate_control_algorithm; | ||
714 | void *priv; | 719 | void *priv; |
715 | u32 flags; | 720 | u32 flags; |
716 | unsigned int extra_tx_headroom; | 721 | unsigned int extra_tx_headroom; |
@@ -936,27 +941,11 @@ enum ieee80211_erp_change_flags { | |||
936 | * and remove_interface calls, i.e. while the interface with the | 941 | * and remove_interface calls, i.e. while the interface with the |
937 | * given local_address is enabled. | 942 | * given local_address is enabled. |
938 | * | 943 | * |
939 | * @set_ieee8021x: Enable/disable IEEE 802.1X. This item requests wlan card | ||
940 | * to pass unencrypted EAPOL-Key frames even when encryption is | ||
941 | * configured. If the wlan card does not require such a configuration, | ||
942 | * this function pointer can be set to NULL. | ||
943 | * | ||
944 | * @set_port_auth: Set port authorization state (IEEE 802.1X PAE) to be | ||
945 | * authorized (@authorized=1) or unauthorized (=0). This function can be | ||
946 | * used if the wlan hardware or low-level driver implements PAE. | ||
947 | * mac80211 will filter frames based on authorization state in any case, | ||
948 | * so this function pointer can be NULL if low-level driver does not | ||
949 | * require event notification about port state changes. | ||
950 | * | ||
951 | * @hw_scan: Ask the hardware to service the scan request, no need to start | 944 | * @hw_scan: Ask the hardware to service the scan request, no need to start |
952 | * the scan state machine in stack. | 945 | * the scan state machine in stack. |
953 | * | 946 | * |
954 | * @get_stats: return low-level statistics | 947 | * @get_stats: return low-level statistics |
955 | * | 948 | * |
956 | * @set_privacy_invoked: For devices that generate their own beacons and probe | ||
957 | * response or association responses this updates the state of privacy_invoked | ||
958 | * returns 0 for success or an error number. | ||
959 | * | ||
960 | * @get_sequence_counter: For devices that have internal sequence counters this | 949 | * @get_sequence_counter: For devices that have internal sequence counters this |
961 | * callback allows mac80211 to access the current value of a counter. | 950 | * callback allows mac80211 to access the current value of a counter. |
962 | * This callback seems not well-defined, tell us if you need it. | 951 | * This callback seems not well-defined, tell us if you need it. |
@@ -1029,14 +1018,9 @@ struct ieee80211_ops { | |||
1029 | int (*set_key)(struct ieee80211_hw *hw, enum set_key_cmd cmd, | 1018 | int (*set_key)(struct ieee80211_hw *hw, enum set_key_cmd cmd, |
1030 | const u8 *local_address, const u8 *address, | 1019 | const u8 *local_address, const u8 *address, |
1031 | struct ieee80211_key_conf *key); | 1020 | struct ieee80211_key_conf *key); |
1032 | int (*set_ieee8021x)(struct ieee80211_hw *hw, int use_ieee8021x); | ||
1033 | int (*set_port_auth)(struct ieee80211_hw *hw, u8 *addr, | ||
1034 | int authorized); | ||
1035 | int (*hw_scan)(struct ieee80211_hw *hw, u8 *ssid, size_t len); | 1021 | int (*hw_scan)(struct ieee80211_hw *hw, u8 *ssid, size_t len); |
1036 | int (*get_stats)(struct ieee80211_hw *hw, | 1022 | int (*get_stats)(struct ieee80211_hw *hw, |
1037 | struct ieee80211_low_level_stats *stats); | 1023 | struct ieee80211_low_level_stats *stats); |
1038 | int (*set_privacy_invoked)(struct ieee80211_hw *hw, | ||
1039 | int privacy_invoked); | ||
1040 | int (*get_sequence_counter)(struct ieee80211_hw *hw, | 1024 | int (*get_sequence_counter)(struct ieee80211_hw *hw, |
1041 | u8* addr, u8 keyidx, u8 txrx, | 1025 | u8* addr, u8 keyidx, u8 txrx, |
1042 | u32* iv32, u16* iv16); | 1026 | u32* iv32, u16* iv16); |
diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h index 5279466606d2..5dd6d90b37eb 100644 --- a/include/net/net_namespace.h +++ b/include/net/net_namespace.h | |||
@@ -51,13 +51,12 @@ static inline struct net *copy_net_ns(unsigned long flags, struct net *net_ns) | |||
51 | } | 51 | } |
52 | #endif | 52 | #endif |
53 | 53 | ||
54 | #ifdef CONFIG_NET_NS | ||
54 | extern void __put_net(struct net *net); | 55 | extern void __put_net(struct net *net); |
55 | 56 | ||
56 | static inline struct net *get_net(struct net *net) | 57 | static inline struct net *get_net(struct net *net) |
57 | { | 58 | { |
58 | #ifdef CONFIG_NET | ||
59 | atomic_inc(&net->count); | 59 | atomic_inc(&net->count); |
60 | #endif | ||
61 | return net; | 60 | return net; |
62 | } | 61 | } |
63 | 62 | ||
@@ -75,26 +74,44 @@ static inline struct net *maybe_get_net(struct net *net) | |||
75 | 74 | ||
76 | static inline void put_net(struct net *net) | 75 | static inline void put_net(struct net *net) |
77 | { | 76 | { |
78 | #ifdef CONFIG_NET | ||
79 | if (atomic_dec_and_test(&net->count)) | 77 | if (atomic_dec_and_test(&net->count)) |
80 | __put_net(net); | 78 | __put_net(net); |
81 | #endif | ||
82 | } | 79 | } |
83 | 80 | ||
84 | static inline struct net *hold_net(struct net *net) | 81 | static inline struct net *hold_net(struct net *net) |
85 | { | 82 | { |
86 | #ifdef CONFIG_NET | ||
87 | atomic_inc(&net->use_count); | 83 | atomic_inc(&net->use_count); |
88 | #endif | ||
89 | return net; | 84 | return net; |
90 | } | 85 | } |
91 | 86 | ||
92 | static inline void release_net(struct net *net) | 87 | static inline void release_net(struct net *net) |
93 | { | 88 | { |
94 | #ifdef CONFIG_NET | ||
95 | atomic_dec(&net->use_count); | 89 | atomic_dec(&net->use_count); |
96 | #endif | ||
97 | } | 90 | } |
91 | #else | ||
92 | static inline struct net *get_net(struct net *net) | ||
93 | { | ||
94 | return net; | ||
95 | } | ||
96 | |||
97 | static inline void put_net(struct net *net) | ||
98 | { | ||
99 | } | ||
100 | |||
101 | static inline struct net *hold_net(struct net *net) | ||
102 | { | ||
103 | return net; | ||
104 | } | ||
105 | |||
106 | static inline void release_net(struct net *net) | ||
107 | { | ||
108 | } | ||
109 | |||
110 | static inline struct net *maybe_get_net(struct net *net) | ||
111 | { | ||
112 | return net; | ||
113 | } | ||
114 | #endif | ||
98 | 115 | ||
99 | #define for_each_net(VAR) \ | 116 | #define for_each_net(VAR) \ |
100 | list_for_each_entry(VAR, &net_namespace_list, list) | 117 | list_for_each_entry(VAR, &net_namespace_list, list) |
@@ -102,9 +119,11 @@ static inline void release_net(struct net *net) | |||
102 | #ifdef CONFIG_NET_NS | 119 | #ifdef CONFIG_NET_NS |
103 | #define __net_init | 120 | #define __net_init |
104 | #define __net_exit | 121 | #define __net_exit |
122 | #define __net_initdata | ||
105 | #else | 123 | #else |
106 | #define __net_init __init | 124 | #define __net_init __init |
107 | #define __net_exit __exit_refok | 125 | #define __net_exit __exit_refok |
126 | #define __net_initdata __initdata | ||
108 | #endif | 127 | #endif |
109 | 128 | ||
110 | struct pernet_operations { | 129 | struct pernet_operations { |
diff --git a/include/net/request_sock.h b/include/net/request_sock.h index 7aed02ce2b65..cff4608179c1 100644 --- a/include/net/request_sock.h +++ b/include/net/request_sock.h | |||
@@ -124,23 +124,7 @@ struct request_sock_queue { | |||
124 | extern int reqsk_queue_alloc(struct request_sock_queue *queue, | 124 | extern int reqsk_queue_alloc(struct request_sock_queue *queue, |
125 | unsigned int nr_table_entries); | 125 | unsigned int nr_table_entries); |
126 | 126 | ||
127 | static inline struct listen_sock *reqsk_queue_yank_listen_sk(struct request_sock_queue *queue) | 127 | extern void __reqsk_queue_destroy(struct request_sock_queue *queue); |
128 | { | ||
129 | struct listen_sock *lopt; | ||
130 | |||
131 | write_lock_bh(&queue->syn_wait_lock); | ||
132 | lopt = queue->listen_opt; | ||
133 | queue->listen_opt = NULL; | ||
134 | write_unlock_bh(&queue->syn_wait_lock); | ||
135 | |||
136 | return lopt; | ||
137 | } | ||
138 | |||
139 | static inline void __reqsk_queue_destroy(struct request_sock_queue *queue) | ||
140 | { | ||
141 | kfree(reqsk_queue_yank_listen_sk(queue)); | ||
142 | } | ||
143 | |||
144 | extern void reqsk_queue_destroy(struct request_sock_queue *queue); | 128 | extern void reqsk_queue_destroy(struct request_sock_queue *queue); |
145 | 129 | ||
146 | static inline struct request_sock * | 130 | static inline struct request_sock * |
diff --git a/include/net/sctp/auth.h b/include/net/sctp/auth.h index 9e8f13b7da5a..5db261a1e85e 100644 --- a/include/net/sctp/auth.h +++ b/include/net/sctp/auth.h | |||
@@ -103,7 +103,7 @@ struct sctp_hmac *sctp_auth_asoc_get_hmac(const struct sctp_association *asoc); | |||
103 | void sctp_auth_asoc_set_default_hmac(struct sctp_association *asoc, | 103 | void sctp_auth_asoc_set_default_hmac(struct sctp_association *asoc, |
104 | struct sctp_hmac_algo_param *hmacs); | 104 | struct sctp_hmac_algo_param *hmacs); |
105 | int sctp_auth_asoc_verify_hmac_id(const struct sctp_association *asoc, | 105 | int sctp_auth_asoc_verify_hmac_id(const struct sctp_association *asoc, |
106 | __u16 hmac_id); | 106 | __be16 hmac_id); |
107 | int sctp_auth_send_cid(sctp_cid_t chunk, const struct sctp_association *asoc); | 107 | int sctp_auth_send_cid(sctp_cid_t chunk, const struct sctp_association *asoc); |
108 | int sctp_auth_recv_cid(sctp_cid_t chunk, const struct sctp_association *asoc); | 108 | int sctp_auth_recv_cid(sctp_cid_t chunk, const struct sctp_association *asoc); |
109 | void sctp_auth_calculate_hmac(const struct sctp_association *asoc, | 109 | void sctp_auth_calculate_hmac(const struct sctp_association *asoc, |
diff --git a/include/net/sctp/command.h b/include/net/sctp/command.h index b8733364557f..c1f797673571 100644 --- a/include/net/sctp/command.h +++ b/include/net/sctp/command.h | |||
@@ -103,6 +103,7 @@ typedef enum { | |||
103 | SCTP_CMD_ASSOC_CHANGE, /* generate and send assoc_change event */ | 103 | SCTP_CMD_ASSOC_CHANGE, /* generate and send assoc_change event */ |
104 | SCTP_CMD_ADAPTATION_IND, /* generate and send adaptation event */ | 104 | SCTP_CMD_ADAPTATION_IND, /* generate and send adaptation event */ |
105 | SCTP_CMD_ASSOC_SHKEY, /* generate the association shared keys */ | 105 | SCTP_CMD_ASSOC_SHKEY, /* generate the association shared keys */ |
106 | SCTP_CMD_T1_RETRAN, /* Mark for retransmission after T1 timeout */ | ||
106 | SCTP_CMD_LAST | 107 | SCTP_CMD_LAST |
107 | } sctp_verb_t; | 108 | } sctp_verb_t; |
108 | 109 | ||
diff --git a/include/net/sctp/constants.h b/include/net/sctp/constants.h index da8354e8e33c..f30b537d6952 100644 --- a/include/net/sctp/constants.h +++ b/include/net/sctp/constants.h | |||
@@ -186,6 +186,8 @@ typedef enum { | |||
186 | SCTP_IERROR_AUTH_BAD_HMAC, | 186 | SCTP_IERROR_AUTH_BAD_HMAC, |
187 | SCTP_IERROR_AUTH_BAD_KEYID, | 187 | SCTP_IERROR_AUTH_BAD_KEYID, |
188 | SCTP_IERROR_PROTO_VIOLATION, | 188 | SCTP_IERROR_PROTO_VIOLATION, |
189 | SCTP_IERROR_ERROR, | ||
190 | SCTP_IERROR_ABORT, | ||
189 | } sctp_ierror_t; | 191 | } sctp_ierror_t; |
190 | 192 | ||
191 | 193 | ||
@@ -407,6 +409,7 @@ typedef enum { | |||
407 | SCTP_RTXR_T3_RTX, | 409 | SCTP_RTXR_T3_RTX, |
408 | SCTP_RTXR_FAST_RTX, | 410 | SCTP_RTXR_FAST_RTX, |
409 | SCTP_RTXR_PMTUD, | 411 | SCTP_RTXR_PMTUD, |
412 | SCTP_RTXR_T1_RTX, | ||
410 | } sctp_retransmit_reason_t; | 413 | } sctp_retransmit_reason_t; |
411 | 414 | ||
412 | /* Reasons to lower cwnd. */ | 415 | /* Reasons to lower cwnd. */ |
diff --git a/include/net/sctp/sctp.h b/include/net/sctp/sctp.h index 93eb708609e7..34318a33a94c 100644 --- a/include/net/sctp/sctp.h +++ b/include/net/sctp/sctp.h | |||
@@ -65,7 +65,6 @@ | |||
65 | 65 | ||
66 | 66 | ||
67 | #ifdef TEST_FRAME | 67 | #ifdef TEST_FRAME |
68 | #undef CONFIG_PROC_FS | ||
69 | #undef CONFIG_SCTP_DBG_OBJCNT | 68 | #undef CONFIG_SCTP_DBG_OBJCNT |
70 | #undef CONFIG_SYSCTL | 69 | #undef CONFIG_SYSCTL |
71 | #endif /* TEST_FRAME */ | 70 | #endif /* TEST_FRAME */ |
@@ -267,6 +266,7 @@ enum | |||
267 | SCTP_MIB_T5_SHUTDOWN_GUARD_EXPIREDS, | 266 | SCTP_MIB_T5_SHUTDOWN_GUARD_EXPIREDS, |
268 | SCTP_MIB_DELAY_SACK_EXPIREDS, | 267 | SCTP_MIB_DELAY_SACK_EXPIREDS, |
269 | SCTP_MIB_AUTOCLOSE_EXPIREDS, | 268 | SCTP_MIB_AUTOCLOSE_EXPIREDS, |
269 | SCTP_MIB_T1_RETRANSMITS, | ||
270 | SCTP_MIB_T3_RETRANSMITS, | 270 | SCTP_MIB_T3_RETRANSMITS, |
271 | SCTP_MIB_PMTUD_RETRANSMITS, | 271 | SCTP_MIB_PMTUD_RETRANSMITS, |
272 | SCTP_MIB_FAST_RETRANSMITS, | 272 | SCTP_MIB_FAST_RETRANSMITS, |
@@ -664,6 +664,9 @@ static inline int sctp_vtag_hashfn(__u16 lport, __u16 rport, __u32 vtag) | |||
664 | return (h & (sctp_assoc_hashsize-1)); | 664 | return (h & (sctp_assoc_hashsize-1)); |
665 | } | 665 | } |
666 | 666 | ||
667 | #define sctp_for_each_hentry(epb, node, head) \ | ||
668 | hlist_for_each_entry(epb, node, head, node) | ||
669 | |||
667 | /* Is a socket of this style? */ | 670 | /* Is a socket of this style? */ |
668 | #define sctp_style(sk, style) __sctp_style((sk), (SCTP_SOCKET_##style)) | 671 | #define sctp_style(sk, style) __sctp_style((sk), (SCTP_SOCKET_##style)) |
669 | static inline int __sctp_style(const struct sock *sk, sctp_socket_type_t style) | 672 | static inline int __sctp_style(const struct sock *sk, sctp_socket_type_t style) |
diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h index ef892e00c833..eb3113c38a94 100644 --- a/include/net/sctp/structs.h +++ b/include/net/sctp/structs.h | |||
@@ -100,20 +100,19 @@ struct crypto_hash; | |||
100 | struct sctp_bind_bucket { | 100 | struct sctp_bind_bucket { |
101 | unsigned short port; | 101 | unsigned short port; |
102 | unsigned short fastreuse; | 102 | unsigned short fastreuse; |
103 | struct sctp_bind_bucket *next; | 103 | struct hlist_node node; |
104 | struct sctp_bind_bucket **pprev; | ||
105 | struct hlist_head owner; | 104 | struct hlist_head owner; |
106 | }; | 105 | }; |
107 | 106 | ||
108 | struct sctp_bind_hashbucket { | 107 | struct sctp_bind_hashbucket { |
109 | spinlock_t lock; | 108 | spinlock_t lock; |
110 | struct sctp_bind_bucket *chain; | 109 | struct hlist_head chain; |
111 | }; | 110 | }; |
112 | 111 | ||
113 | /* Used for hashing all associations. */ | 112 | /* Used for hashing all associations. */ |
114 | struct sctp_hashbucket { | 113 | struct sctp_hashbucket { |
115 | rwlock_t lock; | 114 | rwlock_t lock; |
116 | struct sctp_ep_common *chain; | 115 | struct hlist_head chain; |
117 | } __attribute__((__aligned__(8))); | 116 | } __attribute__((__aligned__(8))); |
118 | 117 | ||
119 | 118 | ||
@@ -212,6 +211,7 @@ extern struct sctp_globals { | |||
212 | 211 | ||
213 | /* Flag to indicate if addip is enabled. */ | 212 | /* Flag to indicate if addip is enabled. */ |
214 | int addip_enable; | 213 | int addip_enable; |
214 | int addip_noauth_enable; | ||
215 | 215 | ||
216 | /* Flag to indicate if PR-SCTP is enabled. */ | 216 | /* Flag to indicate if PR-SCTP is enabled. */ |
217 | int prsctp_enable; | 217 | int prsctp_enable; |
@@ -249,6 +249,7 @@ extern struct sctp_globals { | |||
249 | #define sctp_local_addr_list (sctp_globals.local_addr_list) | 249 | #define sctp_local_addr_list (sctp_globals.local_addr_list) |
250 | #define sctp_local_addr_lock (sctp_globals.addr_list_lock) | 250 | #define sctp_local_addr_lock (sctp_globals.addr_list_lock) |
251 | #define sctp_addip_enable (sctp_globals.addip_enable) | 251 | #define sctp_addip_enable (sctp_globals.addip_enable) |
252 | #define sctp_addip_noauth (sctp_globals.addip_noauth_enable) | ||
252 | #define sctp_prsctp_enable (sctp_globals.prsctp_enable) | 253 | #define sctp_prsctp_enable (sctp_globals.prsctp_enable) |
253 | #define sctp_auth_enable (sctp_globals.auth_enable) | 254 | #define sctp_auth_enable (sctp_globals.auth_enable) |
254 | 255 | ||
@@ -873,10 +874,11 @@ struct sctp_transport { | |||
873 | * address list derived from the INIT or INIT ACK chunk, a | 874 | * address list derived from the INIT or INIT ACK chunk, a |
874 | * number of data elements needs to be maintained including: | 875 | * number of data elements needs to be maintained including: |
875 | */ | 876 | */ |
876 | __u32 rtt; /* This is the most recent RTT. */ | ||
877 | |||
878 | /* RTO : The current retransmission timeout value. */ | 877 | /* RTO : The current retransmission timeout value. */ |
879 | unsigned long rto; | 878 | unsigned long rto; |
879 | unsigned long last_rto; | ||
880 | |||
881 | __u32 rtt; /* This is the most recent RTT. */ | ||
880 | 882 | ||
881 | /* RTTVAR : The current RTT variation. */ | 883 | /* RTTVAR : The current RTT variation. */ |
882 | __u32 rttvar; | 884 | __u32 rttvar; |
@@ -1184,9 +1186,7 @@ int sctp_bind_addr_copy(struct sctp_bind_addr *dest, | |||
1184 | int flags); | 1186 | int flags); |
1185 | int sctp_add_bind_addr(struct sctp_bind_addr *, union sctp_addr *, | 1187 | int sctp_add_bind_addr(struct sctp_bind_addr *, union sctp_addr *, |
1186 | __u8 use_as_src, gfp_t gfp); | 1188 | __u8 use_as_src, gfp_t gfp); |
1187 | int sctp_del_bind_addr(struct sctp_bind_addr *, union sctp_addr *, | 1189 | int sctp_del_bind_addr(struct sctp_bind_addr *, union sctp_addr *); |
1188 | void fastcall (*rcu_call)(struct rcu_head *, | ||
1189 | void (*func)(struct rcu_head *))); | ||
1190 | int sctp_bind_addr_match(struct sctp_bind_addr *, const union sctp_addr *, | 1190 | int sctp_bind_addr_match(struct sctp_bind_addr *, const union sctp_addr *, |
1191 | struct sctp_sock *); | 1191 | struct sctp_sock *); |
1192 | union sctp_addr *sctp_find_unmatch_addr(struct sctp_bind_addr *bp, | 1192 | union sctp_addr *sctp_find_unmatch_addr(struct sctp_bind_addr *bp, |
@@ -1229,8 +1229,7 @@ typedef enum { | |||
1229 | 1229 | ||
1230 | struct sctp_ep_common { | 1230 | struct sctp_ep_common { |
1231 | /* Fields to help us manage our entries in the hash tables. */ | 1231 | /* Fields to help us manage our entries in the hash tables. */ |
1232 | struct sctp_ep_common *next; | 1232 | struct hlist_node node; |
1233 | struct sctp_ep_common **pprev; | ||
1234 | int hashent; | 1233 | int hashent; |
1235 | 1234 | ||
1236 | /* Runtime type information. What kind of endpoint is this? */ | 1235 | /* Runtime type information. What kind of endpoint is this? */ |
@@ -1541,7 +1540,6 @@ struct sctp_association { | |||
1541 | __u8 asconf_capable; /* Does peer support ADDIP? */ | 1540 | __u8 asconf_capable; /* Does peer support ADDIP? */ |
1542 | __u8 prsctp_capable; /* Can peer do PR-SCTP? */ | 1541 | __u8 prsctp_capable; /* Can peer do PR-SCTP? */ |
1543 | __u8 auth_capable; /* Is peer doing SCTP-AUTH? */ | 1542 | __u8 auth_capable; /* Is peer doing SCTP-AUTH? */ |
1544 | __u8 addip_capable; /* Can peer do ADD-IP */ | ||
1545 | 1543 | ||
1546 | __u32 adaptation_ind; /* Adaptation Code point. */ | 1544 | __u32 adaptation_ind; /* Adaptation Code point. */ |
1547 | 1545 | ||
diff --git a/include/net/sock.h b/include/net/sock.h index 43fc3fa50d62..67e35c7e230c 100644 --- a/include/net/sock.h +++ b/include/net/sock.h | |||
@@ -560,6 +560,14 @@ struct proto { | |||
560 | void (*unhash)(struct sock *sk); | 560 | void (*unhash)(struct sock *sk); |
561 | int (*get_port)(struct sock *sk, unsigned short snum); | 561 | int (*get_port)(struct sock *sk, unsigned short snum); |
562 | 562 | ||
563 | #ifdef CONFIG_SMP | ||
564 | /* Keeping track of sockets in use */ | ||
565 | void (*inuse_add)(struct proto *prot, int inc); | ||
566 | int (*inuse_getval)(const struct proto *prot); | ||
567 | int *inuse_ptr; | ||
568 | #else | ||
569 | int inuse; | ||
570 | #endif | ||
563 | /* Memory pressure */ | 571 | /* Memory pressure */ |
564 | void (*enter_memory_pressure)(void); | 572 | void (*enter_memory_pressure)(void); |
565 | atomic_t *memory_allocated; /* Current allocated memory. */ | 573 | atomic_t *memory_allocated; /* Current allocated memory. */ |
@@ -592,12 +600,38 @@ struct proto { | |||
592 | #ifdef SOCK_REFCNT_DEBUG | 600 | #ifdef SOCK_REFCNT_DEBUG |
593 | atomic_t socks; | 601 | atomic_t socks; |
594 | #endif | 602 | #endif |
595 | struct { | ||
596 | int inuse; | ||
597 | u8 __pad[SMP_CACHE_BYTES - sizeof(int)]; | ||
598 | } stats[NR_CPUS]; | ||
599 | }; | 603 | }; |
600 | 604 | ||
605 | /* | ||
606 | * Special macros to let protos use a fast version of inuse{get|add} | ||
607 | * using a static percpu variable per proto instead of an allocated one, | ||
608 | * saving one dereference. | ||
609 | * This might be changed if/when dynamic percpu vars become fast. | ||
610 | */ | ||
611 | #ifdef CONFIG_SMP | ||
612 | # define DEFINE_PROTO_INUSE(NAME) \ | ||
613 | static DEFINE_PER_CPU(int, NAME##_inuse); \ | ||
614 | static void NAME##_inuse_add(struct proto *prot, int inc) \ | ||
615 | { \ | ||
616 | __get_cpu_var(NAME##_inuse) += inc; \ | ||
617 | } \ | ||
618 | \ | ||
619 | static int NAME##_inuse_getval(const struct proto *prot)\ | ||
620 | { \ | ||
621 | int res = 0, cpu; \ | ||
622 | \ | ||
623 | for_each_possible_cpu(cpu) \ | ||
624 | res += per_cpu(NAME##_inuse, cpu); \ | ||
625 | return res; \ | ||
626 | } | ||
627 | # define REF_PROTO_INUSE(NAME) \ | ||
628 | .inuse_add = NAME##_inuse_add, \ | ||
629 | .inuse_getval = NAME##_inuse_getval, | ||
630 | #else | ||
631 | # define DEFINE_PROTO_INUSE(NAME) | ||
632 | # define REF_PROTO_INUSE(NAME) | ||
633 | #endif | ||
634 | |||
601 | extern int proto_register(struct proto *prot, int alloc_slab); | 635 | extern int proto_register(struct proto *prot, int alloc_slab); |
602 | extern void proto_unregister(struct proto *prot); | 636 | extern void proto_unregister(struct proto *prot); |
603 | 637 | ||
@@ -629,12 +663,29 @@ static inline void sk_refcnt_debug_release(const struct sock *sk) | |||
629 | /* Called with local bh disabled */ | 663 | /* Called with local bh disabled */ |
630 | static __inline__ void sock_prot_inc_use(struct proto *prot) | 664 | static __inline__ void sock_prot_inc_use(struct proto *prot) |
631 | { | 665 | { |
632 | prot->stats[smp_processor_id()].inuse++; | 666 | #ifdef CONFIG_SMP |
667 | prot->inuse_add(prot, 1); | ||
668 | #else | ||
669 | prot->inuse++; | ||
670 | #endif | ||
633 | } | 671 | } |
634 | 672 | ||
635 | static __inline__ void sock_prot_dec_use(struct proto *prot) | 673 | static __inline__ void sock_prot_dec_use(struct proto *prot) |
636 | { | 674 | { |
637 | prot->stats[smp_processor_id()].inuse--; | 675 | #ifdef CONFIG_SMP |
676 | prot->inuse_add(prot, -1); | ||
677 | #else | ||
678 | prot->inuse--; | ||
679 | #endif | ||
680 | } | ||
681 | |||
682 | static __inline__ int sock_prot_inuse(struct proto *proto) | ||
683 | { | ||
684 | #ifdef CONFIG_SMP | ||
685 | return proto->inuse_getval(proto); | ||
686 | #else | ||
687 | return proto->inuse; | ||
688 | #endif | ||
638 | } | 689 | } |
639 | 690 | ||
640 | /* With per-bucket locks this operation is not-atomic, so that | 691 | /* With per-bucket locks this operation is not-atomic, so that |
@@ -779,7 +830,7 @@ extern void FASTCALL(release_sock(struct sock *sk)); | |||
779 | 830 | ||
780 | extern struct sock *sk_alloc(struct net *net, int family, | 831 | extern struct sock *sk_alloc(struct net *net, int family, |
781 | gfp_t priority, | 832 | gfp_t priority, |
782 | struct proto *prot, int zero_it); | 833 | struct proto *prot); |
783 | extern void sk_free(struct sock *sk); | 834 | extern void sk_free(struct sock *sk); |
784 | extern struct sock *sk_clone(const struct sock *sk, | 835 | extern struct sock *sk_clone(const struct sock *sk, |
785 | const gfp_t priority); | 836 | const gfp_t priority); |
@@ -993,20 +1044,6 @@ static inline void sock_graft(struct sock *sk, struct socket *parent) | |||
993 | write_unlock_bh(&sk->sk_callback_lock); | 1044 | write_unlock_bh(&sk->sk_callback_lock); |
994 | } | 1045 | } |
995 | 1046 | ||
996 | static inline void sock_copy(struct sock *nsk, const struct sock *osk) | ||
997 | { | ||
998 | #ifdef CONFIG_SECURITY_NETWORK | ||
999 | void *sptr = nsk->sk_security; | ||
1000 | #endif | ||
1001 | |||
1002 | memcpy(nsk, osk, osk->sk_prot->obj_size); | ||
1003 | get_net(nsk->sk_net); | ||
1004 | #ifdef CONFIG_SECURITY_NETWORK | ||
1005 | nsk->sk_security = sptr; | ||
1006 | security_sk_clone(osk, nsk); | ||
1007 | #endif | ||
1008 | } | ||
1009 | |||
1010 | extern int sock_i_uid(struct sock *sk); | 1047 | extern int sock_i_uid(struct sock *sk); |
1011 | extern unsigned long sock_i_ino(struct sock *sk); | 1048 | extern unsigned long sock_i_ino(struct sock *sk); |
1012 | 1049 | ||
@@ -1198,14 +1235,19 @@ static inline struct sk_buff *sk_stream_alloc_pskb(struct sock *sk, | |||
1198 | gfp_t gfp) | 1235 | gfp_t gfp) |
1199 | { | 1236 | { |
1200 | struct sk_buff *skb; | 1237 | struct sk_buff *skb; |
1201 | int hdr_len; | ||
1202 | 1238 | ||
1203 | hdr_len = SKB_DATA_ALIGN(sk->sk_prot->max_header); | 1239 | /* The TCP header must be at least 32-bit aligned. */ |
1204 | skb = alloc_skb_fclone(size + hdr_len, gfp); | 1240 | size = ALIGN(size, 4); |
1241 | |||
1242 | skb = alloc_skb_fclone(size + sk->sk_prot->max_header, gfp); | ||
1205 | if (skb) { | 1243 | if (skb) { |
1206 | skb->truesize += mem; | 1244 | skb->truesize += mem; |
1207 | if (sk_stream_wmem_schedule(sk, skb->truesize)) { | 1245 | if (sk_stream_wmem_schedule(sk, skb->truesize)) { |
1208 | skb_reserve(skb, hdr_len); | 1246 | /* |
1247 | * Make sure that we have exactly size bytes | ||
1248 | * available to the caller, no more, no less. | ||
1249 | */ | ||
1250 | skb_reserve(skb, skb_tailroom(skb) - size); | ||
1209 | return skb; | 1251 | return skb; |
1210 | } | 1252 | } |
1211 | __kfree_skb(skb); | 1253 | __kfree_skb(skb); |
diff --git a/include/net/tcp.h b/include/net/tcp.h index d695cea7730d..cb5b033e0e59 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h | |||
@@ -1288,6 +1288,9 @@ static inline void tcp_insert_write_queue_before(struct sk_buff *new, | |||
1288 | struct sock *sk) | 1288 | struct sock *sk) |
1289 | { | 1289 | { |
1290 | __skb_insert(new, skb->prev, skb, &sk->sk_write_queue); | 1290 | __skb_insert(new, skb->prev, skb, &sk->sk_write_queue); |
1291 | |||
1292 | if (sk->sk_send_head == skb) | ||
1293 | sk->sk_send_head = new; | ||
1291 | } | 1294 | } |
1292 | 1295 | ||
1293 | static inline void tcp_unlink_write_queue(struct sk_buff *skb, struct sock *sk) | 1296 | static inline void tcp_unlink_write_queue(struct sk_buff *skb, struct sock *sk) |
diff --git a/include/pcmcia/cs_types.h b/include/pcmcia/cs_types.h index c1d1629fcd27..5f388035687d 100644 --- a/include/pcmcia/cs_types.h +++ b/include/pcmcia/cs_types.h | |||
@@ -21,7 +21,7 @@ | |||
21 | #include <sys/types.h> | 21 | #include <sys/types.h> |
22 | #endif | 22 | #endif |
23 | 23 | ||
24 | #if defined(__arm__) || defined(__mips__) | 24 | #if defined(__arm__) || defined(__mips__) || defined(__avr32__) |
25 | /* This (ioaddr_t) is exposed to userspace & hence cannot be changed. */ | 25 | /* This (ioaddr_t) is exposed to userspace & hence cannot be changed. */ |
26 | typedef u_int ioaddr_t; | 26 | typedef u_int ioaddr_t; |
27 | #else | 27 | #else |
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h index 4bea182d7116..11f39606e7d9 100644 --- a/include/rdma/ib_verbs.h +++ b/include/rdma/ib_verbs.h | |||
@@ -48,9 +48,9 @@ | |||
48 | #include <linux/kref.h> | 48 | #include <linux/kref.h> |
49 | #include <linux/list.h> | 49 | #include <linux/list.h> |
50 | #include <linux/rwsem.h> | 50 | #include <linux/rwsem.h> |
51 | #include <linux/scatterlist.h> | ||
51 | 52 | ||
52 | #include <asm/atomic.h> | 53 | #include <asm/atomic.h> |
53 | #include <asm/scatterlist.h> | ||
54 | #include <asm/uaccess.h> | 54 | #include <asm/uaccess.h> |
55 | 55 | ||
56 | union ib_gid { | 56 | union ib_gid { |
diff --git a/include/scsi/libsas.h b/include/scsi/libsas.h index 8dda2d66b5b9..a466c2cb8955 100644 --- a/include/scsi/libsas.h +++ b/include/scsi/libsas.h | |||
@@ -36,7 +36,7 @@ | |||
36 | #include <scsi/scsi_device.h> | 36 | #include <scsi/scsi_device.h> |
37 | #include <scsi/scsi_cmnd.h> | 37 | #include <scsi/scsi_cmnd.h> |
38 | #include <scsi/scsi_transport_sas.h> | 38 | #include <scsi/scsi_transport_sas.h> |
39 | #include <asm/scatterlist.h> | 39 | #include <linux/scatterlist.h> |
40 | 40 | ||
41 | struct block_device; | 41 | struct block_device; |
42 | 42 | ||
diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h index d5057bc338ff..66e9058357e0 100644 --- a/include/scsi/scsi_device.h +++ b/include/scsi/scsi_device.h | |||
@@ -46,6 +46,22 @@ enum scsi_device_state { | |||
46 | * to the scsi lld. */ | 46 | * to the scsi lld. */ |
47 | }; | 47 | }; |
48 | 48 | ||
49 | enum scsi_device_event { | ||
50 | SDEV_EVT_MEDIA_CHANGE = 1, /* media has changed */ | ||
51 | |||
52 | SDEV_EVT_LAST = SDEV_EVT_MEDIA_CHANGE, | ||
53 | SDEV_EVT_MAXBITS = SDEV_EVT_LAST + 1 | ||
54 | }; | ||
55 | |||
56 | struct scsi_event { | ||
57 | enum scsi_device_event evt_type; | ||
58 | struct list_head node; | ||
59 | |||
60 | /* put union of data structures, for non-simple event types, | ||
61 | * here | ||
62 | */ | ||
63 | }; | ||
64 | |||
49 | struct scsi_device { | 65 | struct scsi_device { |
50 | struct Scsi_Host *host; | 66 | struct Scsi_Host *host; |
51 | struct request_queue *request_queue; | 67 | struct request_queue *request_queue; |
@@ -127,6 +143,10 @@ struct scsi_device { | |||
127 | unsigned guess_capacity:1; /* READ_CAPACITY might be too high by 1 */ | 143 | unsigned guess_capacity:1; /* READ_CAPACITY might be too high by 1 */ |
128 | unsigned retry_hwerror:1; /* Retry HARDWARE_ERROR */ | 144 | unsigned retry_hwerror:1; /* Retry HARDWARE_ERROR */ |
129 | 145 | ||
146 | DECLARE_BITMAP(supported_events, SDEV_EVT_MAXBITS); /* supported events */ | ||
147 | struct list_head event_list; /* asserted events */ | ||
148 | struct work_struct event_work; | ||
149 | |||
130 | unsigned int device_blocked; /* Device returned QUEUE_FULL. */ | 150 | unsigned int device_blocked; /* Device returned QUEUE_FULL. */ |
131 | 151 | ||
132 | unsigned int max_device_blocked; /* what device_blocked counts down from */ | 152 | unsigned int max_device_blocked; /* what device_blocked counts down from */ |
@@ -275,6 +295,11 @@ extern int scsi_test_unit_ready(struct scsi_device *sdev, int timeout, | |||
275 | int retries); | 295 | int retries); |
276 | extern int scsi_device_set_state(struct scsi_device *sdev, | 296 | extern int scsi_device_set_state(struct scsi_device *sdev, |
277 | enum scsi_device_state state); | 297 | enum scsi_device_state state); |
298 | extern struct scsi_event *sdev_evt_alloc(enum scsi_device_event evt_type, | ||
299 | gfp_t gfpflags); | ||
300 | extern void sdev_evt_send(struct scsi_device *sdev, struct scsi_event *evt); | ||
301 | extern void sdev_evt_send_simple(struct scsi_device *sdev, | ||
302 | enum scsi_device_event evt_type, gfp_t gfpflags); | ||
278 | extern int scsi_device_quiesce(struct scsi_device *sdev); | 303 | extern int scsi_device_quiesce(struct scsi_device *sdev); |
279 | extern void scsi_device_resume(struct scsi_device *sdev); | 304 | extern void scsi_device_resume(struct scsi_device *sdev); |
280 | extern void scsi_target_quiesce(struct scsi_target *); | 305 | extern void scsi_target_quiesce(struct scsi_target *); |
diff --git a/include/sound/version.h b/include/sound/version.h index a2be8ad8894b..a9781eb0da09 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.15" | 2 | #define CONFIG_SND_VERSION "1.0.15" |
3 | #define CONFIG_SND_DATE " (Tue Oct 23 06:09:18 2007 UTC)" | 3 | #define CONFIG_SND_DATE " (Tue Nov 20 19:16:42 2007 UTC)" |