diff options
81 files changed, 738 insertions, 2251 deletions
diff --git a/.gitignore b/.gitignore index e1d5c17c12c2..9eb4b7711499 100644 --- a/.gitignore +++ b/.gitignore | |||
@@ -20,6 +20,7 @@ | |||
20 | # Top-level generic files | 20 | # Top-level generic files |
21 | # | 21 | # |
22 | tags | 22 | tags |
23 | TAGS | ||
23 | vmlinux* | 24 | vmlinux* |
24 | System.map | 25 | System.map |
25 | Module.symvers | 26 | Module.symvers |
@@ -45,7 +45,7 @@ S: Longford, Ireland | |||
45 | S: Sydney, Australia | 45 | S: Sydney, Australia |
46 | 46 | ||
47 | N: Tigran A. Aivazian | 47 | N: Tigran A. Aivazian |
48 | E: tigran@veritas.com | 48 | E: tigran@aivazian.fsnet.co.uk |
49 | W: http://www.moses.uklinux.net/patches | 49 | W: http://www.moses.uklinux.net/patches |
50 | D: BFS filesystem | 50 | D: BFS filesystem |
51 | D: Intel IA32 CPU microcode update support | 51 | D: Intel IA32 CPU microcode update support |
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt index 1ac3c74646e3..d52c4aaaf17f 100644 --- a/Documentation/feature-removal-schedule.txt +++ b/Documentation/feature-removal-schedule.txt | |||
@@ -53,18 +53,6 @@ Who: Mauro Carvalho Chehab <mchehab@brturbo.com.br> | |||
53 | 53 | ||
54 | --------------------------- | 54 | --------------------------- |
55 | 55 | ||
56 | What: sys_sysctl | ||
57 | When: January 2007 | ||
58 | Why: The same information is available through /proc/sys and that is the | ||
59 | interface user space prefers to use. And there do not appear to be | ||
60 | any existing user in user space of sys_sysctl. The additional | ||
61 | maintenance overhead of keeping a set of binary names gets | ||
62 | in the way of doing a good job of maintaining this interface. | ||
63 | |||
64 | Who: Eric Biederman <ebiederm@xmission.com> | ||
65 | |||
66 | --------------------------- | ||
67 | |||
68 | What: PCMCIA control ioctl (needed for pcmcia-cs [cardmgr, cardctl]) | 56 | What: PCMCIA control ioctl (needed for pcmcia-cs [cardmgr, cardctl]) |
69 | When: November 2005 | 57 | When: November 2005 |
70 | Files: drivers/pcmcia/: pcmcia_ioctl.c | 58 | Files: drivers/pcmcia/: pcmcia_ioctl.c |
diff --git a/Documentation/memory-barriers.txt b/Documentation/memory-barriers.txt index 7f790f66ec68..7751704b6db1 100644 --- a/Documentation/memory-barriers.txt +++ b/Documentation/memory-barriers.txt | |||
@@ -1016,7 +1016,7 @@ There are some more advanced barrier functions: | |||
1016 | 1016 | ||
1017 | (*) set_mb(var, value) | 1017 | (*) set_mb(var, value) |
1018 | 1018 | ||
1019 | This assigns the value to the variable and then inserts at least a write | 1019 | This assigns the value to the variable and then inserts a full memory |
1020 | barrier after it, depending on the function. It isn't guaranteed to | 1020 | barrier after it, depending on the function. It isn't guaranteed to |
1021 | insert anything more than a compiler barrier in a UP compilation. | 1021 | insert anything more than a compiler barrier in a UP compilation. |
1022 | 1022 | ||
diff --git a/MAINTAINERS b/MAINTAINERS index d708702aba2f..8732daeae303 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
@@ -493,7 +493,7 @@ S: Maintained | |||
493 | 493 | ||
494 | BFS FILE SYSTEM | 494 | BFS FILE SYSTEM |
495 | P: Tigran A. Aivazian | 495 | P: Tigran A. Aivazian |
496 | M: tigran@veritas.com | 496 | M: tigran@aivazian.fsnet.co.uk |
497 | L: linux-kernel@vger.kernel.org | 497 | L: linux-kernel@vger.kernel.org |
498 | S: Maintained | 498 | S: Maintained |
499 | 499 | ||
@@ -1513,7 +1513,7 @@ S: Maintained | |||
1513 | 1513 | ||
1514 | INTEL IA32 MICROCODE UPDATE SUPPORT | 1514 | INTEL IA32 MICROCODE UPDATE SUPPORT |
1515 | P: Tigran Aivazian | 1515 | P: Tigran Aivazian |
1516 | M: tigran@veritas.com | 1516 | M: tigran@aivazian.fsnet.co.uk |
1517 | S: Maintained | 1517 | S: Maintained |
1518 | 1518 | ||
1519 | INTEL IXP4XX RANDOM NUMBER GENERATOR SUPPORT | 1519 | INTEL IXP4XX RANDOM NUMBER GENERATOR SUPPORT |
@@ -1,7 +1,7 @@ | |||
1 | VERSION = 2 | 1 | VERSION = 2 |
2 | PATCHLEVEL = 6 | 2 | PATCHLEVEL = 6 |
3 | SUBLEVEL = 19 | 3 | SUBLEVEL = 19 |
4 | EXTRAVERSION =-rc4 | 4 | EXTRAVERSION =-rc5 |
5 | NAME=Avast! A bilge rat! | 5 | NAME=Avast! A bilge rat! |
6 | 6 | ||
7 | # *DOCUMENTATION* | 7 | # *DOCUMENTATION* |
diff --git a/arch/alpha/kernel/srm_env.c b/arch/alpha/kernel/srm_env.c index 990ac61028f8..f7dd081d57ff 100644 --- a/arch/alpha/kernel/srm_env.c +++ b/arch/alpha/kernel/srm_env.c | |||
@@ -2,7 +2,7 @@ | |||
2 | * srm_env.c - Access to SRM environment | 2 | * srm_env.c - Access to SRM environment |
3 | * variables through linux' procfs | 3 | * variables through linux' procfs |
4 | * | 4 | * |
5 | * Copyright (C) 2001-2002 Jan-Benedict Glaw <jbglaw@lug-owl.de> | 5 | * (C) 2001,2002,2006 by Jan-Benedict Glaw <jbglaw@lug-owl.de> |
6 | * | 6 | * |
7 | * This driver is at all a modified version of Erik Mouw's | 7 | * This driver is at all a modified version of Erik Mouw's |
8 | * Documentation/DocBook/procfs_example.c, so: thank | 8 | * Documentation/DocBook/procfs_example.c, so: thank |
@@ -21,7 +21,7 @@ | |||
21 | * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | 21 | * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR |
22 | * PURPOSE. See the GNU General Public License for more | 22 | * PURPOSE. See the GNU General Public License for more |
23 | * details. | 23 | * details. |
24 | * | 24 | * |
25 | * You should have received a copy of the GNU General Public | 25 | * You should have received a copy of the GNU General Public |
26 | * License along with this program; if not, write to the | 26 | * License along with this program; if not, write to the |
27 | * Free Software Foundation, Inc., 59 Temple Place, | 27 | * Free Software Foundation, Inc., 59 Temple Place, |
@@ -29,33 +29,6 @@ | |||
29 | * | 29 | * |
30 | */ | 30 | */ |
31 | 31 | ||
32 | /* | ||
33 | * Changelog | ||
34 | * ~~~~~~~~~ | ||
35 | * | ||
36 | * Thu, 22 Aug 2002 15:10:43 +0200 | ||
37 | * - Update Config.help entry. I got a number of emails asking | ||
38 | * me to tell their senders if they could make use of this | ||
39 | * piece of code... So: "SRM is something like BIOS for your | ||
40 | * Alpha" | ||
41 | * - Update code formatting a bit to better conform CodingStyle | ||
42 | * rules. | ||
43 | * - So this is v0.0.5, with no changes (except formatting) | ||
44 | * | ||
45 | * Wed, 22 May 2002 00:11:21 +0200 | ||
46 | * - Fix typo on comment (SRC -> SRM) | ||
47 | * - Call this "Version 0.0.4" | ||
48 | * | ||
49 | * Tue, 9 Apr 2002 18:44:40 +0200 | ||
50 | * - Implement access by variable name and additionally | ||
51 | * by number. This is done by creating two subdirectories | ||
52 | * where one holds all names (like the old directory | ||
53 | * did) and the other holding 256 files named like "0", | ||
54 | * "1" and so on. | ||
55 | * - Call this "Version 0.0.3" | ||
56 | * | ||
57 | */ | ||
58 | |||
59 | #include <linux/kernel.h> | 32 | #include <linux/kernel.h> |
60 | #include <linux/module.h> | 33 | #include <linux/module.h> |
61 | #include <linux/init.h> | 34 | #include <linux/init.h> |
@@ -67,7 +40,7 @@ | |||
67 | #define BASE_DIR "srm_environment" /* Subdir in /proc/ */ | 40 | #define BASE_DIR "srm_environment" /* Subdir in /proc/ */ |
68 | #define NAMED_DIR "named_variables" /* Subdir for known variables */ | 41 | #define NAMED_DIR "named_variables" /* Subdir for known variables */ |
69 | #define NUMBERED_DIR "numbered_variables" /* Subdir for all variables */ | 42 | #define NUMBERED_DIR "numbered_variables" /* Subdir for all variables */ |
70 | #define VERSION "0.0.5" /* Module version */ | 43 | #define VERSION "0.0.6" /* Module version */ |
71 | #define NAME "srm_env" /* Module name */ | 44 | #define NAME "srm_env" /* Module name */ |
72 | 45 | ||
73 | MODULE_AUTHOR("Jan-Benedict Glaw <jbglaw@lug-owl.de>"); | 46 | MODULE_AUTHOR("Jan-Benedict Glaw <jbglaw@lug-owl.de>"); |
@@ -106,7 +79,6 @@ static srm_env_t srm_named_entries[] = { | |||
106 | static srm_env_t srm_numbered_entries[256]; | 79 | static srm_env_t srm_numbered_entries[256]; |
107 | 80 | ||
108 | 81 | ||
109 | |||
110 | static int | 82 | static int |
111 | srm_env_read(char *page, char **start, off_t off, int count, int *eof, | 83 | srm_env_read(char *page, char **start, off_t off, int count, int *eof, |
112 | void *data) | 84 | void *data) |
@@ -115,21 +87,23 @@ srm_env_read(char *page, char **start, off_t off, int count, int *eof, | |||
115 | unsigned long ret; | 87 | unsigned long ret; |
116 | srm_env_t *entry; | 88 | srm_env_t *entry; |
117 | 89 | ||
118 | if(off != 0) | 90 | if (off != 0) { |
119 | return -EFAULT; | 91 | *eof = 1; |
92 | return 0; | ||
93 | } | ||
120 | 94 | ||
121 | entry = (srm_env_t *) data; | 95 | entry = (srm_env_t *) data; |
122 | ret = callback_getenv(entry->id, page, count); | 96 | ret = callback_getenv(entry->id, page, count); |
123 | 97 | ||
124 | if((ret >> 61) == 0) | 98 | if ((ret >> 61) == 0) { |
125 | nbytes = (int) ret; | 99 | nbytes = (int) ret; |
126 | else | 100 | *eof = 1; |
101 | } else | ||
127 | nbytes = -EFAULT; | 102 | nbytes = -EFAULT; |
128 | 103 | ||
129 | return nbytes; | 104 | return nbytes; |
130 | } | 105 | } |
131 | 106 | ||
132 | |||
133 | static int | 107 | static int |
134 | srm_env_write(struct file *file, const char __user *buffer, unsigned long count, | 108 | srm_env_write(struct file *file, const char __user *buffer, unsigned long count, |
135 | void *data) | 109 | void *data) |
@@ -155,7 +129,7 @@ srm_env_write(struct file *file, const char __user *buffer, unsigned long count, | |||
155 | 129 | ||
156 | ret1 = callback_setenv(entry->id, buf, count); | 130 | ret1 = callback_setenv(entry->id, buf, count); |
157 | if ((ret1 >> 61) == 0) { | 131 | if ((ret1 >> 61) == 0) { |
158 | do | 132 | do |
159 | ret2 = callback_save_env(); | 133 | ret2 = callback_save_env(); |
160 | while((ret2 >> 61) == 1); | 134 | while((ret2 >> 61) == 1); |
161 | res = (int) ret1; | 135 | res = (int) ret1; |
@@ -172,14 +146,14 @@ srm_env_cleanup(void) | |||
172 | srm_env_t *entry; | 146 | srm_env_t *entry; |
173 | unsigned long var_num; | 147 | unsigned long var_num; |
174 | 148 | ||
175 | if(base_dir) { | 149 | if (base_dir) { |
176 | /* | 150 | /* |
177 | * Remove named entries | 151 | * Remove named entries |
178 | */ | 152 | */ |
179 | if(named_dir) { | 153 | if (named_dir) { |
180 | entry = srm_named_entries; | 154 | entry = srm_named_entries; |
181 | while(entry->name != NULL && entry->id != 0) { | 155 | while (entry->name != NULL && entry->id != 0) { |
182 | if(entry->proc_entry) { | 156 | if (entry->proc_entry) { |
183 | remove_proc_entry(entry->name, | 157 | remove_proc_entry(entry->name, |
184 | named_dir); | 158 | named_dir); |
185 | entry->proc_entry = NULL; | 159 | entry->proc_entry = NULL; |
@@ -192,11 +166,11 @@ srm_env_cleanup(void) | |||
192 | /* | 166 | /* |
193 | * Remove numbered entries | 167 | * Remove numbered entries |
194 | */ | 168 | */ |
195 | if(numbered_dir) { | 169 | if (numbered_dir) { |
196 | for(var_num = 0; var_num <= 255; var_num++) { | 170 | for (var_num = 0; var_num <= 255; var_num++) { |
197 | entry = &srm_numbered_entries[var_num]; | 171 | entry = &srm_numbered_entries[var_num]; |
198 | 172 | ||
199 | if(entry->proc_entry) { | 173 | if (entry->proc_entry) { |
200 | remove_proc_entry(entry->name, | 174 | remove_proc_entry(entry->name, |
201 | numbered_dir); | 175 | numbered_dir); |
202 | entry->proc_entry = NULL; | 176 | entry->proc_entry = NULL; |
@@ -212,7 +186,6 @@ srm_env_cleanup(void) | |||
212 | return; | 186 | return; |
213 | } | 187 | } |
214 | 188 | ||
215 | |||
216 | static int __init | 189 | static int __init |
217 | srm_env_init(void) | 190 | srm_env_init(void) |
218 | { | 191 | { |
@@ -222,7 +195,7 @@ srm_env_init(void) | |||
222 | /* | 195 | /* |
223 | * Check system | 196 | * Check system |
224 | */ | 197 | */ |
225 | if(!alpha_using_srm) { | 198 | if (!alpha_using_srm) { |
226 | printk(KERN_INFO "%s: This Alpha system doesn't " | 199 | printk(KERN_INFO "%s: This Alpha system doesn't " |
227 | "know about SRM (or you've booted " | 200 | "know about SRM (or you've booted " |
228 | "SRM->MILO->Linux, which gets " | 201 | "SRM->MILO->Linux, which gets " |
@@ -233,14 +206,14 @@ srm_env_init(void) | |||
233 | /* | 206 | /* |
234 | * Init numbers | 207 | * Init numbers |
235 | */ | 208 | */ |
236 | for(var_num = 0; var_num <= 255; var_num++) | 209 | for (var_num = 0; var_num <= 255; var_num++) |
237 | sprintf(number[var_num], "%ld", var_num); | 210 | sprintf(number[var_num], "%ld", var_num); |
238 | 211 | ||
239 | /* | 212 | /* |
240 | * Create base directory | 213 | * Create base directory |
241 | */ | 214 | */ |
242 | base_dir = proc_mkdir(BASE_DIR, NULL); | 215 | base_dir = proc_mkdir(BASE_DIR, NULL); |
243 | if(base_dir == NULL) { | 216 | if (!base_dir) { |
244 | printk(KERN_ERR "Couldn't create base dir /proc/%s\n", | 217 | printk(KERN_ERR "Couldn't create base dir /proc/%s\n", |
245 | BASE_DIR); | 218 | BASE_DIR); |
246 | goto cleanup; | 219 | goto cleanup; |
@@ -251,7 +224,7 @@ srm_env_init(void) | |||
251 | * Create per-name subdirectory | 224 | * Create per-name subdirectory |
252 | */ | 225 | */ |
253 | named_dir = proc_mkdir(NAMED_DIR, base_dir); | 226 | named_dir = proc_mkdir(NAMED_DIR, base_dir); |
254 | if(named_dir == NULL) { | 227 | if (!named_dir) { |
255 | printk(KERN_ERR "Couldn't create dir /proc/%s/%s\n", | 228 | printk(KERN_ERR "Couldn't create dir /proc/%s/%s\n", |
256 | BASE_DIR, NAMED_DIR); | 229 | BASE_DIR, NAMED_DIR); |
257 | goto cleanup; | 230 | goto cleanup; |
@@ -262,7 +235,7 @@ srm_env_init(void) | |||
262 | * Create per-number subdirectory | 235 | * Create per-number subdirectory |
263 | */ | 236 | */ |
264 | numbered_dir = proc_mkdir(NUMBERED_DIR, base_dir); | 237 | numbered_dir = proc_mkdir(NUMBERED_DIR, base_dir); |
265 | if(numbered_dir == NULL) { | 238 | if (!numbered_dir) { |
266 | printk(KERN_ERR "Couldn't create dir /proc/%s/%s\n", | 239 | printk(KERN_ERR "Couldn't create dir /proc/%s/%s\n", |
267 | BASE_DIR, NUMBERED_DIR); | 240 | BASE_DIR, NUMBERED_DIR); |
268 | goto cleanup; | 241 | goto cleanup; |
@@ -274,10 +247,10 @@ srm_env_init(void) | |||
274 | * Create all named nodes | 247 | * Create all named nodes |
275 | */ | 248 | */ |
276 | entry = srm_named_entries; | 249 | entry = srm_named_entries; |
277 | while(entry->name != NULL && entry->id != 0) { | 250 | while (entry->name && entry->id) { |
278 | entry->proc_entry = create_proc_entry(entry->name, | 251 | entry->proc_entry = create_proc_entry(entry->name, |
279 | 0644, named_dir); | 252 | 0644, named_dir); |
280 | if(entry->proc_entry == NULL) | 253 | if (!entry->proc_entry) |
281 | goto cleanup; | 254 | goto cleanup; |
282 | 255 | ||
283 | entry->proc_entry->data = (void *) entry; | 256 | entry->proc_entry->data = (void *) entry; |
@@ -291,13 +264,13 @@ srm_env_init(void) | |||
291 | /* | 264 | /* |
292 | * Create all numbered nodes | 265 | * Create all numbered nodes |
293 | */ | 266 | */ |
294 | for(var_num = 0; var_num <= 255; var_num++) { | 267 | for (var_num = 0; var_num <= 255; var_num++) { |
295 | entry = &srm_numbered_entries[var_num]; | 268 | entry = &srm_numbered_entries[var_num]; |
296 | entry->name = number[var_num]; | 269 | entry->name = number[var_num]; |
297 | 270 | ||
298 | entry->proc_entry = create_proc_entry(entry->name, | 271 | entry->proc_entry = create_proc_entry(entry->name, |
299 | 0644, numbered_dir); | 272 | 0644, numbered_dir); |
300 | if(entry->proc_entry == NULL) | 273 | if (!entry->proc_entry) |
301 | goto cleanup; | 274 | goto cleanup; |
302 | 275 | ||
303 | entry->id = var_num; | 276 | entry->id = var_num; |
@@ -318,7 +291,6 @@ cleanup: | |||
318 | return -ENOMEM; | 291 | return -ENOMEM; |
319 | } | 292 | } |
320 | 293 | ||
321 | |||
322 | static void __exit | 294 | static void __exit |
323 | srm_env_exit(void) | 295 | srm_env_exit(void) |
324 | { | 296 | { |
@@ -328,7 +300,5 @@ srm_env_exit(void) | |||
328 | return; | 300 | return; |
329 | } | 301 | } |
330 | 302 | ||
331 | |||
332 | module_init(srm_env_init); | 303 | module_init(srm_env_init); |
333 | module_exit(srm_env_exit); | 304 | module_exit(srm_env_exit); |
334 | |||
diff --git a/arch/arm/common/dmabounce.c b/arch/arm/common/dmabounce.c index 028bdc9228fb..2e635b814c14 100644 --- a/arch/arm/common/dmabounce.c +++ b/arch/arm/common/dmabounce.c | |||
@@ -662,7 +662,8 @@ EXPORT_SYMBOL(dma_map_single); | |||
662 | EXPORT_SYMBOL(dma_unmap_single); | 662 | EXPORT_SYMBOL(dma_unmap_single); |
663 | EXPORT_SYMBOL(dma_map_sg); | 663 | EXPORT_SYMBOL(dma_map_sg); |
664 | EXPORT_SYMBOL(dma_unmap_sg); | 664 | EXPORT_SYMBOL(dma_unmap_sg); |
665 | EXPORT_SYMBOL(dma_sync_single); | 665 | EXPORT_SYMBOL(dma_sync_single_for_cpu); |
666 | EXPORT_SYMBOL(dma_sync_single_for_device); | ||
666 | EXPORT_SYMBOL(dma_sync_sg); | 667 | EXPORT_SYMBOL(dma_sync_sg); |
667 | EXPORT_SYMBOL(dmabounce_register_dev); | 668 | EXPORT_SYMBOL(dmabounce_register_dev); |
668 | EXPORT_SYMBOL(dmabounce_unregister_dev); | 669 | EXPORT_SYMBOL(dmabounce_unregister_dev); |
diff --git a/arch/arm/configs/bast_defconfig b/arch/arm/configs/bast_defconfig deleted file mode 100644 index 4a8564f386af..000000000000 --- a/arch/arm/configs/bast_defconfig +++ /dev/null | |||
@@ -1,947 +0,0 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.12-rc1-bk2 | ||
4 | # Sun Mar 27 02:24:16 2005 | ||
5 | # | ||
6 | CONFIG_ARM=y | ||
7 | CONFIG_MMU=y | ||
8 | CONFIG_UID16=y | ||
9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
10 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
11 | CONFIG_GENERIC_IOMAP=y | ||
12 | |||
13 | # | ||
14 | # Code maturity level options | ||
15 | # | ||
16 | CONFIG_EXPERIMENTAL=y | ||
17 | CONFIG_CLEAN_COMPILE=y | ||
18 | CONFIG_BROKEN_ON_SMP=y | ||
19 | |||
20 | # | ||
21 | # General setup | ||
22 | # | ||
23 | CONFIG_LOCALVERSION="" | ||
24 | CONFIG_SWAP=y | ||
25 | CONFIG_SYSVIPC=y | ||
26 | # CONFIG_POSIX_MQUEUE is not set | ||
27 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
28 | CONFIG_SYSCTL=y | ||
29 | # CONFIG_AUDIT is not set | ||
30 | # CONFIG_HOTPLUG is not set | ||
31 | CONFIG_KOBJECT_UEVENT=y | ||
32 | # CONFIG_IKCONFIG is not set | ||
33 | # CONFIG_EMBEDDED is not set | ||
34 | CONFIG_KALLSYMS=y | ||
35 | # CONFIG_KALLSYMS_ALL is not set | ||
36 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
37 | CONFIG_BASE_FULL=y | ||
38 | CONFIG_FUTEX=y | ||
39 | CONFIG_EPOLL=y | ||
40 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
41 | CONFIG_SHMEM=y | ||
42 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
43 | CONFIG_CC_ALIGN_LABELS=0 | ||
44 | CONFIG_CC_ALIGN_LOOPS=0 | ||
45 | CONFIG_CC_ALIGN_JUMPS=0 | ||
46 | # CONFIG_TINY_SHMEM is not set | ||
47 | CONFIG_BASE_SMALL=0 | ||
48 | |||
49 | # | ||
50 | # Loadable module support | ||
51 | # | ||
52 | CONFIG_MODULES=y | ||
53 | # CONFIG_MODULE_UNLOAD is not set | ||
54 | CONFIG_OBSOLETE_MODPARM=y | ||
55 | # CONFIG_MODVERSIONS is not set | ||
56 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
57 | CONFIG_KMOD=y | ||
58 | |||
59 | # | ||
60 | # System Type | ||
61 | # | ||
62 | # CONFIG_ARCH_CLPS7500 is not set | ||
63 | # CONFIG_ARCH_CLPS711X is not set | ||
64 | # CONFIG_ARCH_CO285 is not set | ||
65 | # CONFIG_ARCH_EBSA110 is not set | ||
66 | # CONFIG_ARCH_FOOTBRIDGE is not set | ||
67 | # CONFIG_ARCH_INTEGRATOR is not set | ||
68 | # CONFIG_ARCH_IOP3XX is not set | ||
69 | # CONFIG_ARCH_IXP4XX is not set | ||
70 | # CONFIG_ARCH_IXP2000 is not set | ||
71 | # CONFIG_ARCH_L7200 is not set | ||
72 | # CONFIG_ARCH_PXA is not set | ||
73 | # CONFIG_ARCH_RPC is not set | ||
74 | # CONFIG_ARCH_SA1100 is not set | ||
75 | CONFIG_ARCH_S3C2410=y | ||
76 | # CONFIG_ARCH_SHARK is not set | ||
77 | # CONFIG_ARCH_LH7A40X is not set | ||
78 | # CONFIG_ARCH_OMAP is not set | ||
79 | # CONFIG_ARCH_VERSATILE is not set | ||
80 | # CONFIG_ARCH_IMX is not set | ||
81 | # CONFIG_ARCH_H720X is not set | ||
82 | |||
83 | # | ||
84 | # S3C24XX Implementations | ||
85 | # | ||
86 | CONFIG_ARCH_BAST=y | ||
87 | # CONFIG_ARCH_H1940 is not set | ||
88 | # CONFIG_MACH_N30 is not set | ||
89 | # CONFIG_ARCH_SMDK2410 is not set | ||
90 | # CONFIG_ARCH_S3C2440 is not set | ||
91 | CONFIG_MACH_VR1000=y | ||
92 | # CONFIG_MACH_RX3715 is not set | ||
93 | # CONFIG_MACH_OTOM is not set | ||
94 | # CONFIG_MACH_NEXCODER_2440 is not set | ||
95 | CONFIG_CPU_S3C2410=y | ||
96 | |||
97 | # | ||
98 | # S3C2410 Boot | ||
99 | # | ||
100 | # CONFIG_S3C2410_BOOT_WATCHDOG is not set | ||
101 | |||
102 | # | ||
103 | # S3C2410 Setup | ||
104 | # | ||
105 | CONFIG_S3C2410_DMA=y | ||
106 | # CONFIG_S3C2410_DMA_DEBUG is not set | ||
107 | # CONFIG_S3C2410_PM_DEBUG is not set | ||
108 | # CONFIG_S3C2410_PM_CHECK is not set | ||
109 | CONFIG_S3C2410_LOWLEVEL_UART_PORT=0 | ||
110 | |||
111 | # | ||
112 | # Processor Type | ||
113 | # | ||
114 | CONFIG_CPU_32=y | ||
115 | CONFIG_CPU_ARM920T=y | ||
116 | CONFIG_CPU_32v4=y | ||
117 | CONFIG_CPU_ABRT_EV4T=y | ||
118 | CONFIG_CPU_CACHE_V4WT=y | ||
119 | CONFIG_CPU_CACHE_VIVT=y | ||
120 | CONFIG_CPU_COPY_V4WB=y | ||
121 | CONFIG_CPU_TLB_V4WBI=y | ||
122 | |||
123 | # | ||
124 | # Processor Features | ||
125 | # | ||
126 | # CONFIG_ARM_THUMB is not set | ||
127 | # CONFIG_CPU_ICACHE_DISABLE is not set | ||
128 | # CONFIG_CPU_DCACHE_DISABLE is not set | ||
129 | # CONFIG_CPU_DCACHE_WRITETHROUGH is not set | ||
130 | |||
131 | # | ||
132 | # Bus support | ||
133 | # | ||
134 | |||
135 | # | ||
136 | # PCCARD (PCMCIA/CardBus) support | ||
137 | # | ||
138 | # CONFIG_PCCARD is not set | ||
139 | |||
140 | # | ||
141 | # Kernel Features | ||
142 | # | ||
143 | # CONFIG_PREEMPT is not set | ||
144 | CONFIG_ALIGNMENT_TRAP=y | ||
145 | |||
146 | # | ||
147 | # Boot options | ||
148 | # | ||
149 | CONFIG_ZBOOT_ROM_TEXT=0x0 | ||
150 | CONFIG_ZBOOT_ROM_BSS=0x0 | ||
151 | CONFIG_CMDLINE="root=/dev/hda1 ro init=/bin/bash console=ttySAC0" | ||
152 | # CONFIG_XIP_KERNEL is not set | ||
153 | |||
154 | # | ||
155 | # Floating point emulation | ||
156 | # | ||
157 | |||
158 | # | ||
159 | # At least one emulation must be selected | ||
160 | # | ||
161 | CONFIG_FPE_NWFPE=y | ||
162 | # CONFIG_FPE_NWFPE_XP is not set | ||
163 | # CONFIG_FPE_FASTFPE is not set | ||
164 | |||
165 | # | ||
166 | # Userspace binary formats | ||
167 | # | ||
168 | CONFIG_BINFMT_ELF=y | ||
169 | CONFIG_BINFMT_AOUT=y | ||
170 | # CONFIG_BINFMT_MISC is not set | ||
171 | # CONFIG_ARTHUR is not set | ||
172 | |||
173 | # | ||
174 | # Power management options | ||
175 | # | ||
176 | CONFIG_PM=y | ||
177 | CONFIG_APM=y | ||
178 | |||
179 | # | ||
180 | # Device Drivers | ||
181 | # | ||
182 | |||
183 | # | ||
184 | # Generic Driver Options | ||
185 | # | ||
186 | CONFIG_STANDALONE=y | ||
187 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
188 | # CONFIG_FW_LOADER is not set | ||
189 | # CONFIG_DEBUG_DRIVER is not set | ||
190 | |||
191 | # | ||
192 | # Memory Technology Devices (MTD) | ||
193 | # | ||
194 | CONFIG_MTD=y | ||
195 | # CONFIG_MTD_DEBUG is not set | ||
196 | # CONFIG_MTD_CONCAT is not set | ||
197 | CONFIG_MTD_PARTITIONS=y | ||
198 | CONFIG_MTD_REDBOOT_PARTS=y | ||
199 | CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 | ||
200 | CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y | ||
201 | # CONFIG_MTD_REDBOOT_PARTS_READONLY is not set | ||
202 | CONFIG_MTD_CMDLINE_PARTS=y | ||
203 | # CONFIG_MTD_AFS_PARTS is not set | ||
204 | |||
205 | # | ||
206 | # User Modules And Translation Layers | ||
207 | # | ||
208 | CONFIG_MTD_CHAR=y | ||
209 | CONFIG_MTD_BLOCK=y | ||
210 | # CONFIG_FTL is not set | ||
211 | # CONFIG_NFTL is not set | ||
212 | # CONFIG_INFTL is not set | ||
213 | |||
214 | # | ||
215 | # RAM/ROM/Flash chip drivers | ||
216 | # | ||
217 | CONFIG_MTD_CFI=y | ||
218 | CONFIG_MTD_JEDECPROBE=y | ||
219 | CONFIG_MTD_GEN_PROBE=y | ||
220 | # CONFIG_MTD_CFI_ADV_OPTIONS is not set | ||
221 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
222 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
223 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
224 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
225 | CONFIG_MTD_MAP_BANK_WIDTH_16=y | ||
226 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
227 | CONFIG_MTD_CFI_I1=y | ||
228 | CONFIG_MTD_CFI_I2=y | ||
229 | # CONFIG_MTD_CFI_I4 is not set | ||
230 | # CONFIG_MTD_CFI_I8 is not set | ||
231 | CONFIG_MTD_CFI_INTELEXT=y | ||
232 | # CONFIG_MTD_CFI_AMDSTD is not set | ||
233 | # CONFIG_MTD_CFI_STAA is not set | ||
234 | CONFIG_MTD_CFI_UTIL=y | ||
235 | # CONFIG_MTD_RAM is not set | ||
236 | # CONFIG_MTD_ROM is not set | ||
237 | # CONFIG_MTD_ABSENT is not set | ||
238 | # CONFIG_MTD_OBSOLETE_CHIPS is not set | ||
239 | # CONFIG_MTD_XIP is not set | ||
240 | |||
241 | # | ||
242 | # Mapping drivers for chip access | ||
243 | # | ||
244 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
245 | # CONFIG_MTD_PHYSMAP is not set | ||
246 | # CONFIG_MTD_ARM_INTEGRATOR is not set | ||
247 | # CONFIG_MTD_EDB7312 is not set | ||
248 | # CONFIG_MTD_IMPA7 is not set | ||
249 | CONFIG_MTD_BAST=y | ||
250 | CONFIG_MTD_BAST_MAXSIZE=4 | ||
251 | |||
252 | # | ||
253 | # Self-contained MTD device drivers | ||
254 | # | ||
255 | # CONFIG_MTD_SLRAM is not set | ||
256 | # CONFIG_MTD_PHRAM is not set | ||
257 | # CONFIG_MTD_MTDRAM is not set | ||
258 | # CONFIG_MTD_BLKMTD is not set | ||
259 | # CONFIG_MTD_BLOCK2MTD is not set | ||
260 | |||
261 | # | ||
262 | # Disk-On-Chip Device Drivers | ||
263 | # | ||
264 | # CONFIG_MTD_DOC2000 is not set | ||
265 | # CONFIG_MTD_DOC2001 is not set | ||
266 | # CONFIG_MTD_DOC2001PLUS is not set | ||
267 | |||
268 | # | ||
269 | # NAND Flash Device Drivers | ||
270 | # | ||
271 | CONFIG_MTD_NAND=y | ||
272 | # CONFIG_MTD_NAND_VERIFY_WRITE is not set | ||
273 | CONFIG_MTD_NAND_IDS=y | ||
274 | CONFIG_MTD_NAND_S3C2410=y | ||
275 | # CONFIG_MTD_NAND_S3C2410_DEBUG is not set | ||
276 | # CONFIG_MTD_NAND_S3C2410_HWECC is not set | ||
277 | # CONFIG_MTD_NAND_DISKONCHIP is not set | ||
278 | # CONFIG_MTD_NAND_NANDSIM is not set | ||
279 | |||
280 | # | ||
281 | # Parallel port support | ||
282 | # | ||
283 | CONFIG_PARPORT=y | ||
284 | # CONFIG_PARPORT_PC is not set | ||
285 | # CONFIG_PARPORT_ARC is not set | ||
286 | # CONFIG_PARPORT_GSC is not set | ||
287 | CONFIG_PARPORT_1284=y | ||
288 | |||
289 | # | ||
290 | # Plug and Play support | ||
291 | # | ||
292 | |||
293 | # | ||
294 | # Block devices | ||
295 | # | ||
296 | # CONFIG_BLK_DEV_FD is not set | ||
297 | # CONFIG_PARIDE is not set | ||
298 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
299 | CONFIG_BLK_DEV_LOOP=y | ||
300 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | ||
301 | CONFIG_BLK_DEV_NBD=m | ||
302 | CONFIG_BLK_DEV_RAM=y | ||
303 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
304 | CONFIG_BLK_DEV_RAM_SIZE=4096 | ||
305 | CONFIG_BLK_DEV_INITRD=y | ||
306 | CONFIG_INITRAMFS_SOURCE="" | ||
307 | # CONFIG_CDROM_PKTCDVD is not set | ||
308 | |||
309 | # | ||
310 | # IO Schedulers | ||
311 | # | ||
312 | CONFIG_IOSCHED_NOOP=y | ||
313 | CONFIG_IOSCHED_AS=y | ||
314 | CONFIG_IOSCHED_DEADLINE=y | ||
315 | CONFIG_IOSCHED_CFQ=y | ||
316 | # CONFIG_ATA_OVER_ETH is not set | ||
317 | |||
318 | # | ||
319 | # ATA/ATAPI/MFM/RLL support | ||
320 | # | ||
321 | CONFIG_IDE=y | ||
322 | CONFIG_BLK_DEV_IDE=y | ||
323 | |||
324 | # | ||
325 | # Please see Documentation/ide.txt for help/info on IDE drives | ||
326 | # | ||
327 | # CONFIG_BLK_DEV_IDE_SATA is not set | ||
328 | CONFIG_BLK_DEV_IDEDISK=y | ||
329 | # CONFIG_IDEDISK_MULTI_MODE is not set | ||
330 | CONFIG_BLK_DEV_IDECD=y | ||
331 | CONFIG_BLK_DEV_IDETAPE=m | ||
332 | CONFIG_BLK_DEV_IDEFLOPPY=m | ||
333 | # CONFIG_IDE_TASK_IOCTL is not set | ||
334 | |||
335 | # | ||
336 | # IDE chipset support/bugfixes | ||
337 | # | ||
338 | CONFIG_IDE_GENERIC=y | ||
339 | # CONFIG_IDE_ARM is not set | ||
340 | CONFIG_BLK_DEV_IDE_BAST=y | ||
341 | # CONFIG_BLK_DEV_IDEDMA is not set | ||
342 | # CONFIG_IDEDMA_AUTO is not set | ||
343 | # CONFIG_BLK_DEV_HD is not set | ||
344 | |||
345 | # | ||
346 | # SCSI device support | ||
347 | # | ||
348 | # CONFIG_SCSI is not set | ||
349 | |||
350 | # | ||
351 | # Multi-device support (RAID and LVM) | ||
352 | # | ||
353 | # CONFIG_MD is not set | ||
354 | |||
355 | # | ||
356 | # Fusion MPT device support | ||
357 | # | ||
358 | |||
359 | # | ||
360 | # IEEE 1394 (FireWire) support | ||
361 | # | ||
362 | |||
363 | # | ||
364 | # I2O device support | ||
365 | # | ||
366 | |||
367 | # | ||
368 | # Networking support | ||
369 | # | ||
370 | CONFIG_NET=y | ||
371 | |||
372 | # | ||
373 | # Networking options | ||
374 | # | ||
375 | # CONFIG_PACKET is not set | ||
376 | # CONFIG_NETLINK_DEV is not set | ||
377 | CONFIG_UNIX=y | ||
378 | # CONFIG_NET_KEY is not set | ||
379 | CONFIG_INET=y | ||
380 | # CONFIG_IP_MULTICAST is not set | ||
381 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
382 | CONFIG_IP_PNP=y | ||
383 | # CONFIG_IP_PNP_DHCP is not set | ||
384 | CONFIG_IP_PNP_BOOTP=y | ||
385 | # CONFIG_IP_PNP_RARP is not set | ||
386 | # CONFIG_NET_IPIP is not set | ||
387 | # CONFIG_NET_IPGRE is not set | ||
388 | # CONFIG_ARPD is not set | ||
389 | # CONFIG_SYN_COOKIES is not set | ||
390 | # CONFIG_INET_AH is not set | ||
391 | # CONFIG_INET_ESP is not set | ||
392 | # CONFIG_INET_IPCOMP is not set | ||
393 | # CONFIG_INET_TUNNEL is not set | ||
394 | CONFIG_IP_TCPDIAG=y | ||
395 | # CONFIG_IP_TCPDIAG_IPV6 is not set | ||
396 | # CONFIG_IPV6 is not set | ||
397 | # CONFIG_NETFILTER is not set | ||
398 | |||
399 | # | ||
400 | # SCTP Configuration (EXPERIMENTAL) | ||
401 | # | ||
402 | # CONFIG_IP_SCTP is not set | ||
403 | # CONFIG_ATM is not set | ||
404 | # CONFIG_BRIDGE is not set | ||
405 | # CONFIG_VLAN_8021Q is not set | ||
406 | # CONFIG_DECNET is not set | ||
407 | # CONFIG_LLC2 is not set | ||
408 | # CONFIG_IPX is not set | ||
409 | # CONFIG_ATALK is not set | ||
410 | # CONFIG_X25 is not set | ||
411 | # CONFIG_LAPB is not set | ||
412 | # CONFIG_NET_DIVERT is not set | ||
413 | # CONFIG_ECONET is not set | ||
414 | # CONFIG_WAN_ROUTER is not set | ||
415 | |||
416 | # | ||
417 | # QoS and/or fair queueing | ||
418 | # | ||
419 | # CONFIG_NET_SCHED is not set | ||
420 | # CONFIG_NET_CLS_ROUTE is not set | ||
421 | |||
422 | # | ||
423 | # Network testing | ||
424 | # | ||
425 | # CONFIG_NET_PKTGEN is not set | ||
426 | # CONFIG_NETPOLL is not set | ||
427 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
428 | # CONFIG_HAMRADIO is not set | ||
429 | # CONFIG_IRDA is not set | ||
430 | # CONFIG_BT is not set | ||
431 | CONFIG_NETDEVICES=y | ||
432 | # CONFIG_DUMMY is not set | ||
433 | # CONFIG_BONDING is not set | ||
434 | # CONFIG_EQUALIZER is not set | ||
435 | # CONFIG_TUN is not set | ||
436 | |||
437 | # | ||
438 | # Ethernet (10 or 100Mbit) | ||
439 | # | ||
440 | CONFIG_NET_ETHERNET=y | ||
441 | # CONFIG_MII is not set | ||
442 | # CONFIG_SMC91X is not set | ||
443 | |||
444 | # | ||
445 | # Ethernet (1000 Mbit) | ||
446 | # | ||
447 | |||
448 | # | ||
449 | # Ethernet (10000 Mbit) | ||
450 | # | ||
451 | |||
452 | # | ||
453 | # Token Ring devices | ||
454 | # | ||
455 | |||
456 | # | ||
457 | # Wireless LAN (non-hamradio) | ||
458 | # | ||
459 | # CONFIG_NET_RADIO is not set | ||
460 | |||
461 | # | ||
462 | # Wan interfaces | ||
463 | # | ||
464 | # CONFIG_WAN is not set | ||
465 | # CONFIG_PLIP is not set | ||
466 | # CONFIG_PPP is not set | ||
467 | # CONFIG_SLIP is not set | ||
468 | # CONFIG_SHAPER is not set | ||
469 | # CONFIG_NETCONSOLE is not set | ||
470 | |||
471 | # | ||
472 | # ISDN subsystem | ||
473 | # | ||
474 | # CONFIG_ISDN is not set | ||
475 | |||
476 | # | ||
477 | # Input device support | ||
478 | # | ||
479 | CONFIG_INPUT=y | ||
480 | |||
481 | # | ||
482 | # Userland interfaces | ||
483 | # | ||
484 | CONFIG_INPUT_MOUSEDEV=y | ||
485 | CONFIG_INPUT_MOUSEDEV_PSAUX=y | ||
486 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | ||
487 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | ||
488 | # CONFIG_INPUT_JOYDEV is not set | ||
489 | # CONFIG_INPUT_TSDEV is not set | ||
490 | # CONFIG_INPUT_EVDEV is not set | ||
491 | # CONFIG_INPUT_EVBUG is not set | ||
492 | |||
493 | # | ||
494 | # Input Device Drivers | ||
495 | # | ||
496 | CONFIG_INPUT_KEYBOARD=y | ||
497 | CONFIG_KEYBOARD_ATKBD=y | ||
498 | # CONFIG_KEYBOARD_SUNKBD is not set | ||
499 | # CONFIG_KEYBOARD_LKKBD is not set | ||
500 | # CONFIG_KEYBOARD_XTKBD is not set | ||
501 | # CONFIG_KEYBOARD_NEWTON is not set | ||
502 | CONFIG_INPUT_MOUSE=y | ||
503 | CONFIG_MOUSE_PS2=y | ||
504 | # CONFIG_MOUSE_SERIAL is not set | ||
505 | # CONFIG_MOUSE_VSXXXAA is not set | ||
506 | # CONFIG_INPUT_JOYSTICK is not set | ||
507 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
508 | # CONFIG_INPUT_MISC is not set | ||
509 | |||
510 | # | ||
511 | # Hardware I/O ports | ||
512 | # | ||
513 | CONFIG_SERIO=y | ||
514 | CONFIG_SERIO_SERPORT=y | ||
515 | # CONFIG_SERIO_PARKBD is not set | ||
516 | CONFIG_SERIO_LIBPS2=y | ||
517 | # CONFIG_SERIO_RAW is not set | ||
518 | # CONFIG_GAMEPORT is not set | ||
519 | CONFIG_SOUND_GAMEPORT=y | ||
520 | |||
521 | # | ||
522 | # Character devices | ||
523 | # | ||
524 | CONFIG_VT=y | ||
525 | CONFIG_VT_CONSOLE=y | ||
526 | CONFIG_HW_CONSOLE=y | ||
527 | CONFIG_SERIAL_NONSTANDARD=y | ||
528 | # CONFIG_COMPUTONE is not set | ||
529 | # CONFIG_ROCKETPORT is not set | ||
530 | # CONFIG_CYCLADES is not set | ||
531 | # CONFIG_DIGIEPCA is not set | ||
532 | # CONFIG_MOXA_INTELLIO is not set | ||
533 | # CONFIG_MOXA_SMARTIO is not set | ||
534 | # CONFIG_ISI is not set | ||
535 | # CONFIG_SYNCLINKMP is not set | ||
536 | # CONFIG_N_HDLC is not set | ||
537 | # CONFIG_RISCOM8 is not set | ||
538 | # CONFIG_SPECIALIX is not set | ||
539 | # CONFIG_SX is not set | ||
540 | # CONFIG_RIO is not set | ||
541 | # CONFIG_STALDRV is not set | ||
542 | |||
543 | # | ||
544 | # Serial drivers | ||
545 | # | ||
546 | CONFIG_SERIAL_8250=y | ||
547 | CONFIG_SERIAL_8250_CONSOLE=y | ||
548 | CONFIG_SERIAL_8250_NR_UARTS=8 | ||
549 | CONFIG_SERIAL_8250_EXTENDED=y | ||
550 | CONFIG_SERIAL_8250_MANY_PORTS=y | ||
551 | CONFIG_SERIAL_8250_SHARE_IRQ=y | ||
552 | # CONFIG_SERIAL_8250_DETECT_IRQ is not set | ||
553 | # CONFIG_SERIAL_8250_MULTIPORT is not set | ||
554 | # CONFIG_SERIAL_8250_RSA is not set | ||
555 | |||
556 | # | ||
557 | # Non-8250 serial port support | ||
558 | # | ||
559 | CONFIG_SERIAL_S3C2410=y | ||
560 | CONFIG_SERIAL_S3C2410_CONSOLE=y | ||
561 | CONFIG_SERIAL_CORE=y | ||
562 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
563 | CONFIG_UNIX98_PTYS=y | ||
564 | CONFIG_LEGACY_PTYS=y | ||
565 | CONFIG_LEGACY_PTY_COUNT=256 | ||
566 | CONFIG_PRINTER=y | ||
567 | # CONFIG_LP_CONSOLE is not set | ||
568 | CONFIG_PPDEV=y | ||
569 | # CONFIG_TIPAR is not set | ||
570 | |||
571 | # | ||
572 | # IPMI | ||
573 | # | ||
574 | # CONFIG_IPMI_HANDLER is not set | ||
575 | |||
576 | # | ||
577 | # Watchdog Cards | ||
578 | # | ||
579 | CONFIG_WATCHDOG=y | ||
580 | # CONFIG_WATCHDOG_NOWAYOUT is not set | ||
581 | |||
582 | # | ||
583 | # Watchdog Device Drivers | ||
584 | # | ||
585 | # CONFIG_SOFT_WATCHDOG is not set | ||
586 | CONFIG_S3C2410_WATCHDOG=y | ||
587 | # CONFIG_NVRAM is not set | ||
588 | # CONFIG_RTC is not set | ||
589 | CONFIG_S3C2410_RTC=y | ||
590 | # CONFIG_DTLK is not set | ||
591 | # CONFIG_R3964 is not set | ||
592 | |||
593 | # | ||
594 | # Ftape, the floppy tape device driver | ||
595 | # | ||
596 | # CONFIG_DRM is not set | ||
597 | # CONFIG_RAW_DRIVER is not set | ||
598 | |||
599 | # | ||
600 | # TPM devices | ||
601 | # | ||
602 | # CONFIG_TCG_TPM is not set | ||
603 | |||
604 | # | ||
605 | # I2C support | ||
606 | # | ||
607 | CONFIG_I2C=y | ||
608 | CONFIG_I2C_CHARDEV=m | ||
609 | |||
610 | # | ||
611 | # I2C Algorithms | ||
612 | # | ||
613 | CONFIG_I2C_ALGOBIT=m | ||
614 | # CONFIG_I2C_ALGOPCF is not set | ||
615 | # CONFIG_I2C_ALGOPCA is not set | ||
616 | |||
617 | # | ||
618 | # I2C Hardware Bus support | ||
619 | # | ||
620 | # CONFIG_I2C_ISA is not set | ||
621 | # CONFIG_I2C_PARPORT is not set | ||
622 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
623 | CONFIG_I2C_S3C2410=y | ||
624 | # CONFIG_I2C_STUB is not set | ||
625 | # CONFIG_I2C_PCA_ISA is not set | ||
626 | |||
627 | # | ||
628 | # Hardware Sensors Chip support | ||
629 | # | ||
630 | CONFIG_I2C_SENSOR=m | ||
631 | # CONFIG_SENSORS_ADM1021 is not set | ||
632 | # CONFIG_SENSORS_ADM1025 is not set | ||
633 | # CONFIG_SENSORS_ADM1026 is not set | ||
634 | # CONFIG_SENSORS_ADM1031 is not set | ||
635 | # CONFIG_SENSORS_ASB100 is not set | ||
636 | # CONFIG_SENSORS_DS1621 is not set | ||
637 | # CONFIG_SENSORS_FSCHER is not set | ||
638 | # CONFIG_SENSORS_FSCPOS is not set | ||
639 | # CONFIG_SENSORS_GL518SM is not set | ||
640 | # CONFIG_SENSORS_GL520SM is not set | ||
641 | # CONFIG_SENSORS_IT87 is not set | ||
642 | # CONFIG_SENSORS_LM63 is not set | ||
643 | CONFIG_SENSORS_LM75=m | ||
644 | # CONFIG_SENSORS_LM77 is not set | ||
645 | CONFIG_SENSORS_LM78=m | ||
646 | # CONFIG_SENSORS_LM80 is not set | ||
647 | # CONFIG_SENSORS_LM83 is not set | ||
648 | CONFIG_SENSORS_LM85=m | ||
649 | # CONFIG_SENSORS_LM87 is not set | ||
650 | # CONFIG_SENSORS_LM90 is not set | ||
651 | # CONFIG_SENSORS_MAX1619 is not set | ||
652 | # CONFIG_SENSORS_PC87360 is not set | ||
653 | # CONFIG_SENSORS_SMSC47B397 is not set | ||
654 | # CONFIG_SENSORS_SMSC47M1 is not set | ||
655 | # CONFIG_SENSORS_W83781D is not set | ||
656 | # CONFIG_SENSORS_W83L785TS is not set | ||
657 | # CONFIG_SENSORS_W83627HF is not set | ||
658 | |||
659 | # | ||
660 | # Other I2C Chip support | ||
661 | # | ||
662 | CONFIG_SENSORS_EEPROM=m | ||
663 | # CONFIG_SENSORS_PCF8574 is not set | ||
664 | # CONFIG_SENSORS_PCF8591 is not set | ||
665 | # CONFIG_SENSORS_RTC8564 is not set | ||
666 | # CONFIG_I2C_DEBUG_CORE is not set | ||
667 | # CONFIG_I2C_DEBUG_ALGO is not set | ||
668 | # CONFIG_I2C_DEBUG_BUS is not set | ||
669 | # CONFIG_I2C_DEBUG_CHIP is not set | ||
670 | |||
671 | # | ||
672 | # Misc devices | ||
673 | # | ||
674 | |||
675 | # | ||
676 | # Multimedia devices | ||
677 | # | ||
678 | # CONFIG_VIDEO_DEV is not set | ||
679 | |||
680 | # | ||
681 | # Digital Video Broadcasting Devices | ||
682 | # | ||
683 | # CONFIG_DVB is not set | ||
684 | |||
685 | # | ||
686 | # Graphics support | ||
687 | # | ||
688 | CONFIG_FB=y | ||
689 | # CONFIG_FB_CFB_FILLRECT is not set | ||
690 | # CONFIG_FB_CFB_COPYAREA is not set | ||
691 | # CONFIG_FB_CFB_IMAGEBLIT is not set | ||
692 | # CONFIG_FB_SOFT_CURSOR is not set | ||
693 | CONFIG_FB_MODE_HELPERS=y | ||
694 | # CONFIG_FB_TILEBLITTING is not set | ||
695 | # CONFIG_FB_VIRTUAL is not set | ||
696 | |||
697 | # | ||
698 | # Console display driver support | ||
699 | # | ||
700 | # CONFIG_VGA_CONSOLE is not set | ||
701 | CONFIG_DUMMY_CONSOLE=y | ||
702 | # CONFIG_FRAMEBUFFER_CONSOLE is not set | ||
703 | |||
704 | # | ||
705 | # Logo configuration | ||
706 | # | ||
707 | # CONFIG_LOGO is not set | ||
708 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
709 | |||
710 | # | ||
711 | # Sound | ||
712 | # | ||
713 | # CONFIG_SOUND is not set | ||
714 | |||
715 | # | ||
716 | # USB support | ||
717 | # | ||
718 | CONFIG_USB_ARCH_HAS_HCD=y | ||
719 | # CONFIG_USB_ARCH_HAS_OHCI is not set | ||
720 | # CONFIG_USB is not set | ||
721 | |||
722 | # | ||
723 | # USB Gadget Support | ||
724 | # | ||
725 | # CONFIG_USB_GADGET is not set | ||
726 | |||
727 | # | ||
728 | # MMC/SD Card support | ||
729 | # | ||
730 | # CONFIG_MMC is not set | ||
731 | |||
732 | # | ||
733 | # File systems | ||
734 | # | ||
735 | CONFIG_EXT2_FS=y | ||
736 | # CONFIG_EXT2_FS_XATTR is not set | ||
737 | CONFIG_EXT3_FS=y | ||
738 | CONFIG_EXT3_FS_XATTR=y | ||
739 | # CONFIG_EXT3_FS_POSIX_ACL is not set | ||
740 | # CONFIG_EXT3_FS_SECURITY is not set | ||
741 | CONFIG_JBD=y | ||
742 | # CONFIG_JBD_DEBUG is not set | ||
743 | CONFIG_FS_MBCACHE=y | ||
744 | # CONFIG_REISERFS_FS is not set | ||
745 | # CONFIG_JFS_FS is not set | ||
746 | |||
747 | # | ||
748 | # XFS support | ||
749 | # | ||
750 | # CONFIG_XFS_FS is not set | ||
751 | # CONFIG_MINIX_FS is not set | ||
752 | CONFIG_ROMFS_FS=y | ||
753 | # CONFIG_QUOTA is not set | ||
754 | CONFIG_DNOTIFY=y | ||
755 | # CONFIG_AUTOFS_FS is not set | ||
756 | # CONFIG_AUTOFS4_FS is not set | ||
757 | |||
758 | # | ||
759 | # CD-ROM/DVD Filesystems | ||
760 | # | ||
761 | # CONFIG_ISO9660_FS is not set | ||
762 | # CONFIG_UDF_FS is not set | ||
763 | |||
764 | # | ||
765 | # DOS/FAT/NT Filesystems | ||
766 | # | ||
767 | CONFIG_FAT_FS=y | ||
768 | CONFIG_MSDOS_FS=y | ||
769 | CONFIG_VFAT_FS=y | ||
770 | CONFIG_FAT_DEFAULT_CODEPAGE=437 | ||
771 | CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | ||
772 | # CONFIG_NTFS_FS is not set | ||
773 | |||
774 | # | ||
775 | # Pseudo filesystems | ||
776 | # | ||
777 | CONFIG_PROC_FS=y | ||
778 | CONFIG_SYSFS=y | ||
779 | # CONFIG_DEVFS_FS is not set | ||
780 | # CONFIG_DEVPTS_FS_XATTR is not set | ||
781 | # CONFIG_TMPFS is not set | ||
782 | # CONFIG_HUGETLB_PAGE is not set | ||
783 | CONFIG_RAMFS=y | ||
784 | |||
785 | # | ||
786 | # Miscellaneous filesystems | ||
787 | # | ||
788 | # CONFIG_ADFS_FS is not set | ||
789 | # CONFIG_AFFS_FS is not set | ||
790 | # CONFIG_HFS_FS is not set | ||
791 | # CONFIG_HFSPLUS_FS is not set | ||
792 | # CONFIG_BEFS_FS is not set | ||
793 | # CONFIG_BFS_FS is not set | ||
794 | # CONFIG_EFS_FS is not set | ||
795 | CONFIG_JFFS_FS=y | ||
796 | CONFIG_JFFS_FS_VERBOSE=0 | ||
797 | # CONFIG_JFFS_PROC_FS is not set | ||
798 | CONFIG_JFFS2_FS=y | ||
799 | CONFIG_JFFS2_FS_DEBUG=0 | ||
800 | # CONFIG_JFFS2_FS_NAND is not set | ||
801 | # CONFIG_JFFS2_FS_NOR_ECC is not set | ||
802 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set | ||
803 | CONFIG_JFFS2_ZLIB=y | ||
804 | CONFIG_JFFS2_RTIME=y | ||
805 | # CONFIG_JFFS2_RUBIN is not set | ||
806 | # CONFIG_CRAMFS is not set | ||
807 | # CONFIG_VXFS_FS is not set | ||
808 | # CONFIG_HPFS_FS is not set | ||
809 | # CONFIG_QNX4FS_FS is not set | ||
810 | # CONFIG_SYSV_FS is not set | ||
811 | # CONFIG_UFS_FS is not set | ||
812 | |||
813 | # | ||
814 | # Network File Systems | ||
815 | # | ||
816 | CONFIG_NFS_FS=y | ||
817 | # CONFIG_NFS_V3 is not set | ||
818 | # CONFIG_NFS_V4 is not set | ||
819 | # CONFIG_NFS_DIRECTIO is not set | ||
820 | # CONFIG_NFSD is not set | ||
821 | CONFIG_ROOT_NFS=y | ||
822 | CONFIG_LOCKD=y | ||
823 | CONFIG_SUNRPC=y | ||
824 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
825 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
826 | # CONFIG_SMB_FS is not set | ||
827 | # CONFIG_CIFS is not set | ||
828 | # CONFIG_NCP_FS is not set | ||
829 | # CONFIG_CODA_FS is not set | ||
830 | # CONFIG_AFS_FS is not set | ||
831 | |||
832 | # | ||
833 | # Partition Types | ||
834 | # | ||
835 | CONFIG_PARTITION_ADVANCED=y | ||
836 | # CONFIG_ACORN_PARTITION is not set | ||
837 | # CONFIG_OSF_PARTITION is not set | ||
838 | # CONFIG_AMIGA_PARTITION is not set | ||
839 | # CONFIG_ATARI_PARTITION is not set | ||
840 | # CONFIG_MAC_PARTITION is not set | ||
841 | CONFIG_MSDOS_PARTITION=y | ||
842 | CONFIG_BSD_DISKLABEL=y | ||
843 | # CONFIG_MINIX_SUBPARTITION is not set | ||
844 | CONFIG_SOLARIS_X86_PARTITION=y | ||
845 | # CONFIG_UNIXWARE_DISKLABEL is not set | ||
846 | # CONFIG_LDM_PARTITION is not set | ||
847 | # CONFIG_SGI_PARTITION is not set | ||
848 | # CONFIG_ULTRIX_PARTITION is not set | ||
849 | # CONFIG_SUN_PARTITION is not set | ||
850 | # CONFIG_EFI_PARTITION is not set | ||
851 | |||
852 | # | ||
853 | # Native Language Support | ||
854 | # | ||
855 | CONFIG_NLS=y | ||
856 | CONFIG_NLS_DEFAULT="iso8859-1" | ||
857 | # CONFIG_NLS_CODEPAGE_437 is not set | ||
858 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
859 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
860 | # CONFIG_NLS_CODEPAGE_850 is not set | ||
861 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
862 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
863 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
864 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
865 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
866 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
867 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
868 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
869 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
870 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
871 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
872 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
873 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
874 | # CONFIG_NLS_CODEPAGE_932 is not set | ||
875 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
876 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
877 | # CONFIG_NLS_ISO8859_8 is not set | ||
878 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
879 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
880 | # CONFIG_NLS_ASCII is not set | ||
881 | # CONFIG_NLS_ISO8859_1 is not set | ||
882 | # CONFIG_NLS_ISO8859_2 is not set | ||
883 | # CONFIG_NLS_ISO8859_3 is not set | ||
884 | # CONFIG_NLS_ISO8859_4 is not set | ||
885 | # CONFIG_NLS_ISO8859_5 is not set | ||
886 | # CONFIG_NLS_ISO8859_6 is not set | ||
887 | # CONFIG_NLS_ISO8859_7 is not set | ||
888 | # CONFIG_NLS_ISO8859_9 is not set | ||
889 | # CONFIG_NLS_ISO8859_13 is not set | ||
890 | # CONFIG_NLS_ISO8859_14 is not set | ||
891 | # CONFIG_NLS_ISO8859_15 is not set | ||
892 | # CONFIG_NLS_KOI8_R is not set | ||
893 | # CONFIG_NLS_KOI8_U is not set | ||
894 | # CONFIG_NLS_UTF8 is not set | ||
895 | |||
896 | # | ||
897 | # Profiling support | ||
898 | # | ||
899 | # CONFIG_PROFILING is not set | ||
900 | |||
901 | # | ||
902 | # Kernel hacking | ||
903 | # | ||
904 | # CONFIG_PRINTK_TIME is not set | ||
905 | CONFIG_DEBUG_KERNEL=y | ||
906 | # CONFIG_MAGIC_SYSRQ is not set | ||
907 | CONFIG_LOG_BUF_SHIFT=16 | ||
908 | # CONFIG_SCHEDSTATS is not set | ||
909 | # CONFIG_DEBUG_SLAB is not set | ||
910 | # CONFIG_DEBUG_SPINLOCK is not set | ||
911 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
912 | # CONFIG_DEBUG_KOBJECT is not set | ||
913 | CONFIG_DEBUG_BUGVERBOSE=y | ||
914 | CONFIG_DEBUG_INFO=y | ||
915 | # CONFIG_DEBUG_FS is not set | ||
916 | CONFIG_FRAME_POINTER=y | ||
917 | CONFIG_DEBUG_USER=y | ||
918 | # CONFIG_DEBUG_WAITQ is not set | ||
919 | # CONFIG_DEBUG_ERRORS is not set | ||
920 | CONFIG_DEBUG_LL=y | ||
921 | # CONFIG_DEBUG_ICEDCC is not set | ||
922 | CONFIG_DEBUG_S3C2410_PORT=y | ||
923 | CONFIG_DEBUG_S3C2410_UART=0 | ||
924 | |||
925 | # | ||
926 | # Security options | ||
927 | # | ||
928 | # CONFIG_KEYS is not set | ||
929 | # CONFIG_SECURITY is not set | ||
930 | |||
931 | # | ||
932 | # Cryptographic options | ||
933 | # | ||
934 | # CONFIG_CRYPTO is not set | ||
935 | |||
936 | # | ||
937 | # Hardware crypto devices | ||
938 | # | ||
939 | |||
940 | # | ||
941 | # Library routines | ||
942 | # | ||
943 | # CONFIG_CRC_CCITT is not set | ||
944 | CONFIG_CRC32=y | ||
945 | # CONFIG_LIBCRC32C is not set | ||
946 | CONFIG_ZLIB_INFLATE=y | ||
947 | CONFIG_ZLIB_DEFLATE=y | ||
diff --git a/arch/arm/configs/s3c2410_defconfig b/arch/arm/configs/s3c2410_defconfig index a83222641045..0563c14395e1 100644 --- a/arch/arm/configs/s3c2410_defconfig +++ b/arch/arm/configs/s3c2410_defconfig | |||
@@ -1,9 +1,10 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.18 | 3 | # Linux kernel version: 2.6.19-rc4 |
4 | # Wed Sep 20 20:27:31 2006 | 4 | # Fri Nov 3 17:41:31 2006 |
5 | # | 5 | # |
6 | CONFIG_ARM=y | 6 | CONFIG_ARM=y |
7 | # CONFIG_GENERIC_TIME is not set | ||
7 | CONFIG_MMU=y | 8 | CONFIG_MMU=y |
8 | CONFIG_GENERIC_HARDIRQS=y | 9 | CONFIG_GENERIC_HARDIRQS=y |
9 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 10 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -29,17 +30,20 @@ CONFIG_LOCALVERSION="" | |||
29 | CONFIG_LOCALVERSION_AUTO=y | 30 | CONFIG_LOCALVERSION_AUTO=y |
30 | CONFIG_SWAP=y | 31 | CONFIG_SWAP=y |
31 | CONFIG_SYSVIPC=y | 32 | CONFIG_SYSVIPC=y |
33 | # CONFIG_IPC_NS is not set | ||
32 | # CONFIG_POSIX_MQUEUE is not set | 34 | # CONFIG_POSIX_MQUEUE is not set |
33 | # CONFIG_BSD_PROCESS_ACCT is not set | 35 | # CONFIG_BSD_PROCESS_ACCT is not set |
34 | # CONFIG_TASKSTATS is not set | 36 | # CONFIG_TASKSTATS is not set |
37 | # CONFIG_UTS_NS is not set | ||
35 | # CONFIG_AUDIT is not set | 38 | # CONFIG_AUDIT is not set |
36 | # CONFIG_IKCONFIG is not set | 39 | # CONFIG_IKCONFIG is not set |
37 | # CONFIG_RELAY is not set | 40 | # CONFIG_RELAY is not set |
38 | CONFIG_INITRAMFS_SOURCE="" | 41 | CONFIG_INITRAMFS_SOURCE="" |
39 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 42 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
43 | CONFIG_SYSCTL=y | ||
40 | # CONFIG_EMBEDDED is not set | 44 | # CONFIG_EMBEDDED is not set |
41 | CONFIG_UID16=y | 45 | CONFIG_UID16=y |
42 | CONFIG_SYSCTL=y | 46 | # CONFIG_SYSCTL_SYSCALL is not set |
43 | CONFIG_KALLSYMS=y | 47 | CONFIG_KALLSYMS=y |
44 | # CONFIG_KALLSYMS_ALL is not set | 48 | # CONFIG_KALLSYMS_ALL is not set |
45 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 49 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
@@ -62,7 +66,8 @@ CONFIG_BASE_SMALL=0 | |||
62 | # Loadable module support | 66 | # Loadable module support |
63 | # | 67 | # |
64 | CONFIG_MODULES=y | 68 | CONFIG_MODULES=y |
65 | # CONFIG_MODULE_UNLOAD is not set | 69 | CONFIG_MODULE_UNLOAD=y |
70 | # CONFIG_MODULE_FORCE_UNLOAD is not set | ||
66 | # CONFIG_MODVERSIONS is not set | 71 | # CONFIG_MODVERSIONS is not set |
67 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 72 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
68 | CONFIG_KMOD=y | 73 | CONFIG_KMOD=y |
@@ -70,6 +75,7 @@ CONFIG_KMOD=y | |||
70 | # | 75 | # |
71 | # Block layer | 76 | # Block layer |
72 | # | 77 | # |
78 | CONFIG_BLOCK=y | ||
73 | # CONFIG_BLK_DEV_IO_TRACE is not set | 79 | # CONFIG_BLK_DEV_IO_TRACE is not set |
74 | 80 | ||
75 | # | 81 | # |
@@ -120,6 +126,7 @@ CONFIG_ARCH_S3C2410=y | |||
120 | # | 126 | # |
121 | # S3C24XX Implementations | 127 | # S3C24XX Implementations |
122 | # | 128 | # |
129 | # CONFIG_MACH_AML_M5900 is not set | ||
123 | CONFIG_MACH_ANUBIS=y | 130 | CONFIG_MACH_ANUBIS=y |
124 | CONFIG_MACH_OSIRIS=y | 131 | CONFIG_MACH_OSIRIS=y |
125 | CONFIG_ARCH_BAST=y | 132 | CONFIG_ARCH_BAST=y |
@@ -178,6 +185,8 @@ CONFIG_CPU_CACHE_V4WT=y | |||
178 | CONFIG_CPU_CACHE_VIVT=y | 185 | CONFIG_CPU_CACHE_VIVT=y |
179 | CONFIG_CPU_COPY_V4WB=y | 186 | CONFIG_CPU_COPY_V4WB=y |
180 | CONFIG_CPU_TLB_V4WBI=y | 187 | CONFIG_CPU_TLB_V4WBI=y |
188 | CONFIG_CPU_CP15=y | ||
189 | CONFIG_CPU_CP15_MMU=y | ||
181 | 190 | ||
182 | # | 191 | # |
183 | # Processor Features | 192 | # Processor Features |
@@ -251,6 +260,7 @@ CONFIG_BINFMT_AOUT=y | |||
251 | CONFIG_PM=y | 260 | CONFIG_PM=y |
252 | CONFIG_PM_LEGACY=y | 261 | CONFIG_PM_LEGACY=y |
253 | # CONFIG_PM_DEBUG is not set | 262 | # CONFIG_PM_DEBUG is not set |
263 | # CONFIG_PM_SYSFS_DEPRECATED is not set | ||
254 | CONFIG_APM=y | 264 | CONFIG_APM=y |
255 | 265 | ||
256 | # | 266 | # |
@@ -266,6 +276,7 @@ CONFIG_NET=y | |||
266 | CONFIG_UNIX=y | 276 | CONFIG_UNIX=y |
267 | CONFIG_XFRM=y | 277 | CONFIG_XFRM=y |
268 | # CONFIG_XFRM_USER is not set | 278 | # CONFIG_XFRM_USER is not set |
279 | # CONFIG_XFRM_SUB_POLICY is not set | ||
269 | # CONFIG_NET_KEY is not set | 280 | # CONFIG_NET_KEY is not set |
270 | CONFIG_INET=y | 281 | CONFIG_INET=y |
271 | # CONFIG_IP_MULTICAST is not set | 282 | # CONFIG_IP_MULTICAST is not set |
@@ -286,10 +297,12 @@ CONFIG_IP_PNP_BOOTP=y | |||
286 | # CONFIG_INET_TUNNEL is not set | 297 | # CONFIG_INET_TUNNEL is not set |
287 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | 298 | CONFIG_INET_XFRM_MODE_TRANSPORT=y |
288 | CONFIG_INET_XFRM_MODE_TUNNEL=y | 299 | CONFIG_INET_XFRM_MODE_TUNNEL=y |
300 | CONFIG_INET_XFRM_MODE_BEET=y | ||
289 | CONFIG_INET_DIAG=y | 301 | CONFIG_INET_DIAG=y |
290 | CONFIG_INET_TCP_DIAG=y | 302 | CONFIG_INET_TCP_DIAG=y |
291 | # CONFIG_TCP_CONG_ADVANCED is not set | 303 | # CONFIG_TCP_CONG_ADVANCED is not set |
292 | CONFIG_TCP_CONG_BIC=y | 304 | CONFIG_TCP_CONG_CUBIC=y |
305 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
293 | # CONFIG_IPV6 is not set | 306 | # CONFIG_IPV6 is not set |
294 | # CONFIG_INET6_XFRM_TUNNEL is not set | 307 | # CONFIG_INET6_XFRM_TUNNEL is not set |
295 | # CONFIG_INET6_TUNNEL is not set | 308 | # CONFIG_INET6_TUNNEL is not set |
@@ -377,6 +390,7 @@ CONFIG_MTD_BLOCK=y | |||
377 | # CONFIG_NFTL is not set | 390 | # CONFIG_NFTL is not set |
378 | # CONFIG_INFTL is not set | 391 | # CONFIG_INFTL is not set |
379 | # CONFIG_RFD_FTL is not set | 392 | # CONFIG_RFD_FTL is not set |
393 | # CONFIG_SSFDC is not set | ||
380 | 394 | ||
381 | # | 395 | # |
382 | # RAM/ROM/Flash chip drivers | 396 | # RAM/ROM/Flash chip drivers |
@@ -418,6 +432,8 @@ CONFIG_MTD_BAST_MAXSIZE=4 | |||
418 | # | 432 | # |
419 | # Self-contained MTD device drivers | 433 | # Self-contained MTD device drivers |
420 | # | 434 | # |
435 | # CONFIG_MTD_DATAFLASH is not set | ||
436 | # CONFIG_MTD_M25P80 is not set | ||
421 | # CONFIG_MTD_SLRAM is not set | 437 | # CONFIG_MTD_SLRAM is not set |
422 | # CONFIG_MTD_PHRAM is not set | 438 | # CONFIG_MTD_PHRAM is not set |
423 | # CONFIG_MTD_MTDRAM is not set | 439 | # CONFIG_MTD_MTDRAM is not set |
@@ -512,6 +528,7 @@ CONFIG_BLK_DEV_IDE_BAST=y | |||
512 | # | 528 | # |
513 | # CONFIG_RAID_ATTRS is not set | 529 | # CONFIG_RAID_ATTRS is not set |
514 | # CONFIG_SCSI is not set | 530 | # CONFIG_SCSI is not set |
531 | # CONFIG_SCSI_NETLINK is not set | ||
515 | 532 | ||
516 | # | 533 | # |
517 | # Multi-device support (RAID and LVM) | 534 | # Multi-device support (RAID and LVM) |
@@ -606,6 +623,7 @@ CONFIG_DM9000=y | |||
606 | # Input device support | 623 | # Input device support |
607 | # | 624 | # |
608 | CONFIG_INPUT=y | 625 | CONFIG_INPUT=y |
626 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
609 | 627 | ||
610 | # | 628 | # |
611 | # Userland interfaces | 629 | # Userland interfaces |
@@ -628,6 +646,7 @@ CONFIG_KEYBOARD_ATKBD=y | |||
628 | # CONFIG_KEYBOARD_LKKBD is not set | 646 | # CONFIG_KEYBOARD_LKKBD is not set |
629 | # CONFIG_KEYBOARD_XTKBD is not set | 647 | # CONFIG_KEYBOARD_XTKBD is not set |
630 | # CONFIG_KEYBOARD_NEWTON is not set | 648 | # CONFIG_KEYBOARD_NEWTON is not set |
649 | # CONFIG_KEYBOARD_STOWAWAY is not set | ||
631 | CONFIG_INPUT_MOUSE=y | 650 | CONFIG_INPUT_MOUSE=y |
632 | CONFIG_MOUSE_PS2=y | 651 | CONFIG_MOUSE_PS2=y |
633 | # CONFIG_MOUSE_SERIAL is not set | 652 | # CONFIG_MOUSE_SERIAL is not set |
@@ -734,7 +753,6 @@ CONFIG_S3C2410_WATCHDOG=y | |||
734 | # CONFIG_USBPCWATCHDOG is not set | 753 | # CONFIG_USBPCWATCHDOG is not set |
735 | CONFIG_HW_RANDOM=y | 754 | CONFIG_HW_RANDOM=y |
736 | # CONFIG_NVRAM is not set | 755 | # CONFIG_NVRAM is not set |
737 | CONFIG_S3C2410_RTC=y | ||
738 | # CONFIG_DTLK is not set | 756 | # CONFIG_DTLK is not set |
739 | # CONFIG_R3964 is not set | 757 | # CONFIG_R3964 is not set |
740 | 758 | ||
@@ -747,7 +765,6 @@ CONFIG_S3C2410_RTC=y | |||
747 | # TPM devices | 765 | # TPM devices |
748 | # | 766 | # |
749 | # CONFIG_TCG_TPM is not set | 767 | # CONFIG_TCG_TPM is not set |
750 | # CONFIG_TELCLOCK is not set | ||
751 | 768 | ||
752 | # | 769 | # |
753 | # I2C support | 770 | # I2C support |
@@ -792,12 +809,26 @@ CONFIG_SENSORS_EEPROM=m | |||
792 | # | 809 | # |
793 | # SPI support | 810 | # SPI support |
794 | # | 811 | # |
795 | # CONFIG_SPI is not set | 812 | CONFIG_SPI=y |
796 | # CONFIG_SPI_MASTER is not set | 813 | # CONFIG_SPI_DEBUG is not set |
814 | CONFIG_SPI_MASTER=y | ||
815 | |||
816 | # | ||
817 | # SPI Master Controller Drivers | ||
818 | # | ||
819 | CONFIG_SPI_BITBANG=m | ||
820 | # CONFIG_SPI_BUTTERFLY is not set | ||
821 | CONFIG_SPI_S3C24XX_GPIO=m | ||
822 | CONFIG_SPI_S3C24XX=m | ||
823 | |||
824 | # | ||
825 | # SPI Protocol Masters | ||
826 | # | ||
797 | 827 | ||
798 | # | 828 | # |
799 | # Dallas's 1-wire bus | 829 | # Dallas's 1-wire bus |
800 | # | 830 | # |
831 | # CONFIG_W1 is not set | ||
801 | 832 | ||
802 | # | 833 | # |
803 | # Hardware Monitoring support | 834 | # Hardware Monitoring support |
@@ -820,6 +851,7 @@ CONFIG_HWMON_VID=m | |||
820 | # CONFIG_SENSORS_GL520SM is not set | 851 | # CONFIG_SENSORS_GL520SM is not set |
821 | # CONFIG_SENSORS_IT87 is not set | 852 | # CONFIG_SENSORS_IT87 is not set |
822 | # CONFIG_SENSORS_LM63 is not set | 853 | # CONFIG_SENSORS_LM63 is not set |
854 | # CONFIG_SENSORS_LM70 is not set | ||
823 | CONFIG_SENSORS_LM75=m | 855 | CONFIG_SENSORS_LM75=m |
824 | # CONFIG_SENSORS_LM77 is not set | 856 | # CONFIG_SENSORS_LM77 is not set |
825 | CONFIG_SENSORS_LM78=m | 857 | CONFIG_SENSORS_LM78=m |
@@ -834,6 +866,7 @@ CONFIG_SENSORS_LM85=m | |||
834 | # CONFIG_SENSORS_SMSC47M1 is not set | 866 | # CONFIG_SENSORS_SMSC47M1 is not set |
835 | # CONFIG_SENSORS_SMSC47M192 is not set | 867 | # CONFIG_SENSORS_SMSC47M192 is not set |
836 | # CONFIG_SENSORS_SMSC47B397 is not set | 868 | # CONFIG_SENSORS_SMSC47B397 is not set |
869 | # CONFIG_SENSORS_VT1211 is not set | ||
837 | # CONFIG_SENSORS_W83781D is not set | 870 | # CONFIG_SENSORS_W83781D is not set |
838 | # CONFIG_SENSORS_W83791D is not set | 871 | # CONFIG_SENSORS_W83791D is not set |
839 | # CONFIG_SENSORS_W83792D is not set | 872 | # CONFIG_SENSORS_W83792D is not set |
@@ -845,25 +878,31 @@ CONFIG_SENSORS_LM85=m | |||
845 | # | 878 | # |
846 | # Misc devices | 879 | # Misc devices |
847 | # | 880 | # |
881 | # CONFIG_TIFM_CORE is not set | ||
848 | 882 | ||
849 | # | 883 | # |
850 | # LED devices | 884 | # LED devices |
851 | # | 885 | # |
852 | # CONFIG_NEW_LEDS is not set | 886 | CONFIG_NEW_LEDS=y |
887 | CONFIG_LEDS_CLASS=m | ||
853 | 888 | ||
854 | # | 889 | # |
855 | # LED drivers | 890 | # LED drivers |
856 | # | 891 | # |
892 | CONFIG_LEDS_S3C24XX=m | ||
857 | 893 | ||
858 | # | 894 | # |
859 | # LED Triggers | 895 | # LED Triggers |
860 | # | 896 | # |
897 | CONFIG_LEDS_TRIGGERS=y | ||
898 | CONFIG_LEDS_TRIGGER_TIMER=m | ||
899 | # CONFIG_LEDS_TRIGGER_IDE_DISK is not set | ||
900 | CONFIG_LEDS_TRIGGER_HEARTBEAT=m | ||
861 | 901 | ||
862 | # | 902 | # |
863 | # Multimedia devices | 903 | # Multimedia devices |
864 | # | 904 | # |
865 | # CONFIG_VIDEO_DEV is not set | 905 | # CONFIG_VIDEO_DEV is not set |
866 | CONFIG_VIDEO_V4L2=y | ||
867 | 906 | ||
868 | # | 907 | # |
869 | # Digital Video Broadcasting Devices | 908 | # Digital Video Broadcasting Devices |
@@ -876,6 +915,7 @@ CONFIG_VIDEO_V4L2=y | |||
876 | # | 915 | # |
877 | CONFIG_FIRMWARE_EDID=y | 916 | CONFIG_FIRMWARE_EDID=y |
878 | CONFIG_FB=y | 917 | CONFIG_FB=y |
918 | # CONFIG_FB_DDC is not set | ||
879 | CONFIG_FB_CFB_FILLRECT=y | 919 | CONFIG_FB_CFB_FILLRECT=y |
880 | CONFIG_FB_CFB_COPYAREA=y | 920 | CONFIG_FB_CFB_COPYAREA=y |
881 | CONFIG_FB_CFB_IMAGEBLIT=y | 921 | CONFIG_FB_CFB_IMAGEBLIT=y |
@@ -951,7 +991,6 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y | |||
951 | # | 991 | # |
952 | # may also be needed; see USB_STORAGE Help for more information | 992 | # may also be needed; see USB_STORAGE Help for more information |
953 | # | 993 | # |
954 | # CONFIG_USB_STORAGE is not set | ||
955 | # CONFIG_USB_LIBUSUAL is not set | 994 | # CONFIG_USB_LIBUSUAL is not set |
956 | 995 | ||
957 | # | 996 | # |
@@ -1007,6 +1046,7 @@ CONFIG_USB_MON=y | |||
1007 | # | 1046 | # |
1008 | # CONFIG_USB_EMI62 is not set | 1047 | # CONFIG_USB_EMI62 is not set |
1009 | # CONFIG_USB_EMI26 is not set | 1048 | # CONFIG_USB_EMI26 is not set |
1049 | # CONFIG_USB_ADUTUX is not set | ||
1010 | # CONFIG_USB_AUERSWALD is not set | 1050 | # CONFIG_USB_AUERSWALD is not set |
1011 | # CONFIG_USB_RIO500 is not set | 1051 | # CONFIG_USB_RIO500 is not set |
1012 | # CONFIG_USB_LEGOTOWER is not set | 1052 | # CONFIG_USB_LEGOTOWER is not set |
@@ -1014,11 +1054,12 @@ CONFIG_USB_MON=y | |||
1014 | # CONFIG_USB_LED is not set | 1054 | # CONFIG_USB_LED is not set |
1015 | # CONFIG_USB_CYPRESS_CY7C63 is not set | 1055 | # CONFIG_USB_CYPRESS_CY7C63 is not set |
1016 | # CONFIG_USB_CYTHERM is not set | 1056 | # CONFIG_USB_CYTHERM is not set |
1017 | # CONFIG_USB_PHIDGETKIT is not set | 1057 | # CONFIG_USB_PHIDGET is not set |
1018 | # CONFIG_USB_PHIDGETSERVO is not set | ||
1019 | # CONFIG_USB_IDMOUSE is not set | 1058 | # CONFIG_USB_IDMOUSE is not set |
1059 | # CONFIG_USB_FTDI_ELAN is not set | ||
1020 | # CONFIG_USB_APPLEDISPLAY is not set | 1060 | # CONFIG_USB_APPLEDISPLAY is not set |
1021 | # CONFIG_USB_LD is not set | 1061 | # CONFIG_USB_LD is not set |
1062 | # CONFIG_USB_TRANCEVIBRATOR is not set | ||
1022 | # CONFIG_USB_TEST is not set | 1063 | # CONFIG_USB_TEST is not set |
1023 | 1064 | ||
1024 | # | 1065 | # |
@@ -1039,7 +1080,37 @@ CONFIG_USB_MON=y | |||
1039 | # Real Time Clock | 1080 | # Real Time Clock |
1040 | # | 1081 | # |
1041 | CONFIG_RTC_LIB=y | 1082 | CONFIG_RTC_LIB=y |
1042 | # CONFIG_RTC_CLASS is not set | 1083 | CONFIG_RTC_CLASS=y |
1084 | CONFIG_RTC_HCTOSYS=y | ||
1085 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
1086 | # CONFIG_RTC_DEBUG is not set | ||
1087 | |||
1088 | # | ||
1089 | # RTC interfaces | ||
1090 | # | ||
1091 | CONFIG_RTC_INTF_SYSFS=y | ||
1092 | CONFIG_RTC_INTF_PROC=y | ||
1093 | CONFIG_RTC_INTF_DEV=y | ||
1094 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | ||
1095 | |||
1096 | # | ||
1097 | # RTC drivers | ||
1098 | # | ||
1099 | # CONFIG_RTC_DRV_X1205 is not set | ||
1100 | # CONFIG_RTC_DRV_DS1307 is not set | ||
1101 | # CONFIG_RTC_DRV_DS1553 is not set | ||
1102 | # CONFIG_RTC_DRV_ISL1208 is not set | ||
1103 | # CONFIG_RTC_DRV_DS1672 is not set | ||
1104 | # CONFIG_RTC_DRV_DS1742 is not set | ||
1105 | # CONFIG_RTC_DRV_PCF8563 is not set | ||
1106 | # CONFIG_RTC_DRV_PCF8583 is not set | ||
1107 | # CONFIG_RTC_DRV_RS5C348 is not set | ||
1108 | # CONFIG_RTC_DRV_RS5C372 is not set | ||
1109 | CONFIG_RTC_DRV_S3C=y | ||
1110 | # CONFIG_RTC_DRV_M48T86 is not set | ||
1111 | # CONFIG_RTC_DRV_TEST is not set | ||
1112 | # CONFIG_RTC_DRV_MAX6902 is not set | ||
1113 | # CONFIG_RTC_DRV_V3020 is not set | ||
1043 | 1114 | ||
1044 | # | 1115 | # |
1045 | # File systems | 1116 | # File systems |
@@ -1051,6 +1122,7 @@ CONFIG_EXT3_FS=y | |||
1051 | CONFIG_EXT3_FS_XATTR=y | 1122 | CONFIG_EXT3_FS_XATTR=y |
1052 | # CONFIG_EXT3_FS_POSIX_ACL is not set | 1123 | # CONFIG_EXT3_FS_POSIX_ACL is not set |
1053 | # CONFIG_EXT3_FS_SECURITY is not set | 1124 | # CONFIG_EXT3_FS_SECURITY is not set |
1125 | # CONFIG_EXT4DEV_FS is not set | ||
1054 | CONFIG_JBD=y | 1126 | CONFIG_JBD=y |
1055 | # CONFIG_JBD_DEBUG is not set | 1127 | # CONFIG_JBD_DEBUG is not set |
1056 | CONFIG_FS_MBCACHE=y | 1128 | CONFIG_FS_MBCACHE=y |
@@ -1058,6 +1130,7 @@ CONFIG_FS_MBCACHE=y | |||
1058 | # CONFIG_JFS_FS is not set | 1130 | # CONFIG_JFS_FS is not set |
1059 | # CONFIG_FS_POSIX_ACL is not set | 1131 | # CONFIG_FS_POSIX_ACL is not set |
1060 | # CONFIG_XFS_FS is not set | 1132 | # CONFIG_XFS_FS is not set |
1133 | # CONFIG_GFS2_FS is not set | ||
1061 | # CONFIG_OCFS2_FS is not set | 1134 | # CONFIG_OCFS2_FS is not set |
1062 | # CONFIG_MINIX_FS is not set | 1135 | # CONFIG_MINIX_FS is not set |
1063 | CONFIG_ROMFS_FS=y | 1136 | CONFIG_ROMFS_FS=y |
@@ -1089,6 +1162,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
1089 | # Pseudo filesystems | 1162 | # Pseudo filesystems |
1090 | # | 1163 | # |
1091 | CONFIG_PROC_FS=y | 1164 | CONFIG_PROC_FS=y |
1165 | CONFIG_PROC_SYSCTL=y | ||
1092 | CONFIG_SYSFS=y | 1166 | CONFIG_SYSFS=y |
1093 | # CONFIG_TMPFS is not set | 1167 | # CONFIG_TMPFS is not set |
1094 | # CONFIG_HUGETLB_PAGE is not set | 1168 | # CONFIG_HUGETLB_PAGE is not set |
@@ -1219,6 +1293,7 @@ CONFIG_NLS_DEFAULT="iso8859-1" | |||
1219 | # Kernel hacking | 1293 | # Kernel hacking |
1220 | # | 1294 | # |
1221 | # CONFIG_PRINTK_TIME is not set | 1295 | # CONFIG_PRINTK_TIME is not set |
1296 | CONFIG_ENABLE_MUST_CHECK=y | ||
1222 | CONFIG_MAGIC_SYSRQ=y | 1297 | CONFIG_MAGIC_SYSRQ=y |
1223 | # CONFIG_UNUSED_SYMBOLS is not set | 1298 | # CONFIG_UNUSED_SYMBOLS is not set |
1224 | CONFIG_DEBUG_KERNEL=y | 1299 | CONFIG_DEBUG_KERNEL=y |
@@ -1238,9 +1313,10 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
1238 | CONFIG_DEBUG_INFO=y | 1313 | CONFIG_DEBUG_INFO=y |
1239 | # CONFIG_DEBUG_FS is not set | 1314 | # CONFIG_DEBUG_FS is not set |
1240 | # CONFIG_DEBUG_VM is not set | 1315 | # CONFIG_DEBUG_VM is not set |
1316 | # CONFIG_DEBUG_LIST is not set | ||
1241 | CONFIG_FRAME_POINTER=y | 1317 | CONFIG_FRAME_POINTER=y |
1242 | # CONFIG_UNWIND_INFO is not set | ||
1243 | CONFIG_FORCED_INLINING=y | 1318 | CONFIG_FORCED_INLINING=y |
1319 | # CONFIG_HEADERS_CHECK is not set | ||
1244 | # CONFIG_RCU_TORTURE_TEST is not set | 1320 | # CONFIG_RCU_TORTURE_TEST is not set |
1245 | CONFIG_DEBUG_USER=y | 1321 | CONFIG_DEBUG_USER=y |
1246 | # CONFIG_DEBUG_WAITQ is not set | 1322 | # CONFIG_DEBUG_WAITQ is not set |
@@ -1262,10 +1338,6 @@ CONFIG_DEBUG_S3C2410_UART=0 | |||
1262 | # CONFIG_CRYPTO is not set | 1338 | # CONFIG_CRYPTO is not set |
1263 | 1339 | ||
1264 | # | 1340 | # |
1265 | # Hardware crypto devices | ||
1266 | # | ||
1267 | |||
1268 | # | ||
1269 | # Library routines | 1341 | # Library routines |
1270 | # | 1342 | # |
1271 | # CONFIG_CRC_CCITT is not set | 1343 | # CONFIG_CRC_CCITT is not set |
diff --git a/arch/arm/configs/smdk2410_defconfig b/arch/arm/configs/smdk2410_defconfig deleted file mode 100644 index 4d123d33c7df..000000000000 --- a/arch/arm/configs/smdk2410_defconfig +++ /dev/null | |||
@@ -1,735 +0,0 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.12-rc1-bk2 | ||
4 | # Sun Mar 27 22:42:40 2005 | ||
5 | # | ||
6 | CONFIG_ARM=y | ||
7 | CONFIG_MMU=y | ||
8 | CONFIG_UID16=y | ||
9 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | ||
10 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
11 | CONFIG_GENERIC_IOMAP=y | ||
12 | |||
13 | # | ||
14 | # Code maturity level options | ||
15 | # | ||
16 | CONFIG_EXPERIMENTAL=y | ||
17 | CONFIG_CLEAN_COMPILE=y | ||
18 | CONFIG_BROKEN_ON_SMP=y | ||
19 | |||
20 | # | ||
21 | # General setup | ||
22 | # | ||
23 | CONFIG_LOCALVERSION="" | ||
24 | CONFIG_SWAP=y | ||
25 | CONFIG_SYSVIPC=y | ||
26 | # CONFIG_POSIX_MQUEUE is not set | ||
27 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
28 | CONFIG_SYSCTL=y | ||
29 | # CONFIG_AUDIT is not set | ||
30 | # CONFIG_HOTPLUG is not set | ||
31 | CONFIG_KOBJECT_UEVENT=y | ||
32 | # CONFIG_IKCONFIG is not set | ||
33 | # CONFIG_EMBEDDED is not set | ||
34 | CONFIG_KALLSYMS=y | ||
35 | # CONFIG_KALLSYMS_ALL is not set | ||
36 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
37 | CONFIG_BASE_FULL=y | ||
38 | CONFIG_FUTEX=y | ||
39 | CONFIG_EPOLL=y | ||
40 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | ||
41 | CONFIG_SHMEM=y | ||
42 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
43 | CONFIG_CC_ALIGN_LABELS=0 | ||
44 | CONFIG_CC_ALIGN_LOOPS=0 | ||
45 | CONFIG_CC_ALIGN_JUMPS=0 | ||
46 | # CONFIG_TINY_SHMEM is not set | ||
47 | CONFIG_BASE_SMALL=0 | ||
48 | |||
49 | # | ||
50 | # Loadable module support | ||
51 | # | ||
52 | # CONFIG_MODULES is not set | ||
53 | |||
54 | # | ||
55 | # System Type | ||
56 | # | ||
57 | # CONFIG_ARCH_CLPS7500 is not set | ||
58 | # CONFIG_ARCH_CLPS711X is not set | ||
59 | # CONFIG_ARCH_CO285 is not set | ||
60 | # CONFIG_ARCH_EBSA110 is not set | ||
61 | # CONFIG_ARCH_FOOTBRIDGE is not set | ||
62 | # CONFIG_ARCH_INTEGRATOR is not set | ||
63 | # CONFIG_ARCH_IOP3XX is not set | ||
64 | # CONFIG_ARCH_IXP4XX is not set | ||
65 | # CONFIG_ARCH_IXP2000 is not set | ||
66 | # CONFIG_ARCH_L7200 is not set | ||
67 | # CONFIG_ARCH_PXA is not set | ||
68 | # CONFIG_ARCH_RPC is not set | ||
69 | # CONFIG_ARCH_SA1100 is not set | ||
70 | CONFIG_ARCH_S3C2410=y | ||
71 | # CONFIG_ARCH_SHARK is not set | ||
72 | # CONFIG_ARCH_LH7A40X is not set | ||
73 | # CONFIG_ARCH_OMAP is not set | ||
74 | # CONFIG_ARCH_VERSATILE is not set | ||
75 | # CONFIG_ARCH_IMX is not set | ||
76 | # CONFIG_ARCH_H720X is not set | ||
77 | |||
78 | # | ||
79 | # S3C24XX Implementations | ||
80 | # | ||
81 | # CONFIG_ARCH_BAST is not set | ||
82 | # CONFIG_ARCH_H1940 is not set | ||
83 | # CONFIG_MACH_N30 is not set | ||
84 | CONFIG_ARCH_SMDK2410=y | ||
85 | # CONFIG_ARCH_S3C2440 is not set | ||
86 | # CONFIG_MACH_VR1000 is not set | ||
87 | # CONFIG_MACH_RX3715 is not set | ||
88 | # CONFIG_MACH_OTOM is not set | ||
89 | # CONFIG_MACH_NEXCODER_2440 is not set | ||
90 | CONFIG_CPU_S3C2410=y | ||
91 | |||
92 | # | ||
93 | # S3C2410 Boot | ||
94 | # | ||
95 | |||
96 | # | ||
97 | # S3C2410 Setup | ||
98 | # | ||
99 | # CONFIG_S3C2410_DMA is not set | ||
100 | CONFIG_S3C2410_LOWLEVEL_UART_PORT=0 | ||
101 | |||
102 | # | ||
103 | # Processor Type | ||
104 | # | ||
105 | CONFIG_CPU_32=y | ||
106 | CONFIG_CPU_ARM920T=y | ||
107 | CONFIG_CPU_32v4=y | ||
108 | CONFIG_CPU_ABRT_EV4T=y | ||
109 | CONFIG_CPU_CACHE_V4WT=y | ||
110 | CONFIG_CPU_CACHE_VIVT=y | ||
111 | CONFIG_CPU_COPY_V4WB=y | ||
112 | CONFIG_CPU_TLB_V4WBI=y | ||
113 | |||
114 | # | ||
115 | # Processor Features | ||
116 | # | ||
117 | CONFIG_ARM_THUMB=y | ||
118 | # CONFIG_CPU_ICACHE_DISABLE is not set | ||
119 | # CONFIG_CPU_DCACHE_DISABLE is not set | ||
120 | # CONFIG_CPU_DCACHE_WRITETHROUGH is not set | ||
121 | |||
122 | # | ||
123 | # Bus support | ||
124 | # | ||
125 | |||
126 | # | ||
127 | # PCCARD (PCMCIA/CardBus) support | ||
128 | # | ||
129 | # CONFIG_PCCARD is not set | ||
130 | |||
131 | # | ||
132 | # Kernel Features | ||
133 | # | ||
134 | # CONFIG_PREEMPT is not set | ||
135 | CONFIG_ALIGNMENT_TRAP=y | ||
136 | |||
137 | # | ||
138 | # Boot options | ||
139 | # | ||
140 | CONFIG_ZBOOT_ROM_TEXT=0x0 | ||
141 | CONFIG_ZBOOT_ROM_BSS=0x0 | ||
142 | CONFIG_CMDLINE="root=1f04 mem=32M" | ||
143 | # CONFIG_XIP_KERNEL is not set | ||
144 | |||
145 | # | ||
146 | # Floating point emulation | ||
147 | # | ||
148 | |||
149 | # | ||
150 | # At least one emulation must be selected | ||
151 | # | ||
152 | # CONFIG_FPE_NWFPE is not set | ||
153 | # CONFIG_FPE_FASTFPE is not set | ||
154 | |||
155 | # | ||
156 | # Userspace binary formats | ||
157 | # | ||
158 | CONFIG_BINFMT_ELF=y | ||
159 | CONFIG_BINFMT_AOUT=y | ||
160 | # CONFIG_BINFMT_MISC is not set | ||
161 | # CONFIG_ARTHUR is not set | ||
162 | |||
163 | # | ||
164 | # Power management options | ||
165 | # | ||
166 | # CONFIG_PM is not set | ||
167 | |||
168 | # | ||
169 | # Device Drivers | ||
170 | # | ||
171 | |||
172 | # | ||
173 | # Generic Driver Options | ||
174 | # | ||
175 | CONFIG_STANDALONE=y | ||
176 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
177 | # CONFIG_FW_LOADER is not set | ||
178 | # CONFIG_DEBUG_DRIVER is not set | ||
179 | |||
180 | # | ||
181 | # Memory Technology Devices (MTD) | ||
182 | # | ||
183 | CONFIG_MTD=y | ||
184 | # CONFIG_MTD_DEBUG is not set | ||
185 | # CONFIG_MTD_CONCAT is not set | ||
186 | # CONFIG_MTD_PARTITIONS is not set | ||
187 | |||
188 | # | ||
189 | # User Modules And Translation Layers | ||
190 | # | ||
191 | CONFIG_MTD_CHAR=y | ||
192 | CONFIG_MTD_BLOCK=y | ||
193 | # CONFIG_FTL is not set | ||
194 | # CONFIG_NFTL is not set | ||
195 | # CONFIG_INFTL is not set | ||
196 | |||
197 | # | ||
198 | # RAM/ROM/Flash chip drivers | ||
199 | # | ||
200 | CONFIG_MTD_CFI=y | ||
201 | # CONFIG_MTD_JEDECPROBE is not set | ||
202 | CONFIG_MTD_GEN_PROBE=y | ||
203 | # CONFIG_MTD_CFI_ADV_OPTIONS is not set | ||
204 | CONFIG_MTD_MAP_BANK_WIDTH_1=y | ||
205 | CONFIG_MTD_MAP_BANK_WIDTH_2=y | ||
206 | CONFIG_MTD_MAP_BANK_WIDTH_4=y | ||
207 | # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set | ||
208 | # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set | ||
209 | # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set | ||
210 | CONFIG_MTD_CFI_I1=y | ||
211 | CONFIG_MTD_CFI_I2=y | ||
212 | # CONFIG_MTD_CFI_I4 is not set | ||
213 | # CONFIG_MTD_CFI_I8 is not set | ||
214 | CONFIG_MTD_CFI_INTELEXT=y | ||
215 | # CONFIG_MTD_CFI_AMDSTD is not set | ||
216 | # CONFIG_MTD_CFI_STAA is not set | ||
217 | CONFIG_MTD_CFI_UTIL=y | ||
218 | # CONFIG_MTD_RAM is not set | ||
219 | # CONFIG_MTD_ROM is not set | ||
220 | # CONFIG_MTD_ABSENT is not set | ||
221 | # CONFIG_MTD_XIP is not set | ||
222 | |||
223 | # | ||
224 | # Mapping drivers for chip access | ||
225 | # | ||
226 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | ||
227 | # CONFIG_MTD_PHYSMAP is not set | ||
228 | # CONFIG_MTD_ARM_INTEGRATOR is not set | ||
229 | # CONFIG_MTD_EDB7312 is not set | ||
230 | |||
231 | # | ||
232 | # Self-contained MTD device drivers | ||
233 | # | ||
234 | # CONFIG_MTD_SLRAM is not set | ||
235 | # CONFIG_MTD_PHRAM is not set | ||
236 | # CONFIG_MTD_MTDRAM is not set | ||
237 | # CONFIG_MTD_BLKMTD is not set | ||
238 | # CONFIG_MTD_BLOCK2MTD is not set | ||
239 | |||
240 | # | ||
241 | # Disk-On-Chip Device Drivers | ||
242 | # | ||
243 | # CONFIG_MTD_DOC2000 is not set | ||
244 | # CONFIG_MTD_DOC2001 is not set | ||
245 | # CONFIG_MTD_DOC2001PLUS is not set | ||
246 | |||
247 | # | ||
248 | # NAND Flash Device Drivers | ||
249 | # | ||
250 | # CONFIG_MTD_NAND is not set | ||
251 | |||
252 | # | ||
253 | # Parallel port support | ||
254 | # | ||
255 | # CONFIG_PARPORT is not set | ||
256 | |||
257 | # | ||
258 | # Plug and Play support | ||
259 | # | ||
260 | |||
261 | # | ||
262 | # Block devices | ||
263 | # | ||
264 | # CONFIG_BLK_DEV_FD is not set | ||
265 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
266 | # CONFIG_BLK_DEV_LOOP is not set | ||
267 | # CONFIG_BLK_DEV_NBD is not set | ||
268 | CONFIG_BLK_DEV_RAM=y | ||
269 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
270 | CONFIG_BLK_DEV_RAM_SIZE=4096 | ||
271 | # CONFIG_BLK_DEV_INITRD is not set | ||
272 | CONFIG_INITRAMFS_SOURCE="" | ||
273 | # CONFIG_CDROM_PKTCDVD is not set | ||
274 | |||
275 | # | ||
276 | # IO Schedulers | ||
277 | # | ||
278 | CONFIG_IOSCHED_NOOP=y | ||
279 | CONFIG_IOSCHED_AS=y | ||
280 | CONFIG_IOSCHED_DEADLINE=y | ||
281 | CONFIG_IOSCHED_CFQ=y | ||
282 | # CONFIG_ATA_OVER_ETH is not set | ||
283 | |||
284 | # | ||
285 | # ATA/ATAPI/MFM/RLL support | ||
286 | # | ||
287 | # CONFIG_IDE is not set | ||
288 | |||
289 | # | ||
290 | # SCSI device support | ||
291 | # | ||
292 | # CONFIG_SCSI is not set | ||
293 | |||
294 | # | ||
295 | # Multi-device support (RAID and LVM) | ||
296 | # | ||
297 | # CONFIG_MD is not set | ||
298 | |||
299 | # | ||
300 | # Fusion MPT device support | ||
301 | # | ||
302 | |||
303 | # | ||
304 | # IEEE 1394 (FireWire) support | ||
305 | # | ||
306 | |||
307 | # | ||
308 | # I2O device support | ||
309 | # | ||
310 | |||
311 | # | ||
312 | # Networking support | ||
313 | # | ||
314 | CONFIG_NET=y | ||
315 | |||
316 | # | ||
317 | # Networking options | ||
318 | # | ||
319 | # CONFIG_PACKET is not set | ||
320 | # CONFIG_NETLINK_DEV is not set | ||
321 | CONFIG_UNIX=y | ||
322 | # CONFIG_NET_KEY is not set | ||
323 | CONFIG_INET=y | ||
324 | # CONFIG_IP_MULTICAST is not set | ||
325 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
326 | CONFIG_IP_PNP=y | ||
327 | # CONFIG_IP_PNP_DHCP is not set | ||
328 | CONFIG_IP_PNP_BOOTP=y | ||
329 | # CONFIG_IP_PNP_RARP is not set | ||
330 | # CONFIG_NET_IPIP is not set | ||
331 | # CONFIG_NET_IPGRE is not set | ||
332 | # CONFIG_ARPD is not set | ||
333 | # CONFIG_SYN_COOKIES is not set | ||
334 | # CONFIG_INET_AH is not set | ||
335 | # CONFIG_INET_ESP is not set | ||
336 | # CONFIG_INET_IPCOMP is not set | ||
337 | # CONFIG_INET_TUNNEL is not set | ||
338 | # CONFIG_IP_TCPDIAG is not set | ||
339 | # CONFIG_IP_TCPDIAG_IPV6 is not set | ||
340 | # CONFIG_IPV6 is not set | ||
341 | # CONFIG_NETFILTER is not set | ||
342 | |||
343 | # | ||
344 | # SCTP Configuration (EXPERIMENTAL) | ||
345 | # | ||
346 | # CONFIG_IP_SCTP is not set | ||
347 | # CONFIG_ATM is not set | ||
348 | # CONFIG_BRIDGE is not set | ||
349 | # CONFIG_VLAN_8021Q is not set | ||
350 | # CONFIG_DECNET is not set | ||
351 | # CONFIG_LLC2 is not set | ||
352 | # CONFIG_IPX is not set | ||
353 | # CONFIG_ATALK is not set | ||
354 | # CONFIG_X25 is not set | ||
355 | # CONFIG_LAPB is not set | ||
356 | # CONFIG_NET_DIVERT is not set | ||
357 | # CONFIG_ECONET is not set | ||
358 | # CONFIG_WAN_ROUTER is not set | ||
359 | |||
360 | # | ||
361 | # QoS and/or fair queueing | ||
362 | # | ||
363 | # CONFIG_NET_SCHED is not set | ||
364 | # CONFIG_NET_CLS_ROUTE is not set | ||
365 | |||
366 | # | ||
367 | # Network testing | ||
368 | # | ||
369 | # CONFIG_NET_PKTGEN is not set | ||
370 | # CONFIG_NETPOLL is not set | ||
371 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
372 | # CONFIG_HAMRADIO is not set | ||
373 | # CONFIG_IRDA is not set | ||
374 | # CONFIG_BT is not set | ||
375 | CONFIG_NETDEVICES=y | ||
376 | # CONFIG_DUMMY is not set | ||
377 | # CONFIG_BONDING is not set | ||
378 | # CONFIG_EQUALIZER is not set | ||
379 | # CONFIG_TUN is not set | ||
380 | |||
381 | # | ||
382 | # Ethernet (10 or 100Mbit) | ||
383 | # | ||
384 | CONFIG_NET_ETHERNET=y | ||
385 | # CONFIG_MII is not set | ||
386 | # CONFIG_SMC91X is not set | ||
387 | |||
388 | # | ||
389 | # Ethernet (1000 Mbit) | ||
390 | # | ||
391 | |||
392 | # | ||
393 | # Ethernet (10000 Mbit) | ||
394 | # | ||
395 | |||
396 | # | ||
397 | # Token Ring devices | ||
398 | # | ||
399 | |||
400 | # | ||
401 | # Wireless LAN (non-hamradio) | ||
402 | # | ||
403 | # CONFIG_NET_RADIO is not set | ||
404 | |||
405 | # | ||
406 | # Wan interfaces | ||
407 | # | ||
408 | # CONFIG_WAN is not set | ||
409 | # CONFIG_PPP is not set | ||
410 | # CONFIG_SLIP is not set | ||
411 | # CONFIG_SHAPER is not set | ||
412 | # CONFIG_NETCONSOLE is not set | ||
413 | |||
414 | # | ||
415 | # ISDN subsystem | ||
416 | # | ||
417 | # CONFIG_ISDN is not set | ||
418 | |||
419 | # | ||
420 | # Input device support | ||
421 | # | ||
422 | CONFIG_INPUT=y | ||
423 | |||
424 | # | ||
425 | # Userland interfaces | ||
426 | # | ||
427 | CONFIG_INPUT_MOUSEDEV=y | ||
428 | CONFIG_INPUT_MOUSEDEV_PSAUX=y | ||
429 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | ||
430 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | ||
431 | # CONFIG_INPUT_JOYDEV is not set | ||
432 | # CONFIG_INPUT_TSDEV is not set | ||
433 | # CONFIG_INPUT_EVDEV is not set | ||
434 | # CONFIG_INPUT_EVBUG is not set | ||
435 | |||
436 | # | ||
437 | # Input Device Drivers | ||
438 | # | ||
439 | CONFIG_INPUT_KEYBOARD=y | ||
440 | CONFIG_KEYBOARD_ATKBD=y | ||
441 | # CONFIG_KEYBOARD_SUNKBD is not set | ||
442 | # CONFIG_KEYBOARD_LKKBD is not set | ||
443 | # CONFIG_KEYBOARD_XTKBD is not set | ||
444 | # CONFIG_KEYBOARD_NEWTON is not set | ||
445 | CONFIG_INPUT_MOUSE=y | ||
446 | CONFIG_MOUSE_PS2=y | ||
447 | # CONFIG_MOUSE_SERIAL is not set | ||
448 | # CONFIG_MOUSE_VSXXXAA is not set | ||
449 | # CONFIG_INPUT_JOYSTICK is not set | ||
450 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
451 | # CONFIG_INPUT_MISC is not set | ||
452 | |||
453 | # | ||
454 | # Hardware I/O ports | ||
455 | # | ||
456 | CONFIG_SERIO=y | ||
457 | CONFIG_SERIO_SERPORT=y | ||
458 | CONFIG_SERIO_LIBPS2=y | ||
459 | # CONFIG_SERIO_RAW is not set | ||
460 | # CONFIG_GAMEPORT is not set | ||
461 | CONFIG_SOUND_GAMEPORT=y | ||
462 | |||
463 | # | ||
464 | # Character devices | ||
465 | # | ||
466 | CONFIG_VT=y | ||
467 | CONFIG_VT_CONSOLE=y | ||
468 | CONFIG_HW_CONSOLE=y | ||
469 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
470 | |||
471 | # | ||
472 | # Serial drivers | ||
473 | # | ||
474 | # CONFIG_SERIAL_8250 is not set | ||
475 | |||
476 | # | ||
477 | # Non-8250 serial port support | ||
478 | # | ||
479 | CONFIG_SERIAL_S3C2410=y | ||
480 | CONFIG_SERIAL_S3C2410_CONSOLE=y | ||
481 | CONFIG_SERIAL_CORE=y | ||
482 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
483 | CONFIG_UNIX98_PTYS=y | ||
484 | CONFIG_LEGACY_PTYS=y | ||
485 | CONFIG_LEGACY_PTY_COUNT=256 | ||
486 | |||
487 | # | ||
488 | # IPMI | ||
489 | # | ||
490 | # CONFIG_IPMI_HANDLER is not set | ||
491 | |||
492 | # | ||
493 | # Watchdog Cards | ||
494 | # | ||
495 | # CONFIG_WATCHDOG is not set | ||
496 | # CONFIG_NVRAM is not set | ||
497 | # CONFIG_RTC is not set | ||
498 | # CONFIG_S3C2410_RTC is not set | ||
499 | # CONFIG_DTLK is not set | ||
500 | # CONFIG_R3964 is not set | ||
501 | |||
502 | # | ||
503 | # Ftape, the floppy tape device driver | ||
504 | # | ||
505 | # CONFIG_DRM is not set | ||
506 | # CONFIG_RAW_DRIVER is not set | ||
507 | |||
508 | # | ||
509 | # TPM devices | ||
510 | # | ||
511 | # CONFIG_TCG_TPM is not set | ||
512 | |||
513 | # | ||
514 | # I2C support | ||
515 | # | ||
516 | # CONFIG_I2C is not set | ||
517 | |||
518 | # | ||
519 | # Misc devices | ||
520 | # | ||
521 | |||
522 | # | ||
523 | # Multimedia devices | ||
524 | # | ||
525 | # CONFIG_VIDEO_DEV is not set | ||
526 | |||
527 | # | ||
528 | # Digital Video Broadcasting Devices | ||
529 | # | ||
530 | # CONFIG_DVB is not set | ||
531 | |||
532 | # | ||
533 | # Graphics support | ||
534 | # | ||
535 | CONFIG_FB=y | ||
536 | CONFIG_FB_CFB_FILLRECT=y | ||
537 | CONFIG_FB_CFB_COPYAREA=y | ||
538 | CONFIG_FB_CFB_IMAGEBLIT=y | ||
539 | CONFIG_FB_SOFT_CURSOR=y | ||
540 | # CONFIG_FB_MODE_HELPERS is not set | ||
541 | # CONFIG_FB_TILEBLITTING is not set | ||
542 | CONFIG_FB_VIRTUAL=y | ||
543 | |||
544 | # | ||
545 | # Console display driver support | ||
546 | # | ||
547 | # CONFIG_VGA_CONSOLE is not set | ||
548 | CONFIG_DUMMY_CONSOLE=y | ||
549 | CONFIG_FRAMEBUFFER_CONSOLE=y | ||
550 | # CONFIG_FONTS is not set | ||
551 | CONFIG_FONT_8x8=y | ||
552 | CONFIG_FONT_8x16=y | ||
553 | |||
554 | # | ||
555 | # Logo configuration | ||
556 | # | ||
557 | # CONFIG_LOGO is not set | ||
558 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
559 | |||
560 | # | ||
561 | # Sound | ||
562 | # | ||
563 | # CONFIG_SOUND is not set | ||
564 | |||
565 | # | ||
566 | # USB support | ||
567 | # | ||
568 | CONFIG_USB_ARCH_HAS_HCD=y | ||
569 | # CONFIG_USB_ARCH_HAS_OHCI is not set | ||
570 | # CONFIG_USB is not set | ||
571 | |||
572 | # | ||
573 | # USB Gadget Support | ||
574 | # | ||
575 | # CONFIG_USB_GADGET is not set | ||
576 | |||
577 | # | ||
578 | # MMC/SD Card support | ||
579 | # | ||
580 | # CONFIG_MMC is not set | ||
581 | |||
582 | # | ||
583 | # File systems | ||
584 | # | ||
585 | CONFIG_EXT2_FS=y | ||
586 | # CONFIG_EXT2_FS_XATTR is not set | ||
587 | # CONFIG_EXT3_FS is not set | ||
588 | # CONFIG_JBD is not set | ||
589 | # CONFIG_REISERFS_FS is not set | ||
590 | # CONFIG_JFS_FS is not set | ||
591 | |||
592 | # | ||
593 | # XFS support | ||
594 | # | ||
595 | # CONFIG_XFS_FS is not set | ||
596 | # CONFIG_MINIX_FS is not set | ||
597 | CONFIG_ROMFS_FS=y | ||
598 | # CONFIG_QUOTA is not set | ||
599 | CONFIG_DNOTIFY=y | ||
600 | # CONFIG_AUTOFS_FS is not set | ||
601 | # CONFIG_AUTOFS4_FS is not set | ||
602 | |||
603 | # | ||
604 | # CD-ROM/DVD Filesystems | ||
605 | # | ||
606 | # CONFIG_ISO9660_FS is not set | ||
607 | # CONFIG_UDF_FS is not set | ||
608 | |||
609 | # | ||
610 | # DOS/FAT/NT Filesystems | ||
611 | # | ||
612 | # CONFIG_MSDOS_FS is not set | ||
613 | # CONFIG_VFAT_FS is not set | ||
614 | # CONFIG_NTFS_FS is not set | ||
615 | |||
616 | # | ||
617 | # Pseudo filesystems | ||
618 | # | ||
619 | CONFIG_PROC_FS=y | ||
620 | CONFIG_SYSFS=y | ||
621 | # CONFIG_DEVFS_FS is not set | ||
622 | # CONFIG_DEVPTS_FS_XATTR is not set | ||
623 | # CONFIG_TMPFS is not set | ||
624 | # CONFIG_HUGETLB_PAGE is not set | ||
625 | CONFIG_RAMFS=y | ||
626 | |||
627 | # | ||
628 | # Miscellaneous filesystems | ||
629 | # | ||
630 | # CONFIG_ADFS_FS is not set | ||
631 | # CONFIG_AFFS_FS is not set | ||
632 | # CONFIG_HFS_FS is not set | ||
633 | # CONFIG_HFSPLUS_FS is not set | ||
634 | # CONFIG_BEFS_FS is not set | ||
635 | # CONFIG_BFS_FS is not set | ||
636 | # CONFIG_EFS_FS is not set | ||
637 | # CONFIG_JFFS_FS is not set | ||
638 | # CONFIG_JFFS2_FS is not set | ||
639 | # CONFIG_CRAMFS is not set | ||
640 | # CONFIG_VXFS_FS is not set | ||
641 | # CONFIG_HPFS_FS is not set | ||
642 | # CONFIG_QNX4FS_FS is not set | ||
643 | # CONFIG_SYSV_FS is not set | ||
644 | # CONFIG_UFS_FS is not set | ||
645 | |||
646 | # | ||
647 | # Network File Systems | ||
648 | # | ||
649 | CONFIG_NFS_FS=y | ||
650 | # CONFIG_NFS_V3 is not set | ||
651 | # CONFIG_NFS_V4 is not set | ||
652 | # CONFIG_NFS_DIRECTIO is not set | ||
653 | # CONFIG_NFSD is not set | ||
654 | CONFIG_ROOT_NFS=y | ||
655 | CONFIG_LOCKD=y | ||
656 | CONFIG_SUNRPC=y | ||
657 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
658 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
659 | # CONFIG_SMB_FS is not set | ||
660 | # CONFIG_CIFS is not set | ||
661 | # CONFIG_NCP_FS is not set | ||
662 | # CONFIG_CODA_FS is not set | ||
663 | # CONFIG_AFS_FS is not set | ||
664 | |||
665 | # | ||
666 | # Partition Types | ||
667 | # | ||
668 | CONFIG_PARTITION_ADVANCED=y | ||
669 | # CONFIG_ACORN_PARTITION is not set | ||
670 | # CONFIG_OSF_PARTITION is not set | ||
671 | # CONFIG_AMIGA_PARTITION is not set | ||
672 | # CONFIG_ATARI_PARTITION is not set | ||
673 | # CONFIG_MAC_PARTITION is not set | ||
674 | # CONFIG_MSDOS_PARTITION is not set | ||
675 | # CONFIG_LDM_PARTITION is not set | ||
676 | # CONFIG_SGI_PARTITION is not set | ||
677 | # CONFIG_ULTRIX_PARTITION is not set | ||
678 | # CONFIG_SUN_PARTITION is not set | ||
679 | # CONFIG_EFI_PARTITION is not set | ||
680 | |||
681 | # | ||
682 | # Native Language Support | ||
683 | # | ||
684 | # CONFIG_NLS is not set | ||
685 | |||
686 | # | ||
687 | # Profiling support | ||
688 | # | ||
689 | # CONFIG_PROFILING is not set | ||
690 | |||
691 | # | ||
692 | # Kernel hacking | ||
693 | # | ||
694 | # CONFIG_PRINTK_TIME is not set | ||
695 | CONFIG_DEBUG_KERNEL=y | ||
696 | # CONFIG_MAGIC_SYSRQ is not set | ||
697 | CONFIG_LOG_BUF_SHIFT=14 | ||
698 | # CONFIG_SCHEDSTATS is not set | ||
699 | # CONFIG_DEBUG_SLAB is not set | ||
700 | # CONFIG_DEBUG_SPINLOCK is not set | ||
701 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
702 | # CONFIG_DEBUG_KOBJECT is not set | ||
703 | CONFIG_DEBUG_BUGVERBOSE=y | ||
704 | # CONFIG_DEBUG_INFO is not set | ||
705 | # CONFIG_DEBUG_FS is not set | ||
706 | CONFIG_FRAME_POINTER=y | ||
707 | CONFIG_DEBUG_USER=y | ||
708 | # CONFIG_DEBUG_WAITQ is not set | ||
709 | # CONFIG_DEBUG_ERRORS is not set | ||
710 | CONFIG_DEBUG_LL=y | ||
711 | # CONFIG_DEBUG_ICEDCC is not set | ||
712 | CONFIG_DEBUG_S3C2410_PORT=y | ||
713 | CONFIG_DEBUG_S3C2410_UART=0 | ||
714 | |||
715 | # | ||
716 | # Security options | ||
717 | # | ||
718 | # CONFIG_KEYS is not set | ||
719 | # CONFIG_SECURITY is not set | ||
720 | |||
721 | # | ||
722 | # Cryptographic options | ||
723 | # | ||
724 | # CONFIG_CRYPTO is not set | ||
725 | |||
726 | # | ||
727 | # Hardware crypto devices | ||
728 | # | ||
729 | |||
730 | # | ||
731 | # Library routines | ||
732 | # | ||
733 | # CONFIG_CRC_CCITT is not set | ||
734 | CONFIG_CRC32=y | ||
735 | CONFIG_LIBCRC32C=y | ||
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index 6bbd93dd186a..29efc9f82057 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c | |||
@@ -357,6 +357,9 @@ static void __init setup_processor(void) | |||
357 | #ifndef CONFIG_VFP | 357 | #ifndef CONFIG_VFP |
358 | elf_hwcap &= ~HWCAP_VFP; | 358 | elf_hwcap &= ~HWCAP_VFP; |
359 | #endif | 359 | #endif |
360 | #ifndef CONFIG_IWMMXT | ||
361 | elf_hwcap &= ~HWCAP_IWMMXT; | ||
362 | #endif | ||
360 | 363 | ||
361 | cpu_proc_init(); | 364 | cpu_proc_init(); |
362 | } | 365 | } |
@@ -854,6 +857,7 @@ static const char *hwcap_str[] = { | |||
854 | "vfp", | 857 | "vfp", |
855 | "edsp", | 858 | "edsp", |
856 | "java", | 859 | "java", |
860 | "iwmmxt", | ||
857 | NULL | 861 | NULL |
858 | }; | 862 | }; |
859 | 863 | ||
diff --git a/arch/arm/kernel/time.c b/arch/arm/kernel/time.c index 0c5a6091a93c..6ff5e3ff6cb5 100644 --- a/arch/arm/kernel/time.c +++ b/arch/arm/kernel/time.c | |||
@@ -220,10 +220,10 @@ EXPORT_SYMBOL(leds_event); | |||
220 | #ifdef CONFIG_LEDS_TIMER | 220 | #ifdef CONFIG_LEDS_TIMER |
221 | static inline void do_leds(void) | 221 | static inline void do_leds(void) |
222 | { | 222 | { |
223 | static unsigned int count = 50; | 223 | static unsigned int count = HZ/2; |
224 | 224 | ||
225 | if (--count == 0) { | 225 | if (--count == 0) { |
226 | count = 50; | 226 | count = HZ/2; |
227 | leds_event(led_timer); | 227 | leds_event(led_timer); |
228 | } | 228 | } |
229 | } | 229 | } |
diff --git a/arch/arm/mach-ixp4xx/common.c b/arch/arm/mach-ixp4xx/common.c index c7513f6eb50c..fbe288a8da65 100644 --- a/arch/arm/mach-ixp4xx/common.c +++ b/arch/arm/mach-ixp4xx/common.c | |||
@@ -86,7 +86,8 @@ enum ixp4xx_irq_type { | |||
86 | IXP4XX_IRQ_LEVEL, IXP4XX_IRQ_EDGE | 86 | IXP4XX_IRQ_LEVEL, IXP4XX_IRQ_EDGE |
87 | }; | 87 | }; |
88 | 88 | ||
89 | static void ixp4xx_config_irq(unsigned irq, enum ixp4xx_irq_type type); | 89 | /* Each bit represents an IRQ: 1: edge-triggered, 0: level triggered */ |
90 | static unsigned long long ixp4xx_irq_edge = 0; | ||
90 | 91 | ||
91 | /* | 92 | /* |
92 | * IRQ -> GPIO mapping table | 93 | * IRQ -> GPIO mapping table |
@@ -135,7 +136,11 @@ static int ixp4xx_set_irq_type(unsigned int irq, unsigned int type) | |||
135 | default: | 136 | default: |
136 | return -EINVAL; | 137 | return -EINVAL; |
137 | } | 138 | } |
138 | ixp4xx_config_irq(irq, irq_type); | 139 | |
140 | if (irq_type == IXP4XX_IRQ_EDGE) | ||
141 | ixp4xx_irq_edge |= (1 << irq); | ||
142 | else | ||
143 | ixp4xx_irq_edge &= ~(1 << irq); | ||
139 | 144 | ||
140 | if (line >= 8) { /* pins 8-15 */ | 145 | if (line >= 8) { /* pins 8-15 */ |
141 | line -= 8; | 146 | line -= 8; |
@@ -167,14 +172,6 @@ static void ixp4xx_irq_mask(unsigned int irq) | |||
167 | *IXP4XX_ICMR &= ~(1 << irq); | 172 | *IXP4XX_ICMR &= ~(1 << irq); |
168 | } | 173 | } |
169 | 174 | ||
170 | static void ixp4xx_irq_unmask(unsigned int irq) | ||
171 | { | ||
172 | if (cpu_is_ixp46x() && irq >= 32) | ||
173 | *IXP4XX_ICMR2 |= (1 << (irq - 32)); | ||
174 | else | ||
175 | *IXP4XX_ICMR |= (1 << irq); | ||
176 | } | ||
177 | |||
178 | static void ixp4xx_irq_ack(unsigned int irq) | 175 | static void ixp4xx_irq_ack(unsigned int irq) |
179 | { | 176 | { |
180 | int line = (irq < 32) ? irq2gpio[irq] : -1; | 177 | int line = (irq < 32) ? irq2gpio[irq] : -1; |
@@ -187,41 +184,25 @@ static void ixp4xx_irq_ack(unsigned int irq) | |||
187 | * Level triggered interrupts on GPIO lines can only be cleared when the | 184 | * Level triggered interrupts on GPIO lines can only be cleared when the |
188 | * interrupt condition disappears. | 185 | * interrupt condition disappears. |
189 | */ | 186 | */ |
190 | static void ixp4xx_irq_level_unmask(unsigned int irq) | 187 | static void ixp4xx_irq_unmask(unsigned int irq) |
191 | { | 188 | { |
192 | ixp4xx_irq_ack(irq); | 189 | if (!(ixp4xx_irq_edge & (1 << irq))) |
193 | ixp4xx_irq_unmask(irq); | 190 | ixp4xx_irq_ack(irq); |
194 | } | ||
195 | 191 | ||
196 | static struct irqchip ixp4xx_irq_level_chip = { | 192 | if (cpu_is_ixp46x() && irq >= 32) |
197 | .ack = ixp4xx_irq_mask, | 193 | *IXP4XX_ICMR2 |= (1 << (irq - 32)); |
198 | .mask = ixp4xx_irq_mask, | 194 | else |
199 | .unmask = ixp4xx_irq_level_unmask, | 195 | *IXP4XX_ICMR |= (1 << irq); |
200 | .set_type = ixp4xx_set_irq_type, | 196 | } |
201 | }; | ||
202 | 197 | ||
203 | static struct irqchip ixp4xx_irq_edge_chip = { | 198 | static struct irqchip ixp4xx_irq_chip = { |
199 | .name = "IXP4xx", | ||
204 | .ack = ixp4xx_irq_ack, | 200 | .ack = ixp4xx_irq_ack, |
205 | .mask = ixp4xx_irq_mask, | 201 | .mask = ixp4xx_irq_mask, |
206 | .unmask = ixp4xx_irq_unmask, | 202 | .unmask = ixp4xx_irq_unmask, |
207 | .set_type = ixp4xx_set_irq_type, | 203 | .set_type = ixp4xx_set_irq_type, |
208 | }; | 204 | }; |
209 | 205 | ||
210 | static void ixp4xx_config_irq(unsigned irq, enum ixp4xx_irq_type type) | ||
211 | { | ||
212 | switch (type) { | ||
213 | case IXP4XX_IRQ_LEVEL: | ||
214 | set_irq_chip(irq, &ixp4xx_irq_level_chip); | ||
215 | set_irq_handler(irq, do_level_IRQ); | ||
216 | break; | ||
217 | case IXP4XX_IRQ_EDGE: | ||
218 | set_irq_chip(irq, &ixp4xx_irq_edge_chip); | ||
219 | set_irq_handler(irq, do_edge_IRQ); | ||
220 | break; | ||
221 | } | ||
222 | set_irq_flags(irq, IRQF_VALID); | ||
223 | } | ||
224 | |||
225 | void __init ixp4xx_init_irq(void) | 206 | void __init ixp4xx_init_irq(void) |
226 | { | 207 | { |
227 | int i = 0; | 208 | int i = 0; |
@@ -241,8 +222,11 @@ void __init ixp4xx_init_irq(void) | |||
241 | } | 222 | } |
242 | 223 | ||
243 | /* Default to all level triggered */ | 224 | /* Default to all level triggered */ |
244 | for(i = 0; i < NR_IRQS; i++) | 225 | for(i = 0; i < NR_IRQS; i++) { |
245 | ixp4xx_config_irq(i, IXP4XX_IRQ_LEVEL); | 226 | set_irq_chip(i, &ixp4xx_irq_chip); |
227 | set_irq_handler(i, do_level_IRQ); | ||
228 | set_irq_flags(i, IRQF_VALID); | ||
229 | } | ||
246 | } | 230 | } |
247 | 231 | ||
248 | 232 | ||
diff --git a/arch/arm/mach-s3c2410/gpio.c b/arch/arm/mach-s3c2410/gpio.c index db6393c99860..ba346546150b 100644 --- a/arch/arm/mach-s3c2410/gpio.c +++ b/arch/arm/mach-s3c2410/gpio.c | |||
@@ -3,7 +3,7 @@ | |||
3 | * Copyright (c) 2004-2005 Simtec Electronics | 3 | * Copyright (c) 2004-2005 Simtec Electronics |
4 | * Ben Dooks <ben@simtec.co.uk> | 4 | * Ben Dooks <ben@simtec.co.uk> |
5 | * | 5 | * |
6 | * S3C2410 GPIO support | 6 | * S3C24XX GPIO 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 as published by | 9 | * it under the terms of the GNU General Public License as published by |
@@ -163,3 +163,22 @@ unsigned int s3c2410_modify_misccr(unsigned int clear, unsigned int change) | |||
163 | } | 163 | } |
164 | 164 | ||
165 | EXPORT_SYMBOL(s3c2410_modify_misccr); | 165 | EXPORT_SYMBOL(s3c2410_modify_misccr); |
166 | |||
167 | int s3c2410_gpio_getirq(unsigned int pin) | ||
168 | { | ||
169 | if (pin < S3C2410_GPF0 || pin > S3C2410_GPG15) | ||
170 | return -1; /* not valid interrupts */ | ||
171 | |||
172 | if (pin < S3C2410_GPG0 && pin > S3C2410_GPF7) | ||
173 | return -1; /* not valid pin */ | ||
174 | |||
175 | if (pin < S3C2410_GPF4) | ||
176 | return (pin - S3C2410_GPF0) + IRQ_EINT0; | ||
177 | |||
178 | if (pin < S3C2410_GPG0) | ||
179 | return (pin - S3C2410_GPF4) + IRQ_EINT4; | ||
180 | |||
181 | return (pin - S3C2410_GPG0) + IRQ_EINT8; | ||
182 | } | ||
183 | |||
184 | EXPORT_SYMBOL(s3c2410_gpio_getirq); | ||
diff --git a/arch/arm/mach-s3c2410/s3c2410-gpio.c b/arch/arm/mach-s3c2410/s3c2410-gpio.c index a2098f692d83..ec3a276cc3cf 100644 --- a/arch/arm/mach-s3c2410/s3c2410-gpio.c +++ b/arch/arm/mach-s3c2410/s3c2410-gpio.c | |||
@@ -69,22 +69,3 @@ int s3c2410_gpio_irqfilter(unsigned int pin, unsigned int on, | |||
69 | } | 69 | } |
70 | 70 | ||
71 | EXPORT_SYMBOL(s3c2410_gpio_irqfilter); | 71 | EXPORT_SYMBOL(s3c2410_gpio_irqfilter); |
72 | |||
73 | int s3c2410_gpio_getirq(unsigned int pin) | ||
74 | { | ||
75 | if (pin < S3C2410_GPF0 || pin > S3C2410_GPG15) | ||
76 | return -1; /* not valid interrupts */ | ||
77 | |||
78 | if (pin < S3C2410_GPG0 && pin > S3C2410_GPF7) | ||
79 | return -1; /* not valid pin */ | ||
80 | |||
81 | if (pin < S3C2410_GPF4) | ||
82 | return (pin - S3C2410_GPF0) + IRQ_EINT0; | ||
83 | |||
84 | if (pin < S3C2410_GPG0) | ||
85 | return (pin - S3C2410_GPF4) + IRQ_EINT4; | ||
86 | |||
87 | return (pin - S3C2410_GPG0) + IRQ_EINT8; | ||
88 | } | ||
89 | |||
90 | EXPORT_SYMBOL(s3c2410_gpio_getirq); | ||
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c index 22217fe2650b..b5814b4b6f35 100644 --- a/arch/arm/mm/init.c +++ b/arch/arm/mm/init.c | |||
@@ -32,40 +32,51 @@ extern unsigned long phys_initrd_start; | |||
32 | extern unsigned long phys_initrd_size; | 32 | extern unsigned long phys_initrd_size; |
33 | 33 | ||
34 | /* | 34 | /* |
35 | * The sole use of this is to pass memory configuration | 35 | * This is used to pass memory configuration data from paging_init |
36 | * data from paging_init to mem_init. | 36 | * to mem_init, and by show_mem() to skip holes in the memory map. |
37 | */ | 37 | */ |
38 | static struct meminfo meminfo __initdata = { 0, }; | 38 | static struct meminfo meminfo = { 0, }; |
39 | |||
40 | #define for_each_nodebank(iter,mi,no) \ | ||
41 | for (iter = 0; iter < mi->nr_banks; iter++) \ | ||
42 | if (mi->bank[iter].node == no) | ||
39 | 43 | ||
40 | void show_mem(void) | 44 | void show_mem(void) |
41 | { | 45 | { |
42 | int free = 0, total = 0, reserved = 0; | 46 | int free = 0, total = 0, reserved = 0; |
43 | int shared = 0, cached = 0, slab = 0, node; | 47 | int shared = 0, cached = 0, slab = 0, node, i; |
48 | struct meminfo * mi = &meminfo; | ||
44 | 49 | ||
45 | printk("Mem-info:\n"); | 50 | printk("Mem-info:\n"); |
46 | show_free_areas(); | 51 | show_free_areas(); |
47 | printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10)); | 52 | printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10)); |
48 | 53 | ||
49 | for_each_online_node(node) { | 54 | for_each_online_node(node) { |
50 | struct page *page, *end; | 55 | for_each_nodebank (i,mi,node) { |
51 | 56 | unsigned int pfn1, pfn2; | |
52 | page = NODE_MEM_MAP(node); | 57 | struct page *page, *end; |
53 | end = page + NODE_DATA(node)->node_spanned_pages; | 58 | |
54 | 59 | pfn1 = mi->bank[i].start >> PAGE_SHIFT; | |
55 | do { | 60 | pfn2 = (mi->bank[i].size + mi->bank[i].start) >> PAGE_SHIFT; |
56 | total++; | 61 | |
57 | if (PageReserved(page)) | 62 | page = NODE_MEM_MAP(node) + pfn1; |
58 | reserved++; | 63 | end = NODE_MEM_MAP(node) + pfn2; |
59 | else if (PageSwapCache(page)) | 64 | |
60 | cached++; | 65 | do { |
61 | else if (PageSlab(page)) | 66 | total++; |
62 | slab++; | 67 | if (PageReserved(page)) |
63 | else if (!page_count(page)) | 68 | reserved++; |
64 | free++; | 69 | else if (PageSwapCache(page)) |
65 | else | 70 | cached++; |
66 | shared += page_count(page) - 1; | 71 | else if (PageSlab(page)) |
67 | page++; | 72 | slab++; |
68 | } while (page < end); | 73 | else if (!page_count(page)) |
74 | free++; | ||
75 | else | ||
76 | shared += page_count(page) - 1; | ||
77 | page++; | ||
78 | } while (page < end); | ||
79 | } | ||
69 | } | 80 | } |
70 | 81 | ||
71 | printk("%d pages of RAM\n", total); | 82 | printk("%d pages of RAM\n", total); |
@@ -76,10 +87,6 @@ void show_mem(void) | |||
76 | printk("%d pages swap cached\n", cached); | 87 | printk("%d pages swap cached\n", cached); |
77 | } | 88 | } |
78 | 89 | ||
79 | #define for_each_nodebank(iter,mi,no) \ | ||
80 | for (iter = 0; iter < mi->nr_banks; iter++) \ | ||
81 | if (mi->bank[iter].node == no) | ||
82 | |||
83 | /* | 90 | /* |
84 | * FIXME: We really want to avoid allocating the bootmap bitmap | 91 | * FIXME: We really want to avoid allocating the bootmap bitmap |
85 | * over the top of the initrd. Hopefully, this is located towards | 92 | * over the top of the initrd. Hopefully, this is located towards |
diff --git a/arch/arm/mm/proc-xscale.S b/arch/arm/mm/proc-xscale.S index e8b377d637f6..2749c1f88d7d 100644 --- a/arch/arm/mm/proc-xscale.S +++ b/arch/arm/mm/proc-xscale.S | |||
@@ -909,7 +909,7 @@ __pxa270_proc_info: | |||
909 | b __xscale_setup | 909 | b __xscale_setup |
910 | .long cpu_arch_name | 910 | .long cpu_arch_name |
911 | .long cpu_elf_name | 911 | .long cpu_elf_name |
912 | .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP | 912 | .long HWCAP_SWP|HWCAP_HALF|HWCAP_THUMB|HWCAP_FAST_MULT|HWCAP_EDSP|HWCAP_IWMMXT |
913 | .long cpu_pxa270_name | 913 | .long cpu_pxa270_name |
914 | .long xscale_processor_functions | 914 | .long xscale_processor_functions |
915 | .long v4wbi_tlb_fns | 915 | .long v4wbi_tlb_fns |
diff --git a/arch/i386/kernel/io_apic.c b/arch/i386/kernel/io_apic.c index 507983c513c3..ad84bc2802a6 100644 --- a/arch/i386/kernel/io_apic.c +++ b/arch/i386/kernel/io_apic.c | |||
@@ -2624,18 +2624,16 @@ void arch_teardown_msi_irq(unsigned int irq) | |||
2624 | 2624 | ||
2625 | static void target_ht_irq(unsigned int irq, unsigned int dest) | 2625 | static void target_ht_irq(unsigned int irq, unsigned int dest) |
2626 | { | 2626 | { |
2627 | u32 low, high; | 2627 | struct ht_irq_msg msg; |
2628 | low = read_ht_irq_low(irq); | 2628 | fetch_ht_irq_msg(irq, &msg); |
2629 | high = read_ht_irq_high(irq); | ||
2630 | 2629 | ||
2631 | low &= ~(HT_IRQ_LOW_DEST_ID_MASK); | 2630 | msg.address_lo &= ~(HT_IRQ_LOW_DEST_ID_MASK); |
2632 | high &= ~(HT_IRQ_HIGH_DEST_ID_MASK); | 2631 | msg.address_hi &= ~(HT_IRQ_HIGH_DEST_ID_MASK); |
2633 | 2632 | ||
2634 | low |= HT_IRQ_LOW_DEST_ID(dest); | 2633 | msg.address_lo |= HT_IRQ_LOW_DEST_ID(dest); |
2635 | high |= HT_IRQ_HIGH_DEST_ID(dest); | 2634 | msg.address_hi |= HT_IRQ_HIGH_DEST_ID(dest); |
2636 | 2635 | ||
2637 | write_ht_irq_low(irq, low); | 2636 | write_ht_irq_msg(irq, &msg); |
2638 | write_ht_irq_high(irq, high); | ||
2639 | } | 2637 | } |
2640 | 2638 | ||
2641 | static void set_ht_irq_affinity(unsigned int irq, cpumask_t mask) | 2639 | static void set_ht_irq_affinity(unsigned int irq, cpumask_t mask) |
@@ -2673,7 +2671,7 @@ int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev) | |||
2673 | 2671 | ||
2674 | vector = assign_irq_vector(irq); | 2672 | vector = assign_irq_vector(irq); |
2675 | if (vector >= 0) { | 2673 | if (vector >= 0) { |
2676 | u32 low, high; | 2674 | struct ht_irq_msg msg; |
2677 | unsigned dest; | 2675 | unsigned dest; |
2678 | cpumask_t tmp; | 2676 | cpumask_t tmp; |
2679 | 2677 | ||
@@ -2681,9 +2679,10 @@ int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev) | |||
2681 | cpu_set(vector >> 8, tmp); | 2679 | cpu_set(vector >> 8, tmp); |
2682 | dest = cpu_mask_to_apicid(tmp); | 2680 | dest = cpu_mask_to_apicid(tmp); |
2683 | 2681 | ||
2684 | high = HT_IRQ_HIGH_DEST_ID(dest); | 2682 | msg.address_hi = HT_IRQ_HIGH_DEST_ID(dest); |
2685 | 2683 | ||
2686 | low = HT_IRQ_LOW_BASE | | 2684 | msg.address_lo = |
2685 | HT_IRQ_LOW_BASE | | ||
2687 | HT_IRQ_LOW_DEST_ID(dest) | | 2686 | HT_IRQ_LOW_DEST_ID(dest) | |
2688 | HT_IRQ_LOW_VECTOR(vector) | | 2687 | HT_IRQ_LOW_VECTOR(vector) | |
2689 | ((INT_DEST_MODE == 0) ? | 2688 | ((INT_DEST_MODE == 0) ? |
@@ -2695,8 +2694,7 @@ int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev) | |||
2695 | HT_IRQ_LOW_MT_ARBITRATED) | | 2694 | HT_IRQ_LOW_MT_ARBITRATED) | |
2696 | HT_IRQ_LOW_IRQ_MASKED; | 2695 | HT_IRQ_LOW_IRQ_MASKED; |
2697 | 2696 | ||
2698 | write_ht_irq_low(irq, low); | 2697 | write_ht_irq_msg(irq, &msg); |
2699 | write_ht_irq_high(irq, high); | ||
2700 | 2698 | ||
2701 | set_irq_chip_and_handler_name(irq, &ht_irq_chip, | 2699 | set_irq_chip_and_handler_name(irq, &ht_irq_chip, |
2702 | handle_edge_irq, "edge"); | 2700 | handle_edge_irq, "edge"); |
diff --git a/arch/i386/kernel/kprobes.c b/arch/i386/kernel/kprobes.c index d98e44b16fe2..fc79e1e859c4 100644 --- a/arch/i386/kernel/kprobes.c +++ b/arch/i386/kernel/kprobes.c | |||
@@ -361,8 +361,11 @@ no_kprobe: | |||
361 | asm volatile ( ".global kretprobe_trampoline\n" | 361 | asm volatile ( ".global kretprobe_trampoline\n" |
362 | "kretprobe_trampoline: \n" | 362 | "kretprobe_trampoline: \n" |
363 | " pushf\n" | 363 | " pushf\n" |
364 | /* skip cs, eip, orig_eax, es, ds */ | 364 | /* skip cs, eip, orig_eax */ |
365 | " subl $20, %esp\n" | 365 | " subl $12, %esp\n" |
366 | " pushl %gs\n" | ||
367 | " pushl %ds\n" | ||
368 | " pushl %es\n" | ||
366 | " pushl %eax\n" | 369 | " pushl %eax\n" |
367 | " pushl %ebp\n" | 370 | " pushl %ebp\n" |
368 | " pushl %edi\n" | 371 | " pushl %edi\n" |
@@ -373,10 +376,10 @@ no_kprobe: | |||
373 | " movl %esp, %eax\n" | 376 | " movl %esp, %eax\n" |
374 | " call trampoline_handler\n" | 377 | " call trampoline_handler\n" |
375 | /* move eflags to cs */ | 378 | /* move eflags to cs */ |
376 | " movl 48(%esp), %edx\n" | 379 | " movl 52(%esp), %edx\n" |
377 | " movl %edx, 44(%esp)\n" | 380 | " movl %edx, 48(%esp)\n" |
378 | /* save true return address on eflags */ | 381 | /* save true return address on eflags */ |
379 | " movl %eax, 48(%esp)\n" | 382 | " movl %eax, 52(%esp)\n" |
380 | " popl %ebx\n" | 383 | " popl %ebx\n" |
381 | " popl %ecx\n" | 384 | " popl %ecx\n" |
382 | " popl %edx\n" | 385 | " popl %edx\n" |
@@ -384,8 +387,8 @@ no_kprobe: | |||
384 | " popl %edi\n" | 387 | " popl %edi\n" |
385 | " popl %ebp\n" | 388 | " popl %ebp\n" |
386 | " popl %eax\n" | 389 | " popl %eax\n" |
387 | /* skip eip, orig_eax, es, ds */ | 390 | /* skip eip, orig_eax, es, ds, gs */ |
388 | " addl $16, %esp\n" | 391 | " addl $20, %esp\n" |
389 | " popf\n" | 392 | " popf\n" |
390 | " ret\n"); | 393 | " ret\n"); |
391 | } | 394 | } |
@@ -404,6 +407,10 @@ fastcall void *__kprobes trampoline_handler(struct pt_regs *regs) | |||
404 | INIT_HLIST_HEAD(&empty_rp); | 407 | INIT_HLIST_HEAD(&empty_rp); |
405 | spin_lock_irqsave(&kretprobe_lock, flags); | 408 | spin_lock_irqsave(&kretprobe_lock, flags); |
406 | head = kretprobe_inst_table_head(current); | 409 | head = kretprobe_inst_table_head(current); |
410 | /* fixup registers */ | ||
411 | regs->xcs = __KERNEL_CS; | ||
412 | regs->eip = trampoline_address; | ||
413 | regs->orig_eax = 0xffffffff; | ||
407 | 414 | ||
408 | /* | 415 | /* |
409 | * It is possible to have multiple instances associated with a given | 416 | * It is possible to have multiple instances associated with a given |
@@ -425,6 +432,7 @@ fastcall void *__kprobes trampoline_handler(struct pt_regs *regs) | |||
425 | 432 | ||
426 | if (ri->rp && ri->rp->handler){ | 433 | if (ri->rp && ri->rp->handler){ |
427 | __get_cpu_var(current_kprobe) = &ri->rp->kp; | 434 | __get_cpu_var(current_kprobe) = &ri->rp->kp; |
435 | get_kprobe_ctlblk()->kprobe_status = KPROBE_HIT_ACTIVE; | ||
428 | ri->rp->handler(ri, regs); | 436 | ri->rp->handler(ri, regs); |
429 | __get_cpu_var(current_kprobe) = NULL; | 437 | __get_cpu_var(current_kprobe) = NULL; |
430 | } | 438 | } |
diff --git a/arch/i386/kernel/microcode.c b/arch/i386/kernel/microcode.c index c4d0291b519f..23f5984d0654 100644 --- a/arch/i386/kernel/microcode.c +++ b/arch/i386/kernel/microcode.c | |||
@@ -577,7 +577,7 @@ static void microcode_init_cpu(int cpu) | |||
577 | set_cpus_allowed(current, cpumask_of_cpu(cpu)); | 577 | set_cpus_allowed(current, cpumask_of_cpu(cpu)); |
578 | mutex_lock(µcode_mutex); | 578 | mutex_lock(µcode_mutex); |
579 | collect_cpu_info(cpu); | 579 | collect_cpu_info(cpu); |
580 | if (uci->valid) | 580 | if (uci->valid && system_state == SYSTEM_RUNNING) |
581 | cpu_request_microcode(cpu); | 581 | cpu_request_microcode(cpu); |
582 | mutex_unlock(µcode_mutex); | 582 | mutex_unlock(µcode_mutex); |
583 | set_cpus_allowed(current, old); | 583 | set_cpus_allowed(current, old); |
diff --git a/arch/i386/kernel/vmlinux.lds.S b/arch/i386/kernel/vmlinux.lds.S index adc1f232afee..c6f84a0322ba 100644 --- a/arch/i386/kernel/vmlinux.lds.S +++ b/arch/i386/kernel/vmlinux.lds.S | |||
@@ -51,6 +51,7 @@ SECTIONS | |||
51 | __tracedata_end = .; | 51 | __tracedata_end = .; |
52 | 52 | ||
53 | /* writeable */ | 53 | /* writeable */ |
54 | . = ALIGN(4096); | ||
54 | .data : AT(ADDR(.data) - LOAD_OFFSET) { /* Data */ | 55 | .data : AT(ADDR(.data) - LOAD_OFFSET) { /* Data */ |
55 | *(.data) | 56 | *(.data) |
56 | CONSTRUCTORS | 57 | CONSTRUCTORS |
diff --git a/arch/i386/pci/mmconfig.c b/arch/i386/pci/mmconfig.c index d0c3da3aa2aa..c6b6d9bbc453 100644 --- a/arch/i386/pci/mmconfig.c +++ b/arch/i386/pci/mmconfig.c | |||
@@ -154,38 +154,6 @@ static struct pci_raw_ops pci_mmcfg = { | |||
154 | .write = pci_mmcfg_write, | 154 | .write = pci_mmcfg_write, |
155 | }; | 155 | }; |
156 | 156 | ||
157 | |||
158 | static __init void pci_mmcfg_insert_resources(void) | ||
159 | { | ||
160 | #define PCI_MMCFG_RESOURCE_NAME_LEN 19 | ||
161 | int i; | ||
162 | struct resource *res; | ||
163 | char *names; | ||
164 | unsigned num_buses; | ||
165 | |||
166 | res = kcalloc(PCI_MMCFG_RESOURCE_NAME_LEN + sizeof(*res), | ||
167 | pci_mmcfg_config_num, GFP_KERNEL); | ||
168 | |||
169 | if (!res) { | ||
170 | printk(KERN_ERR "PCI: Unable to allocate MMCONFIG resources\n"); | ||
171 | return; | ||
172 | } | ||
173 | |||
174 | names = (void *)&res[pci_mmcfg_config_num]; | ||
175 | for (i = 0; i < pci_mmcfg_config_num; i++, res++) { | ||
176 | num_buses = pci_mmcfg_config[i].end_bus_number - | ||
177 | pci_mmcfg_config[i].start_bus_number + 1; | ||
178 | res->name = names; | ||
179 | snprintf(names, PCI_MMCFG_RESOURCE_NAME_LEN, "PCI MMCONFIG %u", | ||
180 | pci_mmcfg_config[i].pci_segment_group_number); | ||
181 | res->start = pci_mmcfg_config[i].base_address; | ||
182 | res->end = res->start + (num_buses << 20) - 1; | ||
183 | res->flags = IORESOURCE_MEM | IORESOURCE_BUSY; | ||
184 | insert_resource(&iomem_resource, res); | ||
185 | names += PCI_MMCFG_RESOURCE_NAME_LEN; | ||
186 | } | ||
187 | } | ||
188 | |||
189 | /* K8 systems have some devices (typically in the builtin northbridge) | 157 | /* K8 systems have some devices (typically in the builtin northbridge) |
190 | that are only accessible using type1 | 158 | that are only accessible using type1 |
191 | Normally this can be expressed in the MCFG by not listing them | 159 | Normally this can be expressed in the MCFG by not listing them |
@@ -222,8 +190,6 @@ static __init void unreachable_devices(void) | |||
222 | } | 190 | } |
223 | } | 191 | } |
224 | 192 | ||
225 | |||
226 | |||
227 | void __init pci_mmcfg_init(int type) | 193 | void __init pci_mmcfg_init(int type) |
228 | { | 194 | { |
229 | if ((pci_probe & PCI_PROBE_MMCONF) == 0) | 195 | if ((pci_probe & PCI_PROBE_MMCONF) == 0) |
@@ -251,5 +217,4 @@ void __init pci_mmcfg_init(int type) | |||
251 | pci_probe = (pci_probe & ~PCI_PROBE_MASK) | PCI_PROBE_MMCONF; | 217 | pci_probe = (pci_probe & ~PCI_PROBE_MASK) | PCI_PROBE_MMCONF; |
252 | 218 | ||
253 | unreachable_devices(); | 219 | unreachable_devices(); |
254 | pci_mmcfg_insert_resources(); | ||
255 | } | 220 | } |
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index 70f7eb9fed35..683b12c6f76c 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig | |||
@@ -341,6 +341,7 @@ config NUMA | |||
341 | bool "NUMA support" | 341 | bool "NUMA support" |
342 | depends on !IA64_HP_SIM && !FLATMEM | 342 | depends on !IA64_HP_SIM && !FLATMEM |
343 | default y if IA64_SGI_SN2 | 343 | default y if IA64_SGI_SN2 |
344 | select ACPI_NUMA if ACPI | ||
344 | help | 345 | help |
345 | Say Y to compile the kernel to support NUMA (Non-Uniform Memory | 346 | Say Y to compile the kernel to support NUMA (Non-Uniform Memory |
346 | Access). This option is for configuring high-end multiprocessor | 347 | Access). This option is for configuring high-end multiprocessor |
@@ -483,6 +484,15 @@ source "net/Kconfig" | |||
483 | 484 | ||
484 | source "drivers/Kconfig" | 485 | source "drivers/Kconfig" |
485 | 486 | ||
487 | config MSPEC | ||
488 | tristate "Memory special operations driver" | ||
489 | depends on IA64 | ||
490 | select IA64_UNCACHED_ALLOCATOR | ||
491 | help | ||
492 | If you have an ia64 and you want to enable memory special | ||
493 | operations support (formerly known as fetchop), say Y here, | ||
494 | otherwise say N. | ||
495 | |||
486 | source "fs/Kconfig" | 496 | source "fs/Kconfig" |
487 | 497 | ||
488 | source "lib/Kconfig" | 498 | source "lib/Kconfig" |
diff --git a/arch/x86_64/kernel/io_apic.c b/arch/x86_64/kernel/io_apic.c index fe429e5d6b29..41bfc49301ad 100644 --- a/arch/x86_64/kernel/io_apic.c +++ b/arch/x86_64/kernel/io_apic.c | |||
@@ -88,6 +88,52 @@ static struct irq_pin_list { | |||
88 | short apic, pin, next; | 88 | short apic, pin, next; |
89 | } irq_2_pin[PIN_MAP_SIZE]; | 89 | } irq_2_pin[PIN_MAP_SIZE]; |
90 | 90 | ||
91 | struct io_apic { | ||
92 | unsigned int index; | ||
93 | unsigned int unused[3]; | ||
94 | unsigned int data; | ||
95 | }; | ||
96 | |||
97 | static __attribute_const__ struct io_apic __iomem *io_apic_base(int idx) | ||
98 | { | ||
99 | return (void __iomem *) __fix_to_virt(FIX_IO_APIC_BASE_0 + idx) | ||
100 | + (mp_ioapics[idx].mpc_apicaddr & ~PAGE_MASK); | ||
101 | } | ||
102 | |||
103 | static inline unsigned int io_apic_read(unsigned int apic, unsigned int reg) | ||
104 | { | ||
105 | struct io_apic __iomem *io_apic = io_apic_base(apic); | ||
106 | writel(reg, &io_apic->index); | ||
107 | return readl(&io_apic->data); | ||
108 | } | ||
109 | |||
110 | static inline void io_apic_write(unsigned int apic, unsigned int reg, unsigned int value) | ||
111 | { | ||
112 | struct io_apic __iomem *io_apic = io_apic_base(apic); | ||
113 | writel(reg, &io_apic->index); | ||
114 | writel(value, &io_apic->data); | ||
115 | } | ||
116 | |||
117 | /* | ||
118 | * Re-write a value: to be used for read-modify-write | ||
119 | * cycles where the read already set up the index register. | ||
120 | */ | ||
121 | static inline void io_apic_modify(unsigned int apic, unsigned int value) | ||
122 | { | ||
123 | struct io_apic __iomem *io_apic = io_apic_base(apic); | ||
124 | writel(value, &io_apic->data); | ||
125 | } | ||
126 | |||
127 | /* | ||
128 | * Synchronize the IO-APIC and the CPU by doing | ||
129 | * a dummy read from the IO-APIC | ||
130 | */ | ||
131 | static inline void io_apic_sync(unsigned int apic) | ||
132 | { | ||
133 | struct io_apic __iomem *io_apic = io_apic_base(apic); | ||
134 | readl(&io_apic->data); | ||
135 | } | ||
136 | |||
91 | #define __DO_ACTION(R, ACTION, FINAL) \ | 137 | #define __DO_ACTION(R, ACTION, FINAL) \ |
92 | \ | 138 | \ |
93 | { \ | 139 | { \ |
@@ -126,12 +172,34 @@ static struct IO_APIC_route_entry ioapic_read_entry(int apic, int pin) | |||
126 | return eu.entry; | 172 | return eu.entry; |
127 | } | 173 | } |
128 | 174 | ||
175 | /* | ||
176 | * When we write a new IO APIC routing entry, we need to write the high | ||
177 | * word first! If the mask bit in the low word is clear, we will enable | ||
178 | * the interrupt, and we need to make sure the entry is fully populated | ||
179 | * before that happens. | ||
180 | */ | ||
129 | static void ioapic_write_entry(int apic, int pin, struct IO_APIC_route_entry e) | 181 | static void ioapic_write_entry(int apic, int pin, struct IO_APIC_route_entry e) |
130 | { | 182 | { |
131 | unsigned long flags; | 183 | unsigned long flags; |
132 | union entry_union eu; | 184 | union entry_union eu; |
133 | eu.entry = e; | 185 | eu.entry = e; |
134 | spin_lock_irqsave(&ioapic_lock, flags); | 186 | spin_lock_irqsave(&ioapic_lock, flags); |
187 | io_apic_write(apic, 0x11 + 2*pin, eu.w2); | ||
188 | io_apic_write(apic, 0x10 + 2*pin, eu.w1); | ||
189 | spin_unlock_irqrestore(&ioapic_lock, flags); | ||
190 | } | ||
191 | |||
192 | /* | ||
193 | * When we mask an IO APIC routing entry, we need to write the low | ||
194 | * word first, in order to set the mask bit before we change the | ||
195 | * high bits! | ||
196 | */ | ||
197 | static void ioapic_mask_entry(int apic, int pin) | ||
198 | { | ||
199 | unsigned long flags; | ||
200 | union entry_union eu = { .entry.mask = 1 }; | ||
201 | |||
202 | spin_lock_irqsave(&ioapic_lock, flags); | ||
135 | io_apic_write(apic, 0x10 + 2*pin, eu.w1); | 203 | io_apic_write(apic, 0x10 + 2*pin, eu.w1); |
136 | io_apic_write(apic, 0x11 + 2*pin, eu.w2); | 204 | io_apic_write(apic, 0x11 + 2*pin, eu.w2); |
137 | spin_unlock_irqrestore(&ioapic_lock, flags); | 205 | spin_unlock_irqrestore(&ioapic_lock, flags); |
@@ -256,9 +324,7 @@ static void clear_IO_APIC_pin(unsigned int apic, unsigned int pin) | |||
256 | /* | 324 | /* |
257 | * Disable it in the IO-APIC irq-routing table: | 325 | * Disable it in the IO-APIC irq-routing table: |
258 | */ | 326 | */ |
259 | memset(&entry, 0, sizeof(entry)); | 327 | ioapic_mask_entry(apic, pin); |
260 | entry.mask = 1; | ||
261 | ioapic_write_entry(apic, pin, entry); | ||
262 | } | 328 | } |
263 | 329 | ||
264 | static void clear_IO_APIC (void) | 330 | static void clear_IO_APIC (void) |
@@ -1889,18 +1955,16 @@ void arch_teardown_msi_irq(unsigned int irq) | |||
1889 | 1955 | ||
1890 | static void target_ht_irq(unsigned int irq, unsigned int dest, u8 vector) | 1956 | static void target_ht_irq(unsigned int irq, unsigned int dest, u8 vector) |
1891 | { | 1957 | { |
1892 | u32 low, high; | 1958 | struct ht_irq_msg msg; |
1893 | low = read_ht_irq_low(irq); | 1959 | fetch_ht_irq_msg(irq, &msg); |
1894 | high = read_ht_irq_high(irq); | ||
1895 | 1960 | ||
1896 | low &= ~(HT_IRQ_LOW_VECTOR_MASK | HT_IRQ_LOW_DEST_ID_MASK); | 1961 | msg.address_lo &= ~(HT_IRQ_LOW_VECTOR_MASK | HT_IRQ_LOW_DEST_ID_MASK); |
1897 | high &= ~(HT_IRQ_HIGH_DEST_ID_MASK); | 1962 | msg.address_hi &= ~(HT_IRQ_HIGH_DEST_ID_MASK); |
1898 | 1963 | ||
1899 | low |= HT_IRQ_LOW_VECTOR(vector) | HT_IRQ_LOW_DEST_ID(dest); | 1964 | msg.address_lo |= HT_IRQ_LOW_VECTOR(vector) | HT_IRQ_LOW_DEST_ID(dest); |
1900 | high |= HT_IRQ_HIGH_DEST_ID(dest); | 1965 | msg.address_hi |= HT_IRQ_HIGH_DEST_ID(dest); |
1901 | 1966 | ||
1902 | write_ht_irq_low(irq, low); | 1967 | write_ht_irq_msg(irq, &msg); |
1903 | write_ht_irq_high(irq, high); | ||
1904 | } | 1968 | } |
1905 | 1969 | ||
1906 | static void set_ht_irq_affinity(unsigned int irq, cpumask_t mask) | 1970 | static void set_ht_irq_affinity(unsigned int irq, cpumask_t mask) |
@@ -1921,7 +1985,7 @@ static void set_ht_irq_affinity(unsigned int irq, cpumask_t mask) | |||
1921 | 1985 | ||
1922 | dest = cpu_mask_to_apicid(tmp); | 1986 | dest = cpu_mask_to_apicid(tmp); |
1923 | 1987 | ||
1924 | target_ht_irq(irq, dest, vector & 0xff); | 1988 | target_ht_irq(irq, dest, vector); |
1925 | set_native_irq_info(irq, mask); | 1989 | set_native_irq_info(irq, mask); |
1926 | } | 1990 | } |
1927 | #endif | 1991 | #endif |
@@ -1944,14 +2008,15 @@ int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev) | |||
1944 | 2008 | ||
1945 | vector = assign_irq_vector(irq, TARGET_CPUS, &tmp); | 2009 | vector = assign_irq_vector(irq, TARGET_CPUS, &tmp); |
1946 | if (vector >= 0) { | 2010 | if (vector >= 0) { |
1947 | u32 low, high; | 2011 | struct ht_irq_msg msg; |
1948 | unsigned dest; | 2012 | unsigned dest; |
1949 | 2013 | ||
1950 | dest = cpu_mask_to_apicid(tmp); | 2014 | dest = cpu_mask_to_apicid(tmp); |
1951 | 2015 | ||
1952 | high = HT_IRQ_HIGH_DEST_ID(dest); | 2016 | msg.address_hi = HT_IRQ_HIGH_DEST_ID(dest); |
1953 | 2017 | ||
1954 | low = HT_IRQ_LOW_BASE | | 2018 | msg.address_lo = |
2019 | HT_IRQ_LOW_BASE | | ||
1955 | HT_IRQ_LOW_DEST_ID(dest) | | 2020 | HT_IRQ_LOW_DEST_ID(dest) | |
1956 | HT_IRQ_LOW_VECTOR(vector) | | 2021 | HT_IRQ_LOW_VECTOR(vector) | |
1957 | ((INT_DEST_MODE == 0) ? | 2022 | ((INT_DEST_MODE == 0) ? |
@@ -1960,10 +2025,10 @@ int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev) | |||
1960 | HT_IRQ_LOW_RQEOI_EDGE | | 2025 | HT_IRQ_LOW_RQEOI_EDGE | |
1961 | ((INT_DELIVERY_MODE != dest_LowestPrio) ? | 2026 | ((INT_DELIVERY_MODE != dest_LowestPrio) ? |
1962 | HT_IRQ_LOW_MT_FIXED : | 2027 | HT_IRQ_LOW_MT_FIXED : |
1963 | HT_IRQ_LOW_MT_ARBITRATED); | 2028 | HT_IRQ_LOW_MT_ARBITRATED) | |
2029 | HT_IRQ_LOW_IRQ_MASKED; | ||
1964 | 2030 | ||
1965 | write_ht_irq_low(irq, low); | 2031 | write_ht_irq_msg(irq, &msg); |
1966 | write_ht_irq_high(irq, high); | ||
1967 | 2032 | ||
1968 | set_irq_chip_and_handler_name(irq, &ht_irq_chip, | 2033 | set_irq_chip_and_handler_name(irq, &ht_irq_chip, |
1969 | handle_edge_irq, "edge"); | 2034 | handle_edge_irq, "edge"); |
diff --git a/drivers/ata/sata_via.c b/drivers/ata/sata_via.c index f4455a1efe2d..1c7f19aecc25 100644 --- a/drivers/ata/sata_via.c +++ b/drivers/ata/sata_via.c | |||
@@ -230,7 +230,7 @@ static int vt6420_prereset(struct ata_port *ap) | |||
230 | int online; | 230 | int online; |
231 | 231 | ||
232 | /* don't do any SCR stuff if we're not loading */ | 232 | /* don't do any SCR stuff if we're not loading */ |
233 | if (!ATA_PFLAG_LOADING) | 233 | if (!(ap->pflags & ATA_PFLAG_LOADING)) |
234 | goto skip_scr; | 234 | goto skip_scr; |
235 | 235 | ||
236 | /* Resume phy. This is the old resume sequence from | 236 | /* Resume phy. This is the old resume sequence from |
diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig index 39a9f8cc6412..2af12fc45115 100644 --- a/drivers/char/Kconfig +++ b/drivers/char/Kconfig | |||
@@ -409,14 +409,6 @@ config SGI_MBCS | |||
409 | If you have an SGI Altix with an attached SABrick | 409 | If you have an SGI Altix with an attached SABrick |
410 | say Y or M here, otherwise say N. | 410 | say Y or M here, otherwise say N. |
411 | 411 | ||
412 | config MSPEC | ||
413 | tristate "Memory special operations driver" | ||
414 | depends on IA64 | ||
415 | help | ||
416 | If you have an ia64 and you want to enable memory special | ||
417 | operations support (formerly known as fetchop), say Y here, | ||
418 | otherwise say N. | ||
419 | |||
420 | source "drivers/serial/Kconfig" | 412 | source "drivers/serial/Kconfig" |
421 | 413 | ||
422 | config UNIX98_PTYS | 414 | config UNIX98_PTYS |
diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c index 34a4fd13fa81..a41b8df24073 100644 --- a/drivers/char/ipmi/ipmi_msghandler.c +++ b/drivers/char/ipmi/ipmi_msghandler.c | |||
@@ -376,13 +376,23 @@ static void free_recv_msg_list(struct list_head *q) | |||
376 | } | 376 | } |
377 | } | 377 | } |
378 | 378 | ||
379 | static void free_smi_msg_list(struct list_head *q) | ||
380 | { | ||
381 | struct ipmi_smi_msg *msg, *msg2; | ||
382 | |||
383 | list_for_each_entry_safe(msg, msg2, q, link) { | ||
384 | list_del(&msg->link); | ||
385 | ipmi_free_smi_msg(msg); | ||
386 | } | ||
387 | } | ||
388 | |||
379 | static void clean_up_interface_data(ipmi_smi_t intf) | 389 | static void clean_up_interface_data(ipmi_smi_t intf) |
380 | { | 390 | { |
381 | int i; | 391 | int i; |
382 | struct cmd_rcvr *rcvr, *rcvr2; | 392 | struct cmd_rcvr *rcvr, *rcvr2; |
383 | struct list_head list; | 393 | struct list_head list; |
384 | 394 | ||
385 | free_recv_msg_list(&intf->waiting_msgs); | 395 | free_smi_msg_list(&intf->waiting_msgs); |
386 | free_recv_msg_list(&intf->waiting_events); | 396 | free_recv_msg_list(&intf->waiting_events); |
387 | 397 | ||
388 | /* Wholesale remove all the entries from the list in the | 398 | /* Wholesale remove all the entries from the list in the |
@@ -1844,7 +1854,7 @@ static ssize_t provides_dev_sdrs_show(struct device *dev, | |||
1844 | struct bmc_device *bmc = dev_get_drvdata(dev); | 1854 | struct bmc_device *bmc = dev_get_drvdata(dev); |
1845 | 1855 | ||
1846 | return snprintf(buf, 10, "%u\n", | 1856 | return snprintf(buf, 10, "%u\n", |
1847 | bmc->id.device_revision && 0x80 >> 7); | 1857 | (bmc->id.device_revision & 0x80) >> 7); |
1848 | } | 1858 | } |
1849 | 1859 | ||
1850 | static ssize_t revision_show(struct device *dev, struct device_attribute *attr, | 1860 | static ssize_t revision_show(struct device *dev, struct device_attribute *attr, |
@@ -1853,7 +1863,7 @@ static ssize_t revision_show(struct device *dev, struct device_attribute *attr, | |||
1853 | struct bmc_device *bmc = dev_get_drvdata(dev); | 1863 | struct bmc_device *bmc = dev_get_drvdata(dev); |
1854 | 1864 | ||
1855 | return snprintf(buf, 20, "%u\n", | 1865 | return snprintf(buf, 20, "%u\n", |
1856 | bmc->id.device_revision && 0x0F); | 1866 | bmc->id.device_revision & 0x0F); |
1857 | } | 1867 | } |
1858 | 1868 | ||
1859 | static ssize_t firmware_rev_show(struct device *dev, | 1869 | static ssize_t firmware_rev_show(struct device *dev, |
@@ -3232,7 +3242,9 @@ void ipmi_smi_msg_received(ipmi_smi_t intf, | |||
3232 | report the error immediately. */ | 3242 | report the error immediately. */ |
3233 | if ((msg->rsp_size >= 3) && (msg->rsp[2] != 0) | 3243 | if ((msg->rsp_size >= 3) && (msg->rsp[2] != 0) |
3234 | && (msg->rsp[2] != IPMI_NODE_BUSY_ERR) | 3244 | && (msg->rsp[2] != IPMI_NODE_BUSY_ERR) |
3235 | && (msg->rsp[2] != IPMI_LOST_ARBITRATION_ERR)) | 3245 | && (msg->rsp[2] != IPMI_LOST_ARBITRATION_ERR) |
3246 | && (msg->rsp[2] != IPMI_BUS_ERR) | ||
3247 | && (msg->rsp[2] != IPMI_NAK_ON_WRITE_ERR)) | ||
3236 | { | 3248 | { |
3237 | int chan = msg->rsp[3] & 0xf; | 3249 | int chan = msg->rsp[3] & 0xf; |
3238 | 3250 | ||
diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c index 157fa81a264f..abc5149e30e8 100644 --- a/drivers/char/ipmi/ipmi_si_intf.c +++ b/drivers/char/ipmi/ipmi_si_intf.c | |||
@@ -1211,7 +1211,7 @@ static void intf_mem_outb(struct si_sm_io *io, unsigned int offset, | |||
1211 | static unsigned char intf_mem_inw(struct si_sm_io *io, unsigned int offset) | 1211 | static unsigned char intf_mem_inw(struct si_sm_io *io, unsigned int offset) |
1212 | { | 1212 | { |
1213 | return (readw((io->addr)+(offset * io->regspacing)) >> io->regshift) | 1213 | return (readw((io->addr)+(offset * io->regspacing)) >> io->regshift) |
1214 | && 0xff; | 1214 | & 0xff; |
1215 | } | 1215 | } |
1216 | 1216 | ||
1217 | static void intf_mem_outw(struct si_sm_io *io, unsigned int offset, | 1217 | static void intf_mem_outw(struct si_sm_io *io, unsigned int offset, |
@@ -1223,7 +1223,7 @@ static void intf_mem_outw(struct si_sm_io *io, unsigned int offset, | |||
1223 | static unsigned char intf_mem_inl(struct si_sm_io *io, unsigned int offset) | 1223 | static unsigned char intf_mem_inl(struct si_sm_io *io, unsigned int offset) |
1224 | { | 1224 | { |
1225 | return (readl((io->addr)+(offset * io->regspacing)) >> io->regshift) | 1225 | return (readl((io->addr)+(offset * io->regspacing)) >> io->regshift) |
1226 | && 0xff; | 1226 | & 0xff; |
1227 | } | 1227 | } |
1228 | 1228 | ||
1229 | static void intf_mem_outl(struct si_sm_io *io, unsigned int offset, | 1229 | static void intf_mem_outl(struct si_sm_io *io, unsigned int offset, |
@@ -1236,7 +1236,7 @@ static void intf_mem_outl(struct si_sm_io *io, unsigned int offset, | |||
1236 | static unsigned char mem_inq(struct si_sm_io *io, unsigned int offset) | 1236 | static unsigned char mem_inq(struct si_sm_io *io, unsigned int offset) |
1237 | { | 1237 | { |
1238 | return (readq((io->addr)+(offset * io->regspacing)) >> io->regshift) | 1238 | return (readq((io->addr)+(offset * io->regspacing)) >> io->regshift) |
1239 | && 0xff; | 1239 | & 0xff; |
1240 | } | 1240 | } |
1241 | 1241 | ||
1242 | static void mem_outq(struct si_sm_io *io, unsigned int offset, | 1242 | static void mem_outq(struct si_sm_io *io, unsigned int offset, |
diff --git a/drivers/char/mspec.c b/drivers/char/mspec.c index 5c0dec39cf6c..235e89226112 100644 --- a/drivers/char/mspec.c +++ b/drivers/char/mspec.c | |||
@@ -72,7 +72,11 @@ enum { | |||
72 | MSPEC_UNCACHED | 72 | MSPEC_UNCACHED |
73 | }; | 73 | }; |
74 | 74 | ||
75 | #ifdef CONFIG_SGI_SN | ||
75 | static int is_sn2; | 76 | static int is_sn2; |
77 | #else | ||
78 | #define is_sn2 0 | ||
79 | #endif | ||
76 | 80 | ||
77 | /* | 81 | /* |
78 | * One of these structures is allocated when an mspec region is mmaped. The | 82 | * One of these structures is allocated when an mspec region is mmaped. The |
@@ -211,7 +215,7 @@ mspec_nopfn(struct vm_area_struct *vma, unsigned long address) | |||
211 | if (vdata->type == MSPEC_FETCHOP) | 215 | if (vdata->type == MSPEC_FETCHOP) |
212 | paddr = TO_AMO(maddr); | 216 | paddr = TO_AMO(maddr); |
213 | else | 217 | else |
214 | paddr = __pa(TO_CAC(maddr)); | 218 | paddr = maddr & ~__IA64_UNCACHED_OFFSET; |
215 | 219 | ||
216 | pfn = paddr >> PAGE_SHIFT; | 220 | pfn = paddr >> PAGE_SHIFT; |
217 | 221 | ||
@@ -335,6 +339,7 @@ mspec_init(void) | |||
335 | * The fetchop device only works on SN2 hardware, uncached and cached | 339 | * The fetchop device only works on SN2 hardware, uncached and cached |
336 | * memory drivers should both be valid on all ia64 hardware | 340 | * memory drivers should both be valid on all ia64 hardware |
337 | */ | 341 | */ |
342 | #ifdef CONFIG_SGI_SN | ||
338 | if (ia64_platform_is("sn2")) { | 343 | if (ia64_platform_is("sn2")) { |
339 | is_sn2 = 1; | 344 | is_sn2 = 1; |
340 | if (is_shub2()) { | 345 | if (is_shub2()) { |
@@ -363,6 +368,7 @@ mspec_init(void) | |||
363 | goto free_scratch_pages; | 368 | goto free_scratch_pages; |
364 | } | 369 | } |
365 | } | 370 | } |
371 | #endif | ||
366 | ret = misc_register(&cached_miscdev); | 372 | ret = misc_register(&cached_miscdev); |
367 | if (ret) { | 373 | if (ret) { |
368 | printk(KERN_ERR "%s: failed to register device %i\n", | 374 | printk(KERN_ERR "%s: failed to register device %i\n", |
diff --git a/drivers/infiniband/hw/ipath/ipath_driver.c b/drivers/infiniband/hw/ipath/ipath_driver.c index b4ffaa7bcbb7..09a13c1fc46a 100644 --- a/drivers/infiniband/hw/ipath/ipath_driver.c +++ b/drivers/infiniband/hw/ipath/ipath_driver.c | |||
@@ -304,7 +304,7 @@ static int __devinit ipath_init_one(struct pci_dev *pdev, | |||
304 | } | 304 | } |
305 | addr = pci_resource_start(pdev, 0); | 305 | addr = pci_resource_start(pdev, 0); |
306 | len = pci_resource_len(pdev, 0); | 306 | len = pci_resource_len(pdev, 0); |
307 | ipath_cdbg(VERBOSE, "regbase (0) %llx len %d irq %x, vend %x/%x " | 307 | ipath_cdbg(VERBOSE, "regbase (0) %llx len %d pdev->irq %d, vend %x/%x " |
308 | "driver_data %lx\n", addr, len, pdev->irq, ent->vendor, | 308 | "driver_data %lx\n", addr, len, pdev->irq, ent->vendor, |
309 | ent->device, ent->driver_data); | 309 | ent->device, ent->driver_data); |
310 | 310 | ||
@@ -467,15 +467,15 @@ static int __devinit ipath_init_one(struct pci_dev *pdev, | |||
467 | * check 0 irq after we return from chip-specific bus setup, since | 467 | * check 0 irq after we return from chip-specific bus setup, since |
468 | * that can affect this due to setup | 468 | * that can affect this due to setup |
469 | */ | 469 | */ |
470 | if (!pdev->irq) | 470 | if (!dd->ipath_irq) |
471 | ipath_dev_err(dd, "irq is 0, BIOS error? Interrupts won't " | 471 | ipath_dev_err(dd, "irq is 0, BIOS error? Interrupts won't " |
472 | "work\n"); | 472 | "work\n"); |
473 | else { | 473 | else { |
474 | ret = request_irq(pdev->irq, ipath_intr, IRQF_SHARED, | 474 | ret = request_irq(dd->ipath_irq, ipath_intr, IRQF_SHARED, |
475 | IPATH_DRV_NAME, dd); | 475 | IPATH_DRV_NAME, dd); |
476 | if (ret) { | 476 | if (ret) { |
477 | ipath_dev_err(dd, "Couldn't setup irq handler, " | 477 | ipath_dev_err(dd, "Couldn't setup irq handler, " |
478 | "irq=%u: %d\n", pdev->irq, ret); | 478 | "irq=%d: %d\n", dd->ipath_irq, ret); |
479 | goto bail_iounmap; | 479 | goto bail_iounmap; |
480 | } | 480 | } |
481 | } | 481 | } |
@@ -637,11 +637,10 @@ static void __devexit ipath_remove_one(struct pci_dev *pdev) | |||
637 | * free up port 0 (kernel) rcvhdr, egr bufs, and eventually tid bufs | 637 | * free up port 0 (kernel) rcvhdr, egr bufs, and eventually tid bufs |
638 | * for all versions of the driver, if they were allocated | 638 | * for all versions of the driver, if they were allocated |
639 | */ | 639 | */ |
640 | if (pdev->irq) { | 640 | if (dd->ipath_irq) { |
641 | ipath_cdbg(VERBOSE, | 641 | ipath_cdbg(VERBOSE, "unit %u free irq %d\n", |
642 | "unit %u free_irq of irq %x\n", | 642 | dd->ipath_unit, dd->ipath_irq); |
643 | dd->ipath_unit, pdev->irq); | 643 | dd->ipath_f_free_irq(dd); |
644 | free_irq(pdev->irq, dd); | ||
645 | } else | 644 | } else |
646 | ipath_dbg("irq is 0, not doing free_irq " | 645 | ipath_dbg("irq is 0, not doing free_irq " |
647 | "for unit %u\n", dd->ipath_unit); | 646 | "for unit %u\n", dd->ipath_unit); |
diff --git a/drivers/infiniband/hw/ipath/ipath_iba6110.c b/drivers/infiniband/hw/ipath/ipath_iba6110.c index 9e4e8d4c6e20..e57c7a351cb5 100644 --- a/drivers/infiniband/hw/ipath/ipath_iba6110.c +++ b/drivers/infiniband/hw/ipath/ipath_iba6110.c | |||
@@ -38,6 +38,7 @@ | |||
38 | 38 | ||
39 | #include <linux/pci.h> | 39 | #include <linux/pci.h> |
40 | #include <linux/delay.h> | 40 | #include <linux/delay.h> |
41 | #include <linux/htirq.h> | ||
41 | 42 | ||
42 | #include "ipath_kernel.h" | 43 | #include "ipath_kernel.h" |
43 | #include "ipath_registers.h" | 44 | #include "ipath_registers.h" |
@@ -913,49 +914,40 @@ static void slave_or_pri_blk(struct ipath_devdata *dd, struct pci_dev *pdev, | |||
913 | } | 914 | } |
914 | } | 915 | } |
915 | 916 | ||
916 | static int set_int_handler(struct ipath_devdata *dd, struct pci_dev *pdev, | 917 | static int ipath_ht_intconfig(struct ipath_devdata *dd) |
917 | int pos) | ||
918 | { | 918 | { |
919 | u32 int_handler_addr_lower; | 919 | int ret; |
920 | u32 int_handler_addr_upper; | ||
921 | u64 ihandler; | ||
922 | u32 intvec; | ||
923 | 920 | ||
924 | /* use indirection register to get the intr handler */ | 921 | if (dd->ipath_intconfig) { |
925 | pci_write_config_byte(pdev, pos + HT_INTR_REG_INDEX, 0x10); | 922 | ipath_write_kreg(dd, dd->ipath_kregs->kr_interruptconfig, |
926 | pci_read_config_dword(pdev, pos + 4, &int_handler_addr_lower); | 923 | dd->ipath_intconfig); /* interrupt address */ |
927 | pci_write_config_byte(pdev, pos + HT_INTR_REG_INDEX, 0x11); | 924 | ret = 0; |
928 | pci_read_config_dword(pdev, pos + 4, &int_handler_addr_upper); | 925 | } else { |
926 | ipath_dev_err(dd, "No interrupts enabled, couldn't setup " | ||
927 | "interrupt address\n"); | ||
928 | ret = -EINVAL; | ||
929 | } | ||
929 | 930 | ||
930 | ihandler = (u64) int_handler_addr_lower | | 931 | return ret; |
931 | ((u64) int_handler_addr_upper << 32); | 932 | } |
933 | |||
934 | static void ipath_ht_irq_update(struct pci_dev *dev, int irq, | ||
935 | struct ht_irq_msg *msg) | ||
936 | { | ||
937 | struct ipath_devdata *dd = pci_get_drvdata(dev); | ||
938 | u64 prev_intconfig = dd->ipath_intconfig; | ||
939 | |||
940 | dd->ipath_intconfig = msg->address_lo; | ||
941 | dd->ipath_intconfig |= ((u64) msg->address_hi) << 32; | ||
932 | 942 | ||
933 | /* | 943 | /* |
934 | * kernels with CONFIG_PCI_MSI set the vector in the irq field of | 944 | * If the previous value of dd->ipath_intconfig is zero, we're |
935 | * struct pci_device, so we use that to program the internal | 945 | * getting configured for the first time, and must not program the |
936 | * interrupt register (not config space) with that value. The BIOS | 946 | * intconfig register here (it will be programmed later, when the |
937 | * must still have done the basic MSI setup. | 947 | * hardware is ready). Otherwise, we should. |
938 | */ | ||
939 | intvec = pdev->irq; | ||
940 | /* | ||
941 | * clear any vector bits there; normally not set but we'll overload | ||
942 | * this for some debug purposes (setting the HTC debug register | ||
943 | * value from software, rather than GPIOs), so it might be set on a | ||
944 | * driver reload. | ||
945 | */ | 948 | */ |
946 | ihandler &= ~0xff0000; | 949 | if (prev_intconfig) |
947 | /* x86 vector goes in intrinfo[23:16] */ | 950 | ipath_ht_intconfig(dd); |
948 | ihandler |= intvec << 16; | ||
949 | ipath_cdbg(VERBOSE, "ihandler lower %x, upper %x, intvec %x, " | ||
950 | "interruptconfig %llx\n", int_handler_addr_lower, | ||
951 | int_handler_addr_upper, intvec, | ||
952 | (unsigned long long) ihandler); | ||
953 | |||
954 | /* can't program yet, so save for interrupt setup */ | ||
955 | dd->ipath_intconfig = ihandler; | ||
956 | /* keep going, so we find link control stuff also */ | ||
957 | |||
958 | return ihandler != 0; | ||
959 | } | 951 | } |
960 | 952 | ||
961 | /** | 953 | /** |
@@ -971,12 +963,19 @@ static int set_int_handler(struct ipath_devdata *dd, struct pci_dev *pdev, | |||
971 | static int ipath_setup_ht_config(struct ipath_devdata *dd, | 963 | static int ipath_setup_ht_config(struct ipath_devdata *dd, |
972 | struct pci_dev *pdev) | 964 | struct pci_dev *pdev) |
973 | { | 965 | { |
974 | int pos, ret = 0; | 966 | int pos, ret; |
975 | int ihandler = 0; | 967 | |
968 | ret = __ht_create_irq(pdev, 0, ipath_ht_irq_update); | ||
969 | if (ret < 0) { | ||
970 | ipath_dev_err(dd, "Couldn't create interrupt handler: " | ||
971 | "err %d\n", ret); | ||
972 | goto bail; | ||
973 | } | ||
974 | dd->ipath_irq = ret; | ||
975 | ret = 0; | ||
976 | 976 | ||
977 | /* | 977 | /* |
978 | * Read the capability info to find the interrupt info, and also | 978 | * Handle clearing CRC errors in linkctrl register if necessary. We |
979 | * handle clearing CRC errors in linkctrl register if necessary. We | ||
980 | * do this early, before we ever enable errors or hardware errors, | 979 | * do this early, before we ever enable errors or hardware errors, |
981 | * mostly to avoid causing the chip to enter freeze mode. | 980 | * mostly to avoid causing the chip to enter freeze mode. |
982 | */ | 981 | */ |
@@ -1000,17 +999,9 @@ static int ipath_setup_ht_config(struct ipath_devdata *dd, | |||
1000 | } | 999 | } |
1001 | if (!(cap_type & 0xE0)) | 1000 | if (!(cap_type & 0xE0)) |
1002 | slave_or_pri_blk(dd, pdev, pos, cap_type); | 1001 | slave_or_pri_blk(dd, pdev, pos, cap_type); |
1003 | else if (cap_type == HT_INTR_DISC_CONFIG) | ||
1004 | ihandler = set_int_handler(dd, pdev, pos); | ||
1005 | } while ((pos = pci_find_next_capability(pdev, pos, | 1002 | } while ((pos = pci_find_next_capability(pdev, pos, |
1006 | PCI_CAP_ID_HT))); | 1003 | PCI_CAP_ID_HT))); |
1007 | 1004 | ||
1008 | if (!ihandler) { | ||
1009 | ipath_dev_err(dd, "Couldn't find interrupt handler in " | ||
1010 | "config space\n"); | ||
1011 | ret = -ENODEV; | ||
1012 | } | ||
1013 | |||
1014 | bail: | 1005 | bail: |
1015 | return ret; | 1006 | return ret; |
1016 | } | 1007 | } |
@@ -1360,25 +1351,6 @@ static void ipath_ht_quiet_serdes(struct ipath_devdata *dd) | |||
1360 | ipath_write_kreg(dd, dd->ipath_kregs->kr_serdesconfig0, val); | 1351 | ipath_write_kreg(dd, dd->ipath_kregs->kr_serdesconfig0, val); |
1361 | } | 1352 | } |
1362 | 1353 | ||
1363 | static int ipath_ht_intconfig(struct ipath_devdata *dd) | ||
1364 | { | ||
1365 | int ret; | ||
1366 | |||
1367 | if (!dd->ipath_intconfig) { | ||
1368 | ipath_dev_err(dd, "No interrupts enabled, couldn't setup " | ||
1369 | "interrupt address\n"); | ||
1370 | ret = 1; | ||
1371 | goto bail; | ||
1372 | } | ||
1373 | |||
1374 | ipath_write_kreg(dd, dd->ipath_kregs->kr_interruptconfig, | ||
1375 | dd->ipath_intconfig); /* interrupt address */ | ||
1376 | ret = 0; | ||
1377 | |||
1378 | bail: | ||
1379 | return ret; | ||
1380 | } | ||
1381 | |||
1382 | /** | 1354 | /** |
1383 | * ipath_pe_put_tid - write a TID in chip | 1355 | * ipath_pe_put_tid - write a TID in chip |
1384 | * @dd: the infinipath device | 1356 | * @dd: the infinipath device |
@@ -1575,6 +1547,14 @@ static int ipath_ht_get_base_info(struct ipath_portdata *pd, void *kbase) | |||
1575 | return 0; | 1547 | return 0; |
1576 | } | 1548 | } |
1577 | 1549 | ||
1550 | static void ipath_ht_free_irq(struct ipath_devdata *dd) | ||
1551 | { | ||
1552 | free_irq(dd->ipath_irq, dd); | ||
1553 | ht_destroy_irq(dd->ipath_irq); | ||
1554 | dd->ipath_irq = 0; | ||
1555 | dd->ipath_intconfig = 0; | ||
1556 | } | ||
1557 | |||
1578 | /** | 1558 | /** |
1579 | * ipath_init_iba6110_funcs - set up the chip-specific function pointers | 1559 | * ipath_init_iba6110_funcs - set up the chip-specific function pointers |
1580 | * @dd: the infinipath device | 1560 | * @dd: the infinipath device |
@@ -1598,6 +1578,7 @@ void ipath_init_iba6110_funcs(struct ipath_devdata *dd) | |||
1598 | dd->ipath_f_cleanup = ipath_setup_ht_cleanup; | 1578 | dd->ipath_f_cleanup = ipath_setup_ht_cleanup; |
1599 | dd->ipath_f_setextled = ipath_setup_ht_setextled; | 1579 | dd->ipath_f_setextled = ipath_setup_ht_setextled; |
1600 | dd->ipath_f_get_base_info = ipath_ht_get_base_info; | 1580 | dd->ipath_f_get_base_info = ipath_ht_get_base_info; |
1581 | dd->ipath_f_free_irq = ipath_ht_free_irq; | ||
1601 | 1582 | ||
1602 | /* | 1583 | /* |
1603 | * initialize chip-specific variables | 1584 | * initialize chip-specific variables |
diff --git a/drivers/infiniband/hw/ipath/ipath_iba6120.c b/drivers/infiniband/hw/ipath/ipath_iba6120.c index a72ab9de386a..6af89683f710 100644 --- a/drivers/infiniband/hw/ipath/ipath_iba6120.c +++ b/drivers/infiniband/hw/ipath/ipath_iba6120.c | |||
@@ -851,6 +851,7 @@ static int ipath_setup_pe_config(struct ipath_devdata *dd, | |||
851 | int pos, ret; | 851 | int pos, ret; |
852 | 852 | ||
853 | dd->ipath_msi_lo = 0; /* used as a flag during reset processing */ | 853 | dd->ipath_msi_lo = 0; /* used as a flag during reset processing */ |
854 | dd->ipath_irq = pdev->irq; | ||
854 | ret = pci_enable_msi(dd->pcidev); | 855 | ret = pci_enable_msi(dd->pcidev); |
855 | if (ret) | 856 | if (ret) |
856 | ipath_dev_err(dd, "pci_enable_msi failed: %d, " | 857 | ipath_dev_err(dd, "pci_enable_msi failed: %d, " |
@@ -1323,6 +1324,12 @@ done: | |||
1323 | return 0; | 1324 | return 0; |
1324 | } | 1325 | } |
1325 | 1326 | ||
1327 | static void ipath_pe_free_irq(struct ipath_devdata *dd) | ||
1328 | { | ||
1329 | free_irq(dd->ipath_irq, dd); | ||
1330 | dd->ipath_irq = 0; | ||
1331 | } | ||
1332 | |||
1326 | /** | 1333 | /** |
1327 | * ipath_init_iba6120_funcs - set up the chip-specific function pointers | 1334 | * ipath_init_iba6120_funcs - set up the chip-specific function pointers |
1328 | * @dd: the infinipath device | 1335 | * @dd: the infinipath device |
@@ -1349,6 +1356,7 @@ void ipath_init_iba6120_funcs(struct ipath_devdata *dd) | |||
1349 | dd->ipath_f_cleanup = ipath_setup_pe_cleanup; | 1356 | dd->ipath_f_cleanup = ipath_setup_pe_cleanup; |
1350 | dd->ipath_f_setextled = ipath_setup_pe_setextled; | 1357 | dd->ipath_f_setextled = ipath_setup_pe_setextled; |
1351 | dd->ipath_f_get_base_info = ipath_pe_get_base_info; | 1358 | dd->ipath_f_get_base_info = ipath_pe_get_base_info; |
1359 | dd->ipath_f_free_irq = ipath_pe_free_irq; | ||
1352 | 1360 | ||
1353 | /* initialize chip-specific variables */ | 1361 | /* initialize chip-specific variables */ |
1354 | dd->ipath_f_tidtemplate = ipath_pe_tidtemplate; | 1362 | dd->ipath_f_tidtemplate = ipath_pe_tidtemplate; |
diff --git a/drivers/infiniband/hw/ipath/ipath_intr.c b/drivers/infiniband/hw/ipath/ipath_intr.c index d9079ee12030..5652a550d442 100644 --- a/drivers/infiniband/hw/ipath/ipath_intr.c +++ b/drivers/infiniband/hw/ipath/ipath_intr.c | |||
@@ -710,14 +710,14 @@ static void ipath_bad_intr(struct ipath_devdata *dd, u32 * unexpectp) | |||
710 | * linuxbios development work, and it may happen in | 710 | * linuxbios development work, and it may happen in |
711 | * the future again. | 711 | * the future again. |
712 | */ | 712 | */ |
713 | if (dd->pcidev && dd->pcidev->irq) { | 713 | if (dd->pcidev && dd->ipath_irq) { |
714 | ipath_dev_err(dd, "Now %u unexpected " | 714 | ipath_dev_err(dd, "Now %u unexpected " |
715 | "interrupts, unregistering " | 715 | "interrupts, unregistering " |
716 | "interrupt handler\n", | 716 | "interrupt handler\n", |
717 | *unexpectp); | 717 | *unexpectp); |
718 | ipath_dbg("free_irq of irq %x\n", | 718 | ipath_dbg("free_irq of irq %d\n", |
719 | dd->pcidev->irq); | 719 | dd->ipath_irq); |
720 | free_irq(dd->pcidev->irq, dd); | 720 | dd->ipath_f_free_irq(dd); |
721 | } | 721 | } |
722 | } | 722 | } |
723 | if (ipath_read_kreg32(dd, dd->ipath_kregs->kr_intmask)) { | 723 | if (ipath_read_kreg32(dd, dd->ipath_kregs->kr_intmask)) { |
@@ -753,7 +753,7 @@ static void ipath_bad_regread(struct ipath_devdata *dd) | |||
753 | if (allbits == 2) { | 753 | if (allbits == 2) { |
754 | ipath_dev_err(dd, "Still bad interrupt status, " | 754 | ipath_dev_err(dd, "Still bad interrupt status, " |
755 | "unregistering interrupt\n"); | 755 | "unregistering interrupt\n"); |
756 | free_irq(dd->pcidev->irq, dd); | 756 | dd->ipath_f_free_irq(dd); |
757 | } else if (allbits > 2) { | 757 | } else if (allbits > 2) { |
758 | if ((allbits % 10000) == 0) | 758 | if ((allbits % 10000) == 0) |
759 | printk("."); | 759 | printk("."); |
diff --git a/drivers/infiniband/hw/ipath/ipath_kernel.h b/drivers/infiniband/hw/ipath/ipath_kernel.h index 06d5020a2f60..986b2125b8f5 100644 --- a/drivers/infiniband/hw/ipath/ipath_kernel.h +++ b/drivers/infiniband/hw/ipath/ipath_kernel.h | |||
@@ -213,6 +213,8 @@ struct ipath_devdata { | |||
213 | void (*ipath_f_setextled)(struct ipath_devdata *, u64, u64); | 213 | void (*ipath_f_setextled)(struct ipath_devdata *, u64, u64); |
214 | /* fill out chip-specific fields */ | 214 | /* fill out chip-specific fields */ |
215 | int (*ipath_f_get_base_info)(struct ipath_portdata *, void *); | 215 | int (*ipath_f_get_base_info)(struct ipath_portdata *, void *); |
216 | /* free irq */ | ||
217 | void (*ipath_f_free_irq)(struct ipath_devdata *); | ||
216 | struct ipath_ibdev *verbs_dev; | 218 | struct ipath_ibdev *verbs_dev; |
217 | struct timer_list verbs_timer; | 219 | struct timer_list verbs_timer; |
218 | /* total dwords sent (summed from counter) */ | 220 | /* total dwords sent (summed from counter) */ |
@@ -328,6 +330,8 @@ struct ipath_devdata { | |||
328 | /* so we can rewrite it after a chip reset */ | 330 | /* so we can rewrite it after a chip reset */ |
329 | u32 ipath_pcibar1; | 331 | u32 ipath_pcibar1; |
330 | 332 | ||
333 | /* interrupt number */ | ||
334 | int ipath_irq; | ||
331 | /* HT/PCI Vendor ID (here for NodeInfo) */ | 335 | /* HT/PCI Vendor ID (here for NodeInfo) */ |
332 | u16 ipath_vendorid; | 336 | u16 ipath_vendorid; |
333 | /* HT/PCI Device ID (here for NodeInfo) */ | 337 | /* HT/PCI Device ID (here for NodeInfo) */ |
diff --git a/drivers/md/dm-ioctl.c b/drivers/md/dm-ioctl.c index d13bb15a8a02..4510ad8f971c 100644 --- a/drivers/md/dm-ioctl.c +++ b/drivers/md/dm-ioctl.c | |||
@@ -606,9 +606,14 @@ static struct hash_cell *__find_device_hash_cell(struct dm_ioctl *param) | |||
606 | return __get_name_cell(param->name); | 606 | return __get_name_cell(param->name); |
607 | 607 | ||
608 | md = dm_get_md(huge_decode_dev(param->dev)); | 608 | md = dm_get_md(huge_decode_dev(param->dev)); |
609 | if (md) | 609 | if (!md) |
610 | mdptr = dm_get_mdptr(md); | 610 | goto out; |
611 | 611 | ||
612 | mdptr = dm_get_mdptr(md); | ||
613 | if (!mdptr) | ||
614 | dm_put(md); | ||
615 | |||
616 | out: | ||
612 | return mdptr; | 617 | return mdptr; |
613 | } | 618 | } |
614 | 619 | ||
diff --git a/drivers/md/dm-raid1.c b/drivers/md/dm-raid1.c index 659224cb7c53..48a653b3f518 100644 --- a/drivers/md/dm-raid1.c +++ b/drivers/md/dm-raid1.c | |||
@@ -24,6 +24,7 @@ | |||
24 | 24 | ||
25 | static struct workqueue_struct *_kmirrord_wq; | 25 | static struct workqueue_struct *_kmirrord_wq; |
26 | static struct work_struct _kmirrord_work; | 26 | static struct work_struct _kmirrord_work; |
27 | static DECLARE_WAIT_QUEUE_HEAD(_kmirrord_recovery_stopped); | ||
27 | 28 | ||
28 | static inline void wake(void) | 29 | static inline void wake(void) |
29 | { | 30 | { |
@@ -83,6 +84,7 @@ struct region_hash { | |||
83 | struct list_head *buckets; | 84 | struct list_head *buckets; |
84 | 85 | ||
85 | spinlock_t region_lock; | 86 | spinlock_t region_lock; |
87 | atomic_t recovery_in_flight; | ||
86 | struct semaphore recovery_count; | 88 | struct semaphore recovery_count; |
87 | struct list_head clean_regions; | 89 | struct list_head clean_regions; |
88 | struct list_head quiesced_regions; | 90 | struct list_head quiesced_regions; |
@@ -191,6 +193,7 @@ static int rh_init(struct region_hash *rh, struct mirror_set *ms, | |||
191 | 193 | ||
192 | spin_lock_init(&rh->region_lock); | 194 | spin_lock_init(&rh->region_lock); |
193 | sema_init(&rh->recovery_count, 0); | 195 | sema_init(&rh->recovery_count, 0); |
196 | atomic_set(&rh->recovery_in_flight, 0); | ||
194 | INIT_LIST_HEAD(&rh->clean_regions); | 197 | INIT_LIST_HEAD(&rh->clean_regions); |
195 | INIT_LIST_HEAD(&rh->quiesced_regions); | 198 | INIT_LIST_HEAD(&rh->quiesced_regions); |
196 | INIT_LIST_HEAD(&rh->recovered_regions); | 199 | INIT_LIST_HEAD(&rh->recovered_regions); |
@@ -382,6 +385,8 @@ static void rh_update_states(struct region_hash *rh) | |||
382 | rh->log->type->clear_region(rh->log, reg->key); | 385 | rh->log->type->clear_region(rh->log, reg->key); |
383 | rh->log->type->complete_resync_work(rh->log, reg->key, 1); | 386 | rh->log->type->complete_resync_work(rh->log, reg->key, 1); |
384 | dispatch_bios(rh->ms, ®->delayed_bios); | 387 | dispatch_bios(rh->ms, ®->delayed_bios); |
388 | if (atomic_dec_and_test(&rh->recovery_in_flight)) | ||
389 | wake_up_all(&_kmirrord_recovery_stopped); | ||
385 | up(&rh->recovery_count); | 390 | up(&rh->recovery_count); |
386 | mempool_free(reg, rh->region_pool); | 391 | mempool_free(reg, rh->region_pool); |
387 | } | 392 | } |
@@ -502,11 +507,21 @@ static int __rh_recovery_prepare(struct region_hash *rh) | |||
502 | 507 | ||
503 | static void rh_recovery_prepare(struct region_hash *rh) | 508 | static void rh_recovery_prepare(struct region_hash *rh) |
504 | { | 509 | { |
505 | while (!down_trylock(&rh->recovery_count)) | 510 | /* Extra reference to avoid race with rh_stop_recovery */ |
511 | atomic_inc(&rh->recovery_in_flight); | ||
512 | |||
513 | while (!down_trylock(&rh->recovery_count)) { | ||
514 | atomic_inc(&rh->recovery_in_flight); | ||
506 | if (__rh_recovery_prepare(rh) <= 0) { | 515 | if (__rh_recovery_prepare(rh) <= 0) { |
516 | atomic_dec(&rh->recovery_in_flight); | ||
507 | up(&rh->recovery_count); | 517 | up(&rh->recovery_count); |
508 | break; | 518 | break; |
509 | } | 519 | } |
520 | } | ||
521 | |||
522 | /* Drop the extra reference */ | ||
523 | if (atomic_dec_and_test(&rh->recovery_in_flight)) | ||
524 | wake_up_all(&_kmirrord_recovery_stopped); | ||
510 | } | 525 | } |
511 | 526 | ||
512 | /* | 527 | /* |
@@ -1177,6 +1192,11 @@ static void mirror_postsuspend(struct dm_target *ti) | |||
1177 | struct dirty_log *log = ms->rh.log; | 1192 | struct dirty_log *log = ms->rh.log; |
1178 | 1193 | ||
1179 | rh_stop_recovery(&ms->rh); | 1194 | rh_stop_recovery(&ms->rh); |
1195 | |||
1196 | /* Wait for all I/O we generated to complete */ | ||
1197 | wait_event(_kmirrord_recovery_stopped, | ||
1198 | !atomic_read(&ms->rh.recovery_in_flight)); | ||
1199 | |||
1180 | if (log->type->suspend && log->type->suspend(log)) | 1200 | if (log->type->suspend && log->type->suspend(log)) |
1181 | /* FIXME: need better error handling */ | 1201 | /* FIXME: need better error handling */ |
1182 | DMWARN("log suspend failed"); | 1202 | DMWARN("log suspend failed"); |
diff --git a/drivers/md/dm-round-robin.c b/drivers/md/dm-round-robin.c index c5a16c550122..6f9fcd4db9b5 100644 --- a/drivers/md/dm-round-robin.c +++ b/drivers/md/dm-round-robin.c | |||
@@ -136,7 +136,7 @@ static int rr_add_path(struct path_selector *ps, struct path *path, | |||
136 | 136 | ||
137 | path->pscontext = pi; | 137 | path->pscontext = pi; |
138 | 138 | ||
139 | list_add(&pi->list, &s->valid_paths); | 139 | list_add_tail(&pi->list, &s->valid_paths); |
140 | 140 | ||
141 | return 0; | 141 | return 0; |
142 | } | 142 | } |
diff --git a/drivers/md/dm.c b/drivers/md/dm.c index b5764a86c8b5..fc4f743f3b53 100644 --- a/drivers/md/dm.c +++ b/drivers/md/dm.c | |||
@@ -1285,7 +1285,7 @@ int dm_suspend(struct mapped_device *md, int do_lockfs) | |||
1285 | down(&md->suspend_lock); | 1285 | down(&md->suspend_lock); |
1286 | 1286 | ||
1287 | if (dm_suspended(md)) | 1287 | if (dm_suspended(md)) |
1288 | goto out; | 1288 | goto out_unlock; |
1289 | 1289 | ||
1290 | map = dm_get_table(md); | 1290 | map = dm_get_table(md); |
1291 | 1291 | ||
@@ -1361,6 +1361,8 @@ out: | |||
1361 | } | 1361 | } |
1362 | 1362 | ||
1363 | dm_table_put(map); | 1363 | dm_table_put(map); |
1364 | |||
1365 | out_unlock: | ||
1364 | up(&md->suspend_lock); | 1366 | up(&md->suspend_lock); |
1365 | return r; | 1367 | return r; |
1366 | } | 1368 | } |
diff --git a/drivers/md/md.c b/drivers/md/md.c index d11135604403..8cbf9c9df1c3 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c | |||
@@ -3200,7 +3200,7 @@ static int do_md_run(mddev_t * mddev) | |||
3200 | 3200 | ||
3201 | mddev->changed = 1; | 3201 | mddev->changed = 1; |
3202 | md_new_event(mddev); | 3202 | md_new_event(mddev); |
3203 | kobject_uevent(&mddev->gendisk->kobj, KOBJ_ONLINE); | 3203 | kobject_uevent(&mddev->gendisk->kobj, KOBJ_CHANGE); |
3204 | return 0; | 3204 | return 0; |
3205 | } | 3205 | } |
3206 | 3206 | ||
@@ -3314,7 +3314,6 @@ static int do_md_stop(mddev_t * mddev, int mode) | |||
3314 | 3314 | ||
3315 | module_put(mddev->pers->owner); | 3315 | module_put(mddev->pers->owner); |
3316 | mddev->pers = NULL; | 3316 | mddev->pers = NULL; |
3317 | kobject_uevent(&mddev->gendisk->kobj, KOBJ_OFFLINE); | ||
3318 | if (mddev->ro) | 3317 | if (mddev->ro) |
3319 | mddev->ro = 0; | 3318 | mddev->ro = 0; |
3320 | } | 3319 | } |
@@ -4487,6 +4486,7 @@ static int md_thread(void * arg) | |||
4487 | * many dirty RAID5 blocks. | 4486 | * many dirty RAID5 blocks. |
4488 | */ | 4487 | */ |
4489 | 4488 | ||
4489 | current->flags |= PF_NOFREEZE; | ||
4490 | allow_signal(SIGKILL); | 4490 | allow_signal(SIGKILL); |
4491 | while (!kthread_should_stop()) { | 4491 | while (!kthread_should_stop()) { |
4492 | 4492 | ||
@@ -4503,7 +4503,6 @@ static int md_thread(void * arg) | |||
4503 | test_bit(THREAD_WAKEUP, &thread->flags) | 4503 | test_bit(THREAD_WAKEUP, &thread->flags) |
4504 | || kthread_should_stop(), | 4504 | || kthread_should_stop(), |
4505 | thread->timeout); | 4505 | thread->timeout); |
4506 | try_to_freeze(); | ||
4507 | 4506 | ||
4508 | clear_bit(THREAD_WAKEUP, &thread->flags); | 4507 | clear_bit(THREAD_WAKEUP, &thread->flags); |
4509 | 4508 | ||
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index e14f45780720..69c3e201fa3b 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c | |||
@@ -3659,7 +3659,7 @@ static void end_reshape(raid5_conf_t *conf) | |||
3659 | bdev = bdget_disk(conf->mddev->gendisk, 0); | 3659 | bdev = bdget_disk(conf->mddev->gendisk, 0); |
3660 | if (bdev) { | 3660 | if (bdev) { |
3661 | mutex_lock(&bdev->bd_inode->i_mutex); | 3661 | mutex_lock(&bdev->bd_inode->i_mutex); |
3662 | i_size_write(bdev->bd_inode, conf->mddev->array_size << 10); | 3662 | i_size_write(bdev->bd_inode, (loff_t)conf->mddev->array_size << 10); |
3663 | mutex_unlock(&bdev->bd_inode->i_mutex); | 3663 | mutex_unlock(&bdev->bd_inode->i_mutex); |
3664 | bdput(bdev); | 3664 | bdput(bdev); |
3665 | } | 3665 | } |
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index 9cb3ca5806fc..6e863aa9894c 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig | |||
@@ -2833,7 +2833,7 @@ config NET_FC | |||
2833 | "SCSI generic support". | 2833 | "SCSI generic support". |
2834 | 2834 | ||
2835 | config SHAPER | 2835 | config SHAPER |
2836 | tristate "Traffic Shaper (EXPERIMENTAL)" | 2836 | tristate "Traffic Shaper (OBSOLETE)" |
2837 | depends on EXPERIMENTAL | 2837 | depends on EXPERIMENTAL |
2838 | ---help--- | 2838 | ---help--- |
2839 | The traffic shaper is a virtual network device that allows you to | 2839 | The traffic shaper is a virtual network device that allows you to |
@@ -2842,9 +2842,9 @@ config SHAPER | |||
2842 | these virtual devices. See | 2842 | these virtual devices. See |
2843 | <file:Documentation/networking/shaper.txt> for more information. | 2843 | <file:Documentation/networking/shaper.txt> for more information. |
2844 | 2844 | ||
2845 | An alternative to this traffic shaper is the experimental | 2845 | An alternative to this traffic shaper are traffic schedulers which |
2846 | Class-Based Queuing (CBQ) scheduling support which you get if you | 2846 | you'll get if you say Y to "QoS and/or fair queuing" in |
2847 | say Y to "QoS and/or fair queuing" above. | 2847 | "Networking options". |
2848 | 2848 | ||
2849 | To compile this driver as a module, choose M here: the module | 2849 | To compile this driver as a module, choose M here: the module |
2850 | will be called shaper. If unsure, say N. | 2850 | will be called shaper. If unsure, say N. |
diff --git a/drivers/net/arcnet/com20020.c b/drivers/net/arcnet/com20020.c index 0dc70c7b7940..aa9dd8f11269 100644 --- a/drivers/net/arcnet/com20020.c +++ b/drivers/net/arcnet/com20020.c | |||
@@ -337,13 +337,16 @@ static void com20020_set_mc_list(struct net_device *dev) | |||
337 | } | 337 | } |
338 | } | 338 | } |
339 | 339 | ||
340 | #ifdef MODULE | 340 | #if defined(CONFIG_ARCNET_COM20020_PCI_MODULE) || \ |
341 | 341 | defined(CONFIG_ARCNET_COM20020_ISA_MODULE) | |
342 | EXPORT_SYMBOL(com20020_check); | 342 | EXPORT_SYMBOL(com20020_check); |
343 | EXPORT_SYMBOL(com20020_found); | 343 | EXPORT_SYMBOL(com20020_found); |
344 | #endif | ||
344 | 345 | ||
345 | MODULE_LICENSE("GPL"); | 346 | MODULE_LICENSE("GPL"); |
346 | 347 | ||
348 | #ifdef MODULE | ||
349 | |||
347 | int init_module(void) | 350 | int init_module(void) |
348 | { | 351 | { |
349 | BUGLVL(D_NORMAL) printk(VERSION); | 352 | BUGLVL(D_NORMAL) printk(VERSION); |
diff --git a/drivers/net/b44.c b/drivers/net/b44.c index 1ec217433b4c..474a4e3438db 100644 --- a/drivers/net/b44.c +++ b/drivers/net/b44.c | |||
@@ -908,8 +908,9 @@ static irqreturn_t b44_interrupt(int irq, void *dev_id) | |||
908 | istat = br32(bp, B44_ISTAT); | 908 | istat = br32(bp, B44_ISTAT); |
909 | imask = br32(bp, B44_IMASK); | 909 | imask = br32(bp, B44_IMASK); |
910 | 910 | ||
911 | /* ??? What the fuck is the purpose of the interrupt mask | 911 | /* The interrupt mask register controls which interrupt bits |
912 | * ??? register if we have to mask it out by hand anyways? | 912 | * will actually raise an interrupt to the CPU when set by hw/firmware, |
913 | * but doesn't mask off the bits. | ||
913 | */ | 914 | */ |
914 | istat &= imask; | 915 | istat &= imask; |
915 | if (istat) { | 916 | if (istat) { |
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index c0bbddae4ec4..17a461152d39 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c | |||
@@ -4692,6 +4692,8 @@ static int bond_check_params(struct bond_params *params) | |||
4692 | return 0; | 4692 | return 0; |
4693 | } | 4693 | } |
4694 | 4694 | ||
4695 | static struct lock_class_key bonding_netdev_xmit_lock_key; | ||
4696 | |||
4695 | /* Create a new bond based on the specified name and bonding parameters. | 4697 | /* Create a new bond based on the specified name and bonding parameters. |
4696 | * Caller must NOT hold rtnl_lock; we need to release it here before we | 4698 | * Caller must NOT hold rtnl_lock; we need to release it here before we |
4697 | * set up our sysfs entries. | 4699 | * set up our sysfs entries. |
@@ -4727,6 +4729,9 @@ int bond_create(char *name, struct bond_params *params, struct bonding **newbond | |||
4727 | if (res < 0) { | 4729 | if (res < 0) { |
4728 | goto out_bond; | 4730 | goto out_bond; |
4729 | } | 4731 | } |
4732 | |||
4733 | lockdep_set_class(&bond_dev->_xmit_lock, &bonding_netdev_xmit_lock_key); | ||
4734 | |||
4730 | if (newbond) | 4735 | if (newbond) |
4731 | *newbond = bond_dev->priv; | 4736 | *newbond = bond_dev->priv; |
4732 | 4737 | ||
diff --git a/drivers/net/cris/eth_v10.c b/drivers/net/cris/eth_v10.c index 966b563e42bb..a03d781f6d0a 100644 --- a/drivers/net/cris/eth_v10.c +++ b/drivers/net/cris/eth_v10.c | |||
@@ -509,6 +509,8 @@ etrax_ethernet_init(void) | |||
509 | * does not share cacheline with any other data (to avoid cache bug) | 509 | * does not share cacheline with any other data (to avoid cache bug) |
510 | */ | 510 | */ |
511 | RxDescList[i].skb = dev_alloc_skb(MAX_MEDIA_DATA_SIZE + 2 * L1_CACHE_BYTES); | 511 | RxDescList[i].skb = dev_alloc_skb(MAX_MEDIA_DATA_SIZE + 2 * L1_CACHE_BYTES); |
512 | if (!RxDescList[i].skb) | ||
513 | return -ENOMEM; | ||
512 | RxDescList[i].descr.ctrl = 0; | 514 | RxDescList[i].descr.ctrl = 0; |
513 | RxDescList[i].descr.sw_len = MAX_MEDIA_DATA_SIZE; | 515 | RxDescList[i].descr.sw_len = MAX_MEDIA_DATA_SIZE; |
514 | RxDescList[i].descr.next = virt_to_phys(&RxDescList[i + 1]); | 516 | RxDescList[i].descr.next = virt_to_phys(&RxDescList[i + 1]); |
diff --git a/drivers/net/e1000/e1000_main.c b/drivers/net/e1000/e1000_main.c index 8d04752777a8..726ec5e88ab2 100644 --- a/drivers/net/e1000/e1000_main.c +++ b/drivers/net/e1000/e1000_main.c | |||
@@ -4800,6 +4800,9 @@ e1000_suspend(struct pci_dev *pdev, pm_message_t state) | |||
4800 | if (adapter->hw.phy_type == e1000_phy_igp_3) | 4800 | if (adapter->hw.phy_type == e1000_phy_igp_3) |
4801 | e1000_phy_powerdown_workaround(&adapter->hw); | 4801 | e1000_phy_powerdown_workaround(&adapter->hw); |
4802 | 4802 | ||
4803 | if (netif_running(netdev)) | ||
4804 | e1000_free_irq(adapter); | ||
4805 | |||
4803 | /* Release control of h/w to f/w. If f/w is AMT enabled, this | 4806 | /* Release control of h/w to f/w. If f/w is AMT enabled, this |
4804 | * would have already happened in close and is redundant. */ | 4807 | * would have already happened in close and is redundant. */ |
4805 | e1000_release_hw_control(adapter); | 4808 | e1000_release_hw_control(adapter); |
@@ -4830,6 +4833,10 @@ e1000_resume(struct pci_dev *pdev) | |||
4830 | pci_enable_wake(pdev, PCI_D3hot, 0); | 4833 | pci_enable_wake(pdev, PCI_D3hot, 0); |
4831 | pci_enable_wake(pdev, PCI_D3cold, 0); | 4834 | pci_enable_wake(pdev, PCI_D3cold, 0); |
4832 | 4835 | ||
4836 | if (netif_running(netdev) && (err = e1000_request_irq(adapter))) | ||
4837 | return err; | ||
4838 | |||
4839 | e1000_power_up_phy(adapter); | ||
4833 | e1000_reset(adapter); | 4840 | e1000_reset(adapter); |
4834 | E1000_WRITE_REG(&adapter->hw, WUS, ~0); | 4841 | E1000_WRITE_REG(&adapter->hw, WUS, ~0); |
4835 | 4842 | ||
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c index 8f059b7968bd..06e4f77b0988 100644 --- a/drivers/net/tg3.c +++ b/drivers/net/tg3.c | |||
@@ -10212,7 +10212,7 @@ skip_phy_reset: | |||
10212 | static void __devinit tg3_read_partno(struct tg3 *tp) | 10212 | static void __devinit tg3_read_partno(struct tg3 *tp) |
10213 | { | 10213 | { |
10214 | unsigned char vpd_data[256]; | 10214 | unsigned char vpd_data[256]; |
10215 | int i; | 10215 | unsigned int i; |
10216 | u32 magic; | 10216 | u32 magic; |
10217 | 10217 | ||
10218 | if (tg3_nvram_read_swab(tp, 0x0, &magic)) | 10218 | if (tg3_nvram_read_swab(tp, 0x0, &magic)) |
@@ -10258,9 +10258,9 @@ static void __devinit tg3_read_partno(struct tg3 *tp) | |||
10258 | } | 10258 | } |
10259 | 10259 | ||
10260 | /* Now parse and find the part number. */ | 10260 | /* Now parse and find the part number. */ |
10261 | for (i = 0; i < 256; ) { | 10261 | for (i = 0; i < 254; ) { |
10262 | unsigned char val = vpd_data[i]; | 10262 | unsigned char val = vpd_data[i]; |
10263 | int block_end; | 10263 | unsigned int block_end; |
10264 | 10264 | ||
10265 | if (val == 0x82 || val == 0x91) { | 10265 | if (val == 0x82 || val == 0x91) { |
10266 | i = (i + 3 + | 10266 | i = (i + 3 + |
@@ -10276,21 +10276,26 @@ static void __devinit tg3_read_partno(struct tg3 *tp) | |||
10276 | (vpd_data[i + 1] + | 10276 | (vpd_data[i + 1] + |
10277 | (vpd_data[i + 2] << 8))); | 10277 | (vpd_data[i + 2] << 8))); |
10278 | i += 3; | 10278 | i += 3; |
10279 | while (i < block_end) { | 10279 | |
10280 | if (block_end > 256) | ||
10281 | goto out_not_found; | ||
10282 | |||
10283 | while (i < (block_end - 2)) { | ||
10280 | if (vpd_data[i + 0] == 'P' && | 10284 | if (vpd_data[i + 0] == 'P' && |
10281 | vpd_data[i + 1] == 'N') { | 10285 | vpd_data[i + 1] == 'N') { |
10282 | int partno_len = vpd_data[i + 2]; | 10286 | int partno_len = vpd_data[i + 2]; |
10283 | 10287 | ||
10284 | if (partno_len > 24) | 10288 | i += 3; |
10289 | if (partno_len > 24 || (partno_len + i) > 256) | ||
10285 | goto out_not_found; | 10290 | goto out_not_found; |
10286 | 10291 | ||
10287 | memcpy(tp->board_part_number, | 10292 | memcpy(tp->board_part_number, |
10288 | &vpd_data[i + 3], | 10293 | &vpd_data[i], partno_len); |
10289 | partno_len); | ||
10290 | 10294 | ||
10291 | /* Success. */ | 10295 | /* Success. */ |
10292 | return; | 10296 | return; |
10293 | } | 10297 | } |
10298 | i += 3 + vpd_data[i + 2]; | ||
10294 | } | 10299 | } |
10295 | 10300 | ||
10296 | /* Part number not found. */ | 10301 | /* Part number not found. */ |
diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_main.c b/drivers/net/wireless/bcm43xx/bcm43xx_main.c index 65edb56107fd..a1b783813d8e 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx_main.c +++ b/drivers/net/wireless/bcm43xx/bcm43xx_main.c | |||
@@ -746,7 +746,7 @@ int bcm43xx_sprom_write(struct bcm43xx_private *bcm, const u16 *sprom) | |||
746 | if (err) | 746 | if (err) |
747 | goto err_ctlreg; | 747 | goto err_ctlreg; |
748 | spromctl |= 0x10; /* SPROM WRITE enable. */ | 748 | spromctl |= 0x10; /* SPROM WRITE enable. */ |
749 | bcm43xx_pci_write_config32(bcm, BCM43xx_PCICFG_SPROMCTL, spromctl); | 749 | err = bcm43xx_pci_write_config32(bcm, BCM43xx_PCICFG_SPROMCTL, spromctl); |
750 | if (err) | 750 | if (err) |
751 | goto err_ctlreg; | 751 | goto err_ctlreg; |
752 | /* We must burn lots of CPU cycles here, but that does not | 752 | /* We must burn lots of CPU cycles here, but that does not |
@@ -768,7 +768,7 @@ int bcm43xx_sprom_write(struct bcm43xx_private *bcm, const u16 *sprom) | |||
768 | mdelay(20); | 768 | mdelay(20); |
769 | } | 769 | } |
770 | spromctl &= ~0x10; /* SPROM WRITE enable. */ | 770 | spromctl &= ~0x10; /* SPROM WRITE enable. */ |
771 | bcm43xx_pci_write_config32(bcm, BCM43xx_PCICFG_SPROMCTL, spromctl); | 771 | err = bcm43xx_pci_write_config32(bcm, BCM43xx_PCICFG_SPROMCTL, spromctl); |
772 | if (err) | 772 | if (err) |
773 | goto err_ctlreg; | 773 | goto err_ctlreg; |
774 | mdelay(500); | 774 | mdelay(500); |
@@ -1463,6 +1463,23 @@ static void handle_irq_transmit_status(struct bcm43xx_private *bcm) | |||
1463 | } | 1463 | } |
1464 | } | 1464 | } |
1465 | 1465 | ||
1466 | static void drain_txstatus_queue(struct bcm43xx_private *bcm) | ||
1467 | { | ||
1468 | u32 dummy; | ||
1469 | |||
1470 | if (bcm->current_core->rev < 5) | ||
1471 | return; | ||
1472 | /* Read all entries from the microcode TXstatus FIFO | ||
1473 | * and throw them away. | ||
1474 | */ | ||
1475 | while (1) { | ||
1476 | dummy = bcm43xx_read32(bcm, BCM43xx_MMIO_XMITSTAT_0); | ||
1477 | if (!dummy) | ||
1478 | break; | ||
1479 | dummy = bcm43xx_read32(bcm, BCM43xx_MMIO_XMITSTAT_1); | ||
1480 | } | ||
1481 | } | ||
1482 | |||
1466 | static void bcm43xx_generate_noise_sample(struct bcm43xx_private *bcm) | 1483 | static void bcm43xx_generate_noise_sample(struct bcm43xx_private *bcm) |
1467 | { | 1484 | { |
1468 | bcm43xx_shm_write16(bcm, BCM43xx_SHM_SHARED, 0x408, 0x7F7F); | 1485 | bcm43xx_shm_write16(bcm, BCM43xx_SHM_SHARED, 0x408, 0x7F7F); |
@@ -3532,6 +3549,7 @@ int bcm43xx_select_wireless_core(struct bcm43xx_private *bcm, | |||
3532 | bcm43xx_macfilter_clear(bcm, BCM43xx_MACFILTER_ASSOC); | 3549 | bcm43xx_macfilter_clear(bcm, BCM43xx_MACFILTER_ASSOC); |
3533 | bcm43xx_macfilter_set(bcm, BCM43xx_MACFILTER_SELF, (u8 *)(bcm->net_dev->dev_addr)); | 3550 | bcm43xx_macfilter_set(bcm, BCM43xx_MACFILTER_SELF, (u8 *)(bcm->net_dev->dev_addr)); |
3534 | bcm43xx_security_init(bcm); | 3551 | bcm43xx_security_init(bcm); |
3552 | drain_txstatus_queue(bcm); | ||
3535 | ieee80211softmac_start(bcm->net_dev); | 3553 | ieee80211softmac_start(bcm->net_dev); |
3536 | 3554 | ||
3537 | /* Let's go! Be careful after enabling the IRQs. | 3555 | /* Let's go! Be careful after enabling the IRQs. |
diff --git a/drivers/pci/htirq.c b/drivers/pci/htirq.c index 0e27f2404a83..0a8d1cce9fa0 100644 --- a/drivers/pci/htirq.c +++ b/drivers/pci/htirq.c | |||
@@ -25,97 +25,72 @@ static DEFINE_SPINLOCK(ht_irq_lock); | |||
25 | 25 | ||
26 | struct ht_irq_cfg { | 26 | struct ht_irq_cfg { |
27 | struct pci_dev *dev; | 27 | struct pci_dev *dev; |
28 | /* Update callback used to cope with buggy hardware */ | ||
29 | ht_irq_update_t *update; | ||
28 | unsigned pos; | 30 | unsigned pos; |
29 | unsigned idx; | 31 | unsigned idx; |
32 | struct ht_irq_msg msg; | ||
30 | }; | 33 | }; |
31 | 34 | ||
32 | void write_ht_irq_low(unsigned int irq, u32 data) | ||
33 | { | ||
34 | struct ht_irq_cfg *cfg = get_irq_data(irq); | ||
35 | unsigned long flags; | ||
36 | spin_lock_irqsave(&ht_irq_lock, flags); | ||
37 | pci_write_config_byte(cfg->dev, cfg->pos + 2, cfg->idx); | ||
38 | pci_write_config_dword(cfg->dev, cfg->pos + 4, data); | ||
39 | spin_unlock_irqrestore(&ht_irq_lock, flags); | ||
40 | } | ||
41 | 35 | ||
42 | void write_ht_irq_high(unsigned int irq, u32 data) | 36 | void write_ht_irq_msg(unsigned int irq, struct ht_irq_msg *msg) |
43 | { | 37 | { |
44 | struct ht_irq_cfg *cfg = get_irq_data(irq); | 38 | struct ht_irq_cfg *cfg = get_irq_data(irq); |
45 | unsigned long flags; | 39 | unsigned long flags; |
46 | spin_lock_irqsave(&ht_irq_lock, flags); | 40 | spin_lock_irqsave(&ht_irq_lock, flags); |
47 | pci_write_config_byte(cfg->dev, cfg->pos + 2, cfg->idx + 1); | 41 | if (cfg->msg.address_lo != msg->address_lo) { |
48 | pci_write_config_dword(cfg->dev, cfg->pos + 4, data); | 42 | pci_write_config_byte(cfg->dev, cfg->pos + 2, cfg->idx); |
49 | spin_unlock_irqrestore(&ht_irq_lock, flags); | 43 | pci_write_config_dword(cfg->dev, cfg->pos + 4, msg->address_lo); |
50 | } | 44 | } |
51 | 45 | if (cfg->msg.address_hi != msg->address_hi) { | |
52 | u32 read_ht_irq_low(unsigned int irq) | 46 | pci_write_config_byte(cfg->dev, cfg->pos + 2, cfg->idx + 1); |
53 | { | 47 | pci_write_config_dword(cfg->dev, cfg->pos + 4, msg->address_hi); |
54 | struct ht_irq_cfg *cfg = get_irq_data(irq); | 48 | } |
55 | unsigned long flags; | 49 | if (cfg->update) |
56 | u32 data; | 50 | cfg->update(cfg->dev, irq, msg); |
57 | spin_lock_irqsave(&ht_irq_lock, flags); | ||
58 | pci_write_config_byte(cfg->dev, cfg->pos + 2, cfg->idx); | ||
59 | pci_read_config_dword(cfg->dev, cfg->pos + 4, &data); | ||
60 | spin_unlock_irqrestore(&ht_irq_lock, flags); | 51 | spin_unlock_irqrestore(&ht_irq_lock, flags); |
61 | return data; | 52 | cfg->msg = *msg; |
62 | } | 53 | } |
63 | 54 | ||
64 | u32 read_ht_irq_high(unsigned int irq) | 55 | void fetch_ht_irq_msg(unsigned int irq, struct ht_irq_msg *msg) |
65 | { | 56 | { |
66 | struct ht_irq_cfg *cfg = get_irq_data(irq); | 57 | struct ht_irq_cfg *cfg = get_irq_data(irq); |
67 | unsigned long flags; | 58 | *msg = cfg->msg; |
68 | u32 data; | ||
69 | spin_lock_irqsave(&ht_irq_lock, flags); | ||
70 | pci_write_config_byte(cfg->dev, cfg->pos + 2, cfg->idx + 1); | ||
71 | pci_read_config_dword(cfg->dev, cfg->pos + 4, &data); | ||
72 | spin_unlock_irqrestore(&ht_irq_lock, flags); | ||
73 | return data; | ||
74 | } | 59 | } |
75 | 60 | ||
76 | void mask_ht_irq(unsigned int irq) | 61 | void mask_ht_irq(unsigned int irq) |
77 | { | 62 | { |
78 | struct ht_irq_cfg *cfg; | 63 | struct ht_irq_cfg *cfg; |
79 | unsigned long flags; | 64 | struct ht_irq_msg msg; |
80 | u32 data; | ||
81 | 65 | ||
82 | cfg = get_irq_data(irq); | 66 | cfg = get_irq_data(irq); |
83 | 67 | ||
84 | spin_lock_irqsave(&ht_irq_lock, flags); | 68 | msg = cfg->msg; |
85 | pci_write_config_byte(cfg->dev, cfg->pos + 2, cfg->idx); | 69 | msg.address_lo |= 1; |
86 | pci_read_config_dword(cfg->dev, cfg->pos + 4, &data); | 70 | write_ht_irq_msg(irq, &msg); |
87 | data |= 1; | ||
88 | pci_write_config_dword(cfg->dev, cfg->pos + 4, data); | ||
89 | spin_unlock_irqrestore(&ht_irq_lock, flags); | ||
90 | } | 71 | } |
91 | 72 | ||
92 | void unmask_ht_irq(unsigned int irq) | 73 | void unmask_ht_irq(unsigned int irq) |
93 | { | 74 | { |
94 | struct ht_irq_cfg *cfg; | 75 | struct ht_irq_cfg *cfg; |
95 | unsigned long flags; | 76 | struct ht_irq_msg msg; |
96 | u32 data; | ||
97 | 77 | ||
98 | cfg = get_irq_data(irq); | 78 | cfg = get_irq_data(irq); |
99 | 79 | ||
100 | spin_lock_irqsave(&ht_irq_lock, flags); | 80 | msg = cfg->msg; |
101 | pci_write_config_byte(cfg->dev, cfg->pos + 2, cfg->idx); | 81 | msg.address_lo &= ~1; |
102 | pci_read_config_dword(cfg->dev, cfg->pos + 4, &data); | 82 | write_ht_irq_msg(irq, &msg); |
103 | data &= ~1; | ||
104 | pci_write_config_dword(cfg->dev, cfg->pos + 4, data); | ||
105 | spin_unlock_irqrestore(&ht_irq_lock, flags); | ||
106 | } | 83 | } |
107 | 84 | ||
108 | /** | 85 | /** |
109 | * ht_create_irq - create an irq and attach it to a device. | 86 | * __ht_create_irq - create an irq and attach it to a device. |
110 | * @dev: The hypertransport device to find the irq capability on. | 87 | * @dev: The hypertransport device to find the irq capability on. |
111 | * @idx: Which of the possible irqs to attach to. | 88 | * @idx: Which of the possible irqs to attach to. |
112 | * | 89 | * @update: Function to be called when changing the htirq message |
113 | * ht_create_irq is needs to be called for all hypertransport devices | ||
114 | * that generate irqs. | ||
115 | * | 90 | * |
116 | * The irq number of the new irq or a negative error value is returned. | 91 | * The irq number of the new irq or a negative error value is returned. |
117 | */ | 92 | */ |
118 | int ht_create_irq(struct pci_dev *dev, int idx) | 93 | int __ht_create_irq(struct pci_dev *dev, int idx, ht_irq_update_t *update) |
119 | { | 94 | { |
120 | struct ht_irq_cfg *cfg; | 95 | struct ht_irq_cfg *cfg; |
121 | unsigned long flags; | 96 | unsigned long flags; |
@@ -150,8 +125,12 @@ int ht_create_irq(struct pci_dev *dev, int idx) | |||
150 | return -ENOMEM; | 125 | return -ENOMEM; |
151 | 126 | ||
152 | cfg->dev = dev; | 127 | cfg->dev = dev; |
128 | cfg->update = update; | ||
153 | cfg->pos = pos; | 129 | cfg->pos = pos; |
154 | cfg->idx = 0x10 + (idx * 2); | 130 | cfg->idx = 0x10 + (idx * 2); |
131 | /* Initialize msg to a value that will never match the first write. */ | ||
132 | cfg->msg.address_lo = 0xffffffff; | ||
133 | cfg->msg.address_hi = 0xffffffff; | ||
155 | 134 | ||
156 | irq = create_irq(); | 135 | irq = create_irq(); |
157 | if (irq < 0) { | 136 | if (irq < 0) { |
@@ -169,6 +148,21 @@ int ht_create_irq(struct pci_dev *dev, int idx) | |||
169 | } | 148 | } |
170 | 149 | ||
171 | /** | 150 | /** |
151 | * ht_create_irq - create an irq and attach it to a device. | ||
152 | * @dev: The hypertransport device to find the irq capability on. | ||
153 | * @idx: Which of the possible irqs to attach to. | ||
154 | * | ||
155 | * ht_create_irq needs to be called for all hypertransport devices | ||
156 | * that generate irqs. | ||
157 | * | ||
158 | * The irq number of the new irq or a negative error value is returned. | ||
159 | */ | ||
160 | int ht_create_irq(struct pci_dev *dev, int idx) | ||
161 | { | ||
162 | return __ht_create_irq(dev, idx, NULL); | ||
163 | } | ||
164 | |||
165 | /** | ||
172 | * ht_destroy_irq - destroy an irq created with ht_create_irq | 166 | * ht_destroy_irq - destroy an irq created with ht_create_irq |
173 | * | 167 | * |
174 | * This reverses ht_create_irq removing the specified irq from | 168 | * This reverses ht_create_irq removing the specified irq from |
@@ -186,5 +180,6 @@ void ht_destroy_irq(unsigned int irq) | |||
186 | kfree(cfg); | 180 | kfree(cfg); |
187 | } | 181 | } |
188 | 182 | ||
183 | EXPORT_SYMBOL(__ht_create_irq); | ||
189 | EXPORT_SYMBOL(ht_create_irq); | 184 | EXPORT_SYMBOL(ht_create_irq); |
190 | EXPORT_SYMBOL(ht_destroy_irq); | 185 | EXPORT_SYMBOL(ht_destroy_irq); |
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c index a1d2e979b17f..f952bfea48a6 100644 --- a/drivers/pci/pci-sysfs.c +++ b/drivers/pci/pci-sysfs.c | |||
@@ -642,6 +642,9 @@ err: | |||
642 | */ | 642 | */ |
643 | void pci_remove_sysfs_dev_files(struct pci_dev *pdev) | 643 | void pci_remove_sysfs_dev_files(struct pci_dev *pdev) |
644 | { | 644 | { |
645 | if (!sysfs_initialized) | ||
646 | return; | ||
647 | |||
645 | if (pdev->cfg_size < 4096) | 648 | if (pdev->cfg_size < 4096) |
646 | sysfs_remove_bin_file(&pdev->dev.kobj, &pci_config_attr); | 649 | sysfs_remove_bin_file(&pdev->dev.kobj, &pci_config_attr); |
647 | else | 650 | else |
diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c index fd9e281c3bfe..94a274645f6f 100644 --- a/drivers/scsi/scsi_scan.c +++ b/drivers/scsi/scsi_scan.c | |||
@@ -631,12 +631,22 @@ static int scsi_add_lun(struct scsi_device *sdev, unsigned char *inq_result, | |||
631 | * scanning run at their own risk, or supply a user level program | 631 | * scanning run at their own risk, or supply a user level program |
632 | * that can correctly scan. | 632 | * that can correctly scan. |
633 | */ | 633 | */ |
634 | sdev->inquiry = kmalloc(sdev->inquiry_len, GFP_ATOMIC); | 634 | |
635 | if (sdev->inquiry == NULL) { | 635 | /* |
636 | * Copy at least 36 bytes of INQUIRY data, so that we don't | ||
637 | * dereference unallocated memory when accessing the Vendor, | ||
638 | * Product, and Revision strings. Badly behaved devices may set | ||
639 | * the INQUIRY Additional Length byte to a small value, indicating | ||
640 | * these strings are invalid, but often they contain plausible data | ||
641 | * nonetheless. It doesn't matter if the device sent < 36 bytes | ||
642 | * total, since scsi_probe_lun() initializes inq_result with 0s. | ||
643 | */ | ||
644 | sdev->inquiry = kmemdup(inq_result, | ||
645 | max_t(size_t, sdev->inquiry_len, 36), | ||
646 | GFP_ATOMIC); | ||
647 | if (sdev->inquiry == NULL) | ||
636 | return SCSI_SCAN_NO_RESPONSE; | 648 | return SCSI_SCAN_NO_RESPONSE; |
637 | } | ||
638 | 649 | ||
639 | memcpy(sdev->inquiry, inq_result, sdev->inquiry_len); | ||
640 | sdev->vendor = (char *) (sdev->inquiry + 8); | 650 | sdev->vendor = (char *) (sdev->inquiry + 8); |
641 | sdev->model = (char *) (sdev->inquiry + 16); | 651 | sdev->model = (char *) (sdev->inquiry + 16); |
642 | sdev->rev = (char *) (sdev->inquiry + 32); | 652 | sdev->rev = (char *) (sdev->inquiry + 32); |
diff --git a/drivers/telephony/ixj.h b/drivers/telephony/ixj.h index fbea4541c234..8d69bcdc29c9 100644 --- a/drivers/telephony/ixj.h +++ b/drivers/telephony/ixj.h | |||
@@ -1295,7 +1295,7 @@ typedef struct { | |||
1295 | Proc_Info_Type Info_write; | 1295 | Proc_Info_Type Info_write; |
1296 | unsigned short frame_count; | 1296 | unsigned short frame_count; |
1297 | unsigned int filter_hist[4]; | 1297 | unsigned int filter_hist[4]; |
1298 | unsigned char filter_en[4]; | 1298 | unsigned char filter_en[6]; |
1299 | unsigned short proc_load; | 1299 | unsigned short proc_load; |
1300 | unsigned long framesread; | 1300 | unsigned long framesread; |
1301 | unsigned long frameswritten; | 1301 | unsigned long frameswritten; |
diff --git a/drivers/video/nvidia/nv_hw.c b/drivers/video/nvidia/nv_hw.c index 9ed640d35728..ea426115c6f9 100644 --- a/drivers/video/nvidia/nv_hw.c +++ b/drivers/video/nvidia/nv_hw.c | |||
@@ -145,12 +145,18 @@ static void nvGetClocks(struct nvidia_par *par, unsigned int *MClk, | |||
145 | 145 | ||
146 | if (par->Architecture >= NV_ARCH_40) { | 146 | if (par->Architecture >= NV_ARCH_40) { |
147 | pll = NV_RD32(par->PMC, 0x4020); | 147 | pll = NV_RD32(par->PMC, 0x4020); |
148 | P = (pll >> 16) & 0x03; | 148 | P = (pll >> 16) & 0x07; |
149 | pll = NV_RD32(par->PMC, 0x4024); | 149 | pll = NV_RD32(par->PMC, 0x4024); |
150 | M = pll & 0xFF; | 150 | M = pll & 0xFF; |
151 | N = (pll >> 8) & 0xFF; | 151 | N = (pll >> 8) & 0xFF; |
152 | MB = (pll >> 16) & 0xFF; | 152 | if (((par->Chipset & 0xfff0) == 0x0290) || |
153 | NB = (pll >> 24) & 0xFF; | 153 | ((par->Chipset & 0xfff0) == 0x0390)) { |
154 | MB = 1; | ||
155 | NB = 1; | ||
156 | } else { | ||
157 | MB = (pll >> 16) & 0xFF; | ||
158 | NB = (pll >> 24) & 0xFF; | ||
159 | } | ||
154 | *MClk = ((N * NB * par->CrystalFreqKHz) / (M * MB)) >> P; | 160 | *MClk = ((N * NB * par->CrystalFreqKHz) / (M * MB)) >> P; |
155 | 161 | ||
156 | pll = NV_RD32(par->PMC, 0x4000); | 162 | pll = NV_RD32(par->PMC, 0x4000); |
diff --git a/drivers/video/nvidia/nv_setup.c b/drivers/video/nvidia/nv_setup.c index a18a9aebf05f..61dc46fecf2b 100644 --- a/drivers/video/nvidia/nv_setup.c +++ b/drivers/video/nvidia/nv_setup.c | |||
@@ -359,6 +359,7 @@ int NVCommonSetup(struct fb_info *info) | |||
359 | case 0x0186: | 359 | case 0x0186: |
360 | case 0x0187: | 360 | case 0x0187: |
361 | case 0x018D: | 361 | case 0x018D: |
362 | case 0x0228: | ||
362 | case 0x0286: | 363 | case 0x0286: |
363 | case 0x028C: | 364 | case 0x028C: |
364 | case 0x0316: | 365 | case 0x0316: |
@@ -382,6 +383,10 @@ int NVCommonSetup(struct fb_info *info) | |||
382 | case 0x034C: | 383 | case 0x034C: |
383 | case 0x0160: | 384 | case 0x0160: |
384 | case 0x0166: | 385 | case 0x0166: |
386 | case 0x0169: | ||
387 | case 0x016B: | ||
388 | case 0x016C: | ||
389 | case 0x016D: | ||
385 | case 0x00C8: | 390 | case 0x00C8: |
386 | case 0x00CC: | 391 | case 0x00CC: |
387 | case 0x0144: | 392 | case 0x0144: |
@@ -639,12 +644,23 @@ int NVCommonSetup(struct fb_info *info) | |||
639 | par->fpHeight = NV_RD32(par->PRAMDAC, 0x0800) + 1; | 644 | par->fpHeight = NV_RD32(par->PRAMDAC, 0x0800) + 1; |
640 | par->fpSyncs = NV_RD32(par->PRAMDAC, 0x0848) & 0x30000033; | 645 | par->fpSyncs = NV_RD32(par->PRAMDAC, 0x0848) & 0x30000033; |
641 | 646 | ||
642 | printk("Panel size is %i x %i\n", par->fpWidth, par->fpHeight); | 647 | printk("nvidiafb: Panel size is %i x %i\n", par->fpWidth, par->fpHeight); |
643 | } | 648 | } |
644 | 649 | ||
645 | if (monA) | 650 | if (monA) |
646 | info->monspecs = *monA; | 651 | info->monspecs = *monA; |
647 | 652 | ||
653 | if (!par->FlatPanel || !par->twoHeads) | ||
654 | par->FPDither = 0; | ||
655 | |||
656 | par->LVDS = 0; | ||
657 | if (par->FlatPanel && par->twoHeads) { | ||
658 | NV_WR32(par->PRAMDAC0, 0x08B0, 0x00010004); | ||
659 | if (par->PRAMDAC0[0x08b4] & 1) | ||
660 | par->LVDS = 1; | ||
661 | printk("nvidiafb: Panel is %s\n", par->LVDS ? "LVDS" : "TMDS"); | ||
662 | } | ||
663 | |||
648 | kfree(edidA); | 664 | kfree(edidA); |
649 | kfree(edidB); | 665 | kfree(edidB); |
650 | done: | 666 | done: |
diff --git a/drivers/video/nvidia/nv_type.h b/drivers/video/nvidia/nv_type.h index acdc26693402..86e65dea60d3 100644 --- a/drivers/video/nvidia/nv_type.h +++ b/drivers/video/nvidia/nv_type.h | |||
@@ -129,6 +129,7 @@ struct nvidia_par { | |||
129 | int fpHeight; | 129 | int fpHeight; |
130 | int PanelTweak; | 130 | int PanelTweak; |
131 | int paneltweak; | 131 | int paneltweak; |
132 | int LVDS; | ||
132 | int pm_state; | 133 | int pm_state; |
133 | u32 crtcSync_read; | 134 | u32 crtcSync_read; |
134 | u32 fpSyncs; | 135 | u32 fpSyncs; |
diff --git a/drivers/video/nvidia/nvidia.c b/drivers/video/nvidia/nvidia.c index eb24107bcc81..538e947610e1 100644 --- a/drivers/video/nvidia/nvidia.c +++ b/drivers/video/nvidia/nvidia.c | |||
@@ -1160,20 +1160,20 @@ static u32 __devinit nvidia_get_arch(struct fb_info *info) | |||
1160 | case 0x0340: /* GeForceFX 5700 */ | 1160 | case 0x0340: /* GeForceFX 5700 */ |
1161 | arch = NV_ARCH_30; | 1161 | arch = NV_ARCH_30; |
1162 | break; | 1162 | break; |
1163 | case 0x0040: | 1163 | case 0x0040: /* GeForce 6800 */ |
1164 | case 0x00C0: | 1164 | case 0x00C0: /* GeForce 6800 */ |
1165 | case 0x0120: | 1165 | case 0x0120: /* GeForce 6800 */ |
1166 | case 0x0130: | 1166 | case 0x0130: |
1167 | case 0x0140: | 1167 | case 0x0140: /* GeForce 6600 */ |
1168 | case 0x0160: | 1168 | case 0x0160: /* GeForce 6200 */ |
1169 | case 0x01D0: | 1169 | case 0x01D0: /* GeForce 7200, 7300, 7400 */ |
1170 | case 0x0090: | 1170 | case 0x0090: /* GeForce 7800 */ |
1171 | case 0x0210: | 1171 | case 0x0210: /* GeForce 6800 */ |
1172 | case 0x0220: | 1172 | case 0x0220: /* GeForce 6200 */ |
1173 | case 0x0230: | 1173 | case 0x0230: |
1174 | case 0x0240: | 1174 | case 0x0240: /* GeForce 6100 */ |
1175 | case 0x0290: | 1175 | case 0x0290: /* GeForce 7900 */ |
1176 | case 0x0390: | 1176 | case 0x0390: /* GeForce 7600 */ |
1177 | arch = NV_ARCH_40; | 1177 | arch = NV_ARCH_40; |
1178 | break; | 1178 | break; |
1179 | case 0x0020: /* TNT, TNT2 */ | 1179 | case 0x0020: /* TNT, TNT2 */ |
diff --git a/fs/nfsd/nfs3proc.c b/fs/nfsd/nfs3proc.c index 64db601c2bd2..7f5bad0393b1 100644 --- a/fs/nfsd/nfs3proc.c +++ b/fs/nfsd/nfs3proc.c | |||
@@ -258,7 +258,7 @@ nfsd3_proc_create(struct svc_rqst *rqstp, struct nfsd3_createargs *argp, | |||
258 | /* Now create the file and set attributes */ | 258 | /* Now create the file and set attributes */ |
259 | nfserr = nfsd_create_v3(rqstp, dirfhp, argp->name, argp->len, | 259 | nfserr = nfsd_create_v3(rqstp, dirfhp, argp->name, argp->len, |
260 | attr, newfhp, | 260 | attr, newfhp, |
261 | argp->createmode, argp->verf, NULL); | 261 | argp->createmode, argp->verf, NULL, NULL); |
262 | 262 | ||
263 | RETURN_STATUS(nfserr); | 263 | RETURN_STATUS(nfserr); |
264 | } | 264 | } |
diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c index 0a7bbdc4a10a..50bc94243ca1 100644 --- a/fs/nfsd/nfs4proc.c +++ b/fs/nfsd/nfs4proc.c | |||
@@ -93,6 +93,7 @@ do_open_lookup(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_o | |||
93 | { | 93 | { |
94 | struct svc_fh resfh; | 94 | struct svc_fh resfh; |
95 | __be32 status; | 95 | __be32 status; |
96 | int created = 0; | ||
96 | 97 | ||
97 | fh_init(&resfh, NFS4_FHSIZE); | 98 | fh_init(&resfh, NFS4_FHSIZE); |
98 | open->op_truncate = 0; | 99 | open->op_truncate = 0; |
@@ -105,28 +106,27 @@ do_open_lookup(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_o | |||
105 | status = nfsd_create_v3(rqstp, current_fh, open->op_fname.data, | 106 | status = nfsd_create_v3(rqstp, current_fh, open->op_fname.data, |
106 | open->op_fname.len, &open->op_iattr, | 107 | open->op_fname.len, &open->op_iattr, |
107 | &resfh, open->op_createmode, | 108 | &resfh, open->op_createmode, |
108 | (u32 *)open->op_verf.data, &open->op_truncate); | 109 | (u32 *)open->op_verf.data, &open->op_truncate, &created); |
109 | } | 110 | } else { |
110 | else { | ||
111 | status = nfsd_lookup(rqstp, current_fh, | 111 | status = nfsd_lookup(rqstp, current_fh, |
112 | open->op_fname.data, open->op_fname.len, &resfh); | 112 | open->op_fname.data, open->op_fname.len, &resfh); |
113 | fh_unlock(current_fh); | 113 | fh_unlock(current_fh); |
114 | } | 114 | } |
115 | if (status) | ||
116 | goto out; | ||
115 | 117 | ||
116 | if (!status) { | 118 | set_change_info(&open->op_cinfo, current_fh); |
117 | set_change_info(&open->op_cinfo, current_fh); | ||
118 | 119 | ||
119 | /* set reply cache */ | 120 | /* set reply cache */ |
120 | fh_dup2(current_fh, &resfh); | 121 | fh_dup2(current_fh, &resfh); |
121 | open->op_stateowner->so_replay.rp_openfh_len = | 122 | open->op_stateowner->so_replay.rp_openfh_len = resfh.fh_handle.fh_size; |
122 | resfh.fh_handle.fh_size; | 123 | memcpy(open->op_stateowner->so_replay.rp_openfh, |
123 | memcpy(open->op_stateowner->so_replay.rp_openfh, | 124 | &resfh.fh_handle.fh_base, resfh.fh_handle.fh_size); |
124 | &resfh.fh_handle.fh_base, | ||
125 | resfh.fh_handle.fh_size); | ||
126 | 125 | ||
126 | if (!created) | ||
127 | status = do_open_permission(rqstp, current_fh, open, MAY_NOP); | 127 | status = do_open_permission(rqstp, current_fh, open, MAY_NOP); |
128 | } | ||
129 | 128 | ||
129 | out: | ||
130 | fh_put(&resfh); | 130 | fh_put(&resfh); |
131 | return status; | 131 | return status; |
132 | } | 132 | } |
diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c index f21e917bb8ed..bb4d926e4487 100644 --- a/fs/nfsd/vfs.c +++ b/fs/nfsd/vfs.c | |||
@@ -1177,7 +1177,7 @@ nfsd_create(struct svc_rqst *rqstp, struct svc_fh *fhp, | |||
1177 | /* | 1177 | /* |
1178 | * Get the dir op function pointer. | 1178 | * Get the dir op function pointer. |
1179 | */ | 1179 | */ |
1180 | err = nfserr_perm; | 1180 | err = 0; |
1181 | switch (type) { | 1181 | switch (type) { |
1182 | case S_IFREG: | 1182 | case S_IFREG: |
1183 | host_err = vfs_create(dirp, dchild, iap->ia_mode, NULL); | 1183 | host_err = vfs_create(dirp, dchild, iap->ia_mode, NULL); |
@@ -1237,7 +1237,7 @@ __be32 | |||
1237 | nfsd_create_v3(struct svc_rqst *rqstp, struct svc_fh *fhp, | 1237 | nfsd_create_v3(struct svc_rqst *rqstp, struct svc_fh *fhp, |
1238 | char *fname, int flen, struct iattr *iap, | 1238 | char *fname, int flen, struct iattr *iap, |
1239 | struct svc_fh *resfhp, int createmode, u32 *verifier, | 1239 | struct svc_fh *resfhp, int createmode, u32 *verifier, |
1240 | int *truncp) | 1240 | int *truncp, int *created) |
1241 | { | 1241 | { |
1242 | struct dentry *dentry, *dchild = NULL; | 1242 | struct dentry *dentry, *dchild = NULL; |
1243 | struct inode *dirp; | 1243 | struct inode *dirp; |
@@ -1331,6 +1331,8 @@ nfsd_create_v3(struct svc_rqst *rqstp, struct svc_fh *fhp, | |||
1331 | host_err = vfs_create(dirp, dchild, iap->ia_mode, NULL); | 1331 | host_err = vfs_create(dirp, dchild, iap->ia_mode, NULL); |
1332 | if (host_err < 0) | 1332 | if (host_err < 0) |
1333 | goto out_nfserr; | 1333 | goto out_nfserr; |
1334 | if (created) | ||
1335 | *created = 1; | ||
1334 | 1336 | ||
1335 | if (EX_ISSYNC(fhp->fh_export)) { | 1337 | if (EX_ISSYNC(fhp->fh_export)) { |
1336 | err = nfserrno(nfsd_sync_dir(dentry)); | 1338 | err = nfserrno(nfsd_sync_dir(dentry)); |
diff --git a/include/asm-arm/arch-pxa/pxa-regs.h b/include/asm-arm/arch-pxa/pxa-regs.h index 68731e0923a4..cff752f35230 100644 --- a/include/asm-arm/arch-pxa/pxa-regs.h +++ b/include/asm-arm/arch-pxa/pxa-regs.h | |||
@@ -2242,7 +2242,7 @@ | |||
2242 | 2242 | ||
2243 | #define CICR1_TBIT (1 << 31) /* Transparency bit */ | 2243 | #define CICR1_TBIT (1 << 31) /* Transparency bit */ |
2244 | #define CICR1_RGBT_CONV (0x3 << 30) /* RGBT conversion mask */ | 2244 | #define CICR1_RGBT_CONV (0x3 << 30) /* RGBT conversion mask */ |
2245 | #define CICR1_PPL (0x3f << 15) /* Pixels per line mask */ | 2245 | #define CICR1_PPL (0x7ff << 15) /* Pixels per line mask */ |
2246 | #define CICR1_RGB_CONV (0x7 << 12) /* RGB conversion mask */ | 2246 | #define CICR1_RGB_CONV (0x7 << 12) /* RGB conversion mask */ |
2247 | #define CICR1_RGB_F (1 << 11) /* RGB format */ | 2247 | #define CICR1_RGB_F (1 << 11) /* RGB format */ |
2248 | #define CICR1_YCBCR_F (1 << 10) /* YCbCr format */ | 2248 | #define CICR1_YCBCR_F (1 << 10) /* YCbCr format */ |
@@ -2268,7 +2268,7 @@ | |||
2268 | #define CICR3_VSW (0x3f << 10) /* Vertical sync pulse width mask */ | 2268 | #define CICR3_VSW (0x3f << 10) /* Vertical sync pulse width mask */ |
2269 | #define CICR3_BFPW (0x3f << 3) /* Beginning-of-frame pixel clock | 2269 | #define CICR3_BFPW (0x3f << 3) /* Beginning-of-frame pixel clock |
2270 | wait count mask */ | 2270 | wait count mask */ |
2271 | #define CICR3_LPF (0x3ff << 0) /* Lines per frame mask */ | 2271 | #define CICR3_LPF (0x7ff << 0) /* Lines per frame mask */ |
2272 | 2272 | ||
2273 | #define CICR4_MCLK_DLY (0x3 << 24) /* MCLK Data Capture Delay mask */ | 2273 | #define CICR4_MCLK_DLY (0x3 << 24) /* MCLK Data Capture Delay mask */ |
2274 | #define CICR4_PCLK_EN (1 << 23) /* Pixel clock enable */ | 2274 | #define CICR4_PCLK_EN (1 << 23) /* Pixel clock enable */ |
@@ -2289,8 +2289,8 @@ | |||
2289 | #define CISR_EOL (1 << 8) /* End of line */ | 2289 | #define CISR_EOL (1 << 8) /* End of line */ |
2290 | #define CISR_PAR_ERR (1 << 7) /* Parity error */ | 2290 | #define CISR_PAR_ERR (1 << 7) /* Parity error */ |
2291 | #define CISR_CQD (1 << 6) /* Camera interface quick disable */ | 2291 | #define CISR_CQD (1 << 6) /* Camera interface quick disable */ |
2292 | #define CISR_SOF (1 << 5) /* Start of frame */ | 2292 | #define CISR_CDD (1 << 5) /* Camera interface disable done */ |
2293 | #define CISR_CDD (1 << 4) /* Camera interface disable done */ | 2293 | #define CISR_SOF (1 << 4) /* Start of frame */ |
2294 | #define CISR_EOF (1 << 3) /* End of frame */ | 2294 | #define CISR_EOF (1 << 3) /* End of frame */ |
2295 | #define CISR_IFO_2 (1 << 2) /* FIFO overrun for Channel 2 */ | 2295 | #define CISR_IFO_2 (1 << 2) /* FIFO overrun for Channel 2 */ |
2296 | #define CISR_IFO_1 (1 << 1) /* FIFO overrun for Channel 1 */ | 2296 | #define CISR_IFO_1 (1 << 1) /* FIFO overrun for Channel 1 */ |
diff --git a/include/asm-ia64/sn/addrs.h b/include/asm-ia64/sn/addrs.h index 1d9efe541662..e715c794b186 100644 --- a/include/asm-ia64/sn/addrs.h +++ b/include/asm-ia64/sn/addrs.h | |||
@@ -136,9 +136,13 @@ | |||
136 | */ | 136 | */ |
137 | #define TO_PHYS(x) (TO_PHYS_MASK & (x)) | 137 | #define TO_PHYS(x) (TO_PHYS_MASK & (x)) |
138 | #define TO_CAC(x) (CAC_BASE | TO_PHYS(x)) | 138 | #define TO_CAC(x) (CAC_BASE | TO_PHYS(x)) |
139 | #ifdef CONFIG_SGI_SN | ||
139 | #define TO_AMO(x) (AMO_BASE | TO_PHYS(x)) | 140 | #define TO_AMO(x) (AMO_BASE | TO_PHYS(x)) |
140 | #define TO_GET(x) (GET_BASE | TO_PHYS(x)) | 141 | #define TO_GET(x) (GET_BASE | TO_PHYS(x)) |
141 | 142 | #else | |
143 | #define TO_AMO(x) ({ BUG(); x; }) | ||
144 | #define TO_GET(x) ({ BUG(); x; }) | ||
145 | #endif | ||
142 | 146 | ||
143 | /* | 147 | /* |
144 | * Covert from processor physical address to II/TIO physical address: | 148 | * Covert from processor physical address to II/TIO physical address: |
diff --git a/include/asm-x86_64/io_apic.h b/include/asm-x86_64/io_apic.h index 171ec2dc8c04..561ecbfd4cb5 100644 --- a/include/asm-x86_64/io_apic.h +++ b/include/asm-x86_64/io_apic.h | |||
@@ -12,10 +12,6 @@ | |||
12 | 12 | ||
13 | #define APIC_MISMATCH_DEBUG | 13 | #define APIC_MISMATCH_DEBUG |
14 | 14 | ||
15 | #define IO_APIC_BASE(idx) \ | ||
16 | ((volatile int *)(__fix_to_virt(FIX_IO_APIC_BASE_0 + idx) \ | ||
17 | + (mp_ioapics[idx].mpc_apicaddr & ~PAGE_MASK))) | ||
18 | |||
19 | /* | 15 | /* |
20 | * The structure of the IO-APIC: | 16 | * The structure of the IO-APIC: |
21 | */ | 17 | */ |
@@ -119,36 +115,6 @@ extern struct mpc_config_intsrc mp_irqs[MAX_IRQ_SOURCES]; | |||
119 | /* non-0 if default (table-less) MP configuration */ | 115 | /* non-0 if default (table-less) MP configuration */ |
120 | extern int mpc_default_type; | 116 | extern int mpc_default_type; |
121 | 117 | ||
122 | static inline unsigned int io_apic_read(unsigned int apic, unsigned int reg) | ||
123 | { | ||
124 | *IO_APIC_BASE(apic) = reg; | ||
125 | return *(IO_APIC_BASE(apic)+4); | ||
126 | } | ||
127 | |||
128 | static inline void io_apic_write(unsigned int apic, unsigned int reg, unsigned int value) | ||
129 | { | ||
130 | *IO_APIC_BASE(apic) = reg; | ||
131 | *(IO_APIC_BASE(apic)+4) = value; | ||
132 | } | ||
133 | |||
134 | /* | ||
135 | * Re-write a value: to be used for read-modify-write | ||
136 | * cycles where the read already set up the index register. | ||
137 | */ | ||
138 | static inline void io_apic_modify(unsigned int apic, unsigned int value) | ||
139 | { | ||
140 | *(IO_APIC_BASE(apic)+4) = value; | ||
141 | } | ||
142 | |||
143 | /* | ||
144 | * Synchronize the IO-APIC and the CPU by doing | ||
145 | * a dummy read from the IO-APIC | ||
146 | */ | ||
147 | static inline void io_apic_sync(unsigned int apic) | ||
148 | { | ||
149 | (void) *(IO_APIC_BASE(apic)+4); | ||
150 | } | ||
151 | |||
152 | /* 1 if "noapic" boot option passed */ | 118 | /* 1 if "noapic" boot option passed */ |
153 | extern int skip_ioapic_setup; | 119 | extern int skip_ioapic_setup; |
154 | 120 | ||
diff --git a/include/linux/htirq.h b/include/linux/htirq.h index 1f15ce279a23..c96ea46737d0 100644 --- a/include/linux/htirq.h +++ b/include/linux/htirq.h | |||
@@ -1,15 +1,23 @@ | |||
1 | #ifndef LINUX_HTIRQ_H | 1 | #ifndef LINUX_HTIRQ_H |
2 | #define LINUX_HTIRQ_H | 2 | #define LINUX_HTIRQ_H |
3 | 3 | ||
4 | struct ht_irq_msg { | ||
5 | u32 address_lo; /* low 32 bits of the ht irq message */ | ||
6 | u32 address_hi; /* high 32 bits of the it irq message */ | ||
7 | }; | ||
8 | |||
4 | /* Helper functions.. */ | 9 | /* Helper functions.. */ |
5 | void write_ht_irq_low(unsigned int irq, u32 data); | 10 | void fetch_ht_irq_msg(unsigned int irq, struct ht_irq_msg *msg); |
6 | void write_ht_irq_high(unsigned int irq, u32 data); | 11 | void write_ht_irq_msg(unsigned int irq, struct ht_irq_msg *msg); |
7 | u32 read_ht_irq_low(unsigned int irq); | ||
8 | u32 read_ht_irq_high(unsigned int irq); | ||
9 | void mask_ht_irq(unsigned int irq); | 12 | void mask_ht_irq(unsigned int irq); |
10 | void unmask_ht_irq(unsigned int irq); | 13 | void unmask_ht_irq(unsigned int irq); |
11 | 14 | ||
12 | /* The arch hook for getting things started */ | 15 | /* The arch hook for getting things started */ |
13 | int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev); | 16 | int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev); |
14 | 17 | ||
18 | /* For drivers of buggy hardware */ | ||
19 | typedef void (ht_irq_update_t)(struct pci_dev *dev, int irq, | ||
20 | struct ht_irq_msg *msg); | ||
21 | int __ht_create_irq(struct pci_dev *dev, int idx, ht_irq_update_t *update); | ||
22 | |||
15 | #endif /* LINUX_HTIRQ_H */ | 23 | #endif /* LINUX_HTIRQ_H */ |
diff --git a/include/linux/ipmi_msgdefs.h b/include/linux/ipmi_msgdefs.h index 22f5e2afda4f..4d04d8b58a0a 100644 --- a/include/linux/ipmi_msgdefs.h +++ b/include/linux/ipmi_msgdefs.h | |||
@@ -75,6 +75,8 @@ | |||
75 | #define IPMI_INVALID_COMMAND_ERR 0xc1 | 75 | #define IPMI_INVALID_COMMAND_ERR 0xc1 |
76 | #define IPMI_ERR_MSG_TRUNCATED 0xc6 | 76 | #define IPMI_ERR_MSG_TRUNCATED 0xc6 |
77 | #define IPMI_LOST_ARBITRATION_ERR 0x81 | 77 | #define IPMI_LOST_ARBITRATION_ERR 0x81 |
78 | #define IPMI_BUS_ERR 0x82 | ||
79 | #define IPMI_NAK_ON_WRITE_ERR 0x83 | ||
78 | #define IPMI_ERR_UNSPECIFIED 0xff | 80 | #define IPMI_ERR_UNSPECIFIED 0xff |
79 | 81 | ||
80 | #define IPMI_CHANNEL_PROTOCOL_IPMB 1 | 82 | #define IPMI_CHANNEL_PROTOCOL_IPMB 1 |
diff --git a/include/linux/nfsd/nfsd.h b/include/linux/nfsd/nfsd.h index eb231143d579..edb54c3171b3 100644 --- a/include/linux/nfsd/nfsd.h +++ b/include/linux/nfsd/nfsd.h | |||
@@ -89,7 +89,7 @@ __be32 nfsd_access(struct svc_rqst *, struct svc_fh *, u32 *, u32 *); | |||
89 | __be32 nfsd_create_v3(struct svc_rqst *, struct svc_fh *, | 89 | __be32 nfsd_create_v3(struct svc_rqst *, struct svc_fh *, |
90 | char *name, int len, struct iattr *attrs, | 90 | char *name, int len, struct iattr *attrs, |
91 | struct svc_fh *res, int createmode, | 91 | struct svc_fh *res, int createmode, |
92 | u32 *verifier, int *truncp); | 92 | u32 *verifier, int *truncp, int *created); |
93 | __be32 nfsd_commit(struct svc_rqst *, struct svc_fh *, | 93 | __be32 nfsd_commit(struct svc_rqst *, struct svc_fh *, |
94 | loff_t, unsigned long); | 94 | loff_t, unsigned long); |
95 | #endif /* CONFIG_NFSD_V3 */ | 95 | #endif /* CONFIG_NFSD_V3 */ |
diff --git a/include/linux/personality.h b/include/linux/personality.h index bf4cf2080e5c..012cd558189b 100644 --- a/include/linux/personality.h +++ b/include/linux/personality.h | |||
@@ -114,7 +114,7 @@ struct exec_domain { | |||
114 | * Change personality of the currently running process. | 114 | * Change personality of the currently running process. |
115 | */ | 115 | */ |
116 | #define set_personality(pers) \ | 116 | #define set_personality(pers) \ |
117 | ((current->personality == pers) ? 0 : __set_personality(pers)) | 117 | ((current->personality == (pers)) ? 0 : __set_personality(pers)) |
118 | 118 | ||
119 | #endif /* __KERNEL__ */ | 119 | #endif /* __KERNEL__ */ |
120 | 120 | ||
diff --git a/include/linux/vmalloc.h b/include/linux/vmalloc.h index dc9a29d84abc..924e502905d4 100644 --- a/include/linux/vmalloc.h +++ b/include/linux/vmalloc.h | |||
@@ -23,13 +23,14 @@ struct vm_area_struct; | |||
23 | #endif | 23 | #endif |
24 | 24 | ||
25 | struct vm_struct { | 25 | struct vm_struct { |
26 | /* keep next,addr,size together to speedup lookups */ | ||
27 | struct vm_struct *next; | ||
26 | void *addr; | 28 | void *addr; |
27 | unsigned long size; | 29 | unsigned long size; |
28 | unsigned long flags; | 30 | unsigned long flags; |
29 | struct page **pages; | 31 | struct page **pages; |
30 | unsigned int nr_pages; | 32 | unsigned int nr_pages; |
31 | unsigned long phys_addr; | 33 | unsigned long phys_addr; |
32 | struct vm_struct *next; | ||
33 | }; | 34 | }; |
34 | 35 | ||
35 | /* | 36 | /* |
diff --git a/init/Kconfig b/init/Kconfig index c8b2624af176..176f7e5136c7 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
@@ -304,20 +304,19 @@ config UID16 | |||
304 | 304 | ||
305 | config SYSCTL_SYSCALL | 305 | config SYSCTL_SYSCALL |
306 | bool "Sysctl syscall support" if EMBEDDED | 306 | bool "Sysctl syscall support" if EMBEDDED |
307 | default n | 307 | default y |
308 | select SYSCTL | 308 | select SYSCTL |
309 | ---help--- | 309 | ---help--- |
310 | Enable the deprecated sysctl system call. sys_sysctl uses | 310 | sys_sysctl uses binary paths that have been found challenging |
311 | binary paths that have been found to be a major pain to maintain | 311 | to properly maintain and use. The interface in /proc/sys |
312 | and use. The interface in /proc/sys is now the primary and what | 312 | using paths with ascii names is now the primary path to this |
313 | everyone uses. | 313 | information. |
314 | 314 | ||
315 | Nothing has been using the binary sysctl interface for some | 315 | Almost nothing using the binary sysctl interface so if you are |
316 | time now so nothing should break if you disable sysctl syscall | 316 | trying to save some space it is probably safe to disable this, |
317 | support, and your kernel will get marginally smaller. | 317 | making your kernel marginally smaller. |
318 | 318 | ||
319 | Unless you have an application that uses the sys_sysctl interface | 319 | If unsure say Y here. |
320 | you should probably say N here. | ||
321 | 320 | ||
322 | config KALLSYMS | 321 | config KALLSYMS |
323 | bool "Load all symbols for debugging/kksymoops" if EMBEDDED | 322 | bool "Load all symbols for debugging/kksymoops" if EMBEDDED |
diff --git a/kernel/fork.c b/kernel/fork.c index 3da978eec791..4b4eab2a3161 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
@@ -687,6 +687,7 @@ static struct files_struct *dup_fd(struct files_struct *oldf, int *errorp) | |||
687 | * the latest pointer. | 687 | * the latest pointer. |
688 | */ | 688 | */ |
689 | spin_lock(&oldf->file_lock); | 689 | spin_lock(&oldf->file_lock); |
690 | open_files = count_open_files(old_fdt); | ||
690 | old_fdt = files_fdtable(oldf); | 691 | old_fdt = files_fdtable(oldf); |
691 | } | 692 | } |
692 | 693 | ||
diff --git a/kernel/irq/spurious.c b/kernel/irq/spurious.c index 543ea2e5ad93..9c7e2e4c1fe7 100644 --- a/kernel/irq/spurious.c +++ b/kernel/irq/spurious.c | |||
@@ -147,7 +147,11 @@ void note_interrupt(unsigned int irq, struct irq_desc *desc, | |||
147 | if (unlikely(irqfixup)) { | 147 | if (unlikely(irqfixup)) { |
148 | /* Don't punish working computers */ | 148 | /* Don't punish working computers */ |
149 | if ((irqfixup == 2 && irq == 0) || action_ret == IRQ_NONE) { | 149 | if ((irqfixup == 2 && irq == 0) || action_ret == IRQ_NONE) { |
150 | int ok = misrouted_irq(irq); | 150 | int ok; |
151 | |||
152 | spin_unlock(&desc->lock); | ||
153 | ok = misrouted_irq(irq); | ||
154 | spin_lock(&desc->lock); | ||
151 | if (action_ret == IRQ_NONE) | 155 | if (action_ret == IRQ_NONE) |
152 | desc->irqs_unhandled -= ok; | 156 | desc->irqs_unhandled -= ok; |
153 | } | 157 | } |
diff --git a/mm/vmalloc.c b/mm/vmalloc.c index 46606c133e82..7dc6aa745166 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c | |||
@@ -186,10 +186,8 @@ static struct vm_struct *__get_vm_area_node(unsigned long size, unsigned long fl | |||
186 | if (unlikely(!area)) | 186 | if (unlikely(!area)) |
187 | return NULL; | 187 | return NULL; |
188 | 188 | ||
189 | if (unlikely(!size)) { | 189 | if (unlikely(!size)) |
190 | kfree (area); | ||
191 | return NULL; | 190 | return NULL; |
192 | } | ||
193 | 191 | ||
194 | /* | 192 | /* |
195 | * We always allocate a guard page. | 193 | * We always allocate a guard page. |
@@ -532,11 +530,12 @@ void *vmalloc_user(unsigned long size) | |||
532 | void *ret; | 530 | void *ret; |
533 | 531 | ||
534 | ret = __vmalloc(size, GFP_KERNEL | __GFP_HIGHMEM | __GFP_ZERO, PAGE_KERNEL); | 532 | ret = __vmalloc(size, GFP_KERNEL | __GFP_HIGHMEM | __GFP_ZERO, PAGE_KERNEL); |
535 | write_lock(&vmlist_lock); | 533 | if (ret) { |
536 | area = __find_vm_area(ret); | 534 | write_lock(&vmlist_lock); |
537 | area->flags |= VM_USERMAP; | 535 | area = __find_vm_area(ret); |
538 | write_unlock(&vmlist_lock); | 536 | area->flags |= VM_USERMAP; |
539 | 537 | write_unlock(&vmlist_lock); | |
538 | } | ||
540 | return ret; | 539 | return ret; |
541 | } | 540 | } |
542 | EXPORT_SYMBOL(vmalloc_user); | 541 | EXPORT_SYMBOL(vmalloc_user); |
@@ -605,11 +604,12 @@ void *vmalloc_32_user(unsigned long size) | |||
605 | void *ret; | 604 | void *ret; |
606 | 605 | ||
607 | ret = __vmalloc(size, GFP_KERNEL | __GFP_ZERO, PAGE_KERNEL); | 606 | ret = __vmalloc(size, GFP_KERNEL | __GFP_ZERO, PAGE_KERNEL); |
608 | write_lock(&vmlist_lock); | 607 | if (ret) { |
609 | area = __find_vm_area(ret); | 608 | write_lock(&vmlist_lock); |
610 | area->flags |= VM_USERMAP; | 609 | area = __find_vm_area(ret); |
611 | write_unlock(&vmlist_lock); | 610 | area->flags |= VM_USERMAP; |
612 | 611 | write_unlock(&vmlist_lock); | |
612 | } | ||
613 | return ret; | 613 | return ret; |
614 | } | 614 | } |
615 | EXPORT_SYMBOL(vmalloc_32_user); | 615 | EXPORT_SYMBOL(vmalloc_32_user); |
diff --git a/net/core/netpoll.c b/net/core/netpoll.c index 9308af060b44..6589adb14cbf 100644 --- a/net/core/netpoll.c +++ b/net/core/netpoll.c | |||
@@ -340,6 +340,12 @@ void netpoll_send_udp(struct netpoll *np, const char *msg, int len) | |||
340 | udph->dest = htons(np->remote_port); | 340 | udph->dest = htons(np->remote_port); |
341 | udph->len = htons(udp_len); | 341 | udph->len = htons(udp_len); |
342 | udph->check = 0; | 342 | udph->check = 0; |
343 | udph->check = csum_tcpudp_magic(htonl(np->local_ip), | ||
344 | htonl(np->remote_ip), | ||
345 | udp_len, IPPROTO_UDP, | ||
346 | csum_partial((unsigned char *)udph, udp_len, 0)); | ||
347 | if (udph->check == 0) | ||
348 | udph->check = -1; | ||
343 | 349 | ||
344 | skb->nh.iph = iph = (struct iphdr *)skb_push(skb, sizeof(*iph)); | 350 | skb->nh.iph = iph = (struct iphdr *)skb_push(skb, sizeof(*iph)); |
345 | 351 | ||
diff --git a/net/core/skbuff.c b/net/core/skbuff.c index f735455dc5d1..b8b106358040 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c | |||
@@ -639,6 +639,7 @@ struct sk_buff *pskb_copy(struct sk_buff *skb, gfp_t gfp_mask) | |||
639 | n->csum = skb->csum; | 639 | n->csum = skb->csum; |
640 | n->ip_summed = skb->ip_summed; | 640 | n->ip_summed = skb->ip_summed; |
641 | 641 | ||
642 | n->truesize += skb->data_len; | ||
642 | n->data_len = skb->data_len; | 643 | n->data_len = skb->data_len; |
643 | n->len = skb->len; | 644 | n->len = skb->len; |
644 | 645 | ||
diff --git a/net/decnet/af_decnet.c b/net/decnet/af_decnet.c index 3456cd331835..21f20f21dd32 100644 --- a/net/decnet/af_decnet.c +++ b/net/decnet/af_decnet.c | |||
@@ -166,7 +166,7 @@ static struct hlist_head *dn_find_list(struct sock *sk) | |||
166 | if (scp->addr.sdn_flags & SDF_WILD) | 166 | if (scp->addr.sdn_flags & SDF_WILD) |
167 | return hlist_empty(&dn_wild_sk) ? &dn_wild_sk : NULL; | 167 | return hlist_empty(&dn_wild_sk) ? &dn_wild_sk : NULL; |
168 | 168 | ||
169 | return &dn_sk_hash[scp->addrloc & DN_SK_HASH_MASK]; | 169 | return &dn_sk_hash[dn_ntohs(scp->addrloc) & DN_SK_HASH_MASK]; |
170 | } | 170 | } |
171 | 171 | ||
172 | /* | 172 | /* |
@@ -180,7 +180,7 @@ static int check_port(__le16 port) | |||
180 | if (port == 0) | 180 | if (port == 0) |
181 | return -1; | 181 | return -1; |
182 | 182 | ||
183 | sk_for_each(sk, node, &dn_sk_hash[port & DN_SK_HASH_MASK]) { | 183 | sk_for_each(sk, node, &dn_sk_hash[dn_ntohs(port) & DN_SK_HASH_MASK]) { |
184 | struct dn_scp *scp = DN_SK(sk); | 184 | struct dn_scp *scp = DN_SK(sk); |
185 | if (scp->addrloc == port) | 185 | if (scp->addrloc == port) |
186 | return -1; | 186 | return -1; |
@@ -194,12 +194,12 @@ static unsigned short port_alloc(struct sock *sk) | |||
194 | static unsigned short port = 0x2000; | 194 | static unsigned short port = 0x2000; |
195 | unsigned short i_port = port; | 195 | unsigned short i_port = port; |
196 | 196 | ||
197 | while(check_port(++port) != 0) { | 197 | while(check_port(dn_htons(++port)) != 0) { |
198 | if (port == i_port) | 198 | if (port == i_port) |
199 | return 0; | 199 | return 0; |
200 | } | 200 | } |
201 | 201 | ||
202 | scp->addrloc = port; | 202 | scp->addrloc = dn_htons(port); |
203 | 203 | ||
204 | return 1; | 204 | return 1; |
205 | } | 205 | } |
@@ -418,7 +418,7 @@ struct sock *dn_find_by_skb(struct sk_buff *skb) | |||
418 | struct dn_scp *scp; | 418 | struct dn_scp *scp; |
419 | 419 | ||
420 | read_lock(&dn_hash_lock); | 420 | read_lock(&dn_hash_lock); |
421 | sk_for_each(sk, node, &dn_sk_hash[cb->dst_port & DN_SK_HASH_MASK]) { | 421 | sk_for_each(sk, node, &dn_sk_hash[dn_ntohs(cb->dst_port) & DN_SK_HASH_MASK]) { |
422 | scp = DN_SK(sk); | 422 | scp = DN_SK(sk); |
423 | if (cb->src != dn_saddr2dn(&scp->peer)) | 423 | if (cb->src != dn_saddr2dn(&scp->peer)) |
424 | continue; | 424 | continue; |
@@ -1016,13 +1016,14 @@ static void dn_access_copy(struct sk_buff *skb, struct accessdata_dn *acc) | |||
1016 | 1016 | ||
1017 | static void dn_user_copy(struct sk_buff *skb, struct optdata_dn *opt) | 1017 | static void dn_user_copy(struct sk_buff *skb, struct optdata_dn *opt) |
1018 | { | 1018 | { |
1019 | unsigned char *ptr = skb->data; | 1019 | unsigned char *ptr = skb->data; |
1020 | 1020 | u16 len = *ptr++; /* yes, it's 8bit on the wire */ | |
1021 | opt->opt_optl = *ptr++; | 1021 | |
1022 | opt->opt_status = 0; | 1022 | BUG_ON(len > 16); /* we've checked the contents earlier */ |
1023 | memcpy(opt->opt_data, ptr, opt->opt_optl); | 1023 | opt->opt_optl = dn_htons(len); |
1024 | skb_pull(skb, dn_ntohs(opt->opt_optl) + 1); | 1024 | opt->opt_status = 0; |
1025 | 1025 | memcpy(opt->opt_data, ptr, len); | |
1026 | skb_pull(skb, len + 1); | ||
1026 | } | 1027 | } |
1027 | 1028 | ||
1028 | static struct sk_buff *dn_wait_for_connect(struct sock *sk, long *timeo) | 1029 | static struct sk_buff *dn_wait_for_connect(struct sock *sk, long *timeo) |
diff --git a/net/decnet/dn_nsp_in.c b/net/decnet/dn_nsp_in.c index 72ecc6e62ec4..7683d4f754d2 100644 --- a/net/decnet/dn_nsp_in.c +++ b/net/decnet/dn_nsp_in.c | |||
@@ -360,9 +360,9 @@ static void dn_nsp_conn_conf(struct sock *sk, struct sk_buff *skb) | |||
360 | scp->max_window = decnet_no_fc_max_cwnd; | 360 | scp->max_window = decnet_no_fc_max_cwnd; |
361 | 361 | ||
362 | if (skb->len > 0) { | 362 | if (skb->len > 0) { |
363 | unsigned char dlen = *skb->data; | 363 | u16 dlen = *skb->data; |
364 | if ((dlen <= 16) && (dlen <= skb->len)) { | 364 | if ((dlen <= 16) && (dlen <= skb->len)) { |
365 | scp->conndata_in.opt_optl = dn_htons((__u16)dlen); | 365 | scp->conndata_in.opt_optl = dn_htons(dlen); |
366 | memcpy(scp->conndata_in.opt_data, skb->data + 1, dlen); | 366 | memcpy(scp->conndata_in.opt_data, skb->data + 1, dlen); |
367 | } | 367 | } |
368 | } | 368 | } |
@@ -404,9 +404,9 @@ static void dn_nsp_disc_init(struct sock *sk, struct sk_buff *skb) | |||
404 | memset(scp->discdata_in.opt_data, 0, 16); | 404 | memset(scp->discdata_in.opt_data, 0, 16); |
405 | 405 | ||
406 | if (skb->len > 0) { | 406 | if (skb->len > 0) { |
407 | unsigned char dlen = *skb->data; | 407 | u16 dlen = *skb->data; |
408 | if ((dlen <= 16) && (dlen <= skb->len)) { | 408 | if ((dlen <= 16) && (dlen <= skb->len)) { |
409 | scp->discdata_in.opt_optl = dn_htons((__u16)dlen); | 409 | scp->discdata_in.opt_optl = dn_htons(dlen); |
410 | memcpy(scp->discdata_in.opt_data, skb->data + 1, dlen); | 410 | memcpy(scp->discdata_in.opt_data, skb->data + 1, dlen); |
411 | } | 411 | } |
412 | } | 412 | } |
diff --git a/net/decnet/dn_nsp_out.c b/net/decnet/dn_nsp_out.c index c2e21cd89b3c..b342e4e8f5f8 100644 --- a/net/decnet/dn_nsp_out.c +++ b/net/decnet/dn_nsp_out.c | |||
@@ -526,7 +526,7 @@ void dn_send_conn_conf(struct sock *sk, gfp_t gfp) | |||
526 | struct nsp_conn_init_msg *msg; | 526 | struct nsp_conn_init_msg *msg; |
527 | __u8 len = (__u8)dn_ntohs(scp->conndata_out.opt_optl); | 527 | __u8 len = (__u8)dn_ntohs(scp->conndata_out.opt_optl); |
528 | 528 | ||
529 | if ((skb = dn_alloc_skb(sk, 50 + dn_ntohs(scp->conndata_out.opt_optl), gfp)) == NULL) | 529 | if ((skb = dn_alloc_skb(sk, 50 + len, gfp)) == NULL) |
530 | return; | 530 | return; |
531 | 531 | ||
532 | msg = (struct nsp_conn_init_msg *)skb_put(skb, sizeof(*msg)); | 532 | msg = (struct nsp_conn_init_msg *)skb_put(skb, sizeof(*msg)); |
diff --git a/net/decnet/dn_rules.c b/net/decnet/dn_rules.c index 3e0c882c90bf..590e0a72495c 100644 --- a/net/decnet/dn_rules.c +++ b/net/decnet/dn_rules.c | |||
@@ -124,8 +124,8 @@ static struct nla_policy dn_fib_rule_policy[FRA_MAX+1] __read_mostly = { | |||
124 | static int dn_fib_rule_match(struct fib_rule *rule, struct flowi *fl, int flags) | 124 | static int dn_fib_rule_match(struct fib_rule *rule, struct flowi *fl, int flags) |
125 | { | 125 | { |
126 | struct dn_fib_rule *r = (struct dn_fib_rule *)rule; | 126 | struct dn_fib_rule *r = (struct dn_fib_rule *)rule; |
127 | u16 daddr = fl->fld_dst; | 127 | __le16 daddr = fl->fld_dst; |
128 | u16 saddr = fl->fld_src; | 128 | __le16 saddr = fl->fld_src; |
129 | 129 | ||
130 | if (((saddr ^ r->src) & r->srcmask) || | 130 | if (((saddr ^ r->src) & r->srcmask) || |
131 | ((daddr ^ r->dst) & r->dstmask)) | 131 | ((daddr ^ r->dst) & r->dstmask)) |
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index 66e9a729f6df..4322318ab332 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c | |||
@@ -2270,7 +2270,7 @@ void __init tcp_init(void) | |||
2270 | thash_entries, | 2270 | thash_entries, |
2271 | (num_physpages >= 128 * 1024) ? | 2271 | (num_physpages >= 128 * 1024) ? |
2272 | 13 : 15, | 2272 | 13 : 15, |
2273 | HASH_HIGHMEM, | 2273 | 0, |
2274 | &tcp_hashinfo.ehash_size, | 2274 | &tcp_hashinfo.ehash_size, |
2275 | NULL, | 2275 | NULL, |
2276 | 0); | 2276 | 0); |
@@ -2286,7 +2286,7 @@ void __init tcp_init(void) | |||
2286 | tcp_hashinfo.ehash_size, | 2286 | tcp_hashinfo.ehash_size, |
2287 | (num_physpages >= 128 * 1024) ? | 2287 | (num_physpages >= 128 * 1024) ? |
2288 | 13 : 15, | 2288 | 13 : 15, |
2289 | HASH_HIGHMEM, | 2289 | 0, |
2290 | &tcp_hashinfo.bhash_size, | 2290 | &tcp_hashinfo.bhash_size, |
2291 | NULL, | 2291 | NULL, |
2292 | 64 * 1024); | 2292 | 64 * 1024); |
diff --git a/net/sched/sch_htb.c b/net/sched/sch_htb.c index 9b9c555c713f..4b52fa78935a 100644 --- a/net/sched/sch_htb.c +++ b/net/sched/sch_htb.c | |||
@@ -1284,8 +1284,7 @@ static void htb_destroy_class(struct Qdisc *sch, struct htb_class *cl) | |||
1284 | struct htb_class, sibling)); | 1284 | struct htb_class, sibling)); |
1285 | 1285 | ||
1286 | /* note: this delete may happen twice (see htb_delete) */ | 1286 | /* note: this delete may happen twice (see htb_delete) */ |
1287 | if (!hlist_unhashed(&cl->hlist)) | 1287 | hlist_del_init(&cl->hlist); |
1288 | hlist_del(&cl->hlist); | ||
1289 | list_del(&cl->sibling); | 1288 | list_del(&cl->sibling); |
1290 | 1289 | ||
1291 | if (cl->prio_activity) | 1290 | if (cl->prio_activity) |
@@ -1333,8 +1332,7 @@ static int htb_delete(struct Qdisc *sch, unsigned long arg) | |||
1333 | sch_tree_lock(sch); | 1332 | sch_tree_lock(sch); |
1334 | 1333 | ||
1335 | /* delete from hash and active; remainder in destroy_class */ | 1334 | /* delete from hash and active; remainder in destroy_class */ |
1336 | if (!hlist_unhashed(&cl->hlist)) | 1335 | hlist_del_init(&cl->hlist); |
1337 | hlist_del(&cl->hlist); | ||
1338 | 1336 | ||
1339 | if (cl->prio_activity) | 1337 | if (cl->prio_activity) |
1340 | htb_deactivate(q, cl); | 1338 | htb_deactivate(q, cl); |
diff --git a/scripts/kconfig/.gitignore b/scripts/kconfig/.gitignore index e8ad1f6b3da4..b49584c932cc 100644 --- a/scripts/kconfig/.gitignore +++ b/scripts/kconfig/.gitignore | |||
@@ -6,6 +6,8 @@ lex.*.c | |||
6 | *.tab.c | 6 | *.tab.c |
7 | *.tab.h | 7 | *.tab.h |
8 | zconf.hash.c | 8 | zconf.hash.c |
9 | *.moc | ||
10 | lkc_defs.h | ||
9 | 11 | ||
10 | # | 12 | # |
11 | # configuration programs | 13 | # configuration programs |