diff options
Diffstat (limited to 'include')
127 files changed, 672 insertions, 634 deletions
diff --git a/include/asm-alpha/Kbuild b/include/asm-alpha/Kbuild index e57fd57538b8..2b06b3bad5ff 100644 --- a/include/asm-alpha/Kbuild +++ b/include/asm-alpha/Kbuild | |||
@@ -1,5 +1,5 @@ | |||
1 | include include/asm-generic/Kbuild.asm | 1 | include include/asm-generic/Kbuild.asm |
2 | 2 | ||
3 | unifdef-y += console.h fpu.h sysinfo.h | 3 | unifdef-y += console.h fpu.h sysinfo.h compiler.h |
4 | 4 | ||
5 | header-y += gentrap.h regdef.h pal.h reg.h | 5 | header-y += gentrap.h regdef.h pal.h reg.h |
diff --git a/include/asm-alpha/compiler.h b/include/asm-alpha/compiler.h index 00c6f57ad9a7..d2768cc3d7a4 100644 --- a/include/asm-alpha/compiler.h +++ b/include/asm-alpha/compiler.h | |||
@@ -90,6 +90,7 @@ | |||
90 | __asm__("stw %1,%0" : "=m"(mem) : "r"(val)) | 90 | __asm__("stw %1,%0" : "=m"(mem) : "r"(val)) |
91 | #endif | 91 | #endif |
92 | 92 | ||
93 | #ifdef __KERNEL__ | ||
93 | /* Some idiots over in <linux/compiler.h> thought inline should imply | 94 | /* Some idiots over in <linux/compiler.h> thought inline should imply |
94 | always_inline. This breaks stuff. We'll include this file whenever | 95 | always_inline. This breaks stuff. We'll include this file whenever |
95 | we run into such problems. */ | 96 | we run into such problems. */ |
@@ -101,4 +102,6 @@ | |||
101 | #undef __always_inline | 102 | #undef __always_inline |
102 | #define __always_inline inline __attribute__((always_inline)) | 103 | #define __always_inline inline __attribute__((always_inline)) |
103 | 104 | ||
105 | #endif /* __KERNEL__ */ | ||
106 | |||
104 | #endif /* __ALPHA_COMPILER_H */ | 107 | #endif /* __ALPHA_COMPILER_H */ |
diff --git a/include/asm-alpha/page.h b/include/asm-alpha/page.h index 8c7cd50d4eae..d2bed3cb33ff 100644 --- a/include/asm-alpha/page.h +++ b/include/asm-alpha/page.h | |||
@@ -1,6 +1,8 @@ | |||
1 | #ifndef _ALPHA_PAGE_H | 1 | #ifndef _ALPHA_PAGE_H |
2 | #define _ALPHA_PAGE_H | 2 | #define _ALPHA_PAGE_H |
3 | 3 | ||
4 | #ifdef __KERNEL__ | ||
5 | |||
4 | #include <asm/pal.h> | 6 | #include <asm/pal.h> |
5 | 7 | ||
6 | /* PAGE_SHIFT determines the page size */ | 8 | /* PAGE_SHIFT determines the page size */ |
@@ -8,8 +10,6 @@ | |||
8 | #define PAGE_SIZE (1UL << PAGE_SHIFT) | 10 | #define PAGE_SIZE (1UL << PAGE_SHIFT) |
9 | #define PAGE_MASK (~(PAGE_SIZE-1)) | 11 | #define PAGE_MASK (~(PAGE_SIZE-1)) |
10 | 12 | ||
11 | #ifdef __KERNEL__ | ||
12 | |||
13 | #ifndef __ASSEMBLY__ | 13 | #ifndef __ASSEMBLY__ |
14 | 14 | ||
15 | #define STRICT_MM_TYPECHECKS | 15 | #define STRICT_MM_TYPECHECKS |
@@ -92,9 +92,9 @@ typedef unsigned long pgprot_t; | |||
92 | 92 | ||
93 | #define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \ | 93 | #define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \ |
94 | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC) | 94 | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC) |
95 | #endif /* __KERNEL__ */ | ||
96 | 95 | ||
97 | #include <asm-generic/memory_model.h> | 96 | #include <asm-generic/memory_model.h> |
98 | #include <asm-generic/page.h> | 97 | #include <asm-generic/page.h> |
99 | 98 | ||
99 | #endif /* __KERNEL__ */ | ||
100 | #endif /* _ALPHA_PAGE_H */ | 100 | #endif /* _ALPHA_PAGE_H */ |
diff --git a/include/asm-arm/arch-s3c2410/anubis-cpld.h b/include/asm-arm/arch-s3c2410/anubis-cpld.h index 5675b1796b55..40e8e270d337 100644 --- a/include/asm-arm/arch-s3c2410/anubis-cpld.h +++ b/include/asm-arm/arch-s3c2410/anubis-cpld.h | |||
@@ -9,9 +9,6 @@ | |||
9 | * This program is free software; you can redistribute it and/or modify | 9 | * This program is free software; you can redistribute it and/or modify |
10 | * it under the terms of the GNU General Public License version 2 as | 10 | * it under the terms of the GNU General Public License version 2 as |
11 | * published by the Free Software Foundation. | 11 | * published by the Free Software Foundation. |
12 | * | ||
13 | * Changelog: | ||
14 | * | ||
15 | */ | 12 | */ |
16 | 13 | ||
17 | #ifndef __ASM_ARCH_ANUBISCPLD_H | 14 | #ifndef __ASM_ARCH_ANUBISCPLD_H |
diff --git a/include/asm-arm/arch-s3c2410/anubis-irq.h b/include/asm-arm/arch-s3c2410/anubis-irq.h index 82f15dbd97e8..4b5f423779df 100644 --- a/include/asm-arm/arch-s3c2410/anubis-irq.h +++ b/include/asm-arm/arch-s3c2410/anubis-irq.h | |||
@@ -9,9 +9,7 @@ | |||
9 | * This program is free software; you can redistribute it and/or modify | 9 | * This program is free software; you can redistribute it and/or modify |
10 | * it under the terms of the GNU General Public License version 2 as | 10 | * it under the terms of the GNU General Public License version 2 as |
11 | * published by the Free Software Foundation. | 11 | * published by the Free Software Foundation. |
12 | * | 12 | */ |
13 | * Changelog: | ||
14 | */ | ||
15 | 13 | ||
16 | #ifndef __ASM_ARCH_ANUBISIRQ_H | 14 | #ifndef __ASM_ARCH_ANUBISIRQ_H |
17 | #define __ASM_ARCH_ANUBISIRQ_H | 15 | #define __ASM_ARCH_ANUBISIRQ_H |
diff --git a/include/asm-arm/arch-s3c2410/anubis-map.h b/include/asm-arm/arch-s3c2410/anubis-map.h index d529ffda8599..058a2104b035 100644 --- a/include/asm-arm/arch-s3c2410/anubis-map.h +++ b/include/asm-arm/arch-s3c2410/anubis-map.h | |||
@@ -9,8 +9,6 @@ | |||
9 | * This program is free software; you can redistribute it and/or modify | 9 | * This program is free software; you can redistribute it and/or modify |
10 | * it under the terms of the GNU General Public License version 2 as | 10 | * it under the terms of the GNU General Public License version 2 as |
11 | * published by the Free Software Foundation. | 11 | * published by the Free Software Foundation. |
12 | * | ||
13 | * Changelog: | ||
14 | */ | 12 | */ |
15 | 13 | ||
16 | /* needs arch/map.h including with this */ | 14 | /* needs arch/map.h including with this */ |
diff --git a/include/asm-arm/arch-s3c2410/audio.h b/include/asm-arm/arch-s3c2410/audio.h index 0d276e67f2fb..7e0222276c98 100644 --- a/include/asm-arm/arch-s3c2410/audio.h +++ b/include/asm-arm/arch-s3c2410/audio.h | |||
@@ -9,10 +9,6 @@ | |||
9 | * This program is free software; you can redistribute it and/or modify | 9 | * This program is free software; you can redistribute it and/or modify |
10 | * it under the terms of the GNU General Public License version 2 as | 10 | * it under the terms of the GNU General Public License version 2 as |
11 | * published by the Free Software Foundation. | 11 | * published by the Free Software Foundation. |
12 | * | ||
13 | * Changelog: | ||
14 | * 20-Nov-2004 BJD Created file | ||
15 | * 07-Mar-2005 BJD Added suspend/resume calls | ||
16 | */ | 12 | */ |
17 | 13 | ||
18 | #ifndef __ASM_ARCH_AUDIO_H | 14 | #ifndef __ASM_ARCH_AUDIO_H |
diff --git a/include/asm-arm/arch-s3c2410/bast-cpld.h b/include/asm-arm/arch-s3c2410/bast-cpld.h index e28ca51a4975..8969cffe83fa 100644 --- a/include/asm-arm/arch-s3c2410/bast-cpld.h +++ b/include/asm-arm/arch-s3c2410/bast-cpld.h | |||
@@ -8,11 +8,6 @@ | |||
8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | * | ||
12 | * Changelog: | ||
13 | * 25-May-2003 BJD Created file, added CTRL1 registers | ||
14 | * 30-Aug-2004 BJD Updated definitions from 2.4.26 port | ||
15 | * 30-Aug-2004 BJD Added CTRL3 and CTRL4 definitions | ||
16 | */ | 11 | */ |
17 | 12 | ||
18 | #ifndef __ASM_ARCH_BASTCPLD_H | 13 | #ifndef __ASM_ARCH_BASTCPLD_H |
diff --git a/include/asm-arm/arch-s3c2410/bast-irq.h b/include/asm-arm/arch-s3c2410/bast-irq.h index b79b47f0d126..15ffa66f5011 100644 --- a/include/asm-arm/arch-s3c2410/bast-irq.h +++ b/include/asm-arm/arch-s3c2410/bast-irq.h | |||
@@ -8,11 +8,7 @@ | |||
8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | * | 11 | */ |
12 | * Changelog: | ||
13 | * 14-Sep-2004 BJD Fixed IRQ_USBOC definition | ||
14 | * 06-Jan-2003 BJD Linux 2.6.0 version | ||
15 | */ | ||
16 | 12 | ||
17 | #ifndef __ASM_ARCH_BASTIRQ_H | 13 | #ifndef __ASM_ARCH_BASTIRQ_H |
18 | #define __ASM_ARCH_BASTIRQ_H | 14 | #define __ASM_ARCH_BASTIRQ_H |
diff --git a/include/asm-arm/arch-s3c2410/bast-map.h b/include/asm-arm/arch-s3c2410/bast-map.h index 29c07e302b04..727cef84c70e 100644 --- a/include/asm-arm/arch-s3c2410/bast-map.h +++ b/include/asm-arm/arch-s3c2410/bast-map.h | |||
@@ -8,10 +8,6 @@ | |||
8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | * | ||
12 | * Changelog: | ||
13 | * 06-Jan-2003 BJD Linux 2.6.0 version, moved bast specifics from arch/map.h | ||
14 | * 12-Mar-2004 BJD Fixed header include protection | ||
15 | */ | 11 | */ |
16 | 12 | ||
17 | /* needs arch/map.h including with this */ | 13 | /* needs arch/map.h including with this */ |
diff --git a/include/asm-arm/arch-s3c2410/bast-pmu.h b/include/asm-arm/arch-s3c2410/bast-pmu.h index 758c5c59d4bf..82836027f00f 100644 --- a/include/asm-arm/arch-s3c2410/bast-pmu.h +++ b/include/asm-arm/arch-s3c2410/bast-pmu.h | |||
@@ -9,9 +9,6 @@ | |||
9 | * This program is free software; you can redistribute it and/or modify | 9 | * This program is free software; you can redistribute it and/or modify |
10 | * it under the terms of the GNU General Public License version 2 as | 10 | * it under the terms of the GNU General Public License version 2 as |
11 | * published by the Free Software Foundation. | 11 | * published by the Free Software Foundation. |
12 | * | ||
13 | * Changelog: | ||
14 | * 08-Oct-2003 BJD Initial creation | ||
15 | */ | 12 | */ |
16 | 13 | ||
17 | #ifndef __ASM_ARCH_BASTPMU_H | 14 | #ifndef __ASM_ARCH_BASTPMU_H |
diff --git a/include/asm-arm/arch-s3c2410/debug-macro.S b/include/asm-arm/arch-s3c2410/debug-macro.S index b7d15d125458..93064860e0e5 100644 --- a/include/asm-arm/arch-s3c2410/debug-macro.S +++ b/include/asm-arm/arch-s3c2410/debug-macro.S | |||
@@ -10,9 +10,6 @@ | |||
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 |
11 | * it under the terms of the GNU General Public License version 2 as | 11 | * it under the terms of the GNU General Public License version 2 as |
12 | * published by the Free Software Foundation. | 12 | * published by the Free Software Foundation. |
13 | * | ||
14 | * Modifications: | ||
15 | * 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA | ||
16 | */ | 13 | */ |
17 | 14 | ||
18 | #include <asm/arch/map.h> | 15 | #include <asm/arch/map.h> |
diff --git a/include/asm-arm/arch-s3c2410/dma.h b/include/asm-arm/arch-s3c2410/dma.h index 7463fd5252ce..3661e465b0a5 100644 --- a/include/asm-arm/arch-s3c2410/dma.h +++ b/include/asm-arm/arch-s3c2410/dma.h | |||
@@ -1,18 +1,13 @@ | |||
1 | /* linux/include/asm-arm/arch-bast/dma.h | 1 | /* linux/include/asm-arm/arch-s3c2410/dma.h |
2 | * | 2 | * |
3 | * Copyright (C) 2003,2004 Simtec Electronics | 3 | * Copyright (C) 2003,2004,2006 Simtec Electronics |
4 | * Ben Dooks <ben@simtec.co.uk> | 4 | * Ben Dooks <ben@simtec.co.uk> |
5 | * | 5 | * |
6 | * Samsung S3C2410X DMA support | 6 | * Samsung S3C241XX DMA support |
7 | * | 7 | * |
8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | * | ||
12 | * Changelog: | ||
13 | * ??-May-2003 BJD Created file | ||
14 | * ??-Jun-2003 BJD Added more dma functionality to go with arch | ||
15 | * 10-Nov-2004 BJD Added sys_device support | ||
16 | */ | 11 | */ |
17 | 12 | ||
18 | #ifndef __ASM_ARCH_DMA_H | 13 | #ifndef __ASM_ARCH_DMA_H |
@@ -21,28 +16,26 @@ | |||
21 | #include <linux/sysdev.h> | 16 | #include <linux/sysdev.h> |
22 | #include "hardware.h" | 17 | #include "hardware.h" |
23 | 18 | ||
24 | |||
25 | /* | 19 | /* |
26 | * This is the maximum DMA address(physical address) that can be DMAd to. | 20 | * This is the maximum DMA address(physical address) that can be DMAd to. |
27 | * | 21 | * |
28 | */ | 22 | */ |
29 | #define MAX_DMA_ADDRESS 0x20000000 | 23 | #define MAX_DMA_ADDRESS 0x40000000 |
30 | #define MAX_DMA_TRANSFER_SIZE 0x100000 /* Data Unit is half word */ | 24 | #define MAX_DMA_TRANSFER_SIZE 0x100000 /* Data Unit is half word */ |
31 | 25 | ||
32 | |||
33 | /* we have 4 dma channels */ | 26 | /* we have 4 dma channels */ |
34 | #define S3C2410_DMA_CHANNELS (4) | 27 | #define S3C2410_DMA_CHANNELS (4) |
35 | 28 | ||
36 | /* types */ | 29 | /* types */ |
37 | 30 | ||
38 | typedef enum { | 31 | enum s3c2410_dma_state { |
39 | S3C2410_DMA_IDLE, | 32 | S3C2410_DMA_IDLE, |
40 | S3C2410_DMA_RUNNING, | 33 | S3C2410_DMA_RUNNING, |
41 | S3C2410_DMA_PAUSED | 34 | S3C2410_DMA_PAUSED |
42 | } s3c2410_dma_state_t; | 35 | }; |
43 | 36 | ||
44 | 37 | ||
45 | /* s3c2410_dma_loadst_t | 38 | /* enum s3c2410_dma_loadst |
46 | * | 39 | * |
47 | * This represents the state of the DMA engine, wrt to the loaded / running | 40 | * This represents the state of the DMA engine, wrt to the loaded / running |
48 | * transfers. Since we don't have any way of knowing exactly the state of | 41 | * transfers. Since we don't have any way of knowing exactly the state of |
@@ -70,45 +63,40 @@ typedef enum { | |||
70 | * currently running. | 63 | * currently running. |
71 | */ | 64 | */ |
72 | 65 | ||
73 | typedef enum { | 66 | enum s3c2410_dma_loadst { |
74 | S3C2410_DMALOAD_NONE, | 67 | S3C2410_DMALOAD_NONE, |
75 | S3C2410_DMALOAD_1LOADED, | 68 | S3C2410_DMALOAD_1LOADED, |
76 | S3C2410_DMALOAD_1RUNNING, | 69 | S3C2410_DMALOAD_1RUNNING, |
77 | S3C2410_DMALOAD_1LOADED_1RUNNING, | 70 | S3C2410_DMALOAD_1LOADED_1RUNNING, |
78 | } s3c2410_dma_loadst_t; | 71 | }; |
79 | 72 | ||
80 | typedef enum { | 73 | enum s3c2410_dma_buffresult { |
81 | S3C2410_RES_OK, | 74 | S3C2410_RES_OK, |
82 | S3C2410_RES_ERR, | 75 | S3C2410_RES_ERR, |
83 | S3C2410_RES_ABORT | 76 | S3C2410_RES_ABORT |
84 | } s3c2410_dma_buffresult_t; | 77 | }; |
85 | |||
86 | |||
87 | typedef enum s3c2410_dmasrc_e s3c2410_dmasrc_t; | ||
88 | 78 | ||
89 | enum s3c2410_dmasrc_e { | 79 | enum s3c2410_dmasrc { |
90 | S3C2410_DMASRC_HW, /* source is memory */ | 80 | S3C2410_DMASRC_HW, /* source is memory */ |
91 | S3C2410_DMASRC_MEM /* source is hardware */ | 81 | S3C2410_DMASRC_MEM /* source is hardware */ |
92 | }; | 82 | }; |
93 | 83 | ||
94 | /* enum s3c2410_chan_op_e | 84 | /* enum s3c2410_chan_op |
95 | * | 85 | * |
96 | * operation codes passed to the DMA code by the user, and also used | 86 | * operation codes passed to the DMA code by the user, and also used |
97 | * to inform the current channel owner of any changes to the system state | 87 | * to inform the current channel owner of any changes to the system state |
98 | */ | 88 | */ |
99 | 89 | ||
100 | enum s3c2410_chan_op_e { | 90 | enum s3c2410_chan_op { |
101 | S3C2410_DMAOP_START, | 91 | S3C2410_DMAOP_START, |
102 | S3C2410_DMAOP_STOP, | 92 | S3C2410_DMAOP_STOP, |
103 | S3C2410_DMAOP_PAUSE, | 93 | S3C2410_DMAOP_PAUSE, |
104 | S3C2410_DMAOP_RESUME, | 94 | S3C2410_DMAOP_RESUME, |
105 | S3C2410_DMAOP_FLUSH, | 95 | S3C2410_DMAOP_FLUSH, |
106 | S3C2410_DMAOP_TIMEOUT, /* internal signal to handler */ | 96 | S3C2410_DMAOP_TIMEOUT, /* internal signal to handler */ |
107 | S3C2410_DMAOP_STARTED, /* indicate channel started */ | 97 | S3C2410_DMAOP_STARTED, /* indicate channel started */ |
108 | }; | 98 | }; |
109 | 99 | ||
110 | typedef enum s3c2410_chan_op_e s3c2410_chan_op_t; | ||
111 | |||
112 | /* flags */ | 100 | /* flags */ |
113 | 101 | ||
114 | #define S3C2410_DMAF_SLOW (1<<0) /* slow, so don't worry about | 102 | #define S3C2410_DMAF_SLOW (1<<0) /* slow, so don't worry about |
@@ -117,104 +105,100 @@ typedef enum s3c2410_chan_op_e s3c2410_chan_op_t; | |||
117 | 105 | ||
118 | /* dma buffer */ | 106 | /* dma buffer */ |
119 | 107 | ||
120 | typedef struct s3c2410_dma_buf_s s3c2410_dma_buf_t; | ||
121 | |||
122 | struct s3c2410_dma_client { | 108 | struct s3c2410_dma_client { |
123 | char *name; | 109 | char *name; |
124 | }; | 110 | }; |
125 | 111 | ||
126 | typedef struct s3c2410_dma_client s3c2410_dma_client_t; | ||
127 | |||
128 | /* s3c2410_dma_buf_s | 112 | /* s3c2410_dma_buf_s |
129 | * | 113 | * |
130 | * internally used buffer structure to describe a queued or running | 114 | * internally used buffer structure to describe a queued or running |
131 | * buffer. | 115 | * buffer. |
132 | */ | 116 | */ |
133 | 117 | ||
134 | struct s3c2410_dma_buf_s { | 118 | struct s3c2410_dma_buf; |
135 | s3c2410_dma_buf_t *next; | 119 | struct s3c2410_dma_buf { |
136 | int magic; /* magic */ | 120 | struct s3c2410_dma_buf *next; |
137 | int size; /* buffer size in bytes */ | 121 | int magic; /* magic */ |
138 | dma_addr_t data; /* start of DMA data */ | 122 | int size; /* buffer size in bytes */ |
139 | dma_addr_t ptr; /* where the DMA got to [1] */ | 123 | dma_addr_t data; /* start of DMA data */ |
140 | void *id; /* client's id */ | 124 | dma_addr_t ptr; /* where the DMA got to [1] */ |
125 | void *id; /* client's id */ | ||
141 | }; | 126 | }; |
142 | 127 | ||
143 | /* [1] is this updated for both recv/send modes? */ | 128 | /* [1] is this updated for both recv/send modes? */ |
144 | 129 | ||
145 | typedef struct s3c2410_dma_chan_s s3c2410_dma_chan_t; | 130 | struct s3c2410_dma_chan; |
146 | 131 | ||
147 | /* s3c2410_dma_cbfn_t | 132 | /* s3c2410_dma_cbfn_t |
148 | * | 133 | * |
149 | * buffer callback routine type | 134 | * buffer callback routine type |
150 | */ | 135 | */ |
151 | 136 | ||
152 | typedef void (*s3c2410_dma_cbfn_t)(s3c2410_dma_chan_t *, void *buf, int size, | 137 | typedef void (*s3c2410_dma_cbfn_t)(struct s3c2410_dma_chan *, |
153 | s3c2410_dma_buffresult_t result); | 138 | void *buf, int size, |
139 | enum s3c2410_dma_buffresult result); | ||
154 | 140 | ||
155 | typedef int (*s3c2410_dma_opfn_t)(s3c2410_dma_chan_t *, | 141 | typedef int (*s3c2410_dma_opfn_t)(struct s3c2410_dma_chan *, |
156 | s3c2410_chan_op_t ); | 142 | enum s3c2410_chan_op ); |
157 | 143 | ||
158 | struct s3c2410_dma_stats_s { | 144 | struct s3c2410_dma_stats { |
159 | unsigned long loads; | 145 | unsigned long loads; |
160 | unsigned long timeout_longest; | 146 | unsigned long timeout_longest; |
161 | unsigned long timeout_shortest; | 147 | unsigned long timeout_shortest; |
162 | unsigned long timeout_avg; | 148 | unsigned long timeout_avg; |
163 | unsigned long timeout_failed; | 149 | unsigned long timeout_failed; |
164 | }; | 150 | }; |
165 | 151 | ||
166 | typedef struct s3c2410_dma_stats_s s3c2410_dma_stats_t; | 152 | /* struct s3c2410_dma_chan |
167 | |||
168 | /* struct s3c2410_dma_chan_s | ||
169 | * | 153 | * |
170 | * full state information for each DMA channel | 154 | * full state information for each DMA channel |
171 | */ | 155 | */ |
172 | 156 | ||
173 | struct s3c2410_dma_chan_s { | 157 | struct s3c2410_dma_chan { |
174 | /* channel state flags and information */ | 158 | /* channel state flags and information */ |
175 | unsigned char number; /* number of this dma channel */ | 159 | unsigned char number; /* number of this dma channel */ |
176 | unsigned char in_use; /* channel allocated */ | 160 | unsigned char in_use; /* channel allocated */ |
177 | unsigned char irq_claimed; /* irq claimed for channel */ | 161 | unsigned char irq_claimed; /* irq claimed for channel */ |
178 | unsigned char irq_enabled; /* irq enabled for channel */ | 162 | unsigned char irq_enabled; /* irq enabled for channel */ |
179 | unsigned char xfer_unit; /* size of an transfer */ | 163 | unsigned char xfer_unit; /* size of an transfer */ |
180 | 164 | ||
181 | /* channel state */ | 165 | /* channel state */ |
182 | 166 | ||
183 | s3c2410_dma_state_t state; | 167 | enum s3c2410_dma_state state; |
184 | s3c2410_dma_loadst_t load_state; | 168 | enum s3c2410_dma_loadst load_state; |
185 | s3c2410_dma_client_t *client; | 169 | struct s3c2410_dma_client *client; |
186 | 170 | ||
187 | /* channel configuration */ | 171 | /* channel configuration */ |
188 | s3c2410_dmasrc_t source; | 172 | enum s3c2410_dmasrc source; |
189 | unsigned long dev_addr; | 173 | unsigned long dev_addr; |
190 | unsigned long load_timeout; | 174 | unsigned long load_timeout; |
191 | unsigned int flags; /* channel flags */ | 175 | unsigned int flags; /* channel flags */ |
192 | 176 | ||
193 | /* channel's hardware position and configuration */ | 177 | /* channel's hardware position and configuration */ |
194 | void __iomem *regs; /* channels registers */ | 178 | void __iomem *regs; /* channels registers */ |
195 | void __iomem *addr_reg; /* data address register */ | 179 | void __iomem *addr_reg; /* data address register */ |
196 | unsigned int irq; /* channel irq */ | 180 | unsigned int irq; /* channel irq */ |
197 | unsigned long dcon; /* default value of DCON */ | 181 | unsigned long dcon; /* default value of DCON */ |
198 | 182 | ||
199 | /* driver handles */ | 183 | /* driver handles */ |
200 | s3c2410_dma_cbfn_t callback_fn; /* buffer done callback */ | 184 | s3c2410_dma_cbfn_t callback_fn; /* buffer done callback */ |
201 | s3c2410_dma_opfn_t op_fn; /* channel operation callback */ | 185 | s3c2410_dma_opfn_t op_fn; /* channel op callback */ |
202 | 186 | ||
203 | /* stats gathering */ | 187 | /* stats gathering */ |
204 | s3c2410_dma_stats_t *stats; | 188 | struct s3c2410_dma_stats *stats; |
205 | s3c2410_dma_stats_t stats_store; | 189 | struct s3c2410_dma_stats stats_store; |
206 | 190 | ||
207 | /* buffer list and information */ | 191 | /* buffer list and information */ |
208 | s3c2410_dma_buf_t *curr; /* current dma buffer */ | 192 | struct s3c2410_dma_buf *curr; /* current dma buffer */ |
209 | s3c2410_dma_buf_t *next; /* next buffer to load */ | 193 | struct s3c2410_dma_buf *next; /* next buffer to load */ |
210 | s3c2410_dma_buf_t *end; /* end of queue */ | 194 | struct s3c2410_dma_buf *end; /* end of queue */ |
211 | 195 | ||
212 | /* system device */ | 196 | /* system device */ |
213 | struct sys_device dev; | 197 | struct sys_device dev; |
214 | }; | 198 | }; |
215 | 199 | ||
216 | /* the currently allocated channel information */ | 200 | /* the currently allocated channel information */ |
217 | extern s3c2410_dma_chan_t s3c2410_chans[]; | 201 | extern struct s3c2410_dma_chan s3c2410_chans[]; |
218 | 202 | ||
219 | /* note, we don't really use dma_device_t at the moment */ | 203 | /* note, we don't really use dma_device_t at the moment */ |
220 | typedef unsigned long dma_device_t; | 204 | typedef unsigned long dma_device_t; |
@@ -227,7 +211,7 @@ typedef unsigned long dma_device_t; | |||
227 | */ | 211 | */ |
228 | 212 | ||
229 | extern int s3c2410_dma_request(dmach_t channel, | 213 | extern int s3c2410_dma_request(dmach_t channel, |
230 | s3c2410_dma_client_t *, void *dev); | 214 | struct s3c2410_dma_client *, void *dev); |
231 | 215 | ||
232 | 216 | ||
233 | /* s3c2410_dma_ctrl | 217 | /* s3c2410_dma_ctrl |
@@ -235,7 +219,7 @@ extern int s3c2410_dma_request(dmach_t channel, | |||
235 | * change the state of the dma channel | 219 | * change the state of the dma channel |
236 | */ | 220 | */ |
237 | 221 | ||
238 | extern int s3c2410_dma_ctrl(dmach_t channel, s3c2410_chan_op_t op); | 222 | extern int s3c2410_dma_ctrl(dmach_t channel, enum s3c2410_chan_op op); |
239 | 223 | ||
240 | /* s3c2410_dma_setflags | 224 | /* s3c2410_dma_setflags |
241 | * | 225 | * |
@@ -250,7 +234,7 @@ extern int s3c2410_dma_setflags(dmach_t channel, | |||
250 | * free the dma channel (will also abort any outstanding operations) | 234 | * free the dma channel (will also abort any outstanding operations) |
251 | */ | 235 | */ |
252 | 236 | ||
253 | extern int s3c2410_dma_free(dmach_t channel, s3c2410_dma_client_t *); | 237 | extern int s3c2410_dma_free(dmach_t channel, struct s3c2410_dma_client *); |
254 | 238 | ||
255 | /* s3c2410_dma_enqueue | 239 | /* s3c2410_dma_enqueue |
256 | * | 240 | * |
@@ -274,7 +258,7 @@ extern int s3c2410_dma_config(dmach_t channel, int xferunit, int dcon); | |||
274 | * configure the device we're talking to | 258 | * configure the device we're talking to |
275 | */ | 259 | */ |
276 | 260 | ||
277 | extern int s3c2410_dma_devconfig(int channel, s3c2410_dmasrc_t source, | 261 | extern int s3c2410_dma_devconfig(int channel, enum s3c2410_dmasrc source, |
278 | int hwcfg, unsigned long devaddr); | 262 | int hwcfg, unsigned long devaddr); |
279 | 263 | ||
280 | /* s3c2410_dma_getposition | 264 | /* s3c2410_dma_getposition |
diff --git a/include/asm-arm/arch-s3c2410/fb.h b/include/asm-arm/arch-s3c2410/fb.h index 4790491ba9d0..71161797bc89 100644 --- a/include/asm-arm/arch-s3c2410/fb.h +++ b/include/asm-arm/arch-s3c2410/fb.h | |||
@@ -7,13 +7,6 @@ | |||
7 | * This program is free software; you can redistribute it and/or modify | 7 | * This program is free software; you can redistribute it and/or modify |
8 | * it under the terms of the GNU General Public License version 2 as | 8 | * it under the terms of the GNU General Public License version 2 as |
9 | * published by the Free Software Foundation. | 9 | * published by the Free Software Foundation. |
10 | * | ||
11 | * | ||
12 | * Changelog: | ||
13 | * 07-Sep-2004 RTP Created file | ||
14 | * 03-Nov-2004 BJD Updated and minor cleanups | ||
15 | * 03-Aug-2005 RTP Renamed to fb.h | ||
16 | * 26-Oct-2005 BJD Changed name of platdata init | ||
17 | */ | 10 | */ |
18 | 11 | ||
19 | #ifndef __ASM_ARM_FB_H | 12 | #ifndef __ASM_ARM_FB_H |
diff --git a/include/asm-arm/arch-s3c2410/hardware.h b/include/asm-arm/arch-s3c2410/hardware.h index a2330bf83695..871f8af09b8b 100644 --- a/include/asm-arm/arch-s3c2410/hardware.h +++ b/include/asm-arm/arch-s3c2410/hardware.h | |||
@@ -8,16 +8,6 @@ | |||
8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | * | ||
12 | * Changelog: | ||
13 | * 21-May-2003 BJD Created file | ||
14 | * 06-Jun-2003 BJD Added CPU frequency settings | ||
15 | * 03-Sep-2003 BJD Linux v2.6 support | ||
16 | * 12-Mar-2004 BJD Fixed include protection, fixed type of clock vars | ||
17 | * 14-Sep-2004 BJD Added misccr and getpin to gpio | ||
18 | * 01-Oct-2004 BJD Added the new gpio functions | ||
19 | * 16-Oct-2004 BJD Removed the clock variables | ||
20 | * 15-Jan-2006 LCVR Added s3c2400_gpio_getirq() | ||
21 | */ | 11 | */ |
22 | 12 | ||
23 | #ifndef __ASM_ARCH_HARDWARE_H | 13 | #ifndef __ASM_ARCH_HARDWARE_H |
diff --git a/include/asm-arm/arch-s3c2410/idle.h b/include/asm-arm/arch-s3c2410/idle.h index 749227c09576..eed450608f9c 100644 --- a/include/asm-arm/arch-s3c2410/idle.h +++ b/include/asm-arm/arch-s3c2410/idle.h | |||
@@ -8,10 +8,6 @@ | |||
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | * | 9 | * |
10 | * S3C2410 CPU Idle controls | 10 | * S3C2410 CPU Idle controls |
11 | * | ||
12 | * Changelog: | ||
13 | * 28-Oct-2004 BJD Initial version | ||
14 | * | ||
15 | */ | 11 | */ |
16 | 12 | ||
17 | #ifndef __ASM_ARCH_IDLE_H | 13 | #ifndef __ASM_ARCH_IDLE_H |
diff --git a/include/asm-arm/arch-s3c2410/iic.h b/include/asm-arm/arch-s3c2410/iic.h index 518547f6d7a7..ed3d6c7bf6d7 100644 --- a/include/asm-arm/arch-s3c2410/iic.h +++ b/include/asm-arm/arch-s3c2410/iic.h | |||
@@ -8,10 +8,6 @@ | |||
8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | * | ||
12 | * Changelog: | ||
13 | * 05-Oct-2004 BJD Created file | ||
14 | * 19-Oct-2004 BJD Updated for s3c2440 | ||
15 | */ | 11 | */ |
16 | 12 | ||
17 | #ifndef __ASM_ARCH_IIC_H | 13 | #ifndef __ASM_ARCH_IIC_H |
diff --git a/include/asm-arm/arch-s3c2410/io.h b/include/asm-arm/arch-s3c2410/io.h index 16fbc8afffd9..6b35a4f2630e 100644 --- a/include/asm-arm/arch-s3c2410/io.h +++ b/include/asm-arm/arch-s3c2410/io.h | |||
@@ -4,13 +4,7 @@ | |||
4 | * | 4 | * |
5 | * Copyright (C) 1997 Russell King | 5 | * Copyright (C) 1997 Russell King |
6 | * (C) 2003 Simtec Electronics | 6 | * (C) 2003 Simtec Electronics |
7 | * | 7 | */ |
8 | * Modifications: | ||
9 | * 06-Dec-1997 RMK Created. | ||
10 | * 02-Sep-2003 BJD Modified for S3C2410 | ||
11 | * 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA | ||
12 | * 13-Oct-2005 BJD Fixed problems with LDRH/STRH offset range | ||
13 | */ | ||
14 | 8 | ||
15 | #ifndef __ASM_ARM_ARCH_IO_H | 9 | #ifndef __ASM_ARM_ARCH_IO_H |
16 | #define __ASM_ARM_ARCH_IO_H | 10 | #define __ASM_ARM_ARCH_IO_H |
diff --git a/include/asm-arm/arch-s3c2410/irqs.h b/include/asm-arm/arch-s3c2410/irqs.h index d9773d697268..39a69829d163 100644 --- a/include/asm-arm/arch-s3c2410/irqs.h +++ b/include/asm-arm/arch-s3c2410/irqs.h | |||
@@ -6,14 +6,7 @@ | |||
6 | * This program is free software; you can redistribute it and/or modify | 6 | * This program is free software; you can redistribute it and/or modify |
7 | * it under the terms of the GNU General Public License version 2 as | 7 | * it under the terms of the GNU General Public License version 2 as |
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | * | 9 | */ |
10 | * Changelog: | ||
11 | * 12-May-2003 BJD Created file | ||
12 | * 08-Jan-2003 BJD Linux 2.6.0 version, moved BAST bits out | ||
13 | * 12-Mar-2004 BJD Fixed bug in header protection | ||
14 | * 10-Feb-2005 BJD Added camera IRQ from guillaume.gourat@nexvision.tv | ||
15 | * 28-Feb-2005 BJD Updated s3c2440 IRQs | ||
16 | */ | ||
17 | 10 | ||
18 | 11 | ||
19 | #ifndef __ASM_ARCH_IRQS_H | 12 | #ifndef __ASM_ARCH_IRQS_H |
diff --git a/include/asm-arm/arch-s3c2410/map.h b/include/asm-arm/arch-s3c2410/map.h index fae2766ff32b..27ba0ac3fdd5 100644 --- a/include/asm-arm/arch-s3c2410/map.h +++ b/include/asm-arm/arch-s3c2410/map.h | |||
@@ -8,13 +8,6 @@ | |||
8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | * | ||
12 | * Changelog: | ||
13 | * 12-May-2003 BJD Created file | ||
14 | * 06-Jan-2003 BJD Linux 2.6.0 version, moved bast specifics out | ||
15 | * 10-Feb-2005 BJD Added CAMIF definition from guillaume.gourat@nexvision.tv | ||
16 | * 10-Mar-2005 LCVR Added support to S3C2400, changed {VA,SZ} names | ||
17 | * 15-Jan-2006 LCVR Added S3C24XX_PA macros for common S3C24XX resources | ||
18 | */ | 11 | */ |
19 | 12 | ||
20 | #ifndef __ASM_ARCH_MAP_H | 13 | #ifndef __ASM_ARCH_MAP_H |
diff --git a/include/asm-arm/arch-s3c2410/memory.h b/include/asm-arm/arch-s3c2410/memory.h index 6ab834a14c8e..4be6a74c4303 100644 --- a/include/asm-arm/arch-s3c2410/memory.h +++ b/include/asm-arm/arch-s3c2410/memory.h | |||
@@ -1,6 +1,4 @@ | |||
1 | /* | 1 | /* linux/include/asm-arm/arch-s3c2410/memory.h |
2 | * linux/include/asm-arm/arch-s3c2410/memory.h | ||
3 | * | ||
4 | * from linux/include/asm-arm/arch-rpc/memory.h | 2 | * from linux/include/asm-arm/arch-rpc/memory.h |
5 | * | 3 | * |
6 | * Copyright (C) 1996,1997,1998 Russell King. | 4 | * Copyright (C) 1996,1997,1998 Russell King. |
@@ -8,16 +6,6 @@ | |||
8 | * This program is free software; you can redistribute it and/or modify | 6 | * This program is free software; you can redistribute it and/or modify |
9 | * it under the terms of the GNU General Public License version 2 as | 7 | * it under the terms of the GNU General Public License version 2 as |
10 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
11 | * | ||
12 | * Changelog: | ||
13 | * 20-Oct-1996 RMK Created | ||
14 | * 31-Dec-1997 RMK Fixed definitions to reduce warnings | ||
15 | * 11-Jan-1998 RMK Uninlined to reduce hits on cache | ||
16 | * 08-Feb-1998 RMK Added __virt_to_bus and __bus_to_virt | ||
17 | * 21-Mar-1999 RMK Renamed to memory.h | ||
18 | * RMK Added TASK_SIZE and PAGE_OFFSET | ||
19 | * 05-Apr-2004 BJD Copied and altered for arch-s3c2410 | ||
20 | * 17-Mar-2005 LCVR Modified for S3C2400 | ||
21 | */ | 9 | */ |
22 | 10 | ||
23 | #ifndef __ASM_ARCH_MEMORY_H | 11 | #ifndef __ASM_ARCH_MEMORY_H |
diff --git a/include/asm-arm/arch-s3c2410/nand.h b/include/asm-arm/arch-s3c2410/nand.h index 9148ac045b0d..e350ae2acfc6 100644 --- a/include/asm-arm/arch-s3c2410/nand.h +++ b/include/asm-arm/arch-s3c2410/nand.h | |||
@@ -8,9 +8,6 @@ | |||
8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | * | ||
12 | * Changelog: | ||
13 | * 23-Sep-2004 BJD Created file | ||
14 | */ | 11 | */ |
15 | 12 | ||
16 | /* struct s3c2410_nand_set | 13 | /* struct s3c2410_nand_set |
diff --git a/include/asm-arm/arch-s3c2410/osiris-map.h b/include/asm-arm/arch-s3c2410/osiris-map.h index 7c4b0cd2d14d..e2d406218ae5 100644 --- a/include/asm-arm/arch-s3c2410/osiris-map.h +++ b/include/asm-arm/arch-s3c2410/osiris-map.h | |||
@@ -9,8 +9,6 @@ | |||
9 | * This program is free software; you can redistribute it and/or modify | 9 | * This program is free software; you can redistribute it and/or modify |
10 | * it under the terms of the GNU General Public License version 2 as | 10 | * it under the terms of the GNU General Public License version 2 as |
11 | * published by the Free Software Foundation. | 11 | * published by the Free Software Foundation. |
12 | * | ||
13 | * Changelog: | ||
14 | */ | 12 | */ |
15 | 13 | ||
16 | /* needs arch/map.h including with this */ | 14 | /* needs arch/map.h including with this */ |
diff --git a/include/asm-arm/arch-s3c2410/regs-adc.h b/include/asm-arm/arch-s3c2410/regs-adc.h index 15bfc2f5754e..c7b90b3ecc9e 100644 --- a/include/asm-arm/arch-s3c2410/regs-adc.h +++ b/include/asm-arm/arch-s3c2410/regs-adc.h | |||
@@ -7,9 +7,6 @@ | |||
7 | * published by the Free Software Foundation. | 7 | * published by the Free Software Foundation. |
8 | * | 8 | * |
9 | * S3C2410 ADC registers | 9 | * S3C2410 ADC registers |
10 | * | ||
11 | * Changelog: | ||
12 | * 27-09-2004 SAH Created file | ||
13 | */ | 10 | */ |
14 | 11 | ||
15 | #ifndef __ASM_ARCH_REGS_ADC_H | 12 | #ifndef __ASM_ARCH_REGS_ADC_H |
diff --git a/include/asm-arm/arch-s3c2410/regs-clock.h b/include/asm-arm/arch-s3c2410/regs-clock.h index a7c61feb8433..b2f4690c0791 100644 --- a/include/asm-arm/arch-s3c2410/regs-clock.h +++ b/include/asm-arm/arch-s3c2410/regs-clock.h | |||
@@ -8,18 +8,6 @@ | |||
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | * | 9 | * |
10 | * S3C2410 clock register definitions | 10 | * S3C2410 clock register definitions |
11 | * | ||
12 | * Changelog: | ||
13 | * 18-Aug-2004 Ben Dooks Added 2440 definitions | ||
14 | * 08-Aug-2004 Herbert Pötzl Added CLKCON definitions | ||
15 | * 19-06-2003 Ben Dooks Created file | ||
16 | * 12-03-2004 Ben Dooks Updated include protection | ||
17 | * 29-Sep-2004 Ben Dooks Fixed usage for assembly inclusion | ||
18 | * 10-Feb-2005 Ben Dooks Fixed CAMDIVN address (Guillaume Gourat) | ||
19 | * 10-Mar-2005 Lucas Villa Real Changed S3C2410_VA to S3C24XX_VA | ||
20 | * 27-Aug-2005 Ben Dooks Add clock-slow info | ||
21 | * 20-Oct-2005 Ben Dooks Fixed overflow in PLL (Guillaume Gourat) | ||
22 | * 20-Oct-2005 Ben Dooks Add masks for DCLK (Guillaume Gourat) | ||
23 | */ | 11 | */ |
24 | 12 | ||
25 | #ifndef __ASM_ARM_REGS_CLOCK | 13 | #ifndef __ASM_ARM_REGS_CLOCK |
diff --git a/include/asm-arm/arch-s3c2410/regs-gpio.h b/include/asm-arm/arch-s3c2410/regs-gpio.h index 6dd17f0f84e0..93c49432db95 100644 --- a/include/asm-arm/arch-s3c2410/regs-gpio.h +++ b/include/asm-arm/arch-s3c2410/regs-gpio.h | |||
@@ -8,21 +8,6 @@ | |||
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | * | 9 | * |
10 | * S3C2410 GPIO register definitions | 10 | * S3C2410 GPIO register definitions |
11 | * | ||
12 | * Changelog: | ||
13 | * 19-06-2003 BJD Created file | ||
14 | * 23-06-2003 BJD Updated GSTATUS registers | ||
15 | * 12-03-2004 BJD Updated include protection | ||
16 | * 20-07-2004 BJD Added GPIO pin numbers, added Port A definitions | ||
17 | * 04-10-2004 BJD Fixed number of bugs, added EXT IRQ filter defs | ||
18 | * 17-10-2004 BJD Added GSTATUS1 register definitions | ||
19 | * 18-11-2004 BJD Fixed definitions of GPE3, GPE4, GPE5 and GPE6 | ||
20 | * 18-11-2004 BJD Added S3C2440 AC97 controls | ||
21 | * 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA | ||
22 | * 28-Mar-2005 LCVR Fixed definition of GPB10 | ||
23 | * 26-Oct-2005 BJD Added generic configuration types | ||
24 | * 27-Nov-2005 LCVR Added definitions to S3C2400 registers | ||
25 | * 15-Jan-2006 LCVR Written S3C24XX_GPIO_BASE() macro | ||
26 | */ | 11 | */ |
27 | 12 | ||
28 | 13 | ||
diff --git a/include/asm-arm/arch-s3c2410/regs-gpioj.h b/include/asm-arm/arch-s3c2410/regs-gpioj.h index 18edae50d0b8..91cefa260497 100644 --- a/include/asm-arm/arch-s3c2410/regs-gpioj.h +++ b/include/asm-arm/arch-s3c2410/regs-gpioj.h | |||
@@ -8,10 +8,6 @@ | |||
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | * | 9 | * |
10 | * S3C2440 GPIO J register definitions | 10 | * S3C2440 GPIO J register definitions |
11 | * | ||
12 | * Changelog: | ||
13 | * 11-Aug-2004 BJD Created file | ||
14 | * 10-Feb-2005 BJD Fix GPJ12 definition (Guillaume Gourat) | ||
15 | */ | 11 | */ |
16 | 12 | ||
17 | 13 | ||
diff --git a/include/asm-arm/arch-s3c2410/regs-iic.h b/include/asm-arm/arch-s3c2410/regs-iic.h index fed3288e2046..2ae29522f253 100644 --- a/include/asm-arm/arch-s3c2410/regs-iic.h +++ b/include/asm-arm/arch-s3c2410/regs-iic.h | |||
@@ -8,10 +8,6 @@ | |||
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | * | 9 | * |
10 | * S3C2410 I2C Controller | 10 | * S3C2410 I2C Controller |
11 | * | ||
12 | * Changelog: | ||
13 | * 03-Oct-2004 BJD Initial include for Linux | ||
14 | * 08-Nov-2004 BJD Added S3C2440 filter register | ||
15 | */ | 11 | */ |
16 | 12 | ||
17 | #ifndef __ASM_ARCH_REGS_IIC_H | 13 | #ifndef __ASM_ARCH_REGS_IIC_H |
diff --git a/include/asm-arm/arch-s3c2410/regs-iis.h b/include/asm-arm/arch-s3c2410/regs-iis.h index 7fdde9b91cb4..72cd2509822e 100644 --- a/include/asm-arm/arch-s3c2410/regs-iis.h +++ b/include/asm-arm/arch-s3c2410/regs-iis.h | |||
@@ -8,17 +8,7 @@ | |||
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | * | 9 | * |
10 | * S3C2410 IIS register definition | 10 | * S3C2410 IIS register definition |
11 | * | 11 | */ |
12 | * Changelog: | ||
13 | * 19-06-2003 BJD Created file | ||
14 | * 26-06-2003 BJD Finished off definitions for register addresses | ||
15 | * 12-03-2004 BJD Updated include protection | ||
16 | * 07-03-2005 BJD Added FIFO size flags and S3C2440 MPLL | ||
17 | * 05-04-2005 LCVR Added IISFCON definitions for the S3C2400 | ||
18 | * 18-07-2005 DA Change IISCON_MPLL to IISMOD_MPLL | ||
19 | * Correct IISMOD_256FS and IISMOD_384FS | ||
20 | * Add IISCON_PSCEN | ||
21 | */ | ||
22 | 12 | ||
23 | #ifndef __ASM_ARCH_REGS_IIS_H | 13 | #ifndef __ASM_ARCH_REGS_IIS_H |
24 | #define __ASM_ARCH_REGS_IIS_H | 14 | #define __ASM_ARCH_REGS_IIS_H |
diff --git a/include/asm-arm/arch-s3c2410/regs-irq.h b/include/asm-arm/arch-s3c2410/regs-irq.h index 572fca5d9acf..29fb8ef670f0 100644 --- a/include/asm-arm/arch-s3c2410/regs-irq.h +++ b/include/asm-arm/arch-s3c2410/regs-irq.h | |||
@@ -6,14 +6,7 @@ | |||
6 | * This program is free software; you can redistribute it and/or modify | 6 | * This program is free software; you can redistribute it and/or modify |
7 | * it under the terms of the GNU General Public License version 2 as | 7 | * it under the terms of the GNU General Public License version 2 as |
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | * | 9 | */ |
10 | * | ||
11 | * | ||
12 | * Changelog: | ||
13 | * 19-06-2003 BJD Created file | ||
14 | * 12-03-2004 BJD Updated include protection | ||
15 | * 10-03-2005 LCVR Changed S3C2410_VA to S3C24XX_VA | ||
16 | */ | ||
17 | 10 | ||
18 | 11 | ||
19 | #ifndef ___ASM_ARCH_REGS_IRQ_H | 12 | #ifndef ___ASM_ARCH_REGS_IRQ_H |
diff --git a/include/asm-arm/arch-s3c2410/regs-lcd.h b/include/asm-arm/arch-s3c2410/regs-lcd.h index b6b1b4e8bbeb..b306d6e3135d 100644 --- a/include/asm-arm/arch-s3c2410/regs-lcd.h +++ b/include/asm-arm/arch-s3c2410/regs-lcd.h | |||
@@ -6,14 +6,6 @@ | |||
6 | * This program is free software; you can redistribute it and/or modify | 6 | * This program is free software; you can redistribute it and/or modify |
7 | * it under the terms of the GNU General Public License version 2 as | 7 | * it under the terms of the GNU General Public License version 2 as |
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | * | ||
10 | * | ||
11 | * | ||
12 | * Changelog: | ||
13 | * 12-06-2003 BJD Created file | ||
14 | * 26-06-2003 BJD Updated LCDCON register definitions | ||
15 | * 12-03-2004 BJD Updated include protection | ||
16 | * 10-03-2005 LCVR Changed S3C2410_VA to S3C24XX_VA | ||
17 | */ | 9 | */ |
18 | 10 | ||
19 | 11 | ||
diff --git a/include/asm-arm/arch-s3c2410/regs-mem.h b/include/asm-arm/arch-s3c2410/regs-mem.h index a2d7d0cec042..375dca50364e 100644 --- a/include/asm-arm/arch-s3c2410/regs-mem.h +++ b/include/asm-arm/arch-s3c2410/regs-mem.h | |||
@@ -8,12 +8,6 @@ | |||
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | * | 9 | * |
10 | * S3C2410 Memory Control register definitions | 10 | * S3C2410 Memory Control register definitions |
11 | * | ||
12 | * Changelog: | ||
13 | * 29-Sep-2004 BJD Initial include for Linux | ||
14 | * 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA | ||
15 | * 04-Apr-2005 LCVR Added S3C2400 DRAM/BANKSIZE_MASK definitions | ||
16 | * | ||
17 | */ | 11 | */ |
18 | 12 | ||
19 | #ifndef __ASM_ARM_MEMREGS_H | 13 | #ifndef __ASM_ARM_MEMREGS_H |
diff --git a/include/asm-arm/arch-s3c2410/regs-nand.h b/include/asm-arm/arch-s3c2410/regs-nand.h index c1470c695c33..b824d371ae0b 100644 --- a/include/asm-arm/arch-s3c2410/regs-nand.h +++ b/include/asm-arm/arch-s3c2410/regs-nand.h | |||
@@ -8,10 +8,6 @@ | |||
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | * | 9 | * |
10 | * S3C2410 NAND register definitions | 10 | * S3C2410 NAND register definitions |
11 | * | ||
12 | * Changelog: | ||
13 | * 18-Aug-2004 BJD Copied file from 2.4 and updated | ||
14 | * 01-May-2005 BJD Added definitions for s3c2440 controller | ||
15 | */ | 11 | */ |
16 | 12 | ||
17 | #ifndef __ASM_ARM_REGS_NAND | 13 | #ifndef __ASM_ARM_REGS_NAND |
diff --git a/include/asm-arm/arch-s3c2410/regs-power.h b/include/asm-arm/arch-s3c2410/regs-power.h new file mode 100644 index 000000000000..6c319ea2afac --- /dev/null +++ b/include/asm-arm/arch-s3c2410/regs-power.h | |||
@@ -0,0 +1,34 @@ | |||
1 | /* linux/include/asm/arch-s3c2410/regs-power.h | ||
2 | * | ||
3 | * Copyright (c) 2003,2004,2005,2006 Simtec Electronics <linux@simtec.co.uk> | ||
4 | * http://armlinux.simtec.co.uk/ | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | * | ||
10 | * S3C24XX power control register definitions | ||
11 | */ | ||
12 | |||
13 | #ifndef __ASM_ARM_REGS_PWR | ||
14 | #define __ASM_ARM_REGS_PWR __FILE__ | ||
15 | |||
16 | #define S3C24XX_PWRREG(x) ((x) + S3C24XX_VA_CLKPWR) | ||
17 | |||
18 | #define S3C2412_PWRMODECON S3C24XX_PWRREG(0x20) | ||
19 | #define S3C2412_PWRCFG S3C24XX_PWRREG(0x24) | ||
20 | |||
21 | #define S3C2412_PWRCFG_BATF_IGNORE (0<<0) | ||
22 | #define S3C2412_PWRCFG_BATF_SLEEP (3<<0) | ||
23 | #define S3C2412_PWRCFG_BATF_MASK (3<<0) | ||
24 | |||
25 | #define S3C2412_PWRCFG_STANDBYWFI_IGNORE (0<<6) | ||
26 | #define S3C2412_PWRCFG_STANDBYWFI_IDLE (1<<6) | ||
27 | #define S3C2412_PWRCFG_STANDBYWFI_STOP (2<<6) | ||
28 | #define S3C2412_PWRCFG_STANDBYWFI_SLEEP (3<<6) | ||
29 | #define S3C2412_PWRCFG_STANDBYWFI_MASK (3<<6) | ||
30 | |||
31 | #define S3C2412_PWRCFG_RTC_MASKIRQ (1<<8) | ||
32 | #define S3C2412_PWRCFG_NAND_NORST (1<<9) | ||
33 | |||
34 | #endif /* __ASM_ARM_REGS_PWR */ | ||
diff --git a/include/asm-arm/arch-s3c2410/regs-rtc.h b/include/asm-arm/arch-s3c2410/regs-rtc.h index 0fbec07bb6b8..cd88fd634d12 100644 --- a/include/asm-arm/arch-s3c2410/regs-rtc.h +++ b/include/asm-arm/arch-s3c2410/regs-rtc.h | |||
@@ -8,11 +8,6 @@ | |||
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | * | 9 | * |
10 | * S3C2410 Internal RTC register definition | 10 | * S3C2410 Internal RTC register definition |
11 | * | ||
12 | * Changelog: | ||
13 | * 19-06-2003 BJD Created file | ||
14 | * 12-03-2004 BJD Updated include protection | ||
15 | * 15-01-2005 LCVR Changed S3C2410_VA to S3C24XX_VA (s3c2400 support) | ||
16 | */ | 11 | */ |
17 | 12 | ||
18 | #ifndef __ASM_ARCH_REGS_RTC_H | 13 | #ifndef __ASM_ARCH_REGS_RTC_H |
diff --git a/include/asm-arm/arch-s3c2410/regs-sdi.h b/include/asm-arm/arch-s3c2410/regs-sdi.h index ca9a26fbecec..06e716e5b46d 100644 --- a/include/asm-arm/arch-s3c2410/regs-sdi.h +++ b/include/asm-arm/arch-s3c2410/regs-sdi.h | |||
@@ -8,11 +8,6 @@ | |||
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | * | 9 | * |
10 | * S3C2410 MMC/SDIO register definitions | 10 | * S3C2410 MMC/SDIO register definitions |
11 | * | ||
12 | * Changelog: | ||
13 | * 18-Aug-2004 Ben Dooks Created initial file | ||
14 | * 29-Nov-2004 Koen Martens Added some missing defines, fixed duplicates | ||
15 | * 29-Nov-2004 Ben Dooks Updated Koen's patch | ||
16 | */ | 11 | */ |
17 | 12 | ||
18 | #ifndef __ASM_ARM_REGS_SDI | 13 | #ifndef __ASM_ARM_REGS_SDI |
diff --git a/include/asm-arm/arch-s3c2410/regs-serial.h b/include/asm-arm/arch-s3c2410/regs-serial.h index 93f651ae2967..19c77da9c3fe 100644 --- a/include/asm-arm/arch-s3c2410/regs-serial.h +++ b/include/asm-arm/arch-s3c2410/regs-serial.h | |||
@@ -27,10 +27,7 @@ | |||
27 | * You should have received a copy of the GNU General Public License | 27 | * You should have received a copy of the GNU General Public License |
28 | * along with this program; if not, write to the Free Software | 28 | * along with this program; if not, write to the Free Software |
29 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 29 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
30 | * | 30 | */ |
31 | * Modifications: | ||
32 | * 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA (s3c2400 support) | ||
33 | */ | ||
34 | 31 | ||
35 | #ifndef __ASM_ARM_REGS_SERIAL_H | 32 | #ifndef __ASM_ARM_REGS_SERIAL_H |
36 | #define __ASM_ARM_REGS_SERIAL_H | 33 | #define __ASM_ARM_REGS_SERIAL_H |
diff --git a/include/asm-arm/arch-s3c2410/regs-spi.h b/include/asm-arm/arch-s3c2410/regs-spi.h index 338217858c73..3552280d1e8f 100644 --- a/include/asm-arm/arch-s3c2410/regs-spi.h +++ b/include/asm-arm/arch-s3c2410/regs-spi.h | |||
@@ -7,13 +7,7 @@ | |||
7 | * published by the Free Software Foundation. | 7 | * published by the Free Software Foundation. |
8 | * | 8 | * |
9 | * S3C2410 SPI register definition | 9 | * S3C2410 SPI register definition |
10 | * | 10 | */ |
11 | * Changelog: | ||
12 | * 20-04-2004 KF Created file | ||
13 | * 04-10-2004 BJD Removed VA address (no longer mapped) | ||
14 | * tidied file for submission | ||
15 | * 03-04-2005 LCVR Added S3C2400_SPPIN_nCS definition | ||
16 | */ | ||
17 | 11 | ||
18 | #ifndef __ASM_ARCH_REGS_SPI_H | 12 | #ifndef __ASM_ARCH_REGS_SPI_H |
19 | #define __ASM_ARCH_REGS_SPI_H | 13 | #define __ASM_ARCH_REGS_SPI_H |
diff --git a/include/asm-arm/arch-s3c2410/regs-timer.h b/include/asm-arm/arch-s3c2410/regs-timer.h index 169064e27520..731918e77831 100644 --- a/include/asm-arm/arch-s3c2410/regs-timer.h +++ b/include/asm-arm/arch-s3c2410/regs-timer.h | |||
@@ -8,13 +8,6 @@ | |||
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | * | 9 | * |
10 | * S3C2410 Timer configuration | 10 | * S3C2410 Timer configuration |
11 | * | ||
12 | * Changelog: | ||
13 | * 05-06-2003 BJD Created file | ||
14 | * 26-06-2003 BJD Added more timer definitions to mux / control | ||
15 | * 12-03-2004 BJD Updated include protection | ||
16 | * 10-02-2005 BJD Added S3C2410_TCFG1_MUX4_SHIFT (Guillaume Gourat) | ||
17 | * 10-03-2005 LCVR Changed S3C2410_VA to S3C24XX_VA | ||
18 | */ | 11 | */ |
19 | 12 | ||
20 | 13 | ||
diff --git a/include/asm-arm/arch-s3c2410/regs-udc.h b/include/asm-arm/arch-s3c2410/regs-udc.h index bf315b763252..3aa31a27da1a 100644 --- a/include/asm-arm/arch-s3c2410/regs-udc.h +++ b/include/asm-arm/arch-s3c2410/regs-udc.h | |||
@@ -6,13 +6,7 @@ | |||
6 | * modify it under the terms of the GNU General Public License as | 6 | * modify it under the terms of the GNU General Public License as |
7 | * published by the Free Software Foundation; either version 2 of | 7 | * published by the Free Software Foundation; either version 2 of |
8 | * the License, or (at your option) any later version. | 8 | * the License, or (at your option) any later version. |
9 | * | 9 | */ |
10 | * Changelog: | ||
11 | * 01-08-2004 Initial creation | ||
12 | * 12-09-2004 Cleanup for submission | ||
13 | * 24-10-2004 Fixed S3C2410_UDC_MAXP_REG definition | ||
14 | * 10-03-2005 Changed S3C2410_VA to S3C24XX_VA | ||
15 | */ | ||
16 | 10 | ||
17 | #ifndef __ASM_ARCH_REGS_UDC_H | 11 | #ifndef __ASM_ARCH_REGS_UDC_H |
18 | #define __ASM_ARCH_REGS_UDC_H | 12 | #define __ASM_ARCH_REGS_UDC_H |
diff --git a/include/asm-arm/arch-s3c2410/regs-watchdog.h b/include/asm-arm/arch-s3c2410/regs-watchdog.h index d199ca6aff22..f4fff448c7bd 100644 --- a/include/asm-arm/arch-s3c2410/regs-watchdog.h +++ b/include/asm-arm/arch-s3c2410/regs-watchdog.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* linux/include/asm/arch-s3c2410/regs0watchdog.h | 1 | /* linux/include/asm/arch-s3c2410/regs-watchdog.h |
2 | * | 2 | * |
3 | * Copyright (c) 2003 Simtec Electronics <linux@simtec.co.uk> | 3 | * Copyright (c) 2003 Simtec Electronics <linux@simtec.co.uk> |
4 | * http://www.simtec.co.uk/products/SWLINUX/ | 4 | * http://www.simtec.co.uk/products/SWLINUX/ |
@@ -8,11 +8,6 @@ | |||
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | * | 9 | * |
10 | * S3C2410 Watchdog timer control | 10 | * S3C2410 Watchdog timer control |
11 | * | ||
12 | * Changelog: | ||
13 | * 21-06-2003 BJD Created file | ||
14 | * 12-03-2004 BJD Updated include protection | ||
15 | * 10-03-2005 LCVR Changed S3C2410_VA to S3C24XX_VA | ||
16 | */ | 11 | */ |
17 | 12 | ||
18 | 13 | ||
diff --git a/include/asm-arm/arch-s3c2410/system.h b/include/asm-arm/arch-s3c2410/system.h index 9b0d85024cb4..718246d85952 100644 --- a/include/asm-arm/arch-s3c2410/system.h +++ b/include/asm-arm/arch-s3c2410/system.h | |||
@@ -8,14 +8,7 @@ | |||
8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | * | 11 | */ |
12 | * Changelog: | ||
13 | * 12-May-2003 BJD Created file | ||
14 | * 14-May-2003 BJD Removed idle to aid debugging | ||
15 | * 12-Jun-2003 BJD Added reset via watchdog | ||
16 | * 04-Sep-2003 BJD Moved to v2.6 | ||
17 | * 28-Oct-2004 BJD Added over-ride for idle, and fixed reset panic() | ||
18 | */ | ||
19 | 12 | ||
20 | #include <asm/hardware.h> | 13 | #include <asm/hardware.h> |
21 | #include <asm/io.h> | 14 | #include <asm/io.h> |
diff --git a/include/asm-arm/arch-s3c2410/timex.h b/include/asm-arm/arch-s3c2410/timex.h index 3558a3a750bf..703c337c5617 100644 --- a/include/asm-arm/arch-s3c2410/timex.h +++ b/include/asm-arm/arch-s3c2410/timex.h | |||
@@ -8,12 +8,6 @@ | |||
8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | * | ||
12 | * Changelog: | ||
13 | * 02-Sep-2003 BJD Created file | ||
14 | * 05-Jan-2004 BJD Updated for Linux 2.6.0 | ||
15 | * 22-Nov-2004 BJD Fixed CLOCK_TICK_RATE | ||
16 | * 10-Jan-2004 BJD Removed s3c2410_clock_tick_rate | ||
17 | */ | 11 | */ |
18 | 12 | ||
19 | #ifndef __ASM_ARCH_TIMEX_H | 13 | #ifndef __ASM_ARCH_TIMEX_H |
diff --git a/include/asm-arm/arch-s3c2410/uncompress.h b/include/asm-arm/arch-s3c2410/uncompress.h index 8e152a05e533..81b3e91c56ab 100644 --- a/include/asm-arm/arch-s3c2410/uncompress.h +++ b/include/asm-arm/arch-s3c2410/uncompress.h | |||
@@ -8,15 +8,6 @@ | |||
8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | * | ||
12 | * Changelog: | ||
13 | * 22-May-2003 BJD Created | ||
14 | * 08-Sep-2003 BJD Moved to linux v2.6 | ||
15 | * 12-Mar-2004 BJD Updated header protection | ||
16 | * 12-Oct-2004 BJD Take account of debug uart configuration | ||
17 | * 15-Nov-2004 BJD Fixed uart configuration | ||
18 | * 22-Feb-2005 BJD Added watchdog to uncompress | ||
19 | * 04-Apr-2005 LCVR Added support to S3C2400 (no cpuid at GSTATUS1) | ||
20 | */ | 11 | */ |
21 | 12 | ||
22 | #ifndef __ASM_ARCH_UNCOMPRESS_H | 13 | #ifndef __ASM_ARCH_UNCOMPRESS_H |
diff --git a/include/asm-arm/arch-s3c2410/usb-control.h b/include/asm-arm/arch-s3c2410/usb-control.h index bd43b566db3e..35723569a17a 100644 --- a/include/asm-arm/arch-s3c2410/usb-control.h +++ b/include/asm-arm/arch-s3c2410/usb-control.h | |||
@@ -8,11 +8,6 @@ | |||
8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | * | ||
12 | * Changelog: | ||
13 | * 11-Sep-2004 BJD Created file | ||
14 | * 21-Sep-2004 BJD Updated port info | ||
15 | * 09-Aug-2005 BJD Renamed s3c2410_report_oc s3c2410_usb_report_oc | ||
16 | */ | 11 | */ |
17 | 12 | ||
18 | #ifndef __ASM_ARCH_USBCONTROL_H | 13 | #ifndef __ASM_ARCH_USBCONTROL_H |
diff --git a/include/asm-arm/arch-s3c2410/vmalloc.h b/include/asm-arm/arch-s3c2410/vmalloc.h index 33963cd5461b..0ae3bdb7e03b 100644 --- a/include/asm-arm/arch-s3c2410/vmalloc.h +++ b/include/asm-arm/arch-s3c2410/vmalloc.h | |||
@@ -10,11 +10,7 @@ | |||
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | * | 11 | * |
12 | * S3C2410 vmalloc definition | 12 | * S3C2410 vmalloc definition |
13 | * | 13 | */ |
14 | * Changelog: | ||
15 | * 12-Mar-2004 BJD Fixed header, added include protection | ||
16 | * 12=Mar-2004 BJD Fixed VMALLOC_END definitions | ||
17 | */ | ||
18 | 14 | ||
19 | #ifndef __ASM_ARCH_VMALLOC_H | 15 | #ifndef __ASM_ARCH_VMALLOC_H |
20 | #define __ASM_ARCH_VMALLOC_H | 16 | #define __ASM_ARCH_VMALLOC_H |
diff --git a/include/asm-arm/arch-s3c2410/vr1000-cpld.h b/include/asm-arm/arch-s3c2410/vr1000-cpld.h index 0ee373ac60d4..a341b1e1bd98 100644 --- a/include/asm-arm/arch-s3c2410/vr1000-cpld.h +++ b/include/asm-arm/arch-s3c2410/vr1000-cpld.h | |||
@@ -8,10 +8,6 @@ | |||
8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | * | ||
12 | * Changelog: | ||
13 | * 25-May-2003 BJD Created file, added CTRL1 registers | ||
14 | * 19-Mar-2004 BJD Added VR1000 CPLD definitions | ||
15 | */ | 11 | */ |
16 | 12 | ||
17 | #ifndef __ASM_ARCH_VR1000CPLD_H | 13 | #ifndef __ASM_ARCH_VR1000CPLD_H |
diff --git a/include/asm-arm/arch-s3c2410/vr1000-irq.h b/include/asm-arm/arch-s3c2410/vr1000-irq.h index 694f7715d2da..c39a0ffa670d 100644 --- a/include/asm-arm/arch-s3c2410/vr1000-irq.h +++ b/include/asm-arm/arch-s3c2410/vr1000-irq.h | |||
@@ -8,11 +8,7 @@ | |||
8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | * | 11 | */ |
12 | * Changelog: | ||
13 | * 06-Jan-2003 BJD Linux 2.6.0 version | ||
14 | * 19-Mar-2004 BJD Updates for VR1000 | ||
15 | */ | ||
16 | 12 | ||
17 | #ifndef __ASM_ARCH_VR1000IRQ_H | 13 | #ifndef __ASM_ARCH_VR1000IRQ_H |
18 | #define __ASM_ARCH_VR1000IRQ_H | 14 | #define __ASM_ARCH_VR1000IRQ_H |
diff --git a/include/asm-arm/arch-s3c2410/vr1000-map.h b/include/asm-arm/arch-s3c2410/vr1000-map.h index 867c9355fd39..1fe4db36c834 100644 --- a/include/asm-arm/arch-s3c2410/vr1000-map.h +++ b/include/asm-arm/arch-s3c2410/vr1000-map.h | |||
@@ -8,12 +8,6 @@ | |||
8 | * This program is free software; you can redistribute it and/or modify | 8 | * This program is free software; you can redistribute it and/or modify |
9 | * it under the terms of the GNU General Public License version 2 as | 9 | * it under the terms of the GNU General Public License version 2 as |
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | * | ||
12 | * Changelog: | ||
13 | * 06-Jan-2003 BJD Linux 2.6.0 version, split specifics from arch/map.h | ||
14 | * 12-Mar-2004 BJD Fixed header include protection | ||
15 | * 19-Mar-2004 BJD Copied to VR1000 machine headers. | ||
16 | * 19-Jan-2005 BJD Updated map definitions | ||
17 | */ | 11 | */ |
18 | 12 | ||
19 | /* needs arch/map.h including with this */ | 13 | /* needs arch/map.h including with this */ |
diff --git a/include/asm-arm/cacheflush.h b/include/asm-arm/cacheflush.h index fe0c744e0266..e4a2569c636c 100644 --- a/include/asm-arm/cacheflush.h +++ b/include/asm-arm/cacheflush.h | |||
@@ -247,14 +247,12 @@ extern void dmac_flush_range(unsigned long, unsigned long); | |||
247 | */ | 247 | */ |
248 | #define copy_to_user_page(vma, page, vaddr, dst, src, len) \ | 248 | #define copy_to_user_page(vma, page, vaddr, dst, src, len) \ |
249 | do { \ | 249 | do { \ |
250 | flush_cache_page(vma, vaddr, page_to_pfn(page));\ | ||
251 | memcpy(dst, src, len); \ | 250 | memcpy(dst, src, len); \ |
252 | flush_dcache_page(page); \ | 251 | flush_ptrace_access(vma, page, vaddr, dst, len, 1);\ |
253 | } while (0) | 252 | } while (0) |
254 | 253 | ||
255 | #define copy_from_user_page(vma, page, vaddr, dst, src, len) \ | 254 | #define copy_from_user_page(vma, page, vaddr, dst, src, len) \ |
256 | do { \ | 255 | do { \ |
257 | flush_cache_page(vma, vaddr, page_to_pfn(page));\ | ||
258 | memcpy(dst, src, len); \ | 256 | memcpy(dst, src, len); \ |
259 | } while (0) | 257 | } while (0) |
260 | 258 | ||
@@ -285,10 +283,24 @@ flush_cache_page(struct vm_area_struct *vma, unsigned long user_addr, unsigned l | |||
285 | __cpuc_flush_user_range(addr, addr + PAGE_SIZE, vma->vm_flags); | 283 | __cpuc_flush_user_range(addr, addr + PAGE_SIZE, vma->vm_flags); |
286 | } | 284 | } |
287 | } | 285 | } |
286 | |||
287 | static inline void | ||
288 | flush_ptrace_access(struct vm_area_struct *vma, struct page *page, | ||
289 | unsigned long uaddr, void *kaddr, | ||
290 | unsigned long len, int write) | ||
291 | { | ||
292 | if (cpu_isset(smp_processor_id(), vma->vm_mm->cpu_vm_mask)) { | ||
293 | unsigned long addr = (unsigned long)kaddr; | ||
294 | __cpuc_coherent_kern_range(addr, addr + len); | ||
295 | } | ||
296 | } | ||
288 | #else | 297 | #else |
289 | extern void flush_cache_mm(struct mm_struct *mm); | 298 | extern void flush_cache_mm(struct mm_struct *mm); |
290 | extern void flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned long end); | 299 | extern void flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned long end); |
291 | extern void flush_cache_page(struct vm_area_struct *vma, unsigned long user_addr, unsigned long pfn); | 300 | extern void flush_cache_page(struct vm_area_struct *vma, unsigned long user_addr, unsigned long pfn); |
301 | extern void flush_ptrace_access(struct vm_area_struct *vma, struct page *page, | ||
302 | unsigned long uaddr, void *kaddr, | ||
303 | unsigned long len, int write); | ||
292 | #endif | 304 | #endif |
293 | 305 | ||
294 | /* | 306 | /* |
diff --git a/include/asm-arm/elf.h b/include/asm-arm/elf.h index 71061ca5c5d0..ae7baa6c73f7 100644 --- a/include/asm-arm/elf.h +++ b/include/asm-arm/elf.h | |||
@@ -8,7 +8,9 @@ | |||
8 | 8 | ||
9 | #include <asm/ptrace.h> | 9 | #include <asm/ptrace.h> |
10 | #include <asm/user.h> | 10 | #include <asm/user.h> |
11 | #ifdef __KERNEL | ||
11 | #include <asm/procinfo.h> | 12 | #include <asm/procinfo.h> |
13 | #endif | ||
12 | 14 | ||
13 | typedef unsigned long elf_greg_t; | 15 | typedef unsigned long elf_greg_t; |
14 | typedef unsigned long elf_freg_t[3]; | 16 | typedef unsigned long elf_freg_t[3]; |
diff --git a/include/asm-arm/page.h b/include/asm-arm/page.h index 63d12f0244c5..b721270b9986 100644 --- a/include/asm-arm/page.h +++ b/include/asm-arm/page.h | |||
@@ -193,8 +193,8 @@ extern pmd_t *top_pmd; | |||
193 | #define ARCH_SLAB_MINALIGN 8 | 193 | #define ARCH_SLAB_MINALIGN 8 |
194 | #endif | 194 | #endif |
195 | 195 | ||
196 | #endif /* __KERNEL__ */ | ||
197 | |||
198 | #include <asm-generic/page.h> | 196 | #include <asm-generic/page.h> |
199 | 197 | ||
198 | #endif /* __KERNEL__ */ | ||
199 | |||
200 | #endif | 200 | #endif |
diff --git a/include/asm-arm/spinlock.h b/include/asm-arm/spinlock.h index 406ca97a8ab2..01b7c26a3038 100644 --- a/include/asm-arm/spinlock.h +++ b/include/asm-arm/spinlock.h | |||
@@ -199,7 +199,21 @@ static inline void __raw_read_unlock(raw_rwlock_t *rw) | |||
199 | : "cc"); | 199 | : "cc"); |
200 | } | 200 | } |
201 | 201 | ||
202 | #define __raw_read_trylock(lock) generic__raw_read_trylock(lock) | 202 | static inline int __raw_read_trylock(raw_rwlock_t *rw) |
203 | { | ||
204 | unsigned long tmp, tmp2 = 1; | ||
205 | |||
206 | __asm__ __volatile__( | ||
207 | "1: ldrex %0, [%2]\n" | ||
208 | " adds %0, %0, #1\n" | ||
209 | " strexpl %1, %0, [%2]\n" | ||
210 | : "=&r" (tmp), "+r" (tmp2) | ||
211 | : "r" (&rw->lock) | ||
212 | : "cc"); | ||
213 | |||
214 | smp_mb(); | ||
215 | return tmp2 == 0; | ||
216 | } | ||
203 | 217 | ||
204 | /* read_can_lock - would read_trylock() succeed? */ | 218 | /* read_can_lock - would read_trylock() succeed? */ |
205 | #define __raw_read_can_lock(x) ((x)->lock < 0x80000000) | 219 | #define __raw_read_can_lock(x) ((x)->lock < 0x80000000) |
diff --git a/include/asm-generic/Kbuild.asm b/include/asm-generic/Kbuild.asm index 6b16dda18115..c00de6028fa8 100644 --- a/include/asm-generic/Kbuild.asm +++ b/include/asm-generic/Kbuild.asm | |||
@@ -2,7 +2,7 @@ unifdef-y += a.out.h auxvec.h byteorder.h errno.h fcntl.h ioctl.h \ | |||
2 | ioctls.h ipcbuf.h mman.h msgbuf.h param.h poll.h \ | 2 | ioctls.h ipcbuf.h mman.h msgbuf.h param.h poll.h \ |
3 | posix_types.h ptrace.h resource.h sembuf.h shmbuf.h shmparam.h \ | 3 | posix_types.h ptrace.h resource.h sembuf.h shmbuf.h shmparam.h \ |
4 | sigcontext.h siginfo.h signal.h socket.h sockios.h stat.h \ | 4 | sigcontext.h siginfo.h signal.h socket.h sockios.h stat.h \ |
5 | statfs.h termbits.h termios.h timex.h types.h unistd.h user.h | 5 | statfs.h termbits.h termios.h types.h unistd.h user.h |
6 | 6 | ||
7 | # These probably shouldn't be exported | 7 | # These probably shouldn't be exported |
8 | unifdef-y += elf.h page.h | 8 | unifdef-y += elf.h page.h |
diff --git a/include/asm-generic/audit_read.h b/include/asm-generic/audit_read.h new file mode 100644 index 000000000000..0e87464d9847 --- /dev/null +++ b/include/asm-generic/audit_read.h | |||
@@ -0,0 +1,8 @@ | |||
1 | __NR_readlink, | ||
2 | __NR_quotactl, | ||
3 | __NR_listxattr, | ||
4 | __NR_llistxattr, | ||
5 | __NR_flistxattr, | ||
6 | __NR_getxattr, | ||
7 | __NR_lgetxattr, | ||
8 | __NR_fgetxattr, | ||
diff --git a/include/asm-generic/audit_write.h b/include/asm-generic/audit_write.h new file mode 100644 index 000000000000..f10d367fb2a5 --- /dev/null +++ b/include/asm-generic/audit_write.h | |||
@@ -0,0 +1,11 @@ | |||
1 | #include <asm-generic/audit_dir_write.h> | ||
2 | __NR_acct, | ||
3 | __NR_swapon, | ||
4 | __NR_quotactl, | ||
5 | __NR_truncate, | ||
6 | #ifdef __NR_truncate64 | ||
7 | __NR_truncate64, | ||
8 | #endif | ||
9 | #ifdef __NR_bind | ||
10 | __NR_bind, /* bind can affect fs object only in one way... */ | ||
11 | #endif | ||
diff --git a/include/asm-i386/Kbuild b/include/asm-i386/Kbuild index c064a8e9170f..2308190321da 100644 --- a/include/asm-i386/Kbuild +++ b/include/asm-i386/Kbuild | |||
@@ -1,5 +1,5 @@ | |||
1 | include include/asm-generic/Kbuild.asm | 1 | include include/asm-generic/Kbuild.asm |
2 | 2 | ||
3 | header-y += boot.h cpufeature.h debugreg.h ldt.h setup.h ucontext.h | 3 | header-y += boot.h debugreg.h ldt.h ucontext.h |
4 | 4 | ||
5 | unifdef-y += mtrr.h vm86.h | 5 | unifdef-y += mtrr.h setup.h vm86.h |
diff --git a/include/asm-i386/alternative.h b/include/asm-i386/alternative.h index 96adbabec740..b01a7ec409ce 100644 --- a/include/asm-i386/alternative.h +++ b/include/asm-i386/alternative.h | |||
@@ -88,9 +88,6 @@ static inline void alternatives_smp_switch(int smp) {} | |||
88 | /* | 88 | /* |
89 | * Alternative inline assembly for SMP. | 89 | * Alternative inline assembly for SMP. |
90 | * | 90 | * |
91 | * alternative_smp() takes two versions (SMP first, UP second) and is | ||
92 | * for more complex stuff such as spinlocks. | ||
93 | * | ||
94 | * The LOCK_PREFIX macro defined here replaces the LOCK and | 91 | * The LOCK_PREFIX macro defined here replaces the LOCK and |
95 | * LOCK_PREFIX macros used everywhere in the source tree. | 92 | * LOCK_PREFIX macros used everywhere in the source tree. |
96 | * | 93 | * |
@@ -110,21 +107,6 @@ static inline void alternatives_smp_switch(int smp) {} | |||
110 | */ | 107 | */ |
111 | 108 | ||
112 | #ifdef CONFIG_SMP | 109 | #ifdef CONFIG_SMP |
113 | #define alternative_smp(smpinstr, upinstr, args...) \ | ||
114 | asm volatile ("661:\n\t" smpinstr "\n662:\n" \ | ||
115 | ".section .smp_altinstructions,\"a\"\n" \ | ||
116 | " .align 4\n" \ | ||
117 | " .long 661b\n" /* label */ \ | ||
118 | " .long 663f\n" /* new instruction */ \ | ||
119 | " .byte 0x68\n" /* X86_FEATURE_UP */ \ | ||
120 | " .byte 662b-661b\n" /* sourcelen */ \ | ||
121 | " .byte 664f-663f\n" /* replacementlen */ \ | ||
122 | ".previous\n" \ | ||
123 | ".section .smp_altinstr_replacement,\"awx\"\n" \ | ||
124 | "663:\n\t" upinstr "\n" /* replacement */ \ | ||
125 | "664:\n\t.fill 662b-661b,1,0x42\n" /* space for original */ \ | ||
126 | ".previous" : args) | ||
127 | |||
128 | #define LOCK_PREFIX \ | 110 | #define LOCK_PREFIX \ |
129 | ".section .smp_locks,\"a\"\n" \ | 111 | ".section .smp_locks,\"a\"\n" \ |
130 | " .align 4\n" \ | 112 | " .align 4\n" \ |
@@ -133,8 +115,6 @@ static inline void alternatives_smp_switch(int smp) {} | |||
133 | "661:\n\tlock; " | 115 | "661:\n\tlock; " |
134 | 116 | ||
135 | #else /* ! CONFIG_SMP */ | 117 | #else /* ! CONFIG_SMP */ |
136 | #define alternative_smp(smpinstr, upinstr, args...) \ | ||
137 | asm volatile (upinstr : args) | ||
138 | #define LOCK_PREFIX "" | 118 | #define LOCK_PREFIX "" |
139 | #endif | 119 | #endif |
140 | 120 | ||
diff --git a/include/asm-i386/elf.h b/include/asm-i386/elf.h index 1eac92cb5b16..db4344d9f73f 100644 --- a/include/asm-i386/elf.h +++ b/include/asm-i386/elf.h | |||
@@ -7,10 +7,7 @@ | |||
7 | 7 | ||
8 | #include <asm/ptrace.h> | 8 | #include <asm/ptrace.h> |
9 | #include <asm/user.h> | 9 | #include <asm/user.h> |
10 | #include <asm/processor.h> | ||
11 | #include <asm/system.h> /* for savesegment */ | ||
12 | #include <asm/auxvec.h> | 10 | #include <asm/auxvec.h> |
13 | #include <asm/desc.h> | ||
14 | 11 | ||
15 | #include <linux/utsname.h> | 12 | #include <linux/utsname.h> |
16 | 13 | ||
@@ -48,6 +45,12 @@ typedef struct user_fxsr_struct elf_fpxregset_t; | |||
48 | #define ELF_DATA ELFDATA2LSB | 45 | #define ELF_DATA ELFDATA2LSB |
49 | #define ELF_ARCH EM_386 | 46 | #define ELF_ARCH EM_386 |
50 | 47 | ||
48 | #ifdef __KERNEL__ | ||
49 | |||
50 | #include <asm/processor.h> | ||
51 | #include <asm/system.h> /* for savesegment */ | ||
52 | #include <asm/desc.h> | ||
53 | |||
51 | /* SVR4/i386 ABI (pages 3-31, 3-32) says that when the program starts %edx | 54 | /* SVR4/i386 ABI (pages 3-31, 3-32) says that when the program starts %edx |
52 | contains a pointer to a function which might be registered using `atexit'. | 55 | contains a pointer to a function which might be registered using `atexit'. |
53 | This provides a mean for the dynamic linker to call DT_FINI functions for | 56 | This provides a mean for the dynamic linker to call DT_FINI functions for |
@@ -111,7 +114,6 @@ typedef struct user_fxsr_struct elf_fpxregset_t; | |||
111 | 114 | ||
112 | #define ELF_PLATFORM (system_utsname.machine) | 115 | #define ELF_PLATFORM (system_utsname.machine) |
113 | 116 | ||
114 | #ifdef __KERNEL__ | ||
115 | #define SET_PERSONALITY(ex, ibcs2) do { } while (0) | 117 | #define SET_PERSONALITY(ex, ibcs2) do { } while (0) |
116 | 118 | ||
117 | /* | 119 | /* |
diff --git a/include/asm-i386/mach-default/mach_mpspec.h b/include/asm-i386/mach-default/mach_mpspec.h index 6b5dadcf1d0e..51c9a9775932 100644 --- a/include/asm-i386/mach-default/mach_mpspec.h +++ b/include/asm-i386/mach-default/mach_mpspec.h | |||
@@ -3,6 +3,10 @@ | |||
3 | 3 | ||
4 | #define MAX_IRQ_SOURCES 256 | 4 | #define MAX_IRQ_SOURCES 256 |
5 | 5 | ||
6 | #if CONFIG_BASE_SMALL == 0 | ||
7 | #define MAX_MP_BUSSES 256 | ||
8 | #else | ||
6 | #define MAX_MP_BUSSES 32 | 9 | #define MAX_MP_BUSSES 32 |
10 | #endif | ||
7 | 11 | ||
8 | #endif /* __ASM_MACH_MPSPEC_H */ | 12 | #endif /* __ASM_MACH_MPSPEC_H */ |
diff --git a/include/asm-i386/rwlock.h b/include/asm-i386/rwlock.h index 96b0bef2ea56..87c069ccba08 100644 --- a/include/asm-i386/rwlock.h +++ b/include/asm-i386/rwlock.h | |||
@@ -21,23 +21,21 @@ | |||
21 | #define RW_LOCK_BIAS_STR "0x01000000" | 21 | #define RW_LOCK_BIAS_STR "0x01000000" |
22 | 22 | ||
23 | #define __build_read_lock_ptr(rw, helper) \ | 23 | #define __build_read_lock_ptr(rw, helper) \ |
24 | alternative_smp("lock; subl $1,(%0)\n\t" \ | 24 | asm volatile(LOCK_PREFIX " subl $1,(%0)\n\t" \ |
25 | "jns 1f\n" \ | 25 | "jns 1f\n" \ |
26 | "call " helper "\n\t" \ | 26 | "call " helper "\n\t" \ |
27 | "1:\n", \ | 27 | "1:\n" \ |
28 | "subl $1,(%0)\n\t", \ | 28 | ::"a" (rw) : "memory") |
29 | :"a" (rw) : "memory") | ||
30 | 29 | ||
31 | #define __build_read_lock_const(rw, helper) \ | 30 | #define __build_read_lock_const(rw, helper) \ |
32 | alternative_smp("lock; subl $1,%0\n\t" \ | 31 | asm volatile(LOCK_PREFIX " subl $1,%0\n\t" \ |
33 | "jns 1f\n" \ | 32 | "jns 1f\n" \ |
34 | "pushl %%eax\n\t" \ | 33 | "pushl %%eax\n\t" \ |
35 | "leal %0,%%eax\n\t" \ | 34 | "leal %0,%%eax\n\t" \ |
36 | "call " helper "\n\t" \ | 35 | "call " helper "\n\t" \ |
37 | "popl %%eax\n\t" \ | 36 | "popl %%eax\n\t" \ |
38 | "1:\n", \ | 37 | "1:\n" \ |
39 | "subl $1,%0\n\t", \ | 38 | :"+m" (*(volatile int *)rw) : : "memory") |
40 | "+m" (*(volatile int *)rw) : : "memory") | ||
41 | 39 | ||
42 | #define __build_read_lock(rw, helper) do { \ | 40 | #define __build_read_lock(rw, helper) do { \ |
43 | if (__builtin_constant_p(rw)) \ | 41 | if (__builtin_constant_p(rw)) \ |
@@ -47,23 +45,21 @@ | |||
47 | } while (0) | 45 | } while (0) |
48 | 46 | ||
49 | #define __build_write_lock_ptr(rw, helper) \ | 47 | #define __build_write_lock_ptr(rw, helper) \ |
50 | alternative_smp("lock; subl $" RW_LOCK_BIAS_STR ",(%0)\n\t" \ | 48 | asm volatile(LOCK_PREFIX " subl $" RW_LOCK_BIAS_STR ",(%0)\n\t" \ |
51 | "jz 1f\n" \ | 49 | "jz 1f\n" \ |
52 | "call " helper "\n\t" \ | 50 | "call " helper "\n\t" \ |
53 | "1:\n", \ | 51 | "1:\n" \ |
54 | "subl $" RW_LOCK_BIAS_STR ",(%0)\n\t", \ | 52 | ::"a" (rw) : "memory") |
55 | :"a" (rw) : "memory") | ||
56 | 53 | ||
57 | #define __build_write_lock_const(rw, helper) \ | 54 | #define __build_write_lock_const(rw, helper) \ |
58 | alternative_smp("lock; subl $" RW_LOCK_BIAS_STR ",%0\n\t" \ | 55 | asm volatile(LOCK_PREFIX " subl $" RW_LOCK_BIAS_STR ",%0\n\t" \ |
59 | "jz 1f\n" \ | 56 | "jz 1f\n" \ |
60 | "pushl %%eax\n\t" \ | 57 | "pushl %%eax\n\t" \ |
61 | "leal %0,%%eax\n\t" \ | 58 | "leal %0,%%eax\n\t" \ |
62 | "call " helper "\n\t" \ | 59 | "call " helper "\n\t" \ |
63 | "popl %%eax\n\t" \ | 60 | "popl %%eax\n\t" \ |
64 | "1:\n", \ | 61 | "1:\n" \ |
65 | "subl $" RW_LOCK_BIAS_STR ",%0\n\t", \ | 62 | :"+m" (*(volatile int *)rw) : : "memory") |
66 | "+m" (*(volatile int *)rw) : : "memory") | ||
67 | 63 | ||
68 | #define __build_write_lock(rw, helper) do { \ | 64 | #define __build_write_lock(rw, helper) do { \ |
69 | if (__builtin_constant_p(rw)) \ | 65 | if (__builtin_constant_p(rw)) \ |
diff --git a/include/asm-i386/setup.h b/include/asm-i386/setup.h index f737e423029e..2734909eff84 100644 --- a/include/asm-i386/setup.h +++ b/include/asm-i386/setup.h | |||
@@ -6,6 +6,7 @@ | |||
6 | #ifndef _i386_SETUP_H | 6 | #ifndef _i386_SETUP_H |
7 | #define _i386_SETUP_H | 7 | #define _i386_SETUP_H |
8 | 8 | ||
9 | #ifdef __KERNEL__ | ||
9 | #include <linux/pfn.h> | 10 | #include <linux/pfn.h> |
10 | 11 | ||
11 | /* | 12 | /* |
@@ -13,6 +14,7 @@ | |||
13 | */ | 14 | */ |
14 | #define MAXMEM_PFN PFN_DOWN(MAXMEM) | 15 | #define MAXMEM_PFN PFN_DOWN(MAXMEM) |
15 | #define MAX_NONPAE_PFN (1 << 20) | 16 | #define MAX_NONPAE_PFN (1 << 20) |
17 | #endif | ||
16 | 18 | ||
17 | #define PARAM_SIZE 4096 | 19 | #define PARAM_SIZE 4096 |
18 | #define COMMAND_LINE_SIZE 256 | 20 | #define COMMAND_LINE_SIZE 256 |
diff --git a/include/asm-i386/signal.h b/include/asm-i386/signal.h index 3824a502351f..c3e8adec5918 100644 --- a/include/asm-i386/signal.h +++ b/include/asm-i386/signal.h | |||
@@ -2,7 +2,6 @@ | |||
2 | #define _ASMi386_SIGNAL_H | 2 | #define _ASMi386_SIGNAL_H |
3 | 3 | ||
4 | #include <linux/types.h> | 4 | #include <linux/types.h> |
5 | #include <linux/linkage.h> | ||
6 | #include <linux/time.h> | 5 | #include <linux/time.h> |
7 | #include <linux/compiler.h> | 6 | #include <linux/compiler.h> |
8 | 7 | ||
@@ -10,6 +9,9 @@ | |||
10 | struct siginfo; | 9 | struct siginfo; |
11 | 10 | ||
12 | #ifdef __KERNEL__ | 11 | #ifdef __KERNEL__ |
12 | |||
13 | #include <linux/linkage.h> | ||
14 | |||
13 | /* Most things should be clean enough to redefine this at will, if care | 15 | /* Most things should be clean enough to redefine this at will, if care |
14 | is taken to make libc match. */ | 16 | is taken to make libc match. */ |
15 | 17 | ||
diff --git a/include/asm-i386/spinlock.h b/include/asm-i386/spinlock.h index d816c62a7a1d..d1020363c41a 100644 --- a/include/asm-i386/spinlock.h +++ b/include/asm-i386/spinlock.h | |||
@@ -22,7 +22,7 @@ | |||
22 | 22 | ||
23 | #define __raw_spin_lock_string \ | 23 | #define __raw_spin_lock_string \ |
24 | "\n1:\t" \ | 24 | "\n1:\t" \ |
25 | "lock ; decb %0\n\t" \ | 25 | LOCK_PREFIX " ; decb %0\n\t" \ |
26 | "jns 3f\n" \ | 26 | "jns 3f\n" \ |
27 | "2:\t" \ | 27 | "2:\t" \ |
28 | "rep;nop\n\t" \ | 28 | "rep;nop\n\t" \ |
@@ -38,7 +38,7 @@ | |||
38 | */ | 38 | */ |
39 | #define __raw_spin_lock_string_flags \ | 39 | #define __raw_spin_lock_string_flags \ |
40 | "\n1:\t" \ | 40 | "\n1:\t" \ |
41 | "lock ; decb %0\n\t" \ | 41 | LOCK_PREFIX " ; decb %0\n\t" \ |
42 | "jns 5f\n" \ | 42 | "jns 5f\n" \ |
43 | "2:\t" \ | 43 | "2:\t" \ |
44 | "testl $0x200, %1\n\t" \ | 44 | "testl $0x200, %1\n\t" \ |
@@ -57,15 +57,9 @@ | |||
57 | "jmp 4b\n" \ | 57 | "jmp 4b\n" \ |
58 | "5:\n\t" | 58 | "5:\n\t" |
59 | 59 | ||
60 | #define __raw_spin_lock_string_up \ | ||
61 | "\n\tdecb %0" | ||
62 | |||
63 | static inline void __raw_spin_lock(raw_spinlock_t *lock) | 60 | static inline void __raw_spin_lock(raw_spinlock_t *lock) |
64 | { | 61 | { |
65 | alternative_smp( | 62 | asm(__raw_spin_lock_string : "+m" (lock->slock) : : "memory"); |
66 | __raw_spin_lock_string, | ||
67 | __raw_spin_lock_string_up, | ||
68 | "+m" (lock->slock) : : "memory"); | ||
69 | } | 63 | } |
70 | 64 | ||
71 | /* | 65 | /* |
@@ -76,10 +70,7 @@ static inline void __raw_spin_lock(raw_spinlock_t *lock) | |||
76 | #ifndef CONFIG_PROVE_LOCKING | 70 | #ifndef CONFIG_PROVE_LOCKING |
77 | static inline void __raw_spin_lock_flags(raw_spinlock_t *lock, unsigned long flags) | 71 | static inline void __raw_spin_lock_flags(raw_spinlock_t *lock, unsigned long flags) |
78 | { | 72 | { |
79 | alternative_smp( | 73 | asm(__raw_spin_lock_string_flags : "+m" (lock->slock) : "r" (flags) : "memory"); |
80 | __raw_spin_lock_string_flags, | ||
81 | __raw_spin_lock_string_up, | ||
82 | "+m" (lock->slock) : "r" (flags) : "memory"); | ||
83 | } | 74 | } |
84 | #endif | 75 | #endif |
85 | 76 | ||
diff --git a/include/asm-i386/system.h b/include/asm-i386/system.h index 49928eb33f8b..098bcee94e38 100644 --- a/include/asm-i386/system.h +++ b/include/asm-i386/system.h | |||
@@ -11,9 +11,14 @@ | |||
11 | struct task_struct; /* one of the stranger aspects of C forward declarations.. */ | 11 | struct task_struct; /* one of the stranger aspects of C forward declarations.. */ |
12 | extern struct task_struct * FASTCALL(__switch_to(struct task_struct *prev, struct task_struct *next)); | 12 | extern struct task_struct * FASTCALL(__switch_to(struct task_struct *prev, struct task_struct *next)); |
13 | 13 | ||
14 | /* | ||
15 | * Saving eflags is important. It switches not only IOPL between tasks, | ||
16 | * it also protects other tasks from NT leaking through sysenter etc. | ||
17 | */ | ||
14 | #define switch_to(prev,next,last) do { \ | 18 | #define switch_to(prev,next,last) do { \ |
15 | unsigned long esi,edi; \ | 19 | unsigned long esi,edi; \ |
16 | asm volatile("pushl %%ebp\n\t" \ | 20 | asm volatile("pushfl\n\t" /* Save flags */ \ |
21 | "pushl %%ebp\n\t" \ | ||
17 | "movl %%esp,%0\n\t" /* save ESP */ \ | 22 | "movl %%esp,%0\n\t" /* save ESP */ \ |
18 | "movl %5,%%esp\n\t" /* restore ESP */ \ | 23 | "movl %5,%%esp\n\t" /* restore ESP */ \ |
19 | "movl $1f,%1\n\t" /* save EIP */ \ | 24 | "movl $1f,%1\n\t" /* save EIP */ \ |
@@ -21,6 +26,7 @@ extern struct task_struct * FASTCALL(__switch_to(struct task_struct *prev, struc | |||
21 | "jmp __switch_to\n" \ | 26 | "jmp __switch_to\n" \ |
22 | "1:\t" \ | 27 | "1:\t" \ |
23 | "popl %%ebp\n\t" \ | 28 | "popl %%ebp\n\t" \ |
29 | "popfl" \ | ||
24 | :"=m" (prev->thread.esp),"=m" (prev->thread.eip), \ | 30 | :"=m" (prev->thread.esp),"=m" (prev->thread.eip), \ |
25 | "=a" (last),"=S" (esi),"=D" (edi) \ | 31 | "=a" (last),"=S" (esi),"=D" (edi) \ |
26 | :"m" (next->thread.esp),"m" (next->thread.eip), \ | 32 | :"m" (next->thread.esp),"m" (next->thread.eip), \ |
diff --git a/include/asm-i386/unwind.h b/include/asm-i386/unwind.h index 69f0f1df6722..4c1a0b968569 100644 --- a/include/asm-i386/unwind.h +++ b/include/asm-i386/unwind.h | |||
@@ -87,6 +87,7 @@ static inline int arch_unw_user_mode(const struct unwind_frame_info *info) | |||
87 | #else | 87 | #else |
88 | 88 | ||
89 | #define UNW_PC(frame) ((void)(frame), 0) | 89 | #define UNW_PC(frame) ((void)(frame), 0) |
90 | #define UNW_SP(frame) ((void)(frame), 0) | ||
90 | 91 | ||
91 | static inline int arch_unw_user_mode(const void *info) | 92 | static inline int arch_unw_user_mode(const void *info) |
92 | { | 93 | { |
diff --git a/include/asm-ia64/Kbuild b/include/asm-ia64/Kbuild index 85d6f8005eb4..f1cb00f39c22 100644 --- a/include/asm-ia64/Kbuild +++ b/include/asm-ia64/Kbuild | |||
@@ -4,4 +4,4 @@ header-y += break.h fpu.h fpswa.h gcc_intrin.h ia64regs.h \ | |||
4 | intel_intrin.h intrinsics.h perfmon_default_smpl.h \ | 4 | intel_intrin.h intrinsics.h perfmon_default_smpl.h \ |
5 | ptrace_offsets.h rse.h setup.h ucontext.h | 5 | ptrace_offsets.h rse.h setup.h ucontext.h |
6 | 6 | ||
7 | unifdef-y += perfmon.h | 7 | unifdef-y += perfmon.h ustack.h |
diff --git a/include/asm-ia64/mman.h b/include/asm-ia64/mman.h index 6ba179f12718..c73b87832a1e 100644 --- a/include/asm-ia64/mman.h +++ b/include/asm-ia64/mman.h | |||
@@ -22,4 +22,12 @@ | |||
22 | #define MCL_CURRENT 1 /* lock all current mappings */ | 22 | #define MCL_CURRENT 1 /* lock all current mappings */ |
23 | #define MCL_FUTURE 2 /* lock all future mappings */ | 23 | #define MCL_FUTURE 2 /* lock all future mappings */ |
24 | 24 | ||
25 | #ifdef __KERNEL__ | ||
26 | #ifndef __ASSEMBLY__ | ||
27 | #define arch_mmap_check ia64_mmap_check | ||
28 | int ia64_mmap_check(unsigned long addr, unsigned long len, | ||
29 | unsigned long flags); | ||
30 | #endif | ||
31 | #endif | ||
32 | |||
25 | #endif /* _ASM_IA64_MMAN_H */ | 33 | #endif /* _ASM_IA64_MMAN_H */ |
diff --git a/include/asm-ia64/page.h b/include/asm-ia64/page.h index f5a949ec6e1e..947cb72b520e 100644 --- a/include/asm-ia64/page.h +++ b/include/asm-ia64/page.h | |||
@@ -7,6 +7,7 @@ | |||
7 | * David Mosberger-Tang <davidm@hpl.hp.com> | 7 | * David Mosberger-Tang <davidm@hpl.hp.com> |
8 | */ | 8 | */ |
9 | 9 | ||
10 | # ifdef __KERNEL__ | ||
10 | 11 | ||
11 | #include <asm/intrinsics.h> | 12 | #include <asm/intrinsics.h> |
12 | #include <asm/types.h> | 13 | #include <asm/types.h> |
@@ -64,7 +65,6 @@ | |||
64 | # define __pa(x) ((x) - PAGE_OFFSET) | 65 | # define __pa(x) ((x) - PAGE_OFFSET) |
65 | # define __va(x) ((x) + PAGE_OFFSET) | 66 | # define __va(x) ((x) + PAGE_OFFSET) |
66 | #else /* !__ASSEMBLY */ | 67 | #else /* !__ASSEMBLY */ |
67 | # ifdef __KERNEL__ | ||
68 | # define STRICT_MM_TYPECHECKS | 68 | # define STRICT_MM_TYPECHECKS |
69 | 69 | ||
70 | extern void clear_page (void *page); | 70 | extern void clear_page (void *page); |
@@ -174,7 +174,6 @@ get_order (unsigned long size) | |||
174 | return order; | 174 | return order; |
175 | } | 175 | } |
176 | 176 | ||
177 | # endif /* __KERNEL__ */ | ||
178 | #endif /* !__ASSEMBLY__ */ | 177 | #endif /* !__ASSEMBLY__ */ |
179 | 178 | ||
180 | #ifdef STRICT_MM_TYPECHECKS | 179 | #ifdef STRICT_MM_TYPECHECKS |
@@ -228,4 +227,5 @@ get_order (unsigned long size) | |||
228 | (((current->personality & READ_IMPLIES_EXEC) != 0) \ | 227 | (((current->personality & READ_IMPLIES_EXEC) != 0) \ |
229 | ? VM_EXEC : 0)) | 228 | ? VM_EXEC : 0)) |
230 | 229 | ||
230 | # endif /* __KERNEL__ */ | ||
231 | #endif /* _ASM_IA64_PAGE_H */ | 231 | #endif /* _ASM_IA64_PAGE_H */ |
diff --git a/include/asm-ia64/ptrace.h b/include/asm-ia64/ptrace.h index 415abb23b210..1414316efd40 100644 --- a/include/asm-ia64/ptrace.h +++ b/include/asm-ia64/ptrace.h | |||
@@ -56,6 +56,8 @@ | |||
56 | 56 | ||
57 | 57 | ||
58 | #include <asm/fpu.h> | 58 | #include <asm/fpu.h> |
59 | |||
60 | #ifdef __KERNEL__ | ||
59 | #ifndef ASM_OFFSETS_C | 61 | #ifndef ASM_OFFSETS_C |
60 | #include <asm/asm-offsets.h> | 62 | #include <asm/asm-offsets.h> |
61 | #endif | 63 | #endif |
@@ -79,10 +81,9 @@ | |||
79 | 81 | ||
80 | #define KERNEL_STACK_SIZE IA64_STK_OFFSET | 82 | #define KERNEL_STACK_SIZE IA64_STK_OFFSET |
81 | 83 | ||
82 | #ifndef __ASSEMBLY__ | 84 | #endif /* __KERNEL__ */ |
83 | 85 | ||
84 | #include <asm/current.h> | 86 | #ifndef __ASSEMBLY__ |
85 | #include <asm/page.h> | ||
86 | 87 | ||
87 | /* | 88 | /* |
88 | * This struct defines the way the registers are saved on system | 89 | * This struct defines the way the registers are saved on system |
@@ -229,6 +230,9 @@ struct switch_stack { | |||
229 | 230 | ||
230 | #ifdef __KERNEL__ | 231 | #ifdef __KERNEL__ |
231 | 232 | ||
233 | #include <asm/current.h> | ||
234 | #include <asm/page.h> | ||
235 | |||
232 | #define __ARCH_SYS_PTRACE 1 | 236 | #define __ARCH_SYS_PTRACE 1 |
233 | 237 | ||
234 | /* | 238 | /* |
diff --git a/include/asm-ia64/sn/sn_sal.h b/include/asm-ia64/sn/sn_sal.h index bd4452bda357..ba826b3f75bb 100644 --- a/include/asm-ia64/sn/sn_sal.h +++ b/include/asm-ia64/sn/sn_sal.h | |||
@@ -706,12 +706,9 @@ static inline int | |||
706 | sn_change_memprotect(u64 paddr, u64 len, u64 perms, u64 *nasid_array) | 706 | sn_change_memprotect(u64 paddr, u64 len, u64 perms, u64 *nasid_array) |
707 | { | 707 | { |
708 | struct ia64_sal_retval ret_stuff; | 708 | struct ia64_sal_retval ret_stuff; |
709 | unsigned long irq_flags; | ||
710 | 709 | ||
711 | local_irq_save(irq_flags); | ||
712 | ia64_sal_oemcall_nolock(&ret_stuff, SN_SAL_MEMPROTECT, paddr, len, | 710 | ia64_sal_oemcall_nolock(&ret_stuff, SN_SAL_MEMPROTECT, paddr, len, |
713 | (u64)nasid_array, perms, 0, 0, 0); | 711 | (u64)nasid_array, perms, 0, 0, 0); |
714 | local_irq_restore(irq_flags); | ||
715 | return ret_stuff.status; | 712 | return ret_stuff.status; |
716 | } | 713 | } |
717 | #define SN_MEMPROT_ACCESS_CLASS_0 0x14a080 | 714 | #define SN_MEMPROT_ACCESS_CLASS_0 0x14a080 |
@@ -1143,12 +1140,9 @@ static inline int | |||
1143 | sn_inject_error(u64 paddr, u64 *data, u64 *ecc) | 1140 | sn_inject_error(u64 paddr, u64 *data, u64 *ecc) |
1144 | { | 1141 | { |
1145 | struct ia64_sal_retval ret_stuff; | 1142 | struct ia64_sal_retval ret_stuff; |
1146 | unsigned long irq_flags; | ||
1147 | 1143 | ||
1148 | local_irq_save(irq_flags); | ||
1149 | ia64_sal_oemcall_nolock(&ret_stuff, SN_SAL_INJECT_ERROR, paddr, (u64)data, | 1144 | ia64_sal_oemcall_nolock(&ret_stuff, SN_SAL_INJECT_ERROR, paddr, (u64)data, |
1150 | (u64)ecc, 0, 0, 0, 0); | 1145 | (u64)ecc, 0, 0, 0, 0); |
1151 | local_irq_restore(irq_flags); | ||
1152 | return ret_stuff.status; | 1146 | return ret_stuff.status; |
1153 | } | 1147 | } |
1154 | 1148 | ||
diff --git a/include/asm-ia64/sn/xp.h b/include/asm-ia64/sn/xp.h index 9bd2f9bf329b..6f807e0193b7 100644 --- a/include/asm-ia64/sn/xp.h +++ b/include/asm-ia64/sn/xp.h | |||
@@ -60,23 +60,37 @@ | |||
60 | * the bte_copy() once in the hope that the failure was due to a temporary | 60 | * the bte_copy() once in the hope that the failure was due to a temporary |
61 | * aberration (i.e., the link going down temporarily). | 61 | * aberration (i.e., the link going down temporarily). |
62 | * | 62 | * |
63 | * See bte_copy for definition of the input parameters. | 63 | * src - physical address of the source of the transfer. |
64 | * vdst - virtual address of the destination of the transfer. | ||
65 | * len - number of bytes to transfer from source to destination. | ||
66 | * mode - see bte_copy() for definition. | ||
67 | * notification - see bte_copy() for definition. | ||
64 | * | 68 | * |
65 | * Note: xp_bte_copy() should never be called while holding a spinlock. | 69 | * Note: xp_bte_copy() should never be called while holding a spinlock. |
66 | */ | 70 | */ |
67 | static inline bte_result_t | 71 | static inline bte_result_t |
68 | xp_bte_copy(u64 src, u64 dest, u64 len, u64 mode, void *notification) | 72 | xp_bte_copy(u64 src, u64 vdst, u64 len, u64 mode, void *notification) |
69 | { | 73 | { |
70 | bte_result_t ret; | 74 | bte_result_t ret; |
75 | u64 pdst = ia64_tpa(vdst); | ||
71 | 76 | ||
72 | 77 | ||
73 | ret = bte_copy(src, dest, len, mode, notification); | 78 | /* |
79 | * Ensure that the physically mapped memory is contiguous. | ||
80 | * | ||
81 | * We do this by ensuring that the memory is from region 7 only. | ||
82 | * If the need should arise to use memory from one of the other | ||
83 | * regions, then modify the BUG_ON() statement to ensure that the | ||
84 | * memory from that region is always physically contiguous. | ||
85 | */ | ||
86 | BUG_ON(REGION_NUMBER(vdst) != RGN_KERNEL); | ||
74 | 87 | ||
88 | ret = bte_copy(src, pdst, len, mode, notification); | ||
75 | if (ret != BTE_SUCCESS) { | 89 | if (ret != BTE_SUCCESS) { |
76 | if (!in_interrupt()) { | 90 | if (!in_interrupt()) { |
77 | cond_resched(); | 91 | cond_resched(); |
78 | } | 92 | } |
79 | ret = bte_copy(src, dest, len, mode, notification); | 93 | ret = bte_copy(src, pdst, len, mode, notification); |
80 | } | 94 | } |
81 | 95 | ||
82 | return ret; | 96 | return ret; |
diff --git a/include/asm-ia64/sn/xpc.h b/include/asm-ia64/sn/xpc.h index b72af597878d..35e1386f37ab 100644 --- a/include/asm-ia64/sn/xpc.h +++ b/include/asm-ia64/sn/xpc.h | |||
@@ -683,7 +683,9 @@ extern struct xpc_vars *xpc_vars; | |||
683 | extern struct xpc_rsvd_page *xpc_rsvd_page; | 683 | extern struct xpc_rsvd_page *xpc_rsvd_page; |
684 | extern struct xpc_vars_part *xpc_vars_part; | 684 | extern struct xpc_vars_part *xpc_vars_part; |
685 | extern struct xpc_partition xpc_partitions[XP_MAX_PARTITIONS + 1]; | 685 | extern struct xpc_partition xpc_partitions[XP_MAX_PARTITIONS + 1]; |
686 | extern char xpc_remote_copy_buffer[]; | 686 | extern char *xpc_remote_copy_buffer; |
687 | extern void *xpc_remote_copy_buffer_base; | ||
688 | extern void *xpc_kmalloc_cacheline_aligned(size_t, gfp_t, void **); | ||
687 | extern struct xpc_rsvd_page *xpc_rsvd_page_init(void); | 689 | extern struct xpc_rsvd_page *xpc_rsvd_page_init(void); |
688 | extern void xpc_allow_IPI_ops(void); | 690 | extern void xpc_allow_IPI_ops(void); |
689 | extern void xpc_restrict_IPI_ops(void); | 691 | extern void xpc_restrict_IPI_ops(void); |
diff --git a/include/asm-ia64/unistd.h b/include/asm-ia64/unistd.h index bb0eb727dcd0..f581662c5ab8 100644 --- a/include/asm-ia64/unistd.h +++ b/include/asm-ia64/unistd.h | |||
@@ -286,8 +286,7 @@ | |||
286 | /* 1294, 1295 reserved for pselect/ppoll */ | 286 | /* 1294, 1295 reserved for pselect/ppoll */ |
287 | #define __NR_unshare 1296 | 287 | #define __NR_unshare 1296 |
288 | #define __NR_splice 1297 | 288 | #define __NR_splice 1297 |
289 | #define __NR_set_robust_list 1298 | 289 | /* 1298, 1299 reserved for set_robust_list/get_robust_list */ |
290 | #define __NR_get_robust_list 1299 | ||
291 | #define __NR_sync_file_range 1300 | 290 | #define __NR_sync_file_range 1300 |
292 | #define __NR_tee 1301 | 291 | #define __NR_tee 1301 |
293 | #define __NR_vmsplice 1302 | 292 | #define __NR_vmsplice 1302 |
diff --git a/include/asm-ia64/ustack.h b/include/asm-ia64/ustack.h index da55c91246e3..a349467913ea 100644 --- a/include/asm-ia64/ustack.h +++ b/include/asm-ia64/ustack.h | |||
@@ -5,12 +5,15 @@ | |||
5 | * Constants for the user stack size | 5 | * Constants for the user stack size |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #ifdef __KERNEL__ | ||
8 | #include <asm/page.h> | 9 | #include <asm/page.h> |
9 | 10 | ||
10 | /* The absolute hard limit for stack size is 1/2 of the mappable space in the region */ | 11 | /* The absolute hard limit for stack size is 1/2 of the mappable space in the region */ |
11 | #define MAX_USER_STACK_SIZE (RGN_MAP_LIMIT/2) | 12 | #define MAX_USER_STACK_SIZE (RGN_MAP_LIMIT/2) |
12 | /* Make a default stack size of 2GB */ | ||
13 | #define DEFAULT_USER_STACK_SIZE (1UL << 31) | ||
14 | #define STACK_TOP (0x6000000000000000UL + RGN_MAP_LIMIT) | 13 | #define STACK_TOP (0x6000000000000000UL + RGN_MAP_LIMIT) |
14 | #endif | ||
15 | |||
16 | /* Make a default stack size of 2GiB */ | ||
17 | #define DEFAULT_USER_STACK_SIZE (1UL << 31) | ||
15 | 18 | ||
16 | #endif /* _ASM_IA64_USTACK_H */ | 19 | #endif /* _ASM_IA64_USTACK_H */ |
diff --git a/include/asm-m68k/page.h b/include/asm-m68k/page.h index db017f838c29..fcc165ddd09e 100644 --- a/include/asm-m68k/page.h +++ b/include/asm-m68k/page.h | |||
@@ -2,6 +2,8 @@ | |||
2 | #define _M68K_PAGE_H | 2 | #define _M68K_PAGE_H |
3 | 3 | ||
4 | 4 | ||
5 | #ifdef __KERNEL__ | ||
6 | |||
5 | /* PAGE_SHIFT determines the page size */ | 7 | /* PAGE_SHIFT determines the page size */ |
6 | #ifndef CONFIG_SUN3 | 8 | #ifndef CONFIG_SUN3 |
7 | #define PAGE_SHIFT (12) | 9 | #define PAGE_SHIFT (12) |
@@ -15,8 +17,6 @@ | |||
15 | #endif | 17 | #endif |
16 | #define PAGE_MASK (~(PAGE_SIZE-1)) | 18 | #define PAGE_MASK (~(PAGE_SIZE-1)) |
17 | 19 | ||
18 | #ifdef __KERNEL__ | ||
19 | |||
20 | #include <asm/setup.h> | 20 | #include <asm/setup.h> |
21 | 21 | ||
22 | #if PAGE_SHIFT < 13 | 22 | #if PAGE_SHIFT < 13 |
@@ -175,8 +175,8 @@ static inline void *__va(unsigned long x) | |||
175 | #define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \ | 175 | #define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \ |
176 | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC) | 176 | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC) |
177 | 177 | ||
178 | #endif /* __KERNEL__ */ | ||
179 | |||
180 | #include <asm-generic/page.h> | 178 | #include <asm-generic/page.h> |
181 | 179 | ||
180 | #endif /* __KERNEL__ */ | ||
181 | |||
182 | #endif /* _M68K_PAGE_H */ | 182 | #endif /* _M68K_PAGE_H */ |
diff --git a/include/asm-mips/page.h b/include/asm-mips/page.h index 6ed1151a05a3..219d359861f3 100644 --- a/include/asm-mips/page.h +++ b/include/asm-mips/page.h | |||
@@ -14,8 +14,6 @@ | |||
14 | 14 | ||
15 | #include <spaces.h> | 15 | #include <spaces.h> |
16 | 16 | ||
17 | #endif | ||
18 | |||
19 | /* | 17 | /* |
20 | * PAGE_SHIFT determines the page size | 18 | * PAGE_SHIFT determines the page size |
21 | */ | 19 | */ |
@@ -34,8 +32,6 @@ | |||
34 | #define PAGE_SIZE (1UL << PAGE_SHIFT) | 32 | #define PAGE_SIZE (1UL << PAGE_SHIFT) |
35 | #define PAGE_MASK (~((1 << PAGE_SHIFT) - 1)) | 33 | #define PAGE_MASK (~((1 << PAGE_SHIFT) - 1)) |
36 | 34 | ||
37 | |||
38 | #ifdef __KERNEL__ | ||
39 | #ifndef __ASSEMBLY__ | 35 | #ifndef __ASSEMBLY__ |
40 | 36 | ||
41 | extern void clear_page(void * page); | 37 | extern void clear_page(void * page); |
@@ -168,8 +164,6 @@ typedef struct { unsigned long pgprot; } pgprot_t; | |||
168 | #define UNCAC_ADDR(addr) ((addr) - PAGE_OFFSET + UNCAC_BASE) | 164 | #define UNCAC_ADDR(addr) ((addr) - PAGE_OFFSET + UNCAC_BASE) |
169 | #define CAC_ADDR(addr) ((addr) - UNCAC_BASE + PAGE_OFFSET) | 165 | #define CAC_ADDR(addr) ((addr) - UNCAC_BASE + PAGE_OFFSET) |
170 | 166 | ||
171 | #endif /* defined (__KERNEL__) */ | ||
172 | |||
173 | #ifdef CONFIG_LIMITED_DMA | 167 | #ifdef CONFIG_LIMITED_DMA |
174 | #define WANT_PAGE_VIRTUAL | 168 | #define WANT_PAGE_VIRTUAL |
175 | #endif | 169 | #endif |
@@ -177,4 +171,6 @@ typedef struct { unsigned long pgprot; } pgprot_t; | |||
177 | #include <asm-generic/memory_model.h> | 171 | #include <asm-generic/memory_model.h> |
178 | #include <asm-generic/page.h> | 172 | #include <asm-generic/page.h> |
179 | 173 | ||
174 | #endif /* defined (__KERNEL__) */ | ||
175 | |||
180 | #endif /* _ASM_PAGE_H */ | 176 | #endif /* _ASM_PAGE_H */ |
diff --git a/include/asm-parisc/page.h b/include/asm-parisc/page.h index 0695bc958d56..57d6d82756dd 100644 --- a/include/asm-parisc/page.h +++ b/include/asm-parisc/page.h | |||
@@ -1,22 +1,14 @@ | |||
1 | #ifndef _PARISC_PAGE_H | 1 | #ifndef _PARISC_PAGE_H |
2 | #define _PARISC_PAGE_H | 2 | #define _PARISC_PAGE_H |
3 | 3 | ||
4 | #if !defined(__KERNEL__) | ||
5 | /* this is for userspace applications (4k page size) */ | ||
6 | # define PAGE_SHIFT 12 /* 4k */ | ||
7 | # define PAGE_SIZE (1UL << PAGE_SHIFT) | ||
8 | # define PAGE_MASK (~(PAGE_SIZE-1)) | ||
9 | #endif | ||
10 | |||
11 | |||
12 | #ifdef __KERNEL__ | 4 | #ifdef __KERNEL__ |
13 | 5 | ||
14 | #if defined(CONFIG_PARISC_PAGE_SIZE_4KB) | 6 | #if defined(CONFIG_PARISC_PAGE_SIZE_4KB) |
15 | # define PAGE_SHIFT 12 /* 4k */ | 7 | # define PAGE_SHIFT 12 |
16 | #elif defined(CONFIG_PARISC_PAGE_SIZE_16KB) | 8 | #elif defined(CONFIG_PARISC_PAGE_SIZE_16KB) |
17 | # define PAGE_SHIFT 14 /* 16k */ | 9 | # define PAGE_SHIFT 14 |
18 | #elif defined(CONFIG_PARISC_PAGE_SIZE_64KB) | 10 | #elif defined(CONFIG_PARISC_PAGE_SIZE_64KB) |
19 | # define PAGE_SHIFT 16 /* 64k */ | 11 | # define PAGE_SHIFT 16 |
20 | #else | 12 | #else |
21 | # error "unknown default kernel page size" | 13 | # error "unknown default kernel page size" |
22 | #endif | 14 | #endif |
@@ -188,9 +180,9 @@ extern int npmem_ranges; | |||
188 | #define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \ | 180 | #define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \ |
189 | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC) | 181 | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC) |
190 | 182 | ||
191 | #endif /* __KERNEL__ */ | ||
192 | |||
193 | #include <asm-generic/memory_model.h> | 183 | #include <asm-generic/memory_model.h> |
194 | #include <asm-generic/page.h> | 184 | #include <asm-generic/page.h> |
195 | 185 | ||
186 | #endif /* __KERNEL__ */ | ||
187 | |||
196 | #endif /* _PARISC_PAGE_H */ | 188 | #endif /* _PARISC_PAGE_H */ |
diff --git a/include/asm-powerpc/eeh.h b/include/asm-powerpc/eeh.h index 4df3e80118f4..6a784396660b 100644 --- a/include/asm-powerpc/eeh.h +++ b/include/asm-powerpc/eeh.h | |||
@@ -205,6 +205,7 @@ static inline void eeh_memset_io(volatile void __iomem *addr, int c, | |||
205 | lc |= lc << 8; | 205 | lc |= lc << 8; |
206 | lc |= lc << 16; | 206 | lc |= lc << 16; |
207 | 207 | ||
208 | __asm__ __volatile__ ("sync" : : : "memory"); | ||
208 | while(n && !EEH_CHECK_ALIGN(p, 4)) { | 209 | while(n && !EEH_CHECK_ALIGN(p, 4)) { |
209 | *((volatile u8 *)p) = c; | 210 | *((volatile u8 *)p) = c; |
210 | p++; | 211 | p++; |
@@ -229,6 +230,7 @@ static inline void eeh_memcpy_fromio(void *dest, const volatile void __iomem *sr | |||
229 | void *destsave = dest; | 230 | void *destsave = dest; |
230 | unsigned long nsave = n; | 231 | unsigned long nsave = n; |
231 | 232 | ||
233 | __asm__ __volatile__ ("sync" : : : "memory"); | ||
232 | while(n && (!EEH_CHECK_ALIGN(vsrc, 4) || !EEH_CHECK_ALIGN(dest, 4))) { | 234 | while(n && (!EEH_CHECK_ALIGN(vsrc, 4) || !EEH_CHECK_ALIGN(dest, 4))) { |
233 | *((u8 *)dest) = *((volatile u8 *)vsrc); | 235 | *((u8 *)dest) = *((volatile u8 *)vsrc); |
234 | __asm__ __volatile__ ("eieio" : : : "memory"); | 236 | __asm__ __volatile__ ("eieio" : : : "memory"); |
@@ -266,6 +268,7 @@ static inline void eeh_memcpy_toio(volatile void __iomem *dest, const void *src, | |||
266 | { | 268 | { |
267 | void *vdest = (void __force *) dest; | 269 | void *vdest = (void __force *) dest; |
268 | 270 | ||
271 | __asm__ __volatile__ ("sync" : : : "memory"); | ||
269 | while(n && (!EEH_CHECK_ALIGN(vdest, 4) || !EEH_CHECK_ALIGN(src, 4))) { | 272 | while(n && (!EEH_CHECK_ALIGN(vdest, 4) || !EEH_CHECK_ALIGN(src, 4))) { |
270 | *((volatile u8 *)vdest) = *((u8 *)src); | 273 | *((volatile u8 *)vdest) = *((u8 *)src); |
271 | src++; | 274 | src++; |
diff --git a/include/asm-powerpc/futex.h b/include/asm-powerpc/futex.h index f1b3c00bc1ce..936422e54891 100644 --- a/include/asm-powerpc/futex.h +++ b/include/asm-powerpc/futex.h | |||
@@ -84,7 +84,33 @@ static inline int futex_atomic_op_inuser (int encoded_op, int __user *uaddr) | |||
84 | static inline int | 84 | static inline int |
85 | futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval) | 85 | futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval) |
86 | { | 86 | { |
87 | return -ENOSYS; | 87 | int prev; |
88 | |||
89 | if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int))) | ||
90 | return -EFAULT; | ||
91 | |||
92 | __asm__ __volatile__ ( | ||
93 | LWSYNC_ON_SMP | ||
94 | "1: lwarx %0,0,%2 # futex_atomic_cmpxchg_inatomic\n\ | ||
95 | cmpw 0,%0,%3\n\ | ||
96 | bne- 3f\n" | ||
97 | PPC405_ERR77(0,%2) | ||
98 | "2: stwcx. %4,0,%2\n\ | ||
99 | bne- 1b\n" | ||
100 | ISYNC_ON_SMP | ||
101 | "3: .section .fixup,\"ax\"\n\ | ||
102 | 4: li %0,%5\n\ | ||
103 | b 3b\n\ | ||
104 | .previous\n\ | ||
105 | .section __ex_table,\"a\"\n\ | ||
106 | .align 3\n\ | ||
107 | " PPC_LONG "1b,4b,2b,4b\n\ | ||
108 | .previous" \ | ||
109 | : "=&r" (prev), "+m" (*uaddr) | ||
110 | : "r" (uaddr), "r" (oldval), "r" (newval), "i" (-EFAULT) | ||
111 | : "cc", "memory"); | ||
112 | |||
113 | return prev; | ||
88 | } | 114 | } |
89 | 115 | ||
90 | #endif /* __KERNEL__ */ | 116 | #endif /* __KERNEL__ */ |
diff --git a/include/asm-powerpc/io.h b/include/asm-powerpc/io.h index a9496f34b048..212428db0d8b 100644 --- a/include/asm-powerpc/io.h +++ b/include/asm-powerpc/io.h | |||
@@ -19,6 +19,7 @@ extern int check_legacy_ioport(unsigned long base_port); | |||
19 | #include <linux/compiler.h> | 19 | #include <linux/compiler.h> |
20 | #include <asm/page.h> | 20 | #include <asm/page.h> |
21 | #include <asm/byteorder.h> | 21 | #include <asm/byteorder.h> |
22 | #include <asm/paca.h> | ||
22 | #ifdef CONFIG_PPC_ISERIES | 23 | #ifdef CONFIG_PPC_ISERIES |
23 | #include <asm/iseries/iseries_io.h> | 24 | #include <asm/iseries/iseries_io.h> |
24 | #endif | 25 | #endif |
@@ -72,6 +73,9 @@ extern unsigned long pci_io_base; | |||
72 | * Neither do the standard versions now, these are just here | 73 | * Neither do the standard versions now, these are just here |
73 | * for older code. | 74 | * for older code. |
74 | */ | 75 | */ |
76 | #define insb(port, buf, ns) _insb((u8 __iomem *)((port)+pci_io_base), (buf), (ns)) | ||
77 | #define insw(port, buf, ns) _insw_ns((u8 __iomem *)((port)+pci_io_base), (buf), (ns)) | ||
78 | #define insl(port, buf, nl) _insl_ns((u8 __iomem *)((port)+pci_io_base), (buf), (nl)) | ||
75 | #define insw_ns(port, buf, ns) _insw_ns((u16 __iomem *)((port)+pci_io_base), (buf), (ns)) | 79 | #define insw_ns(port, buf, ns) _insw_ns((u16 __iomem *)((port)+pci_io_base), (buf), (ns)) |
76 | #define insl_ns(port, buf, nl) _insl_ns((u32 __iomem *)((port)+pci_io_base), (buf), (nl)) | 80 | #define insl_ns(port, buf, nl) _insl_ns((u32 __iomem *)((port)+pci_io_base), (buf), (nl)) |
77 | #else | 81 | #else |
@@ -137,12 +141,12 @@ static inline void __raw_writeq(unsigned long v, volatile void __iomem *addr) | |||
137 | #define insw_ns(port, buf, ns) eeh_insw_ns((port), (buf), (ns)) | 141 | #define insw_ns(port, buf, ns) eeh_insw_ns((port), (buf), (ns)) |
138 | #define insl_ns(port, buf, nl) eeh_insl_ns((port), (buf), (nl)) | 142 | #define insl_ns(port, buf, nl) eeh_insl_ns((port), (buf), (nl)) |
139 | 143 | ||
144 | #endif | ||
145 | |||
140 | #define outsb(port, buf, ns) _outsb((u8 __iomem *)((port)+pci_io_base), (buf), (ns)) | 146 | #define outsb(port, buf, ns) _outsb((u8 __iomem *)((port)+pci_io_base), (buf), (ns)) |
141 | #define outsw(port, buf, ns) _outsw_ns((u16 __iomem *)((port)+pci_io_base), (buf), (ns)) | 147 | #define outsw(port, buf, ns) _outsw_ns((u16 __iomem *)((port)+pci_io_base), (buf), (ns)) |
142 | #define outsl(port, buf, nl) _outsl_ns((u32 __iomem *)((port)+pci_io_base), (buf), (nl)) | 148 | #define outsl(port, buf, nl) _outsl_ns((u32 __iomem *)((port)+pci_io_base), (buf), (nl)) |
143 | 149 | ||
144 | #endif | ||
145 | |||
146 | #define readb_relaxed(addr) readb(addr) | 150 | #define readb_relaxed(addr) readb(addr) |
147 | #define readw_relaxed(addr) readw(addr) | 151 | #define readw_relaxed(addr) readw(addr) |
148 | #define readl_relaxed(addr) readl(addr) | 152 | #define readl_relaxed(addr) readl(addr) |
@@ -159,7 +163,11 @@ extern void _outsw_ns(volatile u16 __iomem *port, const void *buf, int ns); | |||
159 | extern void _insl_ns(volatile u32 __iomem *port, void *buf, int nl); | 163 | extern void _insl_ns(volatile u32 __iomem *port, void *buf, int nl); |
160 | extern void _outsl_ns(volatile u32 __iomem *port, const void *buf, int nl); | 164 | extern void _outsl_ns(volatile u32 __iomem *port, const void *buf, int nl); |
161 | 165 | ||
162 | #define mmiowb() | 166 | static inline void mmiowb(void) |
167 | { | ||
168 | __asm__ __volatile__ ("sync" : : : "memory"); | ||
169 | get_paca()->io_sync = 0; | ||
170 | } | ||
163 | 171 | ||
164 | /* | 172 | /* |
165 | * output pause versions need a delay at least for the | 173 | * output pause versions need a delay at least for the |
@@ -275,22 +283,23 @@ static inline int in_8(const volatile unsigned char __iomem *addr) | |||
275 | { | 283 | { |
276 | int ret; | 284 | int ret; |
277 | 285 | ||
278 | __asm__ __volatile__("lbz%U1%X1 %0,%1; twi 0,%0,0; isync" | 286 | __asm__ __volatile__("sync; lbz%U1%X1 %0,%1; twi 0,%0,0; isync" |
279 | : "=r" (ret) : "m" (*addr)); | 287 | : "=r" (ret) : "m" (*addr)); |
280 | return ret; | 288 | return ret; |
281 | } | 289 | } |
282 | 290 | ||
283 | static inline void out_8(volatile unsigned char __iomem *addr, int val) | 291 | static inline void out_8(volatile unsigned char __iomem *addr, int val) |
284 | { | 292 | { |
285 | __asm__ __volatile__("stb%U0%X0 %1,%0; sync" | 293 | __asm__ __volatile__("sync; stb%U0%X0 %1,%0" |
286 | : "=m" (*addr) : "r" (val)); | 294 | : "=m" (*addr) : "r" (val)); |
295 | get_paca()->io_sync = 1; | ||
287 | } | 296 | } |
288 | 297 | ||
289 | static inline int in_le16(const volatile unsigned short __iomem *addr) | 298 | static inline int in_le16(const volatile unsigned short __iomem *addr) |
290 | { | 299 | { |
291 | int ret; | 300 | int ret; |
292 | 301 | ||
293 | __asm__ __volatile__("lhbrx %0,0,%1; twi 0,%0,0; isync" | 302 | __asm__ __volatile__("sync; lhbrx %0,0,%1; twi 0,%0,0; isync" |
294 | : "=r" (ret) : "r" (addr), "m" (*addr)); | 303 | : "=r" (ret) : "r" (addr), "m" (*addr)); |
295 | return ret; | 304 | return ret; |
296 | } | 305 | } |
@@ -299,28 +308,30 @@ static inline int in_be16(const volatile unsigned short __iomem *addr) | |||
299 | { | 308 | { |
300 | int ret; | 309 | int ret; |
301 | 310 | ||
302 | __asm__ __volatile__("lhz%U1%X1 %0,%1; twi 0,%0,0; isync" | 311 | __asm__ __volatile__("sync; lhz%U1%X1 %0,%1; twi 0,%0,0; isync" |
303 | : "=r" (ret) : "m" (*addr)); | 312 | : "=r" (ret) : "m" (*addr)); |
304 | return ret; | 313 | return ret; |
305 | } | 314 | } |
306 | 315 | ||
307 | static inline void out_le16(volatile unsigned short __iomem *addr, int val) | 316 | static inline void out_le16(volatile unsigned short __iomem *addr, int val) |
308 | { | 317 | { |
309 | __asm__ __volatile__("sthbrx %1,0,%2; sync" | 318 | __asm__ __volatile__("sync; sthbrx %1,0,%2" |
310 | : "=m" (*addr) : "r" (val), "r" (addr)); | 319 | : "=m" (*addr) : "r" (val), "r" (addr)); |
320 | get_paca()->io_sync = 1; | ||
311 | } | 321 | } |
312 | 322 | ||
313 | static inline void out_be16(volatile unsigned short __iomem *addr, int val) | 323 | static inline void out_be16(volatile unsigned short __iomem *addr, int val) |
314 | { | 324 | { |
315 | __asm__ __volatile__("sth%U0%X0 %1,%0; sync" | 325 | __asm__ __volatile__("sync; sth%U0%X0 %1,%0" |
316 | : "=m" (*addr) : "r" (val)); | 326 | : "=m" (*addr) : "r" (val)); |
327 | get_paca()->io_sync = 1; | ||
317 | } | 328 | } |
318 | 329 | ||
319 | static inline unsigned in_le32(const volatile unsigned __iomem *addr) | 330 | static inline unsigned in_le32(const volatile unsigned __iomem *addr) |
320 | { | 331 | { |
321 | unsigned ret; | 332 | unsigned ret; |
322 | 333 | ||
323 | __asm__ __volatile__("lwbrx %0,0,%1; twi 0,%0,0; isync" | 334 | __asm__ __volatile__("sync; lwbrx %0,0,%1; twi 0,%0,0; isync" |
324 | : "=r" (ret) : "r" (addr), "m" (*addr)); | 335 | : "=r" (ret) : "r" (addr), "m" (*addr)); |
325 | return ret; | 336 | return ret; |
326 | } | 337 | } |
@@ -329,21 +340,23 @@ static inline unsigned in_be32(const volatile unsigned __iomem *addr) | |||
329 | { | 340 | { |
330 | unsigned ret; | 341 | unsigned ret; |
331 | 342 | ||
332 | __asm__ __volatile__("lwz%U1%X1 %0,%1; twi 0,%0,0; isync" | 343 | __asm__ __volatile__("sync; lwz%U1%X1 %0,%1; twi 0,%0,0; isync" |
333 | : "=r" (ret) : "m" (*addr)); | 344 | : "=r" (ret) : "m" (*addr)); |
334 | return ret; | 345 | return ret; |
335 | } | 346 | } |
336 | 347 | ||
337 | static inline void out_le32(volatile unsigned __iomem *addr, int val) | 348 | static inline void out_le32(volatile unsigned __iomem *addr, int val) |
338 | { | 349 | { |
339 | __asm__ __volatile__("stwbrx %1,0,%2; sync" : "=m" (*addr) | 350 | __asm__ __volatile__("sync; stwbrx %1,0,%2" : "=m" (*addr) |
340 | : "r" (val), "r" (addr)); | 351 | : "r" (val), "r" (addr)); |
352 | get_paca()->io_sync = 1; | ||
341 | } | 353 | } |
342 | 354 | ||
343 | static inline void out_be32(volatile unsigned __iomem *addr, int val) | 355 | static inline void out_be32(volatile unsigned __iomem *addr, int val) |
344 | { | 356 | { |
345 | __asm__ __volatile__("stw%U0%X0 %1,%0; sync" | 357 | __asm__ __volatile__("sync; stw%U0%X0 %1,%0" |
346 | : "=m" (*addr) : "r" (val)); | 358 | : "=m" (*addr) : "r" (val)); |
359 | get_paca()->io_sync = 1; | ||
347 | } | 360 | } |
348 | 361 | ||
349 | static inline unsigned long in_le64(const volatile unsigned long __iomem *addr) | 362 | static inline unsigned long in_le64(const volatile unsigned long __iomem *addr) |
@@ -351,6 +364,7 @@ static inline unsigned long in_le64(const volatile unsigned long __iomem *addr) | |||
351 | unsigned long tmp, ret; | 364 | unsigned long tmp, ret; |
352 | 365 | ||
353 | __asm__ __volatile__( | 366 | __asm__ __volatile__( |
367 | "sync\n" | ||
354 | "ld %1,0(%2)\n" | 368 | "ld %1,0(%2)\n" |
355 | "twi 0,%1,0\n" | 369 | "twi 0,%1,0\n" |
356 | "isync\n" | 370 | "isync\n" |
@@ -369,7 +383,7 @@ static inline unsigned long in_be64(const volatile unsigned long __iomem *addr) | |||
369 | { | 383 | { |
370 | unsigned long ret; | 384 | unsigned long ret; |
371 | 385 | ||
372 | __asm__ __volatile__("ld%U1%X1 %0,%1; twi 0,%0,0; isync" | 386 | __asm__ __volatile__("sync; ld%U1%X1 %0,%1; twi 0,%0,0; isync" |
373 | : "=r" (ret) : "m" (*addr)); | 387 | : "=r" (ret) : "m" (*addr)); |
374 | return ret; | 388 | return ret; |
375 | } | 389 | } |
@@ -386,14 +400,16 @@ static inline void out_le64(volatile unsigned long __iomem *addr, unsigned long | |||
386 | "rldicl %1,%1,32,0\n" | 400 | "rldicl %1,%1,32,0\n" |
387 | "rlwimi %0,%1,8,8,31\n" | 401 | "rlwimi %0,%1,8,8,31\n" |
388 | "rlwimi %0,%1,24,16,23\n" | 402 | "rlwimi %0,%1,24,16,23\n" |
389 | "std %0,0(%3)\n" | 403 | "sync\n" |
390 | "sync" | 404 | "std %0,0(%3)" |
391 | : "=&r" (tmp) , "=&r" (val) : "1" (val) , "b" (addr) , "m" (*addr)); | 405 | : "=&r" (tmp) , "=&r" (val) : "1" (val) , "b" (addr) , "m" (*addr)); |
406 | get_paca()->io_sync = 1; | ||
392 | } | 407 | } |
393 | 408 | ||
394 | static inline void out_be64(volatile unsigned long __iomem *addr, unsigned long val) | 409 | static inline void out_be64(volatile unsigned long __iomem *addr, unsigned long val) |
395 | { | 410 | { |
396 | __asm__ __volatile__("std%U0%X0 %1,%0; sync" : "=m" (*addr) : "r" (val)); | 411 | __asm__ __volatile__("sync; std%U0%X0 %1,%0" : "=m" (*addr) : "r" (val)); |
412 | get_paca()->io_sync = 1; | ||
397 | } | 413 | } |
398 | 414 | ||
399 | #ifndef CONFIG_PPC_ISERIES | 415 | #ifndef CONFIG_PPC_ISERIES |
diff --git a/include/asm-powerpc/ipic.h b/include/asm-powerpc/ipic.h index 0fe396a2b666..53079ec3a515 100644 --- a/include/asm-powerpc/ipic.h +++ b/include/asm-powerpc/ipic.h | |||
@@ -69,9 +69,6 @@ enum ipic_mcp_irq { | |||
69 | IPIC_MCP_MU = 7, | 69 | IPIC_MCP_MU = 7, |
70 | }; | 70 | }; |
71 | 71 | ||
72 | extern void ipic_init(phys_addr_t phys_addr, unsigned int flags, | ||
73 | unsigned int irq_offset, | ||
74 | unsigned char *senses, unsigned int senses_count); | ||
75 | extern int ipic_set_priority(unsigned int irq, unsigned int priority); | 72 | extern int ipic_set_priority(unsigned int irq, unsigned int priority); |
76 | extern void ipic_set_highest_priority(unsigned int irq); | 73 | extern void ipic_set_highest_priority(unsigned int irq); |
77 | extern void ipic_set_default_priority(void); | 74 | extern void ipic_set_default_priority(void); |
@@ -79,7 +76,16 @@ extern void ipic_enable_mcp(enum ipic_mcp_irq mcp_irq); | |||
79 | extern void ipic_disable_mcp(enum ipic_mcp_irq mcp_irq); | 76 | extern void ipic_disable_mcp(enum ipic_mcp_irq mcp_irq); |
80 | extern u32 ipic_get_mcp_status(void); | 77 | extern u32 ipic_get_mcp_status(void); |
81 | extern void ipic_clear_mcp_status(u32 mask); | 78 | extern void ipic_clear_mcp_status(u32 mask); |
79 | |||
80 | #ifdef CONFIG_PPC_MERGE | ||
81 | extern void ipic_init(struct device_node *node, unsigned int flags); | ||
82 | extern unsigned int ipic_get_irq(struct pt_regs *regs); | ||
83 | #else | ||
84 | extern void ipic_init(phys_addr_t phys_addr, unsigned int flags, | ||
85 | unsigned int irq_offset, | ||
86 | unsigned char *senses, unsigned int senses_count); | ||
82 | extern int ipic_get_irq(struct pt_regs *regs); | 87 | extern int ipic_get_irq(struct pt_regs *regs); |
88 | #endif | ||
83 | 89 | ||
84 | #endif /* __ASM_IPIC_H__ */ | 90 | #endif /* __ASM_IPIC_H__ */ |
85 | #endif /* __KERNEL__ */ | 91 | #endif /* __KERNEL__ */ |
diff --git a/include/asm-powerpc/kdump.h b/include/asm-powerpc/kdump.h index dc1574c945f8..10e8eb1e6f4f 100644 --- a/include/asm-powerpc/kdump.h +++ b/include/asm-powerpc/kdump.h | |||
@@ -7,7 +7,7 @@ | |||
7 | /* How many bytes to reserve at zero for kdump. The reserve limit should | 7 | /* How many bytes to reserve at zero for kdump. The reserve limit should |
8 | * be greater or equal to the trampoline's end address. | 8 | * be greater or equal to the trampoline's end address. |
9 | * Reserve to the end of the FWNMI area, see head_64.S */ | 9 | * Reserve to the end of the FWNMI area, see head_64.S */ |
10 | #define KDUMP_RESERVE_LIMIT 0x8000 | 10 | #define KDUMP_RESERVE_LIMIT 0x10000 /* 64K */ |
11 | 11 | ||
12 | #ifdef CONFIG_CRASH_DUMP | 12 | #ifdef CONFIG_CRASH_DUMP |
13 | 13 | ||
diff --git a/include/asm-powerpc/mpc86xx.h b/include/asm-powerpc/mpc86xx.h index f260382739fa..b85df45b1a84 100644 --- a/include/asm-powerpc/mpc86xx.h +++ b/include/asm-powerpc/mpc86xx.h | |||
@@ -23,8 +23,6 @@ | |||
23 | #define _ISA_MEM_BASE isa_mem_base | 23 | #define _ISA_MEM_BASE isa_mem_base |
24 | #ifdef CONFIG_PCI | 24 | #ifdef CONFIG_PCI |
25 | #define PCI_DRAM_OFFSET pci_dram_offset | 25 | #define PCI_DRAM_OFFSET pci_dram_offset |
26 | #else | ||
27 | #define PCI_DRAM_OFFSET 0 | ||
28 | #endif | 26 | #endif |
29 | 27 | ||
30 | #define CPU0_BOOT_RELEASE 0x01000000 | 28 | #define CPU0_BOOT_RELEASE 0x01000000 |
@@ -33,7 +31,6 @@ | |||
33 | #define MCM_PORT_CONFIG_OFFSET 0x1010 | 31 | #define MCM_PORT_CONFIG_OFFSET 0x1010 |
34 | 32 | ||
35 | /* Offset from CCSRBAR */ | 33 | /* Offset from CCSRBAR */ |
36 | #define MPC86xx_OPENPIC_OFFSET (0x40000) | ||
37 | #define MPC86xx_MCM_OFFSET (0x00000) | 34 | #define MPC86xx_MCM_OFFSET (0x00000) |
38 | #define MPC86xx_MCM_SIZE (0x02000) | 35 | #define MPC86xx_MCM_SIZE (0x02000) |
39 | 36 | ||
diff --git a/include/asm-powerpc/mpic.h b/include/asm-powerpc/mpic.h index eb241c99c457..a9f9604b9eff 100644 --- a/include/asm-powerpc/mpic.h +++ b/include/asm-powerpc/mpic.h | |||
@@ -41,6 +41,7 @@ | |||
41 | #define MPIC_GREG_IPI_VECTOR_PRI_1 0x000b0 | 41 | #define MPIC_GREG_IPI_VECTOR_PRI_1 0x000b0 |
42 | #define MPIC_GREG_IPI_VECTOR_PRI_2 0x000c0 | 42 | #define MPIC_GREG_IPI_VECTOR_PRI_2 0x000c0 |
43 | #define MPIC_GREG_IPI_VECTOR_PRI_3 0x000d0 | 43 | #define MPIC_GREG_IPI_VECTOR_PRI_3 0x000d0 |
44 | #define MPIC_GREG_IPI_STRIDE 0x10 | ||
44 | #define MPIC_GREG_SPURIOUS 0x000e0 | 45 | #define MPIC_GREG_SPURIOUS 0x000e0 |
45 | #define MPIC_GREG_TIMER_FREQ 0x000f0 | 46 | #define MPIC_GREG_TIMER_FREQ 0x000f0 |
46 | 47 | ||
@@ -68,6 +69,7 @@ | |||
68 | #define MPIC_CPU_IPI_DISPATCH_1 0x00050 | 69 | #define MPIC_CPU_IPI_DISPATCH_1 0x00050 |
69 | #define MPIC_CPU_IPI_DISPATCH_2 0x00060 | 70 | #define MPIC_CPU_IPI_DISPATCH_2 0x00060 |
70 | #define MPIC_CPU_IPI_DISPATCH_3 0x00070 | 71 | #define MPIC_CPU_IPI_DISPATCH_3 0x00070 |
72 | #define MPIC_CPU_IPI_DISPATCH_STRIDE 0x00010 | ||
71 | #define MPIC_CPU_CURRENT_TASK_PRI 0x00080 | 73 | #define MPIC_CPU_CURRENT_TASK_PRI 0x00080 |
72 | #define MPIC_CPU_TASKPRI_MASK 0x0000000f | 74 | #define MPIC_CPU_TASKPRI_MASK 0x0000000f |
73 | #define MPIC_CPU_WHOAMI 0x00090 | 75 | #define MPIC_CPU_WHOAMI 0x00090 |
@@ -114,6 +116,103 @@ | |||
114 | #define MPIC_VEC_TIMER_1 248 | 116 | #define MPIC_VEC_TIMER_1 248 |
115 | #define MPIC_VEC_TIMER_0 247 | 117 | #define MPIC_VEC_TIMER_0 247 |
116 | 118 | ||
119 | /* | ||
120 | * Tsi108 implementation of MPIC has many differences from the original one | ||
121 | */ | ||
122 | |||
123 | /* | ||
124 | * Global registers | ||
125 | */ | ||
126 | |||
127 | #define TSI108_GREG_BASE 0x00000 | ||
128 | #define TSI108_GREG_FEATURE_0 0x00000 | ||
129 | #define TSI108_GREG_GLOBAL_CONF_0 0x00004 | ||
130 | #define TSI108_GREG_VENDOR_ID 0x0000c | ||
131 | #define TSI108_GREG_IPI_VECTOR_PRI_0 0x00204 /* Doorbell 0 */ | ||
132 | #define TSI108_GREG_IPI_STRIDE 0x0c | ||
133 | #define TSI108_GREG_SPURIOUS 0x00010 | ||
134 | #define TSI108_GREG_TIMER_FREQ 0x00014 | ||
135 | |||
136 | /* | ||
137 | * Timer registers | ||
138 | */ | ||
139 | #define TSI108_TIMER_BASE 0x0030 | ||
140 | #define TSI108_TIMER_STRIDE 0x10 | ||
141 | #define TSI108_TIMER_CURRENT_CNT 0x00000 | ||
142 | #define TSI108_TIMER_BASE_CNT 0x00004 | ||
143 | #define TSI108_TIMER_VECTOR_PRI 0x00008 | ||
144 | #define TSI108_TIMER_DESTINATION 0x0000c | ||
145 | |||
146 | /* | ||
147 | * Per-Processor registers | ||
148 | */ | ||
149 | #define TSI108_CPU_BASE 0x00300 | ||
150 | #define TSI108_CPU_STRIDE 0x00040 | ||
151 | #define TSI108_CPU_IPI_DISPATCH_0 0x00200 | ||
152 | #define TSI108_CPU_IPI_DISPATCH_STRIDE 0x00000 | ||
153 | #define TSI108_CPU_CURRENT_TASK_PRI 0x00000 | ||
154 | #define TSI108_CPU_WHOAMI 0xffffffff | ||
155 | #define TSI108_CPU_INTACK 0x00004 | ||
156 | #define TSI108_CPU_EOI 0x00008 | ||
157 | |||
158 | /* | ||
159 | * Per-source registers | ||
160 | */ | ||
161 | #define TSI108_IRQ_BASE 0x00100 | ||
162 | #define TSI108_IRQ_STRIDE 0x00008 | ||
163 | #define TSI108_IRQ_VECTOR_PRI 0x00000 | ||
164 | #define TSI108_VECPRI_VECTOR_MASK 0x000000ff | ||
165 | #define TSI108_VECPRI_POLARITY_POSITIVE 0x01000000 | ||
166 | #define TSI108_VECPRI_POLARITY_NEGATIVE 0x00000000 | ||
167 | #define TSI108_VECPRI_SENSE_LEVEL 0x02000000 | ||
168 | #define TSI108_VECPRI_SENSE_EDGE 0x00000000 | ||
169 | #define TSI108_VECPRI_POLARITY_MASK 0x01000000 | ||
170 | #define TSI108_VECPRI_SENSE_MASK 0x02000000 | ||
171 | #define TSI108_IRQ_DESTINATION 0x00004 | ||
172 | |||
173 | /* weird mpic register indices and mask bits in the HW info array */ | ||
174 | enum { | ||
175 | MPIC_IDX_GREG_BASE = 0, | ||
176 | MPIC_IDX_GREG_FEATURE_0, | ||
177 | MPIC_IDX_GREG_GLOBAL_CONF_0, | ||
178 | MPIC_IDX_GREG_VENDOR_ID, | ||
179 | MPIC_IDX_GREG_IPI_VECTOR_PRI_0, | ||
180 | MPIC_IDX_GREG_IPI_STRIDE, | ||
181 | MPIC_IDX_GREG_SPURIOUS, | ||
182 | MPIC_IDX_GREG_TIMER_FREQ, | ||
183 | |||
184 | MPIC_IDX_TIMER_BASE, | ||
185 | MPIC_IDX_TIMER_STRIDE, | ||
186 | MPIC_IDX_TIMER_CURRENT_CNT, | ||
187 | MPIC_IDX_TIMER_BASE_CNT, | ||
188 | MPIC_IDX_TIMER_VECTOR_PRI, | ||
189 | MPIC_IDX_TIMER_DESTINATION, | ||
190 | |||
191 | MPIC_IDX_CPU_BASE, | ||
192 | MPIC_IDX_CPU_STRIDE, | ||
193 | MPIC_IDX_CPU_IPI_DISPATCH_0, | ||
194 | MPIC_IDX_CPU_IPI_DISPATCH_STRIDE, | ||
195 | MPIC_IDX_CPU_CURRENT_TASK_PRI, | ||
196 | MPIC_IDX_CPU_WHOAMI, | ||
197 | MPIC_IDX_CPU_INTACK, | ||
198 | MPIC_IDX_CPU_EOI, | ||
199 | |||
200 | MPIC_IDX_IRQ_BASE, | ||
201 | MPIC_IDX_IRQ_STRIDE, | ||
202 | MPIC_IDX_IRQ_VECTOR_PRI, | ||
203 | |||
204 | MPIC_IDX_VECPRI_VECTOR_MASK, | ||
205 | MPIC_IDX_VECPRI_POLARITY_POSITIVE, | ||
206 | MPIC_IDX_VECPRI_POLARITY_NEGATIVE, | ||
207 | MPIC_IDX_VECPRI_SENSE_LEVEL, | ||
208 | MPIC_IDX_VECPRI_SENSE_EDGE, | ||
209 | MPIC_IDX_VECPRI_POLARITY_MASK, | ||
210 | MPIC_IDX_VECPRI_SENSE_MASK, | ||
211 | MPIC_IDX_IRQ_DESTINATION, | ||
212 | MPIC_IDX_END | ||
213 | }; | ||
214 | |||
215 | |||
117 | #ifdef CONFIG_MPIC_BROKEN_U3 | 216 | #ifdef CONFIG_MPIC_BROKEN_U3 |
118 | /* Fixup table entry */ | 217 | /* Fixup table entry */ |
119 | struct mpic_irq_fixup | 218 | struct mpic_irq_fixup |
@@ -171,15 +270,29 @@ struct mpic | |||
171 | volatile u32 __iomem *cpuregs[MPIC_MAX_CPUS]; | 270 | volatile u32 __iomem *cpuregs[MPIC_MAX_CPUS]; |
172 | volatile u32 __iomem *isus[MPIC_MAX_ISU]; | 271 | volatile u32 __iomem *isus[MPIC_MAX_ISU]; |
173 | 272 | ||
273 | #ifdef CONFIG_MPIC_WEIRD | ||
274 | /* Pointer to HW info array */ | ||
275 | u32 *hw_set; | ||
276 | #endif | ||
277 | |||
174 | /* link */ | 278 | /* link */ |
175 | struct mpic *next; | 279 | struct mpic *next; |
176 | }; | 280 | }; |
177 | 281 | ||
282 | /* | ||
283 | * MPIC flags (passed to mpic_alloc) | ||
284 | * | ||
285 | * The top 4 bits contain an MPIC bhw id that is used to index the | ||
286 | * register offsets and some masks when CONFIG_MPIC_WEIRD is set. | ||
287 | * Note setting any ID (leaving those bits to 0) means standard MPIC | ||
288 | */ | ||
289 | |||
178 | /* This is the primary controller, only that one has IPIs and | 290 | /* This is the primary controller, only that one has IPIs and |
179 | * has afinity control. A non-primary MPIC always uses CPU0 | 291 | * has afinity control. A non-primary MPIC always uses CPU0 |
180 | * registers only | 292 | * registers only |
181 | */ | 293 | */ |
182 | #define MPIC_PRIMARY 0x00000001 | 294 | #define MPIC_PRIMARY 0x00000001 |
295 | |||
183 | /* Set this for a big-endian MPIC */ | 296 | /* Set this for a big-endian MPIC */ |
184 | #define MPIC_BIG_ENDIAN 0x00000002 | 297 | #define MPIC_BIG_ENDIAN 0x00000002 |
185 | /* Broken U3 MPIC */ | 298 | /* Broken U3 MPIC */ |
@@ -188,6 +301,18 @@ struct mpic | |||
188 | #define MPIC_BROKEN_IPI 0x00000008 | 301 | #define MPIC_BROKEN_IPI 0x00000008 |
189 | /* MPIC wants a reset */ | 302 | /* MPIC wants a reset */ |
190 | #define MPIC_WANTS_RESET 0x00000010 | 303 | #define MPIC_WANTS_RESET 0x00000010 |
304 | /* Spurious vector requires EOI */ | ||
305 | #define MPIC_SPV_EOI 0x00000020 | ||
306 | /* No passthrough disable */ | ||
307 | #define MPIC_NO_PTHROU_DIS 0x00000040 | ||
308 | |||
309 | /* MPIC HW modification ID */ | ||
310 | #define MPIC_REGSET_MASK 0xf0000000 | ||
311 | #define MPIC_REGSET(val) (((val) & 0xf ) << 28) | ||
312 | #define MPIC_GET_REGSET(flags) (((flags) >> 28) & 0xf) | ||
313 | |||
314 | #define MPIC_REGSET_STANDARD MPIC_REGSET(0) /* Original MPIC */ | ||
315 | #define MPIC_REGSET_TSI108 MPIC_REGSET(1) /* Tsi108/109 PIC */ | ||
191 | 316 | ||
192 | /* Allocate the controller structure and setup the linux irq descs | 317 | /* Allocate the controller structure and setup the linux irq descs |
193 | * for the range if interrupts passed in. No HW initialization is | 318 | * for the range if interrupts passed in. No HW initialization is |
diff --git a/include/asm-powerpc/paca.h b/include/asm-powerpc/paca.h index 2d4585f06209..3d5d590bc4b0 100644 --- a/include/asm-powerpc/paca.h +++ b/include/asm-powerpc/paca.h | |||
@@ -93,6 +93,7 @@ struct paca_struct { | |||
93 | u64 saved_r1; /* r1 save for RTAS calls */ | 93 | u64 saved_r1; /* r1 save for RTAS calls */ |
94 | u64 saved_msr; /* MSR saved here by enter_rtas */ | 94 | u64 saved_msr; /* MSR saved here by enter_rtas */ |
95 | u8 proc_enabled; /* irq soft-enable flag */ | 95 | u8 proc_enabled; /* irq soft-enable flag */ |
96 | u8 io_sync; /* writel() needs spin_unlock sync */ | ||
96 | 97 | ||
97 | /* Stuff for accurate time accounting */ | 98 | /* Stuff for accurate time accounting */ |
98 | u64 user_time; /* accumulated usermode TB ticks */ | 99 | u64 user_time; /* accumulated usermode TB ticks */ |
diff --git a/include/asm-powerpc/prom.h b/include/asm-powerpc/prom.h index b095a285c84b..d0fa1b9aed35 100644 --- a/include/asm-powerpc/prom.h +++ b/include/asm-powerpc/prom.h | |||
@@ -276,6 +276,7 @@ extern void of_irq_map_init(unsigned int flags); | |||
276 | * of_irq_map_raw - Low level interrupt tree parsing | 276 | * of_irq_map_raw - Low level interrupt tree parsing |
277 | * @parent: the device interrupt parent | 277 | * @parent: the device interrupt parent |
278 | * @intspec: interrupt specifier ("interrupts" property of the device) | 278 | * @intspec: interrupt specifier ("interrupts" property of the device) |
279 | * @ointsize: size of the passed in interrupt specifier | ||
279 | * @addr: address specifier (start of "reg" property of the device) | 280 | * @addr: address specifier (start of "reg" property of the device) |
280 | * @out_irq: structure of_irq filled by this function | 281 | * @out_irq: structure of_irq filled by this function |
281 | * | 282 | * |
@@ -288,7 +289,8 @@ extern void of_irq_map_init(unsigned int flags); | |||
288 | * | 289 | * |
289 | */ | 290 | */ |
290 | 291 | ||
291 | extern int of_irq_map_raw(struct device_node *parent, u32 *intspec, u32 *addr, | 292 | extern int of_irq_map_raw(struct device_node *parent, u32 *intspec, |
293 | u32 ointsize, u32 *addr, | ||
292 | struct of_irq *out_irq); | 294 | struct of_irq *out_irq); |
293 | 295 | ||
294 | 296 | ||
diff --git a/include/asm-powerpc/spinlock.h b/include/asm-powerpc/spinlock.h index 895cb6d3a42a..c31e4382a775 100644 --- a/include/asm-powerpc/spinlock.h +++ b/include/asm-powerpc/spinlock.h | |||
@@ -36,6 +36,19 @@ | |||
36 | #define LOCK_TOKEN 1 | 36 | #define LOCK_TOKEN 1 |
37 | #endif | 37 | #endif |
38 | 38 | ||
39 | #if defined(CONFIG_PPC64) && defined(CONFIG_SMP) | ||
40 | #define CLEAR_IO_SYNC (get_paca()->io_sync = 0) | ||
41 | #define SYNC_IO do { \ | ||
42 | if (unlikely(get_paca()->io_sync)) { \ | ||
43 | mb(); \ | ||
44 | get_paca()->io_sync = 0; \ | ||
45 | } \ | ||
46 | } while (0) | ||
47 | #else | ||
48 | #define CLEAR_IO_SYNC | ||
49 | #define SYNC_IO | ||
50 | #endif | ||
51 | |||
39 | /* | 52 | /* |
40 | * This returns the old value in the lock, so we succeeded | 53 | * This returns the old value in the lock, so we succeeded |
41 | * in getting the lock if the return value is 0. | 54 | * in getting the lock if the return value is 0. |
@@ -61,6 +74,7 @@ static __inline__ unsigned long __spin_trylock(raw_spinlock_t *lock) | |||
61 | 74 | ||
62 | static int __inline__ __raw_spin_trylock(raw_spinlock_t *lock) | 75 | static int __inline__ __raw_spin_trylock(raw_spinlock_t *lock) |
63 | { | 76 | { |
77 | CLEAR_IO_SYNC; | ||
64 | return __spin_trylock(lock) == 0; | 78 | return __spin_trylock(lock) == 0; |
65 | } | 79 | } |
66 | 80 | ||
@@ -91,6 +105,7 @@ extern void __rw_yield(raw_rwlock_t *lock); | |||
91 | 105 | ||
92 | static void __inline__ __raw_spin_lock(raw_spinlock_t *lock) | 106 | static void __inline__ __raw_spin_lock(raw_spinlock_t *lock) |
93 | { | 107 | { |
108 | CLEAR_IO_SYNC; | ||
94 | while (1) { | 109 | while (1) { |
95 | if (likely(__spin_trylock(lock) == 0)) | 110 | if (likely(__spin_trylock(lock) == 0)) |
96 | break; | 111 | break; |
@@ -107,6 +122,7 @@ static void __inline__ __raw_spin_lock_flags(raw_spinlock_t *lock, unsigned long | |||
107 | { | 122 | { |
108 | unsigned long flags_dis; | 123 | unsigned long flags_dis; |
109 | 124 | ||
125 | CLEAR_IO_SYNC; | ||
110 | while (1) { | 126 | while (1) { |
111 | if (likely(__spin_trylock(lock) == 0)) | 127 | if (likely(__spin_trylock(lock) == 0)) |
112 | break; | 128 | break; |
@@ -124,6 +140,7 @@ static void __inline__ __raw_spin_lock_flags(raw_spinlock_t *lock, unsigned long | |||
124 | 140 | ||
125 | static __inline__ void __raw_spin_unlock(raw_spinlock_t *lock) | 141 | static __inline__ void __raw_spin_unlock(raw_spinlock_t *lock) |
126 | { | 142 | { |
143 | SYNC_IO; | ||
127 | __asm__ __volatile__("# __raw_spin_unlock\n\t" | 144 | __asm__ __volatile__("# __raw_spin_unlock\n\t" |
128 | LWSYNC_ON_SMP: : :"memory"); | 145 | LWSYNC_ON_SMP: : :"memory"); |
129 | lock->slock = 0; | 146 | lock->slock = 0; |
diff --git a/include/asm-powerpc/time.h b/include/asm-powerpc/time.h index dcde4410348d..5785ac4737b5 100644 --- a/include/asm-powerpc/time.h +++ b/include/asm-powerpc/time.h | |||
@@ -30,10 +30,6 @@ extern unsigned long tb_ticks_per_usec; | |||
30 | extern unsigned long tb_ticks_per_sec; | 30 | extern unsigned long tb_ticks_per_sec; |
31 | extern u64 tb_to_xs; | 31 | extern u64 tb_to_xs; |
32 | extern unsigned tb_to_us; | 32 | extern unsigned tb_to_us; |
33 | extern unsigned long tb_last_stamp; | ||
34 | extern u64 tb_last_jiffy; | ||
35 | |||
36 | DECLARE_PER_CPU(unsigned long, last_jiffy); | ||
37 | 33 | ||
38 | struct rtc_time; | 34 | struct rtc_time; |
39 | extern void to_tm(int tim, struct rtc_time * tm); | 35 | extern void to_tm(int tim, struct rtc_time * tm); |
diff --git a/include/asm-ppc/io.h b/include/asm-ppc/io.h index 89c6f1bc3aab..680555be22ec 100644 --- a/include/asm-ppc/io.h +++ b/include/asm-ppc/io.h | |||
@@ -63,7 +63,7 @@ extern inline int in_8(const volatile unsigned char __iomem *addr) | |||
63 | int ret; | 63 | int ret; |
64 | 64 | ||
65 | __asm__ __volatile__( | 65 | __asm__ __volatile__( |
66 | "lbz%U1%X1 %0,%1;\n" | 66 | "sync; lbz%U1%X1 %0,%1;\n" |
67 | "twi 0,%0,0;\n" | 67 | "twi 0,%0,0;\n" |
68 | "isync" : "=r" (ret) : "m" (*addr)); | 68 | "isync" : "=r" (ret) : "m" (*addr)); |
69 | return ret; | 69 | return ret; |
@@ -78,7 +78,7 @@ extern inline int in_le16(const volatile unsigned short __iomem *addr) | |||
78 | { | 78 | { |
79 | int ret; | 79 | int ret; |
80 | 80 | ||
81 | __asm__ __volatile__("lhbrx %0,0,%1;\n" | 81 | __asm__ __volatile__("sync; lhbrx %0,0,%1;\n" |
82 | "twi 0,%0,0;\n" | 82 | "twi 0,%0,0;\n" |
83 | "isync" : "=r" (ret) : | 83 | "isync" : "=r" (ret) : |
84 | "r" (addr), "m" (*addr)); | 84 | "r" (addr), "m" (*addr)); |
@@ -89,7 +89,7 @@ extern inline int in_be16(const volatile unsigned short __iomem *addr) | |||
89 | { | 89 | { |
90 | int ret; | 90 | int ret; |
91 | 91 | ||
92 | __asm__ __volatile__("lhz%U1%X1 %0,%1;\n" | 92 | __asm__ __volatile__("sync; lhz%U1%X1 %0,%1;\n" |
93 | "twi 0,%0,0;\n" | 93 | "twi 0,%0,0;\n" |
94 | "isync" : "=r" (ret) : "m" (*addr)); | 94 | "isync" : "=r" (ret) : "m" (*addr)); |
95 | return ret; | 95 | return ret; |
@@ -97,20 +97,20 @@ extern inline int in_be16(const volatile unsigned short __iomem *addr) | |||
97 | 97 | ||
98 | extern inline void out_le16(volatile unsigned short __iomem *addr, int val) | 98 | extern inline void out_le16(volatile unsigned short __iomem *addr, int val) |
99 | { | 99 | { |
100 | __asm__ __volatile__("sthbrx %1,0,%2; eieio" : "=m" (*addr) : | 100 | __asm__ __volatile__("sync; sthbrx %1,0,%2" : "=m" (*addr) : |
101 | "r" (val), "r" (addr)); | 101 | "r" (val), "r" (addr)); |
102 | } | 102 | } |
103 | 103 | ||
104 | extern inline void out_be16(volatile unsigned short __iomem *addr, int val) | 104 | extern inline void out_be16(volatile unsigned short __iomem *addr, int val) |
105 | { | 105 | { |
106 | __asm__ __volatile__("sth%U0%X0 %1,%0; eieio" : "=m" (*addr) : "r" (val)); | 106 | __asm__ __volatile__("sync; sth%U0%X0 %1,%0" : "=m" (*addr) : "r" (val)); |
107 | } | 107 | } |
108 | 108 | ||
109 | extern inline unsigned in_le32(const volatile unsigned __iomem *addr) | 109 | extern inline unsigned in_le32(const volatile unsigned __iomem *addr) |
110 | { | 110 | { |
111 | unsigned ret; | 111 | unsigned ret; |
112 | 112 | ||
113 | __asm__ __volatile__("lwbrx %0,0,%1;\n" | 113 | __asm__ __volatile__("sync; lwbrx %0,0,%1;\n" |
114 | "twi 0,%0,0;\n" | 114 | "twi 0,%0,0;\n" |
115 | "isync" : "=r" (ret) : | 115 | "isync" : "=r" (ret) : |
116 | "r" (addr), "m" (*addr)); | 116 | "r" (addr), "m" (*addr)); |
@@ -121,7 +121,7 @@ extern inline unsigned in_be32(const volatile unsigned __iomem *addr) | |||
121 | { | 121 | { |
122 | unsigned ret; | 122 | unsigned ret; |
123 | 123 | ||
124 | __asm__ __volatile__("lwz%U1%X1 %0,%1;\n" | 124 | __asm__ __volatile__("sync; lwz%U1%X1 %0,%1;\n" |
125 | "twi 0,%0,0;\n" | 125 | "twi 0,%0,0;\n" |
126 | "isync" : "=r" (ret) : "m" (*addr)); | 126 | "isync" : "=r" (ret) : "m" (*addr)); |
127 | return ret; | 127 | return ret; |
@@ -129,13 +129,13 @@ extern inline unsigned in_be32(const volatile unsigned __iomem *addr) | |||
129 | 129 | ||
130 | extern inline void out_le32(volatile unsigned __iomem *addr, int val) | 130 | extern inline void out_le32(volatile unsigned __iomem *addr, int val) |
131 | { | 131 | { |
132 | __asm__ __volatile__("stwbrx %1,0,%2; eieio" : "=m" (*addr) : | 132 | __asm__ __volatile__("sync; stwbrx %1,0,%2" : "=m" (*addr) : |
133 | "r" (val), "r" (addr)); | 133 | "r" (val), "r" (addr)); |
134 | } | 134 | } |
135 | 135 | ||
136 | extern inline void out_be32(volatile unsigned __iomem *addr, int val) | 136 | extern inline void out_be32(volatile unsigned __iomem *addr, int val) |
137 | { | 137 | { |
138 | __asm__ __volatile__("stw%U0%X0 %1,%0; eieio" : "=m" (*addr) : "r" (val)); | 138 | __asm__ __volatile__("sync; stw%U0%X0 %1,%0" : "=m" (*addr) : "r" (val)); |
139 | } | 139 | } |
140 | #if defined (CONFIG_8260_PCI9) | 140 | #if defined (CONFIG_8260_PCI9) |
141 | #define readb(addr) in_8((volatile u8 *)(addr)) | 141 | #define readb(addr) in_8((volatile u8 *)(addr)) |
@@ -259,6 +259,7 @@ extern __inline__ unsigned int name(unsigned int port) \ | |||
259 | { \ | 259 | { \ |
260 | unsigned int x; \ | 260 | unsigned int x; \ |
261 | __asm__ __volatile__( \ | 261 | __asm__ __volatile__( \ |
262 | "sync\n" \ | ||
262 | "0:" op " %0,0,%1\n" \ | 263 | "0:" op " %0,0,%1\n" \ |
263 | "1: twi 0,%0,0\n" \ | 264 | "1: twi 0,%0,0\n" \ |
264 | "2: isync\n" \ | 265 | "2: isync\n" \ |
@@ -284,6 +285,7 @@ extern __inline__ unsigned int name(unsigned int port) \ | |||
284 | extern __inline__ void name(unsigned int val, unsigned int port) \ | 285 | extern __inline__ void name(unsigned int val, unsigned int port) \ |
285 | { \ | 286 | { \ |
286 | __asm__ __volatile__( \ | 287 | __asm__ __volatile__( \ |
288 | "sync\n" \ | ||
287 | "0:" op " %0,0,%1\n" \ | 289 | "0:" op " %0,0,%1\n" \ |
288 | "1: sync\n" \ | 290 | "1: sync\n" \ |
289 | "2:\n" \ | 291 | "2:\n" \ |
diff --git a/include/asm-s390/debug.h b/include/asm-s390/debug.h index 7f1ef99fd1e1..c00dd2b3dc50 100644 --- a/include/asm-s390/debug.h +++ b/include/asm-s390/debug.h | |||
@@ -10,7 +10,6 @@ | |||
10 | #define DEBUG_H | 10 | #define DEBUG_H |
11 | 11 | ||
12 | #include <linux/fs.h> | 12 | #include <linux/fs.h> |
13 | #include <linux/string.h> | ||
14 | 13 | ||
15 | /* Note: | 14 | /* Note: |
16 | * struct __debug_entry must be defined outside of #ifdef __KERNEL__ | 15 | * struct __debug_entry must be defined outside of #ifdef __KERNEL__ |
@@ -35,6 +34,7 @@ struct __debug_entry{ | |||
35 | #define __DEBUG_FEATURE_VERSION 2 /* version of debug feature */ | 34 | #define __DEBUG_FEATURE_VERSION 2 /* version of debug feature */ |
36 | 35 | ||
37 | #ifdef __KERNEL__ | 36 | #ifdef __KERNEL__ |
37 | #include <linux/string.h> | ||
38 | #include <linux/spinlock.h> | 38 | #include <linux/spinlock.h> |
39 | #include <linux/kernel.h> | 39 | #include <linux/kernel.h> |
40 | #include <linux/time.h> | 40 | #include <linux/time.h> |
diff --git a/include/asm-s390/elf.h b/include/asm-s390/elf.h index 710646e64f7d..c0d629d61d3e 100644 --- a/include/asm-s390/elf.h +++ b/include/asm-s390/elf.h | |||
@@ -93,19 +93,6 @@ | |||
93 | #define R_390_NUM 61 | 93 | #define R_390_NUM 61 |
94 | 94 | ||
95 | /* | 95 | /* |
96 | * ELF register definitions.. | ||
97 | */ | ||
98 | |||
99 | #include <linux/sched.h> /* for task_struct */ | ||
100 | #include <asm/ptrace.h> | ||
101 | #include <asm/user.h> | ||
102 | #include <asm/system.h> /* for save_access_regs */ | ||
103 | |||
104 | |||
105 | typedef s390_fp_regs elf_fpregset_t; | ||
106 | typedef s390_regs elf_gregset_t; | ||
107 | |||
108 | /* | ||
109 | * These are used to set parameters in the core dumps. | 96 | * These are used to set parameters in the core dumps. |
110 | */ | 97 | */ |
111 | #ifndef __s390x__ | 98 | #ifndef __s390x__ |
@@ -117,6 +104,20 @@ typedef s390_regs elf_gregset_t; | |||
117 | #define ELF_ARCH EM_S390 | 104 | #define ELF_ARCH EM_S390 |
118 | 105 | ||
119 | /* | 106 | /* |
107 | * ELF register definitions.. | ||
108 | */ | ||
109 | |||
110 | #include <asm/ptrace.h> | ||
111 | #include <asm/user.h> | ||
112 | |||
113 | typedef s390_fp_regs elf_fpregset_t; | ||
114 | typedef s390_regs elf_gregset_t; | ||
115 | |||
116 | #ifdef __KERNEL__ | ||
117 | #include <linux/sched.h> /* for task_struct */ | ||
118 | #include <asm/system.h> /* for save_access_regs */ | ||
119 | |||
120 | /* | ||
120 | * This is used to ensure we don't load something for the wrong architecture. | 121 | * This is used to ensure we don't load something for the wrong architecture. |
121 | */ | 122 | */ |
122 | #define elf_check_arch(x) \ | 123 | #define elf_check_arch(x) \ |
@@ -198,7 +199,6 @@ static inline int dump_task_fpu(struct task_struct *tsk, elf_fpregset_t *fpregs) | |||
198 | 199 | ||
199 | #define ELF_PLATFORM (NULL) | 200 | #define ELF_PLATFORM (NULL) |
200 | 201 | ||
201 | #ifdef __KERNEL__ | ||
202 | #ifndef __s390x__ | 202 | #ifndef __s390x__ |
203 | #define SET_PERSONALITY(ex, ibcs2) set_personality((ibcs2)?PER_SVR4:PER_LINUX) | 203 | #define SET_PERSONALITY(ex, ibcs2) set_personality((ibcs2)?PER_SVR4:PER_LINUX) |
204 | #else /* __s390x__ */ | 204 | #else /* __s390x__ */ |
diff --git a/include/asm-sh/page.h b/include/asm-sh/page.h index a5559e38744e..5a057b00f19a 100644 --- a/include/asm-sh/page.h +++ b/include/asm-sh/page.h | |||
@@ -104,7 +104,7 @@ typedef struct { unsigned long pgprot; } pgprot_t; | |||
104 | 104 | ||
105 | /* PFN start number, because of __MEMORY_START */ | 105 | /* PFN start number, because of __MEMORY_START */ |
106 | #define PFN_START (__MEMORY_START >> PAGE_SHIFT) | 106 | #define PFN_START (__MEMORY_START >> PAGE_SHIFT) |
107 | #define ARCH_PFN_OFFSET (FPN_START) | 107 | #define ARCH_PFN_OFFSET (PFN_START) |
108 | #define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT) | 108 | #define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT) |
109 | #define pfn_valid(pfn) (((pfn) - PFN_START) < max_mapnr) | 109 | #define pfn_valid(pfn) (((pfn) - PFN_START) < max_mapnr) |
110 | #define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT) | 110 | #define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT) |
diff --git a/include/asm-sh64/bug.h b/include/asm-sh64/bug.h index 81f722efeb63..f3a9c9248ef4 100644 --- a/include/asm-sh64/bug.h +++ b/include/asm-sh64/bug.h | |||
@@ -1,7 +1,7 @@ | |||
1 | #ifndef __ASM_SH64_BUG_H | 1 | #ifndef __ASM_SH64_BUG_H |
2 | #define __ASM_SH64_BUG_H | 2 | #define __ASM_SH64_BUG_H |
3 | 3 | ||
4 | 4 | #ifdef CONFIG_BUG | |
5 | /* | 5 | /* |
6 | * Tell the user there is some problem, then force a segfault (in process | 6 | * Tell the user there is some problem, then force a segfault (in process |
7 | * context) or a panic (interrupt context). | 7 | * context) or a panic (interrupt context). |
@@ -11,17 +11,9 @@ | |||
11 | *(volatile int *)0 = 0; \ | 11 | *(volatile int *)0 = 0; \ |
12 | } while (0) | 12 | } while (0) |
13 | 13 | ||
14 | #define BUG_ON(condition) do { \ | 14 | #define HAVE_ARCH_BUG |
15 | if (unlikely((condition)!=0)) \ | 15 | #endif |
16 | BUG(); \ | ||
17 | } while(0) | ||
18 | 16 | ||
19 | #define WARN_ON(condition) do { \ | 17 | #include <asm-generic/bug.h> |
20 | if (unlikely((condition)!=0)) { \ | ||
21 | printk("Badness in %s at %s:%d\n", __FUNCTION__, __FILE__, __LINE__); \ | ||
22 | dump_stack(); \ | ||
23 | } \ | ||
24 | } while (0) | ||
25 | 18 | ||
26 | #endif /* __ASM_SH64_BUG_H */ | 19 | #endif /* __ASM_SH64_BUG_H */ |
27 | |||
diff --git a/include/asm-sh64/byteorder.h b/include/asm-sh64/byteorder.h index f602ebe334eb..7419d78820ee 100644 --- a/include/asm-sh64/byteorder.h +++ b/include/asm-sh64/byteorder.h | |||
@@ -14,7 +14,7 @@ | |||
14 | 14 | ||
15 | #include <asm/types.h> | 15 | #include <asm/types.h> |
16 | 16 | ||
17 | static __inline__ __const__ __u32 ___arch__swab32(__u32 x) | 17 | static inline __attribute_const__ __u32 ___arch__swab32(__u32 x) |
18 | { | 18 | { |
19 | __asm__("byterev %0, %0\n\t" | 19 | __asm__("byterev %0, %0\n\t" |
20 | "shari %0, 32, %0" | 20 | "shari %0, 32, %0" |
@@ -23,7 +23,7 @@ static __inline__ __const__ __u32 ___arch__swab32(__u32 x) | |||
23 | return x; | 23 | return x; |
24 | } | 24 | } |
25 | 25 | ||
26 | static __inline__ __const__ __u16 ___arch__swab16(__u16 x) | 26 | static inline __attribute_const__ __u16 ___arch__swab16(__u16 x) |
27 | { | 27 | { |
28 | __asm__("byterev %0, %0\n\t" | 28 | __asm__("byterev %0, %0\n\t" |
29 | "shari %0, 48, %0" | 29 | "shari %0, 48, %0" |
diff --git a/include/asm-sh64/dma-mapping.h b/include/asm-sh64/dma-mapping.h index a74a49e47922..68e27a8fca31 100644 --- a/include/asm-sh64/dma-mapping.h +++ b/include/asm-sh64/dma-mapping.h | |||
@@ -126,22 +126,30 @@ static inline void dma_sync_sg(struct device *dev, struct scatterlist *sg, | |||
126 | static inline void dma_sync_single_for_cpu(struct device *dev, | 126 | static inline void dma_sync_single_for_cpu(struct device *dev, |
127 | dma_addr_t dma_handle, size_t size, | 127 | dma_addr_t dma_handle, size_t size, |
128 | enum dma_data_direction dir) | 128 | enum dma_data_direction dir) |
129 | __attribute__ ((alias("dma_sync_single"))); | 129 | { |
130 | dma_sync_single(dev, dma_handle, size, dir); | ||
131 | } | ||
130 | 132 | ||
131 | static inline void dma_sync_single_for_device(struct device *dev, | 133 | static inline void dma_sync_single_for_device(struct device *dev, |
132 | dma_addr_t dma_handle, size_t size, | 134 | dma_addr_t dma_handle, size_t size, |
133 | enum dma_data_direction dir) | 135 | enum dma_data_direction dir) |
134 | __attribute__ ((alias("dma_sync_single"))); | 136 | { |
137 | dma_sync_single(dev, dma_handle, size, dir); | ||
138 | } | ||
135 | 139 | ||
136 | static inline void dma_sync_sg_for_cpu(struct device *dev, | 140 | static inline void dma_sync_sg_for_cpu(struct device *dev, |
137 | struct scatterlist *sg, int nelems, | 141 | struct scatterlist *sg, int nelems, |
138 | enum dma_data_direction dir) | 142 | enum dma_data_direction dir) |
139 | __attribute__ ((alias("dma_sync_sg"))); | 143 | { |
144 | dma_sync_sg(dev, sg, nelems, dir); | ||
145 | } | ||
140 | 146 | ||
141 | static inline void dma_sync_sg_for_device(struct device *dev, | 147 | static inline void dma_sync_sg_for_device(struct device *dev, |
142 | struct scatterlist *sg, int nelems, | 148 | struct scatterlist *sg, int nelems, |
143 | enum dma_data_direction dir) | 149 | enum dma_data_direction dir) |
144 | __attribute__ ((alias("dma_sync_sg"))); | 150 | { |
151 | dma_sync_sg(dev, sg, nelems, dir); | ||
152 | } | ||
145 | 153 | ||
146 | static inline int dma_get_cache_alignment(void) | 154 | static inline int dma_get_cache_alignment(void) |
147 | { | 155 | { |
diff --git a/include/asm-sh64/io.h b/include/asm-sh64/io.h index dee4f77929a4..252fedbb6621 100644 --- a/include/asm-sh64/io.h +++ b/include/asm-sh64/io.h | |||
@@ -123,6 +123,13 @@ void insw(unsigned long port, void *addr, unsigned long count); | |||
123 | void outsl(unsigned long port, const void *addr, unsigned long count); | 123 | void outsl(unsigned long port, const void *addr, unsigned long count); |
124 | void insl(unsigned long port, void *addr, unsigned long count); | 124 | void insl(unsigned long port, void *addr, unsigned long count); |
125 | 125 | ||
126 | #define __raw_readb readb | ||
127 | #define __raw_readw readw | ||
128 | #define __raw_readl readl | ||
129 | #define __raw_writeb writeb | ||
130 | #define __raw_writew writew | ||
131 | #define __raw_writel writel | ||
132 | |||
126 | void memcpy_toio(void __iomem *to, const void *from, long count); | 133 | void memcpy_toio(void __iomem *to, const void *from, long count); |
127 | void memcpy_fromio(void *to, void __iomem *from, long count); | 134 | void memcpy_fromio(void *to, void __iomem *from, long count); |
128 | 135 | ||
diff --git a/include/asm-sh64/ptrace.h b/include/asm-sh64/ptrace.h index 56190f521587..a6d4da519db6 100644 --- a/include/asm-sh64/ptrace.h +++ b/include/asm-sh64/ptrace.h | |||
@@ -28,7 +28,7 @@ struct pt_regs { | |||
28 | #ifdef __KERNEL__ | 28 | #ifdef __KERNEL__ |
29 | #define user_mode(regs) (((regs)->sr & 0x40000000)==0) | 29 | #define user_mode(regs) (((regs)->sr & 0x40000000)==0) |
30 | #define instruction_pointer(regs) ((regs)->pc) | 30 | #define instruction_pointer(regs) ((regs)->pc) |
31 | #define profile_pc(regs) instruction_pointer(regs) | 31 | #define profile_pc(regs) ((unsigned long)instruction_pointer(regs)) |
32 | extern void show_regs(struct pt_regs *); | 32 | extern void show_regs(struct pt_regs *); |
33 | #endif | 33 | #endif |
34 | 34 | ||
diff --git a/include/asm-sh64/system.h b/include/asm-sh64/system.h index 87ef6f1ad5a4..b1598c26fcb0 100644 --- a/include/asm-sh64/system.h +++ b/include/asm-sh64/system.h | |||
@@ -64,7 +64,7 @@ extern void __xchg_called_with_bad_pointer(void); | |||
64 | #define smp_read_barrier_depends() do { } while (0) | 64 | #define smp_read_barrier_depends() do { } while (0) |
65 | #endif /* CONFIG_SMP */ | 65 | #endif /* CONFIG_SMP */ |
66 | 66 | ||
67 | #define set_rmb(var, value) do { xchg(&var, value); } while (0) | 67 | #define set_rmb(var, value) do { (void)xchg(&var, value); } while (0) |
68 | #define set_mb(var, value) set_rmb(var, value) | 68 | #define set_mb(var, value) set_rmb(var, value) |
69 | 69 | ||
70 | /* Interrupt Control */ | 70 | /* Interrupt Control */ |
diff --git a/include/asm-sh64/uaccess.h b/include/asm-sh64/uaccess.h index f4936d8fa617..644c67b65f94 100644 --- a/include/asm-sh64/uaccess.h +++ b/include/asm-sh64/uaccess.h | |||
@@ -128,25 +128,20 @@ do { \ | |||
128 | 128 | ||
129 | #define __get_user_nocheck(x,ptr,size) \ | 129 | #define __get_user_nocheck(x,ptr,size) \ |
130 | ({ \ | 130 | ({ \ |
131 | long __gu_addr = (long)(ptr); \ | 131 | long __gu_err, __gu_val; \ |
132 | long __gu_err; \ | 132 | __get_user_size((void *)&__gu_val, (long)(ptr), \ |
133 | __typeof(*(ptr)) __gu_val; \ | 133 | (size), __gu_err); \ |
134 | __asm__ ("":"=r" (__gu_val)); \ | 134 | (x) = (__typeof__(*(ptr)))__gu_val; \ |
135 | __asm__ ("":"=r" (__gu_err)); \ | ||
136 | __get_user_size((void *)&__gu_val, __gu_addr, (size), __gu_err); \ | ||
137 | (x) = (__typeof__(*(ptr))) __gu_val; \ | ||
138 | __gu_err; \ | 135 | __gu_err; \ |
139 | }) | 136 | }) |
140 | 137 | ||
141 | #define __get_user_check(x,ptr,size) \ | 138 | #define __get_user_check(x,ptr,size) \ |
142 | ({ \ | 139 | ({ \ |
143 | long __gu_addr = (long)(ptr); \ | 140 | long __gu_addr = (long)(ptr); \ |
144 | long __gu_err = -EFAULT; \ | 141 | long __gu_err = -EFAULT, __gu_val; \ |
145 | __typeof(*(ptr)) __gu_val; \ | ||
146 | __asm__ ("":"=r" (__gu_val)); \ | ||
147 | __asm__ ("":"=r" (__gu_err)); \ | ||
148 | if (__access_ok(__gu_addr, (size))) \ | 142 | if (__access_ok(__gu_addr, (size))) \ |
149 | __get_user_size((void *)&__gu_val, __gu_addr, (size), __gu_err); \ | 143 | __get_user_size((void *)&__gu_val, __gu_addr, \ |
144 | (size), __gu_err); \ | ||
150 | (x) = (__typeof__(*(ptr))) __gu_val; \ | 145 | (x) = (__typeof__(*(ptr))) __gu_val; \ |
151 | __gu_err; \ | 146 | __gu_err; \ |
152 | }) | 147 | }) |
diff --git a/include/asm-sparc/mman.h b/include/asm-sparc/mman.h index 88d1886abf3b..b7dc40bc68f4 100644 --- a/include/asm-sparc/mman.h +++ b/include/asm-sparc/mman.h | |||
@@ -35,4 +35,12 @@ | |||
35 | 35 | ||
36 | #define MADV_FREE 0x5 /* (Solaris) contents can be freed */ | 36 | #define MADV_FREE 0x5 /* (Solaris) contents can be freed */ |
37 | 37 | ||
38 | #ifdef __KERNEL__ | ||
39 | #ifndef __ASSEMBLY__ | ||
40 | #define arch_mmap_check sparc_mmap_check | ||
41 | int sparc_mmap_check(unsigned long addr, unsigned long len, | ||
42 | unsigned long flags); | ||
43 | #endif | ||
44 | #endif | ||
45 | |||
38 | #endif /* __SPARC_MMAN_H__ */ | 46 | #endif /* __SPARC_MMAN_H__ */ |
diff --git a/include/asm-sparc64/mman.h b/include/asm-sparc64/mman.h index 6fd878e61435..8cc1860be630 100644 --- a/include/asm-sparc64/mman.h +++ b/include/asm-sparc64/mman.h | |||
@@ -35,4 +35,12 @@ | |||
35 | 35 | ||
36 | #define MADV_FREE 0x5 /* (Solaris) contents can be freed */ | 36 | #define MADV_FREE 0x5 /* (Solaris) contents can be freed */ |
37 | 37 | ||
38 | #ifdef __KERNEL__ | ||
39 | #ifndef __ASSEMBLY__ | ||
40 | #define arch_mmap_check sparc64_mmap_check | ||
41 | int sparc64_mmap_check(unsigned long addr, unsigned long len, | ||
42 | unsigned long flags); | ||
43 | #endif | ||
44 | #endif | ||
45 | |||
38 | #endif /* __SPARC64_MMAN_H__ */ | 46 | #endif /* __SPARC64_MMAN_H__ */ |
diff --git a/include/asm-x86_64/alternative.h b/include/asm-x86_64/alternative.h index aa67bfd1b3ce..a584826cc570 100644 --- a/include/asm-x86_64/alternative.h +++ b/include/asm-x86_64/alternative.h | |||
@@ -4,6 +4,7 @@ | |||
4 | #ifdef __KERNEL__ | 4 | #ifdef __KERNEL__ |
5 | 5 | ||
6 | #include <linux/types.h> | 6 | #include <linux/types.h> |
7 | #include <asm/cpufeature.h> | ||
7 | 8 | ||
8 | struct alt_instr { | 9 | struct alt_instr { |
9 | u8 *instr; /* original instruction */ | 10 | u8 *instr; /* original instruction */ |
@@ -102,9 +103,6 @@ static inline void alternatives_smp_switch(int smp) {} | |||
102 | /* | 103 | /* |
103 | * Alternative inline assembly for SMP. | 104 | * Alternative inline assembly for SMP. |
104 | * | 105 | * |
105 | * alternative_smp() takes two versions (SMP first, UP second) and is | ||
106 | * for more complex stuff such as spinlocks. | ||
107 | * | ||
108 | * The LOCK_PREFIX macro defined here replaces the LOCK and | 106 | * The LOCK_PREFIX macro defined here replaces the LOCK and |
109 | * LOCK_PREFIX macros used everywhere in the source tree. | 107 | * LOCK_PREFIX macros used everywhere in the source tree. |
110 | * | 108 | * |
@@ -124,21 +122,6 @@ static inline void alternatives_smp_switch(int smp) {} | |||
124 | */ | 122 | */ |
125 | 123 | ||
126 | #ifdef CONFIG_SMP | 124 | #ifdef CONFIG_SMP |
127 | #define alternative_smp(smpinstr, upinstr, args...) \ | ||
128 | asm volatile ("661:\n\t" smpinstr "\n662:\n" \ | ||
129 | ".section .smp_altinstructions,\"a\"\n" \ | ||
130 | " .align 8\n" \ | ||
131 | " .quad 661b\n" /* label */ \ | ||
132 | " .quad 663f\n" /* new instruction */ \ | ||
133 | " .byte 0x66\n" /* X86_FEATURE_UP */ \ | ||
134 | " .byte 662b-661b\n" /* sourcelen */ \ | ||
135 | " .byte 664f-663f\n" /* replacementlen */ \ | ||
136 | ".previous\n" \ | ||
137 | ".section .smp_altinstr_replacement,\"awx\"\n" \ | ||
138 | "663:\n\t" upinstr "\n" /* replacement */ \ | ||
139 | "664:\n\t.fill 662b-661b,1,0x42\n" /* space for original */ \ | ||
140 | ".previous" : args) | ||
141 | |||
142 | #define LOCK_PREFIX \ | 125 | #define LOCK_PREFIX \ |
143 | ".section .smp_locks,\"a\"\n" \ | 126 | ".section .smp_locks,\"a\"\n" \ |
144 | " .align 8\n" \ | 127 | " .align 8\n" \ |
@@ -147,8 +130,6 @@ static inline void alternatives_smp_switch(int smp) {} | |||
147 | "661:\n\tlock; " | 130 | "661:\n\tlock; " |
148 | 131 | ||
149 | #else /* ! CONFIG_SMP */ | 132 | #else /* ! CONFIG_SMP */ |
150 | #define alternative_smp(smpinstr, upinstr, args...) \ | ||
151 | asm volatile (upinstr : args) | ||
152 | #define LOCK_PREFIX "" | 133 | #define LOCK_PREFIX "" |
153 | #endif | 134 | #endif |
154 | 135 | ||
diff --git a/include/asm-x86_64/elf.h b/include/asm-x86_64/elf.h index b4f8f4a41a6e..a406fcb1e924 100644 --- a/include/asm-x86_64/elf.h +++ b/include/asm-x86_64/elf.h | |||
@@ -7,8 +7,6 @@ | |||
7 | 7 | ||
8 | #include <asm/ptrace.h> | 8 | #include <asm/ptrace.h> |
9 | #include <asm/user.h> | 9 | #include <asm/user.h> |
10 | #include <asm/processor.h> | ||
11 | #include <asm/compat.h> | ||
12 | 10 | ||
13 | /* x86-64 relocation types */ | 11 | /* x86-64 relocation types */ |
14 | #define R_X86_64_NONE 0 /* No reloc */ | 12 | #define R_X86_64_NONE 0 /* No reloc */ |
@@ -39,18 +37,23 @@ typedef elf_greg_t elf_gregset_t[ELF_NGREG]; | |||
39 | typedef struct user_i387_struct elf_fpregset_t; | 37 | typedef struct user_i387_struct elf_fpregset_t; |
40 | 38 | ||
41 | /* | 39 | /* |
42 | * This is used to ensure we don't load something for the wrong architecture. | ||
43 | */ | ||
44 | #define elf_check_arch(x) \ | ||
45 | ((x)->e_machine == EM_X86_64) | ||
46 | |||
47 | /* | ||
48 | * These are used to set parameters in the core dumps. | 40 | * These are used to set parameters in the core dumps. |
49 | */ | 41 | */ |
50 | #define ELF_CLASS ELFCLASS64 | 42 | #define ELF_CLASS ELFCLASS64 |
51 | #define ELF_DATA ELFDATA2LSB | 43 | #define ELF_DATA ELFDATA2LSB |
52 | #define ELF_ARCH EM_X86_64 | 44 | #define ELF_ARCH EM_X86_64 |
53 | 45 | ||
46 | #ifdef __KERNEL__ | ||
47 | #include <asm/processor.h> | ||
48 | #include <asm/compat.h> | ||
49 | |||
50 | /* | ||
51 | * This is used to ensure we don't load something for the wrong architecture. | ||
52 | */ | ||
53 | #define elf_check_arch(x) \ | ||
54 | ((x)->e_machine == EM_X86_64) | ||
55 | |||
56 | |||
54 | /* SVR4/i386 ABI (pages 3-31, 3-32) says that when the program starts %edx | 57 | /* SVR4/i386 ABI (pages 3-31, 3-32) says that when the program starts %edx |
55 | contains a pointer to a function which might be registered using `atexit'. | 58 | contains a pointer to a function which might be registered using `atexit'. |
56 | This provides a mean for the dynamic linker to call DT_FINI functions for | 59 | This provides a mean for the dynamic linker to call DT_FINI functions for |
@@ -141,7 +144,6 @@ typedef struct user_i387_struct elf_fpregset_t; | |||
141 | /* I'm not sure if we can use '-' here */ | 144 | /* I'm not sure if we can use '-' here */ |
142 | #define ELF_PLATFORM ("x86_64") | 145 | #define ELF_PLATFORM ("x86_64") |
143 | 146 | ||
144 | #ifdef __KERNEL__ | ||
145 | extern void set_personality_64bit(void); | 147 | extern void set_personality_64bit(void); |
146 | #define SET_PERSONALITY(ex, ibcs2) set_personality_64bit() | 148 | #define SET_PERSONALITY(ex, ibcs2) set_personality_64bit() |
147 | /* | 149 | /* |
diff --git a/include/asm-x86_64/processor.h b/include/asm-x86_64/processor.h index 3b3c1217fe61..de9c3147ee4c 100644 --- a/include/asm-x86_64/processor.h +++ b/include/asm-x86_64/processor.h | |||
@@ -232,8 +232,14 @@ struct tss_struct { | |||
232 | unsigned long io_bitmap[IO_BITMAP_LONGS + 1]; | 232 | unsigned long io_bitmap[IO_BITMAP_LONGS + 1]; |
233 | } __attribute__((packed)) ____cacheline_aligned; | 233 | } __attribute__((packed)) ____cacheline_aligned; |
234 | 234 | ||
235 | |||
235 | extern struct cpuinfo_x86 boot_cpu_data; | 236 | extern struct cpuinfo_x86 boot_cpu_data; |
236 | DECLARE_PER_CPU(struct tss_struct,init_tss); | 237 | DECLARE_PER_CPU(struct tss_struct,init_tss); |
238 | /* Save the original ist values for checking stack pointers during debugging */ | ||
239 | struct orig_ist { | ||
240 | unsigned long ist[7]; | ||
241 | }; | ||
242 | DECLARE_PER_CPU(struct orig_ist, orig_ist); | ||
237 | 243 | ||
238 | #ifdef CONFIG_X86_VSMP | 244 | #ifdef CONFIG_X86_VSMP |
239 | #define ARCH_MIN_TASKALIGN (1 << INTERNODE_CACHE_SHIFT) | 245 | #define ARCH_MIN_TASKALIGN (1 << INTERNODE_CACHE_SHIFT) |
diff --git a/include/asm-x86_64/signal.h b/include/asm-x86_64/signal.h index cef7a7d51b7e..3ede2a61973a 100644 --- a/include/asm-x86_64/signal.h +++ b/include/asm-x86_64/signal.h | |||
@@ -3,13 +3,13 @@ | |||
3 | 3 | ||
4 | #ifndef __ASSEMBLY__ | 4 | #ifndef __ASSEMBLY__ |
5 | #include <linux/types.h> | 5 | #include <linux/types.h> |
6 | #include <linux/linkage.h> | ||
7 | #include <linux/time.h> | 6 | #include <linux/time.h> |
8 | 7 | ||
9 | /* Avoid too many header ordering problems. */ | 8 | /* Avoid too many header ordering problems. */ |
10 | struct siginfo; | 9 | struct siginfo; |
11 | 10 | ||
12 | #ifdef __KERNEL__ | 11 | #ifdef __KERNEL__ |
12 | #include <linux/linkage.h> | ||
13 | /* Most things should be clean enough to redefine this at will, if care | 13 | /* Most things should be clean enough to redefine this at will, if care |
14 | is taken to make libc match. */ | 14 | is taken to make libc match. */ |
15 | 15 | ||
diff --git a/include/asm-x86_64/spinlock.h b/include/asm-x86_64/spinlock.h index 8d3421996f94..248a79f0eaff 100644 --- a/include/asm-x86_64/spinlock.h +++ b/include/asm-x86_64/spinlock.h | |||
@@ -21,7 +21,7 @@ | |||
21 | 21 | ||
22 | #define __raw_spin_lock_string \ | 22 | #define __raw_spin_lock_string \ |
23 | "\n1:\t" \ | 23 | "\n1:\t" \ |
24 | "lock ; decl %0\n\t" \ | 24 | LOCK_PREFIX " ; decl %0\n\t" \ |
25 | "js 2f\n" \ | 25 | "js 2f\n" \ |
26 | LOCK_SECTION_START("") \ | 26 | LOCK_SECTION_START("") \ |
27 | "2:\t" \ | 27 | "2:\t" \ |
@@ -40,10 +40,7 @@ | |||
40 | 40 | ||
41 | static inline void __raw_spin_lock(raw_spinlock_t *lock) | 41 | static inline void __raw_spin_lock(raw_spinlock_t *lock) |
42 | { | 42 | { |
43 | alternative_smp( | 43 | asm volatile(__raw_spin_lock_string : "=m" (lock->slock) : : "memory"); |
44 | __raw_spin_lock_string, | ||
45 | __raw_spin_lock_string_up, | ||
46 | "=m" (lock->slock) : : "memory"); | ||
47 | } | 44 | } |
48 | 45 | ||
49 | #define __raw_spin_lock_flags(lock, flags) __raw_spin_lock(lock) | 46 | #define __raw_spin_lock_flags(lock, flags) __raw_spin_lock(lock) |
@@ -125,12 +122,12 @@ static inline int __raw_write_trylock(raw_rwlock_t *lock) | |||
125 | 122 | ||
126 | static inline void __raw_read_unlock(raw_rwlock_t *rw) | 123 | static inline void __raw_read_unlock(raw_rwlock_t *rw) |
127 | { | 124 | { |
128 | asm volatile("lock ; incl %0" :"=m" (rw->lock) : : "memory"); | 125 | asm volatile(LOCK_PREFIX " ; incl %0" :"=m" (rw->lock) : : "memory"); |
129 | } | 126 | } |
130 | 127 | ||
131 | static inline void __raw_write_unlock(raw_rwlock_t *rw) | 128 | static inline void __raw_write_unlock(raw_rwlock_t *rw) |
132 | { | 129 | { |
133 | asm volatile("lock ; addl $" RW_LOCK_BIAS_STR ",%0" | 130 | asm volatile(LOCK_PREFIX " ; addl $" RW_LOCK_BIAS_STR ",%0" |
134 | : "=m" (rw->lock) : : "memory"); | 131 | : "=m" (rw->lock) : : "memory"); |
135 | } | 132 | } |
136 | 133 | ||
diff --git a/include/asm-x86_64/unistd.h b/include/asm-x86_64/unistd.h index 94387c915e53..80fd48e84bbb 100644 --- a/include/asm-x86_64/unistd.h +++ b/include/asm-x86_64/unistd.h | |||
@@ -821,8 +821,6 @@ asmlinkage long sys_fork(struct pt_regs regs); | |||
821 | asmlinkage long sys_vfork(struct pt_regs regs); | 821 | asmlinkage long sys_vfork(struct pt_regs regs); |
822 | asmlinkage long sys_pipe(int *fildes); | 822 | asmlinkage long sys_pipe(int *fildes); |
823 | 823 | ||
824 | #endif /* __KERNEL_SYSCALLS__ */ | ||
825 | |||
826 | #ifndef __ASSEMBLY__ | 824 | #ifndef __ASSEMBLY__ |
827 | 825 | ||
828 | #include <linux/linkage.h> | 826 | #include <linux/linkage.h> |
@@ -838,9 +836,9 @@ asmlinkage long sys_rt_sigaction(int sig, | |||
838 | struct sigaction __user *oact, | 836 | struct sigaction __user *oact, |
839 | size_t sigsetsize); | 837 | size_t sigsetsize); |
840 | 838 | ||
841 | #endif /* __ASSEMBLY__ */ | 839 | #endif /* __ASSEMBLY__ */ |
842 | 840 | ||
843 | #endif /* __NO_STUBS */ | 841 | #endif /* __KERNEL_SYSCALLS__ */ |
844 | 842 | ||
845 | /* | 843 | /* |
846 | * "Conditional" syscalls | 844 | * "Conditional" syscalls |
@@ -850,5 +848,8 @@ asmlinkage long sys_rt_sigaction(int sig, | |||
850 | */ | 848 | */ |
851 | #define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall") | 849 | #define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall") |
852 | 850 | ||
851 | #endif /* __NO_STUBS */ | ||
852 | |||
853 | #endif /* __KERNEL__ */ | 853 | #endif /* __KERNEL__ */ |
854 | #endif | 854 | |
855 | #endif /* _ASM_X86_64_UNISTD_H_ */ | ||
diff --git a/include/asm-x86_64/unwind.h b/include/asm-x86_64/unwind.h index f3e7124effe3..1f6e9bfb569e 100644 --- a/include/asm-x86_64/unwind.h +++ b/include/asm-x86_64/unwind.h | |||
@@ -95,6 +95,7 @@ static inline int arch_unw_user_mode(const struct unwind_frame_info *info) | |||
95 | #else | 95 | #else |
96 | 96 | ||
97 | #define UNW_PC(frame) ((void)(frame), 0) | 97 | #define UNW_PC(frame) ((void)(frame), 0) |
98 | #define UNW_SP(frame) ((void)(frame), 0) | ||
98 | 99 | ||
99 | static inline int arch_unw_user_mode(const void *info) | 100 | static inline int arch_unw_user_mode(const void *info) |
100 | { | 101 | { |
diff --git a/include/asm-x86_64/vsyscall.h b/include/asm-x86_64/vsyscall.h index a85e16f56d73..146b24402a5f 100644 --- a/include/asm-x86_64/vsyscall.h +++ b/include/asm-x86_64/vsyscall.h | |||
@@ -1,8 +1,6 @@ | |||
1 | #ifndef _ASM_X86_64_VSYSCALL_H_ | 1 | #ifndef _ASM_X86_64_VSYSCALL_H_ |
2 | #define _ASM_X86_64_VSYSCALL_H_ | 2 | #define _ASM_X86_64_VSYSCALL_H_ |
3 | 3 | ||
4 | #include <linux/seqlock.h> | ||
5 | |||
6 | enum vsyscall_num { | 4 | enum vsyscall_num { |
7 | __NR_vgettimeofday, | 5 | __NR_vgettimeofday, |
8 | __NR_vtime, | 6 | __NR_vtime, |
@@ -14,6 +12,7 @@ enum vsyscall_num { | |||
14 | #define VSYSCALL_ADDR(vsyscall_nr) (VSYSCALL_START+VSYSCALL_SIZE*(vsyscall_nr)) | 12 | #define VSYSCALL_ADDR(vsyscall_nr) (VSYSCALL_START+VSYSCALL_SIZE*(vsyscall_nr)) |
15 | 13 | ||
16 | #ifdef __KERNEL__ | 14 | #ifdef __KERNEL__ |
15 | #include <linux/seqlock.h> | ||
17 | 16 | ||
18 | #define __section_vxtime __attribute__ ((unused, __section__ (".vxtime"), aligned(16))) | 17 | #define __section_vxtime __attribute__ ((unused, __section__ (".vxtime"), aligned(16))) |
19 | #define __section_wall_jiffies __attribute__ ((unused, __section__ (".wall_jiffies"), aligned(16))) | 18 | #define __section_wall_jiffies __attribute__ ((unused, __section__ (".wall_jiffies"), aligned(16))) |
diff --git a/include/linux/atmdev.h b/include/linux/atmdev.h index 41788a31c438..2096e5c72827 100644 --- a/include/linux/atmdev.h +++ b/include/linux/atmdev.h | |||
@@ -7,7 +7,6 @@ | |||
7 | #define LINUX_ATMDEV_H | 7 | #define LINUX_ATMDEV_H |
8 | 8 | ||
9 | 9 | ||
10 | #include <linux/device.h> | ||
11 | #include <linux/atmapi.h> | 10 | #include <linux/atmapi.h> |
12 | #include <linux/atm.h> | 11 | #include <linux/atm.h> |
13 | #include <linux/atmioc.h> | 12 | #include <linux/atmioc.h> |
@@ -210,6 +209,7 @@ struct atm_cirange { | |||
210 | 209 | ||
211 | #ifdef __KERNEL__ | 210 | #ifdef __KERNEL__ |
212 | 211 | ||
212 | #include <linux/device.h> | ||
213 | #include <linux/wait.h> /* wait_queue_head_t */ | 213 | #include <linux/wait.h> /* wait_queue_head_t */ |
214 | #include <linux/time.h> /* struct timeval */ | 214 | #include <linux/time.h> /* struct timeval */ |
215 | #include <linux/net.h> | 215 | #include <linux/net.h> |
diff --git a/include/linux/audit.h b/include/linux/audit.h index 64f9f9e56ac5..40a6c26294ae 100644 --- a/include/linux/audit.h +++ b/include/linux/audit.h | |||
@@ -132,6 +132,10 @@ | |||
132 | #define AUDIT_CLASS_DIR_WRITE_32 1 | 132 | #define AUDIT_CLASS_DIR_WRITE_32 1 |
133 | #define AUDIT_CLASS_CHATTR 2 | 133 | #define AUDIT_CLASS_CHATTR 2 |
134 | #define AUDIT_CLASS_CHATTR_32 3 | 134 | #define AUDIT_CLASS_CHATTR_32 3 |
135 | #define AUDIT_CLASS_READ 4 | ||
136 | #define AUDIT_CLASS_READ_32 5 | ||
137 | #define AUDIT_CLASS_WRITE 6 | ||
138 | #define AUDIT_CLASS_WRITE_32 7 | ||
135 | 139 | ||
136 | /* This bitmask is used to validate user input. It represents all bits that | 140 | /* This bitmask is used to validate user input. It represents all bits that |
137 | * are currently used in an audit field constant understood by the kernel. | 141 | * are currently used in an audit field constant understood by the kernel. |
@@ -177,6 +181,7 @@ | |||
177 | #define AUDIT_EXIT 103 | 181 | #define AUDIT_EXIT 103 |
178 | #define AUDIT_SUCCESS 104 /* exit >= 0; value ignored */ | 182 | #define AUDIT_SUCCESS 104 /* exit >= 0; value ignored */ |
179 | #define AUDIT_WATCH 105 | 183 | #define AUDIT_WATCH 105 |
184 | #define AUDIT_PERM 106 | ||
180 | 185 | ||
181 | #define AUDIT_ARG0 200 | 186 | #define AUDIT_ARG0 200 |
182 | #define AUDIT_ARG1 (AUDIT_ARG0+1) | 187 | #define AUDIT_ARG1 (AUDIT_ARG0+1) |
@@ -252,6 +257,11 @@ | |||
252 | #define AUDIT_ARCH_V850 (EM_V850|__AUDIT_ARCH_LE) | 257 | #define AUDIT_ARCH_V850 (EM_V850|__AUDIT_ARCH_LE) |
253 | #define AUDIT_ARCH_X86_64 (EM_X86_64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) | 258 | #define AUDIT_ARCH_X86_64 (EM_X86_64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) |
254 | 259 | ||
260 | #define AUDIT_PERM_EXEC 1 | ||
261 | #define AUDIT_PERM_WRITE 2 | ||
262 | #define AUDIT_PERM_READ 4 | ||
263 | #define AUDIT_PERM_ATTR 8 | ||
264 | |||
255 | struct audit_status { | 265 | struct audit_status { |
256 | __u32 mask; /* Bit mask for valid entries */ | 266 | __u32 mask; /* Bit mask for valid entries */ |
257 | __u32 enabled; /* 1 = enabled, 0 = disabled */ | 267 | __u32 enabled; /* 1 = enabled, 0 = disabled */ |
@@ -314,6 +324,7 @@ struct mqstat; | |||
314 | #define AUDITSC_FAILURE 2 | 324 | #define AUDITSC_FAILURE 2 |
315 | #define AUDITSC_RESULT(x) ( ((long)(x))<0?AUDITSC_FAILURE:AUDITSC_SUCCESS ) | 325 | #define AUDITSC_RESULT(x) ( ((long)(x))<0?AUDITSC_FAILURE:AUDITSC_SUCCESS ) |
316 | extern int __init audit_register_class(int class, unsigned *list); | 326 | extern int __init audit_register_class(int class, unsigned *list); |
327 | extern int audit_classify_syscall(int abi, unsigned syscall); | ||
317 | #ifdef CONFIG_AUDITSYSCALL | 328 | #ifdef CONFIG_AUDITSYSCALL |
318 | /* These are defined in auditsc.c */ | 329 | /* These are defined in auditsc.c */ |
319 | /* Public API */ | 330 | /* Public API */ |
diff --git a/include/linux/delayacct.h b/include/linux/delayacct.h index 11487b6e7127..561e2a77805c 100644 --- a/include/linux/delayacct.h +++ b/include/linux/delayacct.h | |||
@@ -59,10 +59,14 @@ static inline void delayacct_tsk_init(struct task_struct *tsk) | |||
59 | __delayacct_tsk_init(tsk); | 59 | __delayacct_tsk_init(tsk); |
60 | } | 60 | } |
61 | 61 | ||
62 | static inline void delayacct_tsk_exit(struct task_struct *tsk) | 62 | /* Free tsk->delays. Called from bad fork and __put_task_struct |
63 | * where there's no risk of tsk->delays being accessed elsewhere | ||
64 | */ | ||
65 | static inline void delayacct_tsk_free(struct task_struct *tsk) | ||
63 | { | 66 | { |
64 | if (tsk->delays) | 67 | if (tsk->delays) |
65 | __delayacct_tsk_exit(tsk); | 68 | kmem_cache_free(delayacct_cache, tsk->delays); |
69 | tsk->delays = NULL; | ||
66 | } | 70 | } |
67 | 71 | ||
68 | static inline void delayacct_blkio_start(void) | 72 | static inline void delayacct_blkio_start(void) |
@@ -101,7 +105,7 @@ static inline void delayacct_init(void) | |||
101 | {} | 105 | {} |
102 | static inline void delayacct_tsk_init(struct task_struct *tsk) | 106 | static inline void delayacct_tsk_init(struct task_struct *tsk) |
103 | {} | 107 | {} |
104 | static inline void delayacct_tsk_exit(struct task_struct *tsk) | 108 | static inline void delayacct_tsk_free(struct task_struct *tsk) |
105 | {} | 109 | {} |
106 | static inline void delayacct_blkio_start(void) | 110 | static inline void delayacct_blkio_start(void) |
107 | {} | 111 | {} |
diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h index e4bccbcc2750..4fc379de6c2f 100644 --- a/include/linux/hrtimer.h +++ b/include/linux/hrtimer.h | |||
@@ -80,6 +80,7 @@ struct hrtimer_sleeper { | |||
80 | * @get_softirq_time: function to retrieve the current time from the softirq | 80 | * @get_softirq_time: function to retrieve the current time from the softirq |
81 | * @curr_timer: the timer which is executing a callback right now | 81 | * @curr_timer: the timer which is executing a callback right now |
82 | * @softirq_time: the time when running the hrtimer queue in the softirq | 82 | * @softirq_time: the time when running the hrtimer queue in the softirq |
83 | * @lock_key: the lock_class_key for use with lockdep | ||
83 | */ | 84 | */ |
84 | struct hrtimer_base { | 85 | struct hrtimer_base { |
85 | clockid_t index; | 86 | clockid_t index; |
diff --git a/include/linux/ktime.h b/include/linux/ktime.h index ed3396dcc4f7..84eeecd60a02 100644 --- a/include/linux/ktime.h +++ b/include/linux/ktime.h | |||
@@ -56,7 +56,8 @@ typedef union { | |||
56 | #endif | 56 | #endif |
57 | } ktime_t; | 57 | } ktime_t; |
58 | 58 | ||
59 | #define KTIME_MAX (~((u64)1 << 63)) | 59 | #define KTIME_MAX ((s64)~((u64)1 << 63)) |
60 | #define KTIME_SEC_MAX (KTIME_MAX / NSEC_PER_SEC) | ||
60 | 61 | ||
61 | /* | 62 | /* |
62 | * ktime_t definitions when using the 64-bit scalar representation: | 63 | * ktime_t definitions when using the 64-bit scalar representation: |
@@ -73,6 +74,10 @@ typedef union { | |||
73 | */ | 74 | */ |
74 | static inline ktime_t ktime_set(const long secs, const unsigned long nsecs) | 75 | static inline ktime_t ktime_set(const long secs, const unsigned long nsecs) |
75 | { | 76 | { |
77 | #if (BITS_PER_LONG == 64) | ||
78 | if (unlikely(secs >= KTIME_SEC_MAX)) | ||
79 | return (ktime_t){ .tv64 = KTIME_MAX }; | ||
80 | #endif | ||
76 | return (ktime_t) { .tv64 = (s64)secs * NSEC_PER_SEC + (s64)nsecs }; | 81 | return (ktime_t) { .tv64 = (s64)secs * NSEC_PER_SEC + (s64)nsecs }; |
77 | } | 82 | } |
78 | 83 | ||
diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h index c1f021eddffa..ba095aebedff 100644 --- a/include/linux/mmc/host.h +++ b/include/linux/mmc/host.h | |||
@@ -77,7 +77,7 @@ struct mmc_host { | |||
77 | struct device *dev; | 77 | struct device *dev; |
78 | struct class_device class_dev; | 78 | struct class_device class_dev; |
79 | int index; | 79 | int index; |
80 | struct mmc_host_ops *ops; | 80 | const struct mmc_host_ops *ops; |
81 | unsigned int f_min; | 81 | unsigned int f_min; |
82 | unsigned int f_max; | 82 | unsigned int f_max; |
83 | u32 ocr_avail; | 83 | u32 ocr_avail; |
diff --git a/include/linux/mmc/mmc.h b/include/linux/mmc/mmc.h index 03a14a30c46a..627e2c08ce41 100644 --- a/include/linux/mmc/mmc.h +++ b/include/linux/mmc/mmc.h | |||
@@ -105,6 +105,8 @@ extern int mmc_wait_for_cmd(struct mmc_host *, struct mmc_command *, int); | |||
105 | extern int mmc_wait_for_app_cmd(struct mmc_host *, unsigned int, | 105 | extern int mmc_wait_for_app_cmd(struct mmc_host *, unsigned int, |
106 | struct mmc_command *, int); | 106 | struct mmc_command *, int); |
107 | 107 | ||
108 | extern void mmc_set_data_timeout(struct mmc_data *, const struct mmc_card *, int); | ||
109 | |||
108 | extern int __mmc_claim_host(struct mmc_host *host, struct mmc_card *card); | 110 | extern int __mmc_claim_host(struct mmc_host *host, struct mmc_card *card); |
109 | 111 | ||
110 | static inline void mmc_claim_host(struct mmc_host *host) | 112 | static inline void mmc_claim_host(struct mmc_host *host) |
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index 656b588a9f96..f45163c528e8 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h | |||
@@ -77,6 +77,7 @@ struct per_cpu_pages { | |||
77 | struct per_cpu_pageset { | 77 | struct per_cpu_pageset { |
78 | struct per_cpu_pages pcp[2]; /* 0: hot. 1: cold */ | 78 | struct per_cpu_pages pcp[2]; /* 0: hot. 1: cold */ |
79 | #ifdef CONFIG_SMP | 79 | #ifdef CONFIG_SMP |
80 | s8 stat_threshold; | ||
80 | s8 vm_stat_diff[NR_VM_ZONE_STAT_ITEMS]; | 81 | s8 vm_stat_diff[NR_VM_ZONE_STAT_ITEMS]; |
81 | #endif | 82 | #endif |
82 | } ____cacheline_aligned_in_smp; | 83 | } ____cacheline_aligned_in_smp; |
diff --git a/include/linux/netfilter/Kbuild b/include/linux/netfilter/Kbuild index d06311acd448..1d3a14e2da6e 100644 --- a/include/linux/netfilter/Kbuild +++ b/include/linux/netfilter/Kbuild | |||
@@ -5,7 +5,7 @@ header-y := nf_conntrack_sctp.h nf_conntrack_tuple_common.h \ | |||
5 | xt_helper.h xt_length.h xt_limit.h xt_mac.h xt_mark.h \ | 5 | xt_helper.h xt_length.h xt_limit.h xt_mac.h xt_mark.h \ |
6 | xt_MARK.h xt_multiport.h xt_NFQUEUE.h xt_pkttype.h \ | 6 | xt_MARK.h xt_multiport.h xt_NFQUEUE.h xt_pkttype.h \ |
7 | xt_policy.h xt_realm.h xt_sctp.h xt_state.h xt_string.h \ | 7 | xt_policy.h xt_realm.h xt_sctp.h xt_state.h xt_string.h \ |
8 | xt_tcpmss.h xt_tcpudp.h | 8 | xt_tcpmss.h xt_tcpudp.h xt_SECMARK.h xt_CONNSECMARK.h |
9 | 9 | ||
10 | unifdef-y := nf_conntrack_common.h nf_conntrack_ftp.h \ | 10 | unifdef-y := nf_conntrack_common.h nf_conntrack_ftp.h \ |
11 | nf_conntrack_tcp.h nfnetlink.h x_tables.h xt_physdev.h | 11 | nf_conntrack_tcp.h nfnetlink.h x_tables.h xt_physdev.h |
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h index 247434553ae8..6c2066caeaab 100644 --- a/include/linux/nfs_fs.h +++ b/include/linux/nfs_fs.h | |||
@@ -9,27 +9,6 @@ | |||
9 | #ifndef _LINUX_NFS_FS_H | 9 | #ifndef _LINUX_NFS_FS_H |
10 | #define _LINUX_NFS_FS_H | 10 | #define _LINUX_NFS_FS_H |
11 | 11 | ||
12 | #include <linux/in.h> | ||
13 | #include <linux/mm.h> | ||
14 | #include <linux/pagemap.h> | ||
15 | #include <linux/rwsem.h> | ||
16 | #include <linux/wait.h> | ||
17 | |||
18 | #include <linux/sunrpc/debug.h> | ||
19 | #include <linux/sunrpc/auth.h> | ||
20 | #include <linux/sunrpc/clnt.h> | ||
21 | |||
22 | #include <linux/nfs.h> | ||
23 | #include <linux/nfs2.h> | ||
24 | #include <linux/nfs3.h> | ||
25 | #include <linux/nfs4.h> | ||
26 | #include <linux/nfs_xdr.h> | ||
27 | |||
28 | #include <linux/nfs_fs_sb.h> | ||
29 | |||
30 | #include <linux/rwsem.h> | ||
31 | #include <linux/mempool.h> | ||
32 | |||
33 | /* | 12 | /* |
34 | * Enable debugging support for nfs client. | 13 | * Enable debugging support for nfs client. |
35 | * Requires RPC_DEBUG. | 14 | * Requires RPC_DEBUG. |
@@ -48,11 +27,6 @@ | |||
48 | #define NFS_SUPER_MAGIC 0x6969 | 27 | #define NFS_SUPER_MAGIC 0x6969 |
49 | 28 | ||
50 | /* | 29 | /* |
51 | * These are the default flags for swap requests | ||
52 | */ | ||
53 | #define NFS_RPC_SWAPFLAGS (RPC_TASK_SWAPPER|RPC_TASK_ROOTCREDS) | ||
54 | |||
55 | /* | ||
56 | * When flushing a cluster of dirty pages, there can be different | 30 | * When flushing a cluster of dirty pages, there can be different |
57 | * strategies: | 31 | * strategies: |
58 | */ | 32 | */ |
@@ -65,6 +39,32 @@ | |||
65 | 39 | ||
66 | #ifdef __KERNEL__ | 40 | #ifdef __KERNEL__ |
67 | 41 | ||
42 | #include <linux/in.h> | ||
43 | #include <linux/mm.h> | ||
44 | #include <linux/pagemap.h> | ||
45 | #include <linux/rwsem.h> | ||
46 | #include <linux/wait.h> | ||
47 | |||
48 | #include <linux/sunrpc/debug.h> | ||
49 | #include <linux/sunrpc/auth.h> | ||
50 | #include <linux/sunrpc/clnt.h> | ||
51 | |||
52 | #include <linux/nfs.h> | ||
53 | #include <linux/nfs2.h> | ||
54 | #include <linux/nfs3.h> | ||
55 | #include <linux/nfs4.h> | ||
56 | #include <linux/nfs_xdr.h> | ||
57 | |||
58 | #include <linux/nfs_fs_sb.h> | ||
59 | |||
60 | #include <linux/rwsem.h> | ||
61 | #include <linux/mempool.h> | ||
62 | |||
63 | /* | ||
64 | * These are the default flags for swap requests | ||
65 | */ | ||
66 | #define NFS_RPC_SWAPFLAGS (RPC_TASK_SWAPPER|RPC_TASK_ROOTCREDS) | ||
67 | |||
68 | /* | 68 | /* |
69 | * NFSv3/v4 Access mode cache entry | 69 | * NFSv3/v4 Access mode cache entry |
70 | */ | 70 | */ |
@@ -427,7 +427,7 @@ extern int nfs_writeback_done(struct rpc_task *, struct nfs_write_data *); | |||
427 | extern void nfs_writedata_release(void *); | 427 | extern void nfs_writedata_release(void *); |
428 | 428 | ||
429 | #if defined(CONFIG_NFS_V3) || defined(CONFIG_NFS_V4) | 429 | #if defined(CONFIG_NFS_V3) || defined(CONFIG_NFS_V4) |
430 | struct nfs_write_data *nfs_commit_alloc(unsigned int pagecount); | 430 | struct nfs_write_data *nfs_commit_alloc(void); |
431 | void nfs_commit_free(struct nfs_write_data *p); | 431 | void nfs_commit_free(struct nfs_write_data *p); |
432 | #endif | 432 | #endif |
433 | 433 | ||
@@ -478,7 +478,7 @@ static inline int nfs_wb_page(struct inode *inode, struct page* page) | |||
478 | /* | 478 | /* |
479 | * Allocate nfs_write_data structures | 479 | * Allocate nfs_write_data structures |
480 | */ | 480 | */ |
481 | extern struct nfs_write_data *nfs_writedata_alloc(unsigned int pagecount); | 481 | extern struct nfs_write_data *nfs_writedata_alloc(size_t len); |
482 | 482 | ||
483 | /* | 483 | /* |
484 | * linux/fs/nfs/read.c | 484 | * linux/fs/nfs/read.c |
@@ -492,7 +492,7 @@ extern void nfs_readdata_release(void *data); | |||
492 | /* | 492 | /* |
493 | * Allocate nfs_read_data structures | 493 | * Allocate nfs_read_data structures |
494 | */ | 494 | */ |
495 | extern struct nfs_read_data *nfs_readdata_alloc(unsigned int pagecount); | 495 | extern struct nfs_read_data *nfs_readdata_alloc(size_t len); |
496 | 496 | ||
497 | /* | 497 | /* |
498 | * linux/fs/nfs3proc.c | 498 | * linux/fs/nfs3proc.c |
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h index db9cbf68e12b..41e5a19199e9 100644 --- a/include/linux/nfs_xdr.h +++ b/include/linux/nfs_xdr.h | |||
@@ -729,7 +729,7 @@ struct nfs_read_data { | |||
729 | struct list_head pages; /* Coalesced read requests */ | 729 | struct list_head pages; /* Coalesced read requests */ |
730 | struct nfs_page *req; /* multi ops per nfs_page */ | 730 | struct nfs_page *req; /* multi ops per nfs_page */ |
731 | struct page **pagevec; | 731 | struct page **pagevec; |
732 | unsigned int npages; /* active pages in pagevec */ | 732 | unsigned int npages; /* Max length of pagevec */ |
733 | struct nfs_readargs args; | 733 | struct nfs_readargs args; |
734 | struct nfs_readres res; | 734 | struct nfs_readres res; |
735 | #ifdef CONFIG_NFS_V4 | 735 | #ifdef CONFIG_NFS_V4 |
@@ -748,7 +748,7 @@ struct nfs_write_data { | |||
748 | struct list_head pages; /* Coalesced requests we wish to flush */ | 748 | struct list_head pages; /* Coalesced requests we wish to flush */ |
749 | struct nfs_page *req; /* multi ops per nfs_page */ | 749 | struct nfs_page *req; /* multi ops per nfs_page */ |
750 | struct page **pagevec; | 750 | struct page **pagevec; |
751 | unsigned int npages; /* active pages in pagevec */ | 751 | unsigned int npages; /* Max length of pagevec */ |
752 | struct nfs_writeargs args; /* argument struct */ | 752 | struct nfs_writeargs args; /* argument struct */ |
753 | struct nfs_writeres res; /* result struct */ | 753 | struct nfs_writeres res; /* result struct */ |
754 | #ifdef CONFIG_NFS_V4 | 754 | #ifdef CONFIG_NFS_V4 |
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 4c2839eab7f4..7a249155ee4e 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
@@ -648,6 +648,8 @@ | |||
648 | #define PCI_DEVICE_ID_SI_962 0x0962 | 648 | #define PCI_DEVICE_ID_SI_962 0x0962 |
649 | #define PCI_DEVICE_ID_SI_963 0x0963 | 649 | #define PCI_DEVICE_ID_SI_963 0x0963 |
650 | #define PCI_DEVICE_ID_SI_965 0x0965 | 650 | #define PCI_DEVICE_ID_SI_965 0x0965 |
651 | #define PCI_DEVICE_ID_SI_966 0x0966 | ||
652 | #define PCI_DEVICE_ID_SI_968 0x0968 | ||
651 | #define PCI_DEVICE_ID_SI_5511 0x5511 | 653 | #define PCI_DEVICE_ID_SI_5511 0x5511 |
652 | #define PCI_DEVICE_ID_SI_5513 0x5513 | 654 | #define PCI_DEVICE_ID_SI_5513 0x5513 |
653 | #define PCI_DEVICE_ID_SI_5517 0x5517 | 655 | #define PCI_DEVICE_ID_SI_5517 0x5517 |
@@ -1292,6 +1294,7 @@ | |||
1292 | #define PCI_DEVICE_ID_VIA_8367_0 0x3099 | 1294 | #define PCI_DEVICE_ID_VIA_8367_0 0x3099 |
1293 | #define PCI_DEVICE_ID_VIA_8653_0 0x3101 | 1295 | #define PCI_DEVICE_ID_VIA_8653_0 0x3101 |
1294 | #define PCI_DEVICE_ID_VIA_8622 0x3102 | 1296 | #define PCI_DEVICE_ID_VIA_8622 0x3102 |
1297 | #define PCI_DEVICE_ID_VIA_8235_USB_2 0x3104 | ||
1295 | #define PCI_DEVICE_ID_VIA_8233C_0 0x3109 | 1298 | #define PCI_DEVICE_ID_VIA_8233C_0 0x3109 |
1296 | #define PCI_DEVICE_ID_VIA_8361 0x3112 | 1299 | #define PCI_DEVICE_ID_VIA_8361 0x3112 |
1297 | #define PCI_DEVICE_ID_VIA_XM266 0x3116 | 1300 | #define PCI_DEVICE_ID_VIA_XM266 0x3116 |
diff --git a/include/linux/sched.h b/include/linux/sched.h index 6674fc1e51bf..34ed0d99b1bd 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -994,7 +994,6 @@ struct task_struct { | |||
994 | */ | 994 | */ |
995 | struct pipe_inode_info *splice_pipe; | 995 | struct pipe_inode_info *splice_pipe; |
996 | #ifdef CONFIG_TASK_DELAY_ACCT | 996 | #ifdef CONFIG_TASK_DELAY_ACCT |
997 | spinlock_t delays_lock; | ||
998 | struct task_delay_info *delays; | 997 | struct task_delay_info *delays; |
999 | #endif | 998 | #endif |
1000 | }; | 999 | }; |
diff --git a/include/linux/timex.h b/include/linux/timex.h index 19bb6538b49e..d543d3871e38 100644 --- a/include/linux/timex.h +++ b/include/linux/timex.h | |||
@@ -57,7 +57,6 @@ | |||
57 | #include <linux/time.h> | 57 | #include <linux/time.h> |
58 | 58 | ||
59 | #include <asm/param.h> | 59 | #include <asm/param.h> |
60 | #include <asm/timex.h> | ||
61 | 60 | ||
62 | /* | 61 | /* |
63 | * SHIFT_KG and SHIFT_KF establish the damping of the PLL and are chosen | 62 | * SHIFT_KG and SHIFT_KF establish the damping of the PLL and are chosen |
@@ -191,6 +190,8 @@ struct timex { | |||
191 | #define TIME_BAD TIME_ERROR /* bw compat */ | 190 | #define TIME_BAD TIME_ERROR /* bw compat */ |
192 | 191 | ||
193 | #ifdef __KERNEL__ | 192 | #ifdef __KERNEL__ |
193 | #include <asm/timex.h> | ||
194 | |||
194 | /* | 195 | /* |
195 | * kernel variables | 196 | * kernel variables |
196 | * Note: maximum error = NTP synch distance = dispersion + delay / 2; | 197 | * Note: maximum error = NTP synch distance = dispersion + delay / 2; |
diff --git a/include/linux/videodev.h b/include/linux/videodev.h index 518c7a32175e..8dba97a291f6 100644 --- a/include/linux/videodev.h +++ b/include/linux/videodev.h | |||
@@ -14,8 +14,7 @@ | |||
14 | 14 | ||
15 | #include <linux/videodev2.h> | 15 | #include <linux/videodev2.h> |
16 | 16 | ||
17 | #ifdef CONFIG_VIDEO_V4L1_COMPAT | 17 | #if defined(CONFIG_VIDEO_V4L1_COMPAT) || !defined (__KERNEL__) |
18 | #define HAVE_V4L1 1 | ||
19 | 18 | ||
20 | struct video_capability | 19 | struct video_capability |
21 | { | 20 | { |
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h index b7146956a929..e3715d774197 100644 --- a/include/linux/videodev2.h +++ b/include/linux/videodev2.h | |||
@@ -22,8 +22,6 @@ | |||
22 | #endif | 22 | #endif |
23 | #include <linux/types.h> | 23 | #include <linux/types.h> |
24 | 24 | ||
25 | #define HAVE_V4L2 1 | ||
26 | |||
27 | /* | 25 | /* |
28 | * Common stuff for both V4L1 and V4L2 | 26 | * Common stuff for both V4L1 and V4L2 |
29 | * Moved from videodev.h | 27 | * Moved from videodev.h |
diff --git a/include/media/v4l2-dev.h b/include/media/v4l2-dev.h index 600d61d7d2ab..810462f8a374 100644 --- a/include/media/v4l2-dev.h +++ b/include/media/v4l2-dev.h | |||
@@ -194,7 +194,7 @@ struct video_device | |||
194 | 194 | ||
195 | 195 | ||
196 | int (*vidioc_overlay) (struct file *file, void *fh, unsigned int i); | 196 | int (*vidioc_overlay) (struct file *file, void *fh, unsigned int i); |
197 | #ifdef HAVE_V4L1 | 197 | #ifdef CONFIG_VIDEO_V4L1_COMPAT |
198 | /* buffer type is struct vidio_mbuf * */ | 198 | /* buffer type is struct vidio_mbuf * */ |
199 | int (*vidiocgmbuf) (struct file *file, void *fh, struct video_mbuf *p); | 199 | int (*vidiocgmbuf) (struct file *file, void *fh, struct video_mbuf *p); |
200 | #endif | 200 | #endif |
@@ -335,7 +335,7 @@ extern int video_usercopy(struct inode *inode, struct file *file, | |||
335 | unsigned int cmd, void *arg)); | 335 | unsigned int cmd, void *arg)); |
336 | 336 | ||
337 | 337 | ||
338 | #ifdef HAVE_V4L1 | 338 | #ifdef CONFIG_VIDEO_V4L1_COMPAT |
339 | #include <linux/mm.h> | 339 | #include <linux/mm.h> |
340 | 340 | ||
341 | extern struct video_device* video_devdata(struct file*); | 341 | extern struct video_device* video_devdata(struct file*); |
@@ -357,6 +357,8 @@ video_device_remove_file(struct video_device *vfd, | |||
357 | class_device_remove_file(&vfd->class_dev, attr); | 357 | class_device_remove_file(&vfd->class_dev, attr); |
358 | } | 358 | } |
359 | 359 | ||
360 | #endif /* CONFIG_VIDEO_V4L1_COMPAT */ | ||
361 | |||
360 | #ifdef OBSOLETE_OWNER /* to be removed soon */ | 362 | #ifdef OBSOLETE_OWNER /* to be removed soon */ |
361 | /* helper functions to access driver private data. */ | 363 | /* helper functions to access driver private data. */ |
362 | static inline void *video_get_drvdata(struct video_device *dev) | 364 | static inline void *video_get_drvdata(struct video_device *dev) |
@@ -372,6 +374,5 @@ static inline void video_set_drvdata(struct video_device *dev, void *data) | |||
372 | 374 | ||
373 | extern int video_exclusive_open(struct inode *inode, struct file *file); | 375 | extern int video_exclusive_open(struct inode *inode, struct file *file); |
374 | extern int video_exclusive_release(struct inode *inode, struct file *file); | 376 | extern int video_exclusive_release(struct inode *inode, struct file *file); |
375 | #endif /* HAVE_V4L1 */ | ||
376 | 377 | ||
377 | #endif /* _V4L2_DEV_H */ | 378 | #endif /* _V4L2_DEV_H */ |