diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2005-10-21 13:42:58 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2005-10-21 13:42:58 -0400 |
commit | ab27642b59b68d18df5a9aa5fa81b5ab5735aa77 (patch) | |
tree | afc2f191ef73e6eb1064de6358f44177d691aab0 | |
parent | ba9b543d5bec0a7605952e2ba501fb8b0f3b6407 (diff) | |
parent | 654b1536b0927d189526b9063818e0790aa3ea23 (diff) |
Merge branch 'master' of ssh://rsync.linux-nfs.org/home/trondmy/www_sites/rsync.linux-nfs.org/pub/linux/nfs-2.6
67 files changed, 1602 insertions, 528 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000000..5014bfa48ac1 --- /dev/null +++ b/.gitignore | |||
@@ -0,0 +1,30 @@ | |||
1 | # | ||
2 | # NOTE! Don't add files that are generated in specific | ||
3 | # subdirectories here. Add them in the ".gitignore" file | ||
4 | # in that subdirectory instead. | ||
5 | # | ||
6 | # Normal rules | ||
7 | # | ||
8 | .* | ||
9 | *.o | ||
10 | *.a | ||
11 | *.s | ||
12 | *.ko | ||
13 | *.mod.c | ||
14 | |||
15 | # | ||
16 | # Top-level generic files | ||
17 | # | ||
18 | vmlinux* | ||
19 | System.map | ||
20 | Module.symvers | ||
21 | |||
22 | # | ||
23 | # Generated include files | ||
24 | # | ||
25 | include/asm | ||
26 | include/config | ||
27 | include/linux/autoconf.h | ||
28 | include/linux/compile.h | ||
29 | include/linux/version.h | ||
30 | |||
@@ -1,7 +1,7 @@ | |||
1 | VERSION = 2 | 1 | VERSION = 2 |
2 | PATCHLEVEL = 6 | 2 | PATCHLEVEL = 6 |
3 | SUBLEVEL = 14 | 3 | SUBLEVEL = 14 |
4 | EXTRAVERSION =-rc4 | 4 | EXTRAVERSION =-rc5 |
5 | NAME=Affluent Albatross | 5 | NAME=Affluent Albatross |
6 | 6 | ||
7 | # *DOCUMENTATION* | 7 | # *DOCUMENTATION* |
@@ -372,7 +372,7 @@ export MODVERDIR := $(if $(KBUILD_EXTMOD),$(firstword $(KBUILD_EXTMOD))/).tmp_ve | |||
372 | # Files to ignore in find ... statements | 372 | # Files to ignore in find ... statements |
373 | 373 | ||
374 | RCS_FIND_IGNORE := \( -name SCCS -o -name BitKeeper -o -name .svn -o -name CVS -o -name .pc -o -name .hg \) -prune -o | 374 | RCS_FIND_IGNORE := \( -name SCCS -o -name BitKeeper -o -name .svn -o -name CVS -o -name .pc -o -name .hg \) -prune -o |
375 | RCS_TAR_IGNORE := --exclude SCCS --exclude BitKeeper --exclude .svn --exclude CVS --exclude .pc --exclude .hg | 375 | export RCS_TAR_IGNORE := --exclude SCCS --exclude BitKeeper --exclude .svn --exclude CVS --exclude .pc --exclude .hg |
376 | 376 | ||
377 | # =========================================================================== | 377 | # =========================================================================== |
378 | # Rules shared between *config targets and build targets | 378 | # Rules shared between *config targets and build targets |
diff --git a/arch/arm/mach-s3c2410/clock.c b/arch/arm/mach-s3c2410/clock.c index f59608268751..8b3d5dc35de5 100644 --- a/arch/arm/mach-s3c2410/clock.c +++ b/arch/arm/mach-s3c2410/clock.c | |||
@@ -98,7 +98,10 @@ struct clk *clk_get(struct device *dev, const char *id) | |||
98 | struct clk *clk = ERR_PTR(-ENOENT); | 98 | struct clk *clk = ERR_PTR(-ENOENT); |
99 | int idno; | 99 | int idno; |
100 | 100 | ||
101 | idno = (dev == NULL) ? -1 : to_platform_device(dev)->id; | 101 | if (dev == NULL || dev->bus != &platform_bus_type) |
102 | idno = -1; | ||
103 | else | ||
104 | idno = to_platform_device(dev)->id; | ||
102 | 105 | ||
103 | down(&clocks_sem); | 106 | down(&clocks_sem); |
104 | 107 | ||
diff --git a/arch/arm/mm/proc-v6.S b/arch/arm/mm/proc-v6.S index caf3b19b167f..9bb5fff406fb 100644 --- a/arch/arm/mm/proc-v6.S +++ b/arch/arm/mm/proc-v6.S | |||
@@ -55,7 +55,14 @@ ENTRY(cpu_v6_proc_init) | |||
55 | mov pc, lr | 55 | mov pc, lr |
56 | 56 | ||
57 | ENTRY(cpu_v6_proc_fin) | 57 | ENTRY(cpu_v6_proc_fin) |
58 | mov pc, lr | 58 | stmfd sp!, {lr} |
59 | cpsid if @ disable interrupts | ||
60 | bl v6_flush_kern_cache_all | ||
61 | mrc p15, 0, r0, c1, c0, 0 @ ctrl register | ||
62 | bic r0, r0, #0x1000 @ ...i............ | ||
63 | bic r0, r0, #0x0006 @ .............ca. | ||
64 | mcr p15, 0, r0, c1, c0, 0 @ disable caches | ||
65 | ldmfd sp!, {pc} | ||
59 | 66 | ||
60 | /* | 67 | /* |
61 | * cpu_v6_reset(loc) | 68 | * cpu_v6_reset(loc) |
diff --git a/arch/ia64/lib/swiotlb.c b/arch/ia64/lib/swiotlb.c index dbc0b3e449c5..a604efc7f6c9 100644 --- a/arch/ia64/lib/swiotlb.c +++ b/arch/ia64/lib/swiotlb.c | |||
@@ -123,8 +123,8 @@ swiotlb_init_with_default_size (size_t default_size) | |||
123 | /* | 123 | /* |
124 | * Get IO TLB memory from the low pages | 124 | * Get IO TLB memory from the low pages |
125 | */ | 125 | */ |
126 | io_tlb_start = alloc_bootmem_low_pages(io_tlb_nslabs * | 126 | io_tlb_start = alloc_bootmem_low_pages_limit(io_tlb_nslabs * |
127 | (1 << IO_TLB_SHIFT)); | 127 | (1 << IO_TLB_SHIFT), 0x100000000); |
128 | if (!io_tlb_start) | 128 | if (!io_tlb_start) |
129 | panic("Cannot allocate SWIOTLB buffer"); | 129 | panic("Cannot allocate SWIOTLB buffer"); |
130 | io_tlb_end = io_tlb_start + io_tlb_nslabs * (1 << IO_TLB_SHIFT); | 130 | io_tlb_end = io_tlb_start + io_tlb_nslabs * (1 << IO_TLB_SHIFT); |
diff --git a/arch/ppc64/configs/bpa_defconfig b/arch/ppc64/configs/bpa_defconfig index 46c5da41c3ae..67ffecbc05cb 100644 --- a/arch/ppc64/configs/bpa_defconfig +++ b/arch/ppc64/configs/bpa_defconfig | |||
@@ -1,17 +1,17 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.13-rc6 | 3 | # Linux kernel version: 2.6.14-rc4 |
4 | # Mon Aug 8 14:12:19 2005 | 4 | # Thu Oct 20 08:29:10 2005 |
5 | # | 5 | # |
6 | CONFIG_64BIT=y | 6 | CONFIG_64BIT=y |
7 | CONFIG_MMU=y | 7 | CONFIG_MMU=y |
8 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 8 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
9 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 9 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
10 | CONFIG_GENERIC_ISA_DMA=y | 10 | CONFIG_GENERIC_ISA_DMA=y |
11 | CONFIG_HAVE_DEC_LOCK=y | ||
12 | CONFIG_EARLY_PRINTK=y | 11 | CONFIG_EARLY_PRINTK=y |
13 | CONFIG_COMPAT=y | 12 | CONFIG_COMPAT=y |
14 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | 13 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y |
14 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | ||
15 | CONFIG_FORCE_MAX_ZONEORDER=13 | 15 | CONFIG_FORCE_MAX_ZONEORDER=13 |
16 | 16 | ||
17 | # | 17 | # |
@@ -26,6 +26,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32 | |||
26 | # General setup | 26 | # General setup |
27 | # | 27 | # |
28 | CONFIG_LOCALVERSION="" | 28 | CONFIG_LOCALVERSION="" |
29 | CONFIG_LOCALVERSION_AUTO=y | ||
29 | CONFIG_SWAP=y | 30 | CONFIG_SWAP=y |
30 | CONFIG_SYSVIPC=y | 31 | CONFIG_SYSVIPC=y |
31 | # CONFIG_POSIX_MQUEUE is not set | 32 | # CONFIG_POSIX_MQUEUE is not set |
@@ -36,6 +37,7 @@ CONFIG_HOTPLUG=y | |||
36 | CONFIG_KOBJECT_UEVENT=y | 37 | CONFIG_KOBJECT_UEVENT=y |
37 | # CONFIG_IKCONFIG is not set | 38 | # CONFIG_IKCONFIG is not set |
38 | # CONFIG_CPUSETS is not set | 39 | # CONFIG_CPUSETS is not set |
40 | CONFIG_INITRAMFS_SOURCE="" | ||
39 | # CONFIG_EMBEDDED is not set | 41 | # CONFIG_EMBEDDED is not set |
40 | CONFIG_KALLSYMS=y | 42 | CONFIG_KALLSYMS=y |
41 | # CONFIG_KALLSYMS_ALL is not set | 43 | # CONFIG_KALLSYMS_ALL is not set |
@@ -95,6 +97,7 @@ CONFIG_FLATMEM_MANUAL=y | |||
95 | # CONFIG_SPARSEMEM_MANUAL is not set | 97 | # CONFIG_SPARSEMEM_MANUAL is not set |
96 | CONFIG_FLATMEM=y | 98 | CONFIG_FLATMEM=y |
97 | CONFIG_FLAT_NODE_MEM_MAP=y | 99 | CONFIG_FLAT_NODE_MEM_MAP=y |
100 | # CONFIG_SPARSEMEM_STATIC is not set | ||
98 | # CONFIG_NUMA is not set | 101 | # CONFIG_NUMA is not set |
99 | CONFIG_SCHED_SMT=y | 102 | CONFIG_SCHED_SMT=y |
100 | CONFIG_PREEMPT_NONE=y | 103 | CONFIG_PREEMPT_NONE=y |
@@ -110,17 +113,18 @@ CONFIG_PPC_RTAS=y | |||
110 | CONFIG_RTAS_PROC=y | 113 | CONFIG_RTAS_PROC=y |
111 | CONFIG_RTAS_FLASH=y | 114 | CONFIG_RTAS_FLASH=y |
112 | CONFIG_SECCOMP=y | 115 | CONFIG_SECCOMP=y |
116 | CONFIG_BINFMT_ELF=y | ||
117 | # CONFIG_BINFMT_MISC is not set | ||
118 | CONFIG_PROC_DEVICETREE=y | ||
119 | # CONFIG_CMDLINE_BOOL is not set | ||
113 | CONFIG_ISA_DMA_API=y | 120 | CONFIG_ISA_DMA_API=y |
114 | 121 | ||
115 | # | 122 | # |
116 | # General setup | 123 | # Bus Options |
117 | # | 124 | # |
118 | CONFIG_PCI=y | 125 | CONFIG_PCI=y |
119 | CONFIG_PCI_DOMAINS=y | 126 | CONFIG_PCI_DOMAINS=y |
120 | CONFIG_BINFMT_ELF=y | ||
121 | # CONFIG_BINFMT_MISC is not set | ||
122 | CONFIG_PCI_LEGACY_PROC=y | 127 | CONFIG_PCI_LEGACY_PROC=y |
123 | CONFIG_PCI_NAMES=y | ||
124 | # CONFIG_PCI_DEBUG is not set | 128 | # CONFIG_PCI_DEBUG is not set |
125 | 129 | ||
126 | # | 130 | # |
@@ -132,8 +136,6 @@ CONFIG_PCI_NAMES=y | |||
132 | # PCI Hotplug Support | 136 | # PCI Hotplug Support |
133 | # | 137 | # |
134 | # CONFIG_HOTPLUG_PCI is not set | 138 | # CONFIG_HOTPLUG_PCI is not set |
135 | CONFIG_PROC_DEVICETREE=y | ||
136 | # CONFIG_CMDLINE_BOOL is not set | ||
137 | 139 | ||
138 | # | 140 | # |
139 | # Networking | 141 | # Networking |
@@ -163,8 +165,8 @@ CONFIG_SYN_COOKIES=y | |||
163 | # CONFIG_INET_ESP is not set | 165 | # CONFIG_INET_ESP is not set |
164 | # CONFIG_INET_IPCOMP is not set | 166 | # CONFIG_INET_IPCOMP is not set |
165 | CONFIG_INET_TUNNEL=y | 167 | CONFIG_INET_TUNNEL=y |
166 | CONFIG_IP_TCPDIAG=y | 168 | CONFIG_INET_DIAG=y |
167 | CONFIG_IP_TCPDIAG_IPV6=y | 169 | CONFIG_INET_TCP_DIAG=y |
168 | # CONFIG_TCP_CONG_ADVANCED is not set | 170 | # CONFIG_TCP_CONG_ADVANCED is not set |
169 | CONFIG_TCP_CONG_BIC=y | 171 | CONFIG_TCP_CONG_BIC=y |
170 | 172 | ||
@@ -181,6 +183,7 @@ CONFIG_INET6_TUNNEL=m | |||
181 | CONFIG_IPV6_TUNNEL=m | 183 | CONFIG_IPV6_TUNNEL=m |
182 | CONFIG_NETFILTER=y | 184 | CONFIG_NETFILTER=y |
183 | # CONFIG_NETFILTER_DEBUG is not set | 185 | # CONFIG_NETFILTER_DEBUG is not set |
186 | # CONFIG_NETFILTER_NETLINK is not set | ||
184 | 187 | ||
185 | # | 188 | # |
186 | # IP: Netfilter Configuration | 189 | # IP: Netfilter Configuration |
@@ -188,11 +191,14 @@ CONFIG_NETFILTER=y | |||
188 | CONFIG_IP_NF_CONNTRACK=y | 191 | CONFIG_IP_NF_CONNTRACK=y |
189 | # CONFIG_IP_NF_CT_ACCT is not set | 192 | # CONFIG_IP_NF_CT_ACCT is not set |
190 | # CONFIG_IP_NF_CONNTRACK_MARK is not set | 193 | # CONFIG_IP_NF_CONNTRACK_MARK is not set |
194 | # CONFIG_IP_NF_CONNTRACK_EVENTS is not set | ||
191 | CONFIG_IP_NF_CT_PROTO_SCTP=y | 195 | CONFIG_IP_NF_CT_PROTO_SCTP=y |
192 | CONFIG_IP_NF_FTP=m | 196 | CONFIG_IP_NF_FTP=m |
193 | CONFIG_IP_NF_IRC=m | 197 | CONFIG_IP_NF_IRC=m |
198 | # CONFIG_IP_NF_NETBIOS_NS is not set | ||
194 | CONFIG_IP_NF_TFTP=m | 199 | CONFIG_IP_NF_TFTP=m |
195 | CONFIG_IP_NF_AMANDA=m | 200 | CONFIG_IP_NF_AMANDA=m |
201 | # CONFIG_IP_NF_PPTP is not set | ||
196 | CONFIG_IP_NF_QUEUE=m | 202 | CONFIG_IP_NF_QUEUE=m |
197 | CONFIG_IP_NF_IPTABLES=m | 203 | CONFIG_IP_NF_IPTABLES=m |
198 | CONFIG_IP_NF_MATCH_LIMIT=m | 204 | CONFIG_IP_NF_MATCH_LIMIT=m |
@@ -216,13 +222,16 @@ CONFIG_IP_NF_MATCH_OWNER=m | |||
216 | CONFIG_IP_NF_MATCH_ADDRTYPE=m | 222 | CONFIG_IP_NF_MATCH_ADDRTYPE=m |
217 | CONFIG_IP_NF_MATCH_REALM=m | 223 | CONFIG_IP_NF_MATCH_REALM=m |
218 | CONFIG_IP_NF_MATCH_SCTP=m | 224 | CONFIG_IP_NF_MATCH_SCTP=m |
225 | # CONFIG_IP_NF_MATCH_DCCP is not set | ||
219 | CONFIG_IP_NF_MATCH_COMMENT=m | 226 | CONFIG_IP_NF_MATCH_COMMENT=m |
220 | CONFIG_IP_NF_MATCH_HASHLIMIT=m | 227 | CONFIG_IP_NF_MATCH_HASHLIMIT=m |
228 | CONFIG_IP_NF_MATCH_STRING=m | ||
221 | CONFIG_IP_NF_FILTER=m | 229 | CONFIG_IP_NF_FILTER=m |
222 | CONFIG_IP_NF_TARGET_REJECT=m | 230 | CONFIG_IP_NF_TARGET_REJECT=m |
223 | CONFIG_IP_NF_TARGET_LOG=m | 231 | CONFIG_IP_NF_TARGET_LOG=m |
224 | CONFIG_IP_NF_TARGET_ULOG=m | 232 | CONFIG_IP_NF_TARGET_ULOG=m |
225 | CONFIG_IP_NF_TARGET_TCPMSS=m | 233 | CONFIG_IP_NF_TARGET_TCPMSS=m |
234 | CONFIG_IP_NF_TARGET_NFQUEUE=m | ||
226 | CONFIG_IP_NF_NAT=m | 235 | CONFIG_IP_NF_NAT=m |
227 | CONFIG_IP_NF_NAT_NEEDED=y | 236 | CONFIG_IP_NF_NAT_NEEDED=y |
228 | CONFIG_IP_NF_TARGET_MASQUERADE=m | 237 | CONFIG_IP_NF_TARGET_MASQUERADE=m |
@@ -240,6 +249,7 @@ CONFIG_IP_NF_TARGET_ECN=m | |||
240 | CONFIG_IP_NF_TARGET_DSCP=m | 249 | CONFIG_IP_NF_TARGET_DSCP=m |
241 | CONFIG_IP_NF_TARGET_MARK=m | 250 | CONFIG_IP_NF_TARGET_MARK=m |
242 | CONFIG_IP_NF_TARGET_CLASSIFY=m | 251 | CONFIG_IP_NF_TARGET_CLASSIFY=m |
252 | CONFIG_IP_NF_TARGET_TTL=m | ||
243 | CONFIG_IP_NF_RAW=m | 253 | CONFIG_IP_NF_RAW=m |
244 | CONFIG_IP_NF_TARGET_NOTRACK=m | 254 | CONFIG_IP_NF_TARGET_NOTRACK=m |
245 | CONFIG_IP_NF_ARPTABLES=m | 255 | CONFIG_IP_NF_ARPTABLES=m |
@@ -251,6 +261,12 @@ CONFIG_IP_NF_ARP_MANGLE=m | |||
251 | # | 261 | # |
252 | # CONFIG_IP6_NF_QUEUE is not set | 262 | # CONFIG_IP6_NF_QUEUE is not set |
253 | # CONFIG_IP6_NF_IPTABLES is not set | 263 | # CONFIG_IP6_NF_IPTABLES is not set |
264 | # CONFIG_IP6_NF_TARGET_NFQUEUE is not set | ||
265 | |||
266 | # | ||
267 | # DCCP Configuration (EXPERIMENTAL) | ||
268 | # | ||
269 | # CONFIG_IP_DCCP is not set | ||
254 | 270 | ||
255 | # | 271 | # |
256 | # SCTP Configuration (EXPERIMENTAL) | 272 | # SCTP Configuration (EXPERIMENTAL) |
@@ -278,6 +294,7 @@ CONFIG_NET_CLS_ROUTE=y | |||
278 | # CONFIG_HAMRADIO is not set | 294 | # CONFIG_HAMRADIO is not set |
279 | # CONFIG_IRDA is not set | 295 | # CONFIG_IRDA is not set |
280 | # CONFIG_BT is not set | 296 | # CONFIG_BT is not set |
297 | # CONFIG_IEEE80211 is not set | ||
281 | 298 | ||
282 | # | 299 | # |
283 | # Device Drivers | 300 | # Device Drivers |
@@ -292,6 +309,11 @@ CONFIG_FW_LOADER=y | |||
292 | # CONFIG_DEBUG_DRIVER is not set | 309 | # CONFIG_DEBUG_DRIVER is not set |
293 | 310 | ||
294 | # | 311 | # |
312 | # Connector - unified userspace <-> kernelspace linker | ||
313 | # | ||
314 | # CONFIG_CONNECTOR is not set | ||
315 | |||
316 | # | ||
295 | # Memory Technology Devices (MTD) | 317 | # Memory Technology Devices (MTD) |
296 | # | 318 | # |
297 | # CONFIG_MTD is not set | 319 | # CONFIG_MTD is not set |
@@ -322,7 +344,6 @@ CONFIG_BLK_DEV_RAM=y | |||
322 | CONFIG_BLK_DEV_RAM_COUNT=16 | 344 | CONFIG_BLK_DEV_RAM_COUNT=16 |
323 | CONFIG_BLK_DEV_RAM_SIZE=131072 | 345 | CONFIG_BLK_DEV_RAM_SIZE=131072 |
324 | CONFIG_BLK_DEV_INITRD=y | 346 | CONFIG_BLK_DEV_INITRD=y |
325 | CONFIG_INITRAMFS_SOURCE="" | ||
326 | # CONFIG_CDROM_PKTCDVD is not set | 347 | # CONFIG_CDROM_PKTCDVD is not set |
327 | 348 | ||
328 | # | 349 | # |
@@ -395,6 +416,7 @@ CONFIG_IDEDMA_AUTO=y | |||
395 | # | 416 | # |
396 | # SCSI device support | 417 | # SCSI device support |
397 | # | 418 | # |
419 | # CONFIG_RAID_ATTRS is not set | ||
398 | # CONFIG_SCSI is not set | 420 | # CONFIG_SCSI is not set |
399 | 421 | ||
400 | # | 422 | # |
@@ -436,12 +458,18 @@ CONFIG_NETDEVICES=y | |||
436 | # CONFIG_ARCNET is not set | 458 | # CONFIG_ARCNET is not set |
437 | 459 | ||
438 | # | 460 | # |
461 | # PHY device support | ||
462 | # | ||
463 | # CONFIG_PHYLIB is not set | ||
464 | |||
465 | # | ||
439 | # Ethernet (10 or 100Mbit) | 466 | # Ethernet (10 or 100Mbit) |
440 | # | 467 | # |
441 | CONFIG_NET_ETHERNET=y | 468 | CONFIG_NET_ETHERNET=y |
442 | CONFIG_MII=y | 469 | CONFIG_MII=y |
443 | # CONFIG_HAPPYMEAL is not set | 470 | # CONFIG_HAPPYMEAL is not set |
444 | # CONFIG_SUNGEM is not set | 471 | # CONFIG_SUNGEM is not set |
472 | # CONFIG_CASSINI is not set | ||
445 | # CONFIG_NET_VENDOR_3COM is not set | 473 | # CONFIG_NET_VENDOR_3COM is not set |
446 | 474 | ||
447 | # | 475 | # |
@@ -462,15 +490,18 @@ CONFIG_E1000=m | |||
462 | # CONFIG_HAMACHI is not set | 490 | # CONFIG_HAMACHI is not set |
463 | # CONFIG_YELLOWFIN is not set | 491 | # CONFIG_YELLOWFIN is not set |
464 | # CONFIG_R8169 is not set | 492 | # CONFIG_R8169 is not set |
493 | # CONFIG_SIS190 is not set | ||
465 | CONFIG_SKGE=m | 494 | CONFIG_SKGE=m |
466 | # CONFIG_SK98LIN is not set | 495 | # CONFIG_SK98LIN is not set |
467 | # CONFIG_TIGON3 is not set | 496 | # CONFIG_TIGON3 is not set |
468 | # CONFIG_BNX2 is not set | 497 | # CONFIG_BNX2 is not set |
498 | # CONFIG_SPIDER_NET is not set | ||
469 | # CONFIG_MV643XX_ETH is not set | 499 | # CONFIG_MV643XX_ETH is not set |
470 | 500 | ||
471 | # | 501 | # |
472 | # Ethernet (10000 Mbit) | 502 | # Ethernet (10000 Mbit) |
473 | # | 503 | # |
504 | # CONFIG_CHELSIO_T1 is not set | ||
474 | # CONFIG_IXGB is not set | 505 | # CONFIG_IXGB is not set |
475 | # CONFIG_S2IO is not set | 506 | # CONFIG_S2IO is not set |
476 | 507 | ||
@@ -552,6 +583,7 @@ CONFIG_HW_CONSOLE=y | |||
552 | CONFIG_SERIAL_NONSTANDARD=y | 583 | CONFIG_SERIAL_NONSTANDARD=y |
553 | # CONFIG_ROCKETPORT is not set | 584 | # CONFIG_ROCKETPORT is not set |
554 | # CONFIG_CYCLADES is not set | 585 | # CONFIG_CYCLADES is not set |
586 | # CONFIG_DIGIEPCA is not set | ||
555 | # CONFIG_MOXA_SMARTIO is not set | 587 | # CONFIG_MOXA_SMARTIO is not set |
556 | # CONFIG_ISI is not set | 588 | # CONFIG_ISI is not set |
557 | # CONFIG_SYNCLINK is not set | 589 | # CONFIG_SYNCLINK is not set |
@@ -642,7 +674,6 @@ CONFIG_I2C_ALGOBIT=y | |||
642 | # CONFIG_I2C_I801 is not set | 674 | # CONFIG_I2C_I801 is not set |
643 | # CONFIG_I2C_I810 is not set | 675 | # CONFIG_I2C_I810 is not set |
644 | # CONFIG_I2C_PIIX4 is not set | 676 | # CONFIG_I2C_PIIX4 is not set |
645 | # CONFIG_I2C_ISA is not set | ||
646 | # CONFIG_I2C_NFORCE2 is not set | 677 | # CONFIG_I2C_NFORCE2 is not set |
647 | # CONFIG_I2C_PARPORT_LIGHT is not set | 678 | # CONFIG_I2C_PARPORT_LIGHT is not set |
648 | # CONFIG_I2C_PROSAVAGE is not set | 679 | # CONFIG_I2C_PROSAVAGE is not set |
@@ -656,7 +687,6 @@ CONFIG_I2C_ALGOBIT=y | |||
656 | # CONFIG_I2C_VIAPRO is not set | 687 | # CONFIG_I2C_VIAPRO is not set |
657 | # CONFIG_I2C_VOODOO3 is not set | 688 | # CONFIG_I2C_VOODOO3 is not set |
658 | # CONFIG_I2C_PCA_ISA is not set | 689 | # CONFIG_I2C_PCA_ISA is not set |
659 | # CONFIG_I2C_SENSOR is not set | ||
660 | 690 | ||
661 | # | 691 | # |
662 | # Miscellaneous I2C Chip support | 692 | # Miscellaneous I2C Chip support |
@@ -683,12 +713,17 @@ CONFIG_I2C_ALGOBIT=y | |||
683 | # Hardware Monitoring support | 713 | # Hardware Monitoring support |
684 | # | 714 | # |
685 | # CONFIG_HWMON is not set | 715 | # CONFIG_HWMON is not set |
716 | # CONFIG_HWMON_VID is not set | ||
686 | 717 | ||
687 | # | 718 | # |
688 | # Misc devices | 719 | # Misc devices |
689 | # | 720 | # |
690 | 721 | ||
691 | # | 722 | # |
723 | # Multimedia Capabilities Port drivers | ||
724 | # | ||
725 | |||
726 | # | ||
692 | # Multimedia devices | 727 | # Multimedia devices |
693 | # | 728 | # |
694 | # CONFIG_VIDEO_DEV is not set | 729 | # CONFIG_VIDEO_DEV is not set |
@@ -756,10 +791,6 @@ CONFIG_FS_MBCACHE=y | |||
756 | # CONFIG_REISERFS_FS is not set | 791 | # CONFIG_REISERFS_FS is not set |
757 | # CONFIG_JFS_FS is not set | 792 | # CONFIG_JFS_FS is not set |
758 | CONFIG_FS_POSIX_ACL=y | 793 | CONFIG_FS_POSIX_ACL=y |
759 | |||
760 | # | ||
761 | # XFS support | ||
762 | # | ||
763 | # CONFIG_XFS_FS is not set | 794 | # CONFIG_XFS_FS is not set |
764 | # CONFIG_MINIX_FS is not set | 795 | # CONFIG_MINIX_FS is not set |
765 | # CONFIG_ROMFS_FS is not set | 796 | # CONFIG_ROMFS_FS is not set |
@@ -768,6 +799,7 @@ CONFIG_INOTIFY=y | |||
768 | CONFIG_DNOTIFY=y | 799 | CONFIG_DNOTIFY=y |
769 | # CONFIG_AUTOFS_FS is not set | 800 | # CONFIG_AUTOFS_FS is not set |
770 | # CONFIG_AUTOFS4_FS is not set | 801 | # CONFIG_AUTOFS4_FS is not set |
802 | # CONFIG_FUSE_FS is not set | ||
771 | 803 | ||
772 | # | 804 | # |
773 | # CD-ROM/DVD Filesystems | 805 | # CD-ROM/DVD Filesystems |
@@ -794,13 +826,11 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
794 | CONFIG_PROC_FS=y | 826 | CONFIG_PROC_FS=y |
795 | CONFIG_PROC_KCORE=y | 827 | CONFIG_PROC_KCORE=y |
796 | CONFIG_SYSFS=y | 828 | CONFIG_SYSFS=y |
797 | # CONFIG_DEVPTS_FS_XATTR is not set | ||
798 | CONFIG_TMPFS=y | 829 | CONFIG_TMPFS=y |
799 | CONFIG_TMPFS_XATTR=y | ||
800 | # CONFIG_TMPFS_SECURITY is not set | ||
801 | CONFIG_HUGETLBFS=y | 830 | CONFIG_HUGETLBFS=y |
802 | CONFIG_HUGETLB_PAGE=y | 831 | CONFIG_HUGETLB_PAGE=y |
803 | CONFIG_RAMFS=y | 832 | CONFIG_RAMFS=y |
833 | # CONFIG_RELAYFS_FS is not set | ||
804 | 834 | ||
805 | # | 835 | # |
806 | # Miscellaneous filesystems | 836 | # Miscellaneous filesystems |
@@ -846,6 +876,7 @@ CONFIG_SUNRPC=m | |||
846 | # CONFIG_NCP_FS is not set | 876 | # CONFIG_NCP_FS is not set |
847 | # CONFIG_CODA_FS is not set | 877 | # CONFIG_CODA_FS is not set |
848 | # CONFIG_AFS_FS is not set | 878 | # CONFIG_AFS_FS is not set |
879 | # CONFIG_9P_FS is not set | ||
849 | 880 | ||
850 | # | 881 | # |
851 | # Partition Types | 882 | # Partition Types |
@@ -923,6 +954,7 @@ CONFIG_NLS_ISO8859_15=m | |||
923 | CONFIG_DEBUG_KERNEL=y | 954 | CONFIG_DEBUG_KERNEL=y |
924 | CONFIG_MAGIC_SYSRQ=y | 955 | CONFIG_MAGIC_SYSRQ=y |
925 | CONFIG_LOG_BUF_SHIFT=15 | 956 | CONFIG_LOG_BUF_SHIFT=15 |
957 | CONFIG_DETECT_SOFTLOCKUP=y | ||
926 | # CONFIG_SCHEDSTATS is not set | 958 | # CONFIG_SCHEDSTATS is not set |
927 | # CONFIG_DEBUG_SLAB is not set | 959 | # CONFIG_DEBUG_SLAB is not set |
928 | # CONFIG_DEBUG_SPINLOCK is not set | 960 | # CONFIG_DEBUG_SPINLOCK is not set |
@@ -981,7 +1013,12 @@ CONFIG_CRYPTO_DEFLATE=m | |||
981 | # Library routines | 1013 | # Library routines |
982 | # | 1014 | # |
983 | # CONFIG_CRC_CCITT is not set | 1015 | # CONFIG_CRC_CCITT is not set |
1016 | # CONFIG_CRC16 is not set | ||
984 | CONFIG_CRC32=y | 1017 | CONFIG_CRC32=y |
985 | # CONFIG_LIBCRC32C is not set | 1018 | # CONFIG_LIBCRC32C is not set |
986 | CONFIG_ZLIB_INFLATE=m | 1019 | CONFIG_ZLIB_INFLATE=m |
987 | CONFIG_ZLIB_DEFLATE=m | 1020 | CONFIG_ZLIB_DEFLATE=m |
1021 | CONFIG_TEXTSEARCH=y | ||
1022 | CONFIG_TEXTSEARCH_KMP=m | ||
1023 | CONFIG_TEXTSEARCH_BM=m | ||
1024 | CONFIG_TEXTSEARCH_FSM=m | ||
diff --git a/arch/ppc64/configs/g5_defconfig b/arch/ppc64/configs/g5_defconfig index fc83d9330282..6323065fbf2c 100644 --- a/arch/ppc64/configs/g5_defconfig +++ b/arch/ppc64/configs/g5_defconfig | |||
@@ -1,17 +1,17 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.13-rc6 | 3 | # Linux kernel version: 2.6.14-rc4 |
4 | # Mon Aug 8 14:16:59 2005 | 4 | # Thu Oct 20 08:30:23 2005 |
5 | # | 5 | # |
6 | CONFIG_64BIT=y | 6 | CONFIG_64BIT=y |
7 | CONFIG_MMU=y | 7 | CONFIG_MMU=y |
8 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 8 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
9 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 9 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
10 | CONFIG_GENERIC_ISA_DMA=y | 10 | CONFIG_GENERIC_ISA_DMA=y |
11 | CONFIG_HAVE_DEC_LOCK=y | ||
12 | CONFIG_EARLY_PRINTK=y | 11 | CONFIG_EARLY_PRINTK=y |
13 | CONFIG_COMPAT=y | 12 | CONFIG_COMPAT=y |
14 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | 13 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y |
14 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | ||
15 | CONFIG_FORCE_MAX_ZONEORDER=13 | 15 | CONFIG_FORCE_MAX_ZONEORDER=13 |
16 | 16 | ||
17 | # | 17 | # |
@@ -26,6 +26,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32 | |||
26 | # General setup | 26 | # General setup |
27 | # | 27 | # |
28 | CONFIG_LOCALVERSION="" | 28 | CONFIG_LOCALVERSION="" |
29 | CONFIG_LOCALVERSION_AUTO=y | ||
29 | CONFIG_SWAP=y | 30 | CONFIG_SWAP=y |
30 | CONFIG_SYSVIPC=y | 31 | CONFIG_SYSVIPC=y |
31 | CONFIG_POSIX_MQUEUE=y | 32 | CONFIG_POSIX_MQUEUE=y |
@@ -37,6 +38,7 @@ CONFIG_KOBJECT_UEVENT=y | |||
37 | CONFIG_IKCONFIG=y | 38 | CONFIG_IKCONFIG=y |
38 | CONFIG_IKCONFIG_PROC=y | 39 | CONFIG_IKCONFIG_PROC=y |
39 | # CONFIG_CPUSETS is not set | 40 | # CONFIG_CPUSETS is not set |
41 | CONFIG_INITRAMFS_SOURCE="" | ||
40 | # CONFIG_EMBEDDED is not set | 42 | # CONFIG_EMBEDDED is not set |
41 | CONFIG_KALLSYMS=y | 43 | CONFIG_KALLSYMS=y |
42 | # CONFIG_KALLSYMS_ALL is not set | 44 | # CONFIG_KALLSYMS_ALL is not set |
@@ -97,6 +99,7 @@ CONFIG_FLATMEM_MANUAL=y | |||
97 | # CONFIG_SPARSEMEM_MANUAL is not set | 99 | # CONFIG_SPARSEMEM_MANUAL is not set |
98 | CONFIG_FLATMEM=y | 100 | CONFIG_FLATMEM=y |
99 | CONFIG_FLAT_NODE_MEM_MAP=y | 101 | CONFIG_FLAT_NODE_MEM_MAP=y |
102 | # CONFIG_SPARSEMEM_STATIC is not set | ||
100 | # CONFIG_NUMA is not set | 103 | # CONFIG_NUMA is not set |
101 | # CONFIG_SCHED_SMT is not set | 104 | # CONFIG_SCHED_SMT is not set |
102 | CONFIG_PREEMPT_NONE=y | 105 | CONFIG_PREEMPT_NONE=y |
@@ -109,19 +112,20 @@ CONFIG_HZ_250=y | |||
109 | CONFIG_HZ=250 | 112 | CONFIG_HZ=250 |
110 | CONFIG_GENERIC_HARDIRQS=y | 113 | CONFIG_GENERIC_HARDIRQS=y |
111 | CONFIG_SECCOMP=y | 114 | CONFIG_SECCOMP=y |
115 | CONFIG_BINFMT_ELF=y | ||
116 | # CONFIG_BINFMT_MISC is not set | ||
117 | # CONFIG_HOTPLUG_CPU is not set | ||
118 | CONFIG_PROC_DEVICETREE=y | ||
119 | # CONFIG_CMDLINE_BOOL is not set | ||
112 | CONFIG_ISA_DMA_API=y | 120 | CONFIG_ISA_DMA_API=y |
113 | 121 | ||
114 | # | 122 | # |
115 | # General setup | 123 | # Bus Options |
116 | # | 124 | # |
117 | CONFIG_PCI=y | 125 | CONFIG_PCI=y |
118 | CONFIG_PCI_DOMAINS=y | 126 | CONFIG_PCI_DOMAINS=y |
119 | CONFIG_BINFMT_ELF=y | ||
120 | # CONFIG_BINFMT_MISC is not set | ||
121 | CONFIG_PCI_LEGACY_PROC=y | 127 | CONFIG_PCI_LEGACY_PROC=y |
122 | CONFIG_PCI_NAMES=y | ||
123 | # CONFIG_PCI_DEBUG is not set | 128 | # CONFIG_PCI_DEBUG is not set |
124 | # CONFIG_HOTPLUG_CPU is not set | ||
125 | 129 | ||
126 | # | 130 | # |
127 | # PCCARD (PCMCIA/CardBus) support | 131 | # PCCARD (PCMCIA/CardBus) support |
@@ -132,8 +136,6 @@ CONFIG_PCI_NAMES=y | |||
132 | # PCI Hotplug Support | 136 | # PCI Hotplug Support |
133 | # | 137 | # |
134 | # CONFIG_HOTPLUG_PCI is not set | 138 | # CONFIG_HOTPLUG_PCI is not set |
135 | CONFIG_PROC_DEVICETREE=y | ||
136 | # CONFIG_CMDLINE_BOOL is not set | ||
137 | 139 | ||
138 | # | 140 | # |
139 | # Networking | 141 | # Networking |
@@ -163,8 +165,8 @@ CONFIG_INET_AH=m | |||
163 | CONFIG_INET_ESP=m | 165 | CONFIG_INET_ESP=m |
164 | CONFIG_INET_IPCOMP=m | 166 | CONFIG_INET_IPCOMP=m |
165 | CONFIG_INET_TUNNEL=y | 167 | CONFIG_INET_TUNNEL=y |
166 | CONFIG_IP_TCPDIAG=m | 168 | CONFIG_INET_DIAG=y |
167 | # CONFIG_IP_TCPDIAG_IPV6 is not set | 169 | CONFIG_INET_TCP_DIAG=y |
168 | # CONFIG_TCP_CONG_ADVANCED is not set | 170 | # CONFIG_TCP_CONG_ADVANCED is not set |
169 | CONFIG_TCP_CONG_BIC=y | 171 | CONFIG_TCP_CONG_BIC=y |
170 | 172 | ||
@@ -175,6 +177,7 @@ CONFIG_TCP_CONG_BIC=y | |||
175 | # CONFIG_IPV6 is not set | 177 | # CONFIG_IPV6 is not set |
176 | CONFIG_NETFILTER=y | 178 | CONFIG_NETFILTER=y |
177 | # CONFIG_NETFILTER_DEBUG is not set | 179 | # CONFIG_NETFILTER_DEBUG is not set |
180 | # CONFIG_NETFILTER_NETLINK is not set | ||
178 | 181 | ||
179 | # | 182 | # |
180 | # IP: Netfilter Configuration | 183 | # IP: Netfilter Configuration |
@@ -182,11 +185,14 @@ CONFIG_NETFILTER=y | |||
182 | CONFIG_IP_NF_CONNTRACK=m | 185 | CONFIG_IP_NF_CONNTRACK=m |
183 | CONFIG_IP_NF_CT_ACCT=y | 186 | CONFIG_IP_NF_CT_ACCT=y |
184 | CONFIG_IP_NF_CONNTRACK_MARK=y | 187 | CONFIG_IP_NF_CONNTRACK_MARK=y |
188 | CONFIG_IP_NF_CONNTRACK_EVENTS=y | ||
185 | CONFIG_IP_NF_CT_PROTO_SCTP=m | 189 | CONFIG_IP_NF_CT_PROTO_SCTP=m |
186 | CONFIG_IP_NF_FTP=m | 190 | CONFIG_IP_NF_FTP=m |
187 | CONFIG_IP_NF_IRC=m | 191 | CONFIG_IP_NF_IRC=m |
192 | # CONFIG_IP_NF_NETBIOS_NS is not set | ||
188 | CONFIG_IP_NF_TFTP=m | 193 | CONFIG_IP_NF_TFTP=m |
189 | CONFIG_IP_NF_AMANDA=m | 194 | CONFIG_IP_NF_AMANDA=m |
195 | # CONFIG_IP_NF_PPTP is not set | ||
190 | CONFIG_IP_NF_QUEUE=m | 196 | CONFIG_IP_NF_QUEUE=m |
191 | CONFIG_IP_NF_IPTABLES=m | 197 | CONFIG_IP_NF_IPTABLES=m |
192 | CONFIG_IP_NF_MATCH_LIMIT=m | 198 | CONFIG_IP_NF_MATCH_LIMIT=m |
@@ -210,14 +216,18 @@ CONFIG_IP_NF_MATCH_OWNER=m | |||
210 | CONFIG_IP_NF_MATCH_ADDRTYPE=m | 216 | CONFIG_IP_NF_MATCH_ADDRTYPE=m |
211 | CONFIG_IP_NF_MATCH_REALM=m | 217 | CONFIG_IP_NF_MATCH_REALM=m |
212 | CONFIG_IP_NF_MATCH_SCTP=m | 218 | CONFIG_IP_NF_MATCH_SCTP=m |
219 | # CONFIG_IP_NF_MATCH_DCCP is not set | ||
213 | CONFIG_IP_NF_MATCH_COMMENT=m | 220 | CONFIG_IP_NF_MATCH_COMMENT=m |
214 | CONFIG_IP_NF_MATCH_CONNMARK=m | 221 | CONFIG_IP_NF_MATCH_CONNMARK=m |
222 | CONFIG_IP_NF_MATCH_CONNBYTES=m | ||
215 | CONFIG_IP_NF_MATCH_HASHLIMIT=m | 223 | CONFIG_IP_NF_MATCH_HASHLIMIT=m |
224 | CONFIG_IP_NF_MATCH_STRING=m | ||
216 | CONFIG_IP_NF_FILTER=m | 225 | CONFIG_IP_NF_FILTER=m |
217 | CONFIG_IP_NF_TARGET_REJECT=m | 226 | CONFIG_IP_NF_TARGET_REJECT=m |
218 | CONFIG_IP_NF_TARGET_LOG=m | 227 | CONFIG_IP_NF_TARGET_LOG=m |
219 | CONFIG_IP_NF_TARGET_ULOG=m | 228 | CONFIG_IP_NF_TARGET_ULOG=m |
220 | CONFIG_IP_NF_TARGET_TCPMSS=m | 229 | CONFIG_IP_NF_TARGET_TCPMSS=m |
230 | CONFIG_IP_NF_TARGET_NFQUEUE=m | ||
221 | CONFIG_IP_NF_NAT=m | 231 | CONFIG_IP_NF_NAT=m |
222 | CONFIG_IP_NF_NAT_NEEDED=y | 232 | CONFIG_IP_NF_NAT_NEEDED=y |
223 | CONFIG_IP_NF_TARGET_MASQUERADE=m | 233 | CONFIG_IP_NF_TARGET_MASQUERADE=m |
@@ -235,6 +245,7 @@ CONFIG_IP_NF_TARGET_ECN=m | |||
235 | CONFIG_IP_NF_TARGET_DSCP=m | 245 | CONFIG_IP_NF_TARGET_DSCP=m |
236 | CONFIG_IP_NF_TARGET_MARK=m | 246 | CONFIG_IP_NF_TARGET_MARK=m |
237 | CONFIG_IP_NF_TARGET_CLASSIFY=m | 247 | CONFIG_IP_NF_TARGET_CLASSIFY=m |
248 | CONFIG_IP_NF_TARGET_TTL=m | ||
238 | CONFIG_IP_NF_TARGET_CONNMARK=m | 249 | CONFIG_IP_NF_TARGET_CONNMARK=m |
239 | CONFIG_IP_NF_TARGET_CLUSTERIP=m | 250 | CONFIG_IP_NF_TARGET_CLUSTERIP=m |
240 | CONFIG_IP_NF_RAW=m | 251 | CONFIG_IP_NF_RAW=m |
@@ -244,6 +255,11 @@ CONFIG_IP_NF_ARPFILTER=m | |||
244 | CONFIG_IP_NF_ARP_MANGLE=m | 255 | CONFIG_IP_NF_ARP_MANGLE=m |
245 | 256 | ||
246 | # | 257 | # |
258 | # DCCP Configuration (EXPERIMENTAL) | ||
259 | # | ||
260 | # CONFIG_IP_DCCP is not set | ||
261 | |||
262 | # | ||
247 | # SCTP Configuration (EXPERIMENTAL) | 263 | # SCTP Configuration (EXPERIMENTAL) |
248 | # | 264 | # |
249 | # CONFIG_IP_SCTP is not set | 265 | # CONFIG_IP_SCTP is not set |
@@ -270,6 +286,7 @@ CONFIG_NET_CLS_ROUTE=y | |||
270 | # CONFIG_HAMRADIO is not set | 286 | # CONFIG_HAMRADIO is not set |
271 | # CONFIG_IRDA is not set | 287 | # CONFIG_IRDA is not set |
272 | # CONFIG_BT is not set | 288 | # CONFIG_BT is not set |
289 | # CONFIG_IEEE80211 is not set | ||
273 | 290 | ||
274 | # | 291 | # |
275 | # Device Drivers | 292 | # Device Drivers |
@@ -284,6 +301,11 @@ CONFIG_FW_LOADER=y | |||
284 | # CONFIG_DEBUG_DRIVER is not set | 301 | # CONFIG_DEBUG_DRIVER is not set |
285 | 302 | ||
286 | # | 303 | # |
304 | # Connector - unified userspace <-> kernelspace linker | ||
305 | # | ||
306 | # CONFIG_CONNECTOR is not set | ||
307 | |||
308 | # | ||
287 | # Memory Technology Devices (MTD) | 309 | # Memory Technology Devices (MTD) |
288 | # | 310 | # |
289 | # CONFIG_MTD is not set | 311 | # CONFIG_MTD is not set |
@@ -315,7 +337,6 @@ CONFIG_BLK_DEV_RAM=y | |||
315 | CONFIG_BLK_DEV_RAM_COUNT=16 | 337 | CONFIG_BLK_DEV_RAM_COUNT=16 |
316 | CONFIG_BLK_DEV_RAM_SIZE=65536 | 338 | CONFIG_BLK_DEV_RAM_SIZE=65536 |
317 | CONFIG_BLK_DEV_INITRD=y | 339 | CONFIG_BLK_DEV_INITRD=y |
318 | CONFIG_INITRAMFS_SOURCE="" | ||
319 | CONFIG_CDROM_PKTCDVD=m | 340 | CONFIG_CDROM_PKTCDVD=m |
320 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 341 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
321 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | 342 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set |
@@ -395,6 +416,7 @@ CONFIG_IDEDMA_AUTO=y | |||
395 | # | 416 | # |
396 | # SCSI device support | 417 | # SCSI device support |
397 | # | 418 | # |
419 | # CONFIG_RAID_ATTRS is not set | ||
398 | CONFIG_SCSI=y | 420 | CONFIG_SCSI=y |
399 | CONFIG_SCSI_PROC_FS=y | 421 | CONFIG_SCSI_PROC_FS=y |
400 | 422 | ||
@@ -422,6 +444,7 @@ CONFIG_SCSI_CONSTANTS=y | |||
422 | CONFIG_SCSI_SPI_ATTRS=y | 444 | CONFIG_SCSI_SPI_ATTRS=y |
423 | # CONFIG_SCSI_FC_ATTRS is not set | 445 | # CONFIG_SCSI_FC_ATTRS is not set |
424 | # CONFIG_SCSI_ISCSI_ATTRS is not set | 446 | # CONFIG_SCSI_ISCSI_ATTRS is not set |
447 | # CONFIG_SCSI_SAS_ATTRS is not set | ||
425 | 448 | ||
426 | # | 449 | # |
427 | # SCSI low-level drivers | 450 | # SCSI low-level drivers |
@@ -435,10 +458,12 @@ CONFIG_SCSI_SPI_ATTRS=y | |||
435 | # CONFIG_SCSI_AIC79XX is not set | 458 | # CONFIG_SCSI_AIC79XX is not set |
436 | # CONFIG_MEGARAID_NEWGEN is not set | 459 | # CONFIG_MEGARAID_NEWGEN is not set |
437 | # CONFIG_MEGARAID_LEGACY is not set | 460 | # CONFIG_MEGARAID_LEGACY is not set |
461 | # CONFIG_MEGARAID_SAS is not set | ||
438 | CONFIG_SCSI_SATA=y | 462 | CONFIG_SCSI_SATA=y |
439 | # CONFIG_SCSI_SATA_AHCI is not set | 463 | # CONFIG_SCSI_SATA_AHCI is not set |
440 | CONFIG_SCSI_SATA_SVW=y | 464 | CONFIG_SCSI_SATA_SVW=y |
441 | # CONFIG_SCSI_ATA_PIIX is not set | 465 | # CONFIG_SCSI_ATA_PIIX is not set |
466 | # CONFIG_SCSI_SATA_MV is not set | ||
442 | # CONFIG_SCSI_SATA_NV is not set | 467 | # CONFIG_SCSI_SATA_NV is not set |
443 | # CONFIG_SCSI_SATA_PROMISE is not set | 468 | # CONFIG_SCSI_SATA_PROMISE is not set |
444 | # CONFIG_SCSI_SATA_QSTOR is not set | 469 | # CONFIG_SCSI_SATA_QSTOR is not set |
@@ -498,6 +523,7 @@ CONFIG_DM_ZERO=m | |||
498 | # CONFIG_FUSION is not set | 523 | # CONFIG_FUSION is not set |
499 | # CONFIG_FUSION_SPI is not set | 524 | # CONFIG_FUSION_SPI is not set |
500 | # CONFIG_FUSION_FC is not set | 525 | # CONFIG_FUSION_FC is not set |
526 | # CONFIG_FUSION_SAS is not set | ||
501 | 527 | ||
502 | # | 528 | # |
503 | # IEEE 1394 (FireWire) support | 529 | # IEEE 1394 (FireWire) support |
@@ -540,7 +566,6 @@ CONFIG_IEEE1394_RAWIO=y | |||
540 | # | 566 | # |
541 | CONFIG_ADB_PMU=y | 567 | CONFIG_ADB_PMU=y |
542 | CONFIG_PMAC_SMU=y | 568 | CONFIG_PMAC_SMU=y |
543 | # CONFIG_PMAC_BACKLIGHT is not set | ||
544 | CONFIG_THERM_PM72=y | 569 | CONFIG_THERM_PM72=y |
545 | 570 | ||
546 | # | 571 | # |
@@ -558,12 +583,18 @@ CONFIG_TUN=m | |||
558 | # CONFIG_ARCNET is not set | 583 | # CONFIG_ARCNET is not set |
559 | 584 | ||
560 | # | 585 | # |
586 | # PHY device support | ||
587 | # | ||
588 | # CONFIG_PHYLIB is not set | ||
589 | |||
590 | # | ||
561 | # Ethernet (10 or 100Mbit) | 591 | # Ethernet (10 or 100Mbit) |
562 | # | 592 | # |
563 | CONFIG_NET_ETHERNET=y | 593 | CONFIG_NET_ETHERNET=y |
564 | CONFIG_MII=y | 594 | CONFIG_MII=y |
565 | # CONFIG_HAPPYMEAL is not set | 595 | # CONFIG_HAPPYMEAL is not set |
566 | CONFIG_SUNGEM=y | 596 | CONFIG_SUNGEM=y |
597 | # CONFIG_CASSINI is not set | ||
567 | # CONFIG_NET_VENDOR_3COM is not set | 598 | # CONFIG_NET_VENDOR_3COM is not set |
568 | 599 | ||
569 | # | 600 | # |
@@ -585,6 +616,7 @@ CONFIG_E1000=y | |||
585 | # CONFIG_HAMACHI is not set | 616 | # CONFIG_HAMACHI is not set |
586 | # CONFIG_YELLOWFIN is not set | 617 | # CONFIG_YELLOWFIN is not set |
587 | # CONFIG_R8169 is not set | 618 | # CONFIG_R8169 is not set |
619 | # CONFIG_SIS190 is not set | ||
588 | # CONFIG_SKGE is not set | 620 | # CONFIG_SKGE is not set |
589 | # CONFIG_SK98LIN is not set | 621 | # CONFIG_SK98LIN is not set |
590 | CONFIG_TIGON3=m | 622 | CONFIG_TIGON3=m |
@@ -594,6 +626,7 @@ CONFIG_TIGON3=m | |||
594 | # | 626 | # |
595 | # Ethernet (10000 Mbit) | 627 | # Ethernet (10000 Mbit) |
596 | # | 628 | # |
629 | # CONFIG_CHELSIO_T1 is not set | ||
597 | # CONFIG_IXGB is not set | 630 | # CONFIG_IXGB is not set |
598 | # CONFIG_S2IO is not set | 631 | # CONFIG_S2IO is not set |
599 | 632 | ||
@@ -760,8 +793,8 @@ CONFIG_I2C_ALGOBIT=y | |||
760 | # CONFIG_I2C_I801 is not set | 793 | # CONFIG_I2C_I801 is not set |
761 | # CONFIG_I2C_I810 is not set | 794 | # CONFIG_I2C_I810 is not set |
762 | # CONFIG_I2C_PIIX4 is not set | 795 | # CONFIG_I2C_PIIX4 is not set |
763 | # CONFIG_I2C_ISA is not set | ||
764 | CONFIG_I2C_KEYWEST=y | 796 | CONFIG_I2C_KEYWEST=y |
797 | CONFIG_I2C_PMAC_SMU=y | ||
765 | # CONFIG_I2C_NFORCE2 is not set | 798 | # CONFIG_I2C_NFORCE2 is not set |
766 | # CONFIG_I2C_PARPORT_LIGHT is not set | 799 | # CONFIG_I2C_PARPORT_LIGHT is not set |
767 | # CONFIG_I2C_PROSAVAGE is not set | 800 | # CONFIG_I2C_PROSAVAGE is not set |
@@ -775,7 +808,6 @@ CONFIG_I2C_KEYWEST=y | |||
775 | # CONFIG_I2C_VIAPRO is not set | 808 | # CONFIG_I2C_VIAPRO is not set |
776 | # CONFIG_I2C_VOODOO3 is not set | 809 | # CONFIG_I2C_VOODOO3 is not set |
777 | # CONFIG_I2C_PCA_ISA is not set | 810 | # CONFIG_I2C_PCA_ISA is not set |
778 | # CONFIG_I2C_SENSOR is not set | ||
779 | 811 | ||
780 | # | 812 | # |
781 | # Miscellaneous I2C Chip support | 813 | # Miscellaneous I2C Chip support |
@@ -802,12 +834,17 @@ CONFIG_I2C_KEYWEST=y | |||
802 | # Hardware Monitoring support | 834 | # Hardware Monitoring support |
803 | # | 835 | # |
804 | # CONFIG_HWMON is not set | 836 | # CONFIG_HWMON is not set |
837 | # CONFIG_HWMON_VID is not set | ||
805 | 838 | ||
806 | # | 839 | # |
807 | # Misc devices | 840 | # Misc devices |
808 | # | 841 | # |
809 | 842 | ||
810 | # | 843 | # |
844 | # Multimedia Capabilities Port drivers | ||
845 | # | ||
846 | |||
847 | # | ||
811 | # Multimedia devices | 848 | # Multimedia devices |
812 | # | 849 | # |
813 | # CONFIG_VIDEO_DEV is not set | 850 | # CONFIG_VIDEO_DEV is not set |
@@ -856,6 +893,7 @@ CONFIG_FB_RADEON_I2C=y | |||
856 | # CONFIG_FB_KYRO is not set | 893 | # CONFIG_FB_KYRO is not set |
857 | # CONFIG_FB_3DFX is not set | 894 | # CONFIG_FB_3DFX is not set |
858 | # CONFIG_FB_VOODOO1 is not set | 895 | # CONFIG_FB_VOODOO1 is not set |
896 | # CONFIG_FB_CYBLA is not set | ||
859 | # CONFIG_FB_TRIDENT is not set | 897 | # CONFIG_FB_TRIDENT is not set |
860 | # CONFIG_FB_S1D13XXX is not set | 898 | # CONFIG_FB_S1D13XXX is not set |
861 | # CONFIG_FB_VIRTUAL is not set | 899 | # CONFIG_FB_VIRTUAL is not set |
@@ -937,6 +975,7 @@ CONFIG_USB_STORAGE_DPCM=y | |||
937 | CONFIG_USB_STORAGE_SDDR09=y | 975 | CONFIG_USB_STORAGE_SDDR09=y |
938 | CONFIG_USB_STORAGE_SDDR55=y | 976 | CONFIG_USB_STORAGE_SDDR55=y |
939 | CONFIG_USB_STORAGE_JUMPSHOT=y | 977 | CONFIG_USB_STORAGE_JUMPSHOT=y |
978 | # CONFIG_USB_STORAGE_ONETOUCH is not set | ||
940 | 979 | ||
941 | # | 980 | # |
942 | # USB Input Devices | 981 | # USB Input Devices |
@@ -956,9 +995,11 @@ CONFIG_USB_HIDDEV=y | |||
956 | # CONFIG_USB_MTOUCH is not set | 995 | # CONFIG_USB_MTOUCH is not set |
957 | # CONFIG_USB_ITMTOUCH is not set | 996 | # CONFIG_USB_ITMTOUCH is not set |
958 | # CONFIG_USB_EGALAX is not set | 997 | # CONFIG_USB_EGALAX is not set |
998 | # CONFIG_USB_YEALINK is not set | ||
959 | # CONFIG_USB_XPAD is not set | 999 | # CONFIG_USB_XPAD is not set |
960 | # CONFIG_USB_ATI_REMOTE is not set | 1000 | # CONFIG_USB_ATI_REMOTE is not set |
961 | # CONFIG_USB_KEYSPAN_REMOTE is not set | 1001 | # CONFIG_USB_KEYSPAN_REMOTE is not set |
1002 | # CONFIG_USB_APPLETOUCH is not set | ||
962 | 1003 | ||
963 | # | 1004 | # |
964 | # USB Imaging devices | 1005 | # USB Imaging devices |
@@ -983,30 +1024,14 @@ CONFIG_USB_KAWETH=m | |||
983 | CONFIG_USB_PEGASUS=m | 1024 | CONFIG_USB_PEGASUS=m |
984 | CONFIG_USB_RTL8150=m | 1025 | CONFIG_USB_RTL8150=m |
985 | CONFIG_USB_USBNET=m | 1026 | CONFIG_USB_USBNET=m |
986 | 1027 | # CONFIG_USB_NET_AX8817X is not set | |
987 | # | 1028 | CONFIG_USB_NET_CDCETHER=m |
988 | # USB Host-to-Host Cables | 1029 | # CONFIG_USB_NET_GL620A is not set |
989 | # | 1030 | # CONFIG_USB_NET_NET1080 is not set |
990 | CONFIG_USB_ALI_M5632=y | 1031 | # CONFIG_USB_NET_PLUSB is not set |
991 | CONFIG_USB_AN2720=y | 1032 | # CONFIG_USB_NET_RNDIS_HOST is not set |
992 | CONFIG_USB_BELKIN=y | 1033 | # CONFIG_USB_NET_CDC_SUBSET is not set |
993 | CONFIG_USB_GENESYS=y | 1034 | # CONFIG_USB_NET_ZAURUS is not set |
994 | CONFIG_USB_NET1080=y | ||
995 | CONFIG_USB_PL2301=y | ||
996 | CONFIG_USB_KC2190=y | ||
997 | |||
998 | # | ||
999 | # Intelligent USB Devices/Gadgets | ||
1000 | # | ||
1001 | CONFIG_USB_ARMLINUX=y | ||
1002 | CONFIG_USB_EPSON2888=y | ||
1003 | CONFIG_USB_ZAURUS=y | ||
1004 | CONFIG_USB_CDCETHER=y | ||
1005 | |||
1006 | # | ||
1007 | # USB Network Adapters | ||
1008 | # | ||
1009 | CONFIG_USB_AX8817X=y | ||
1010 | CONFIG_USB_MON=y | 1035 | CONFIG_USB_MON=y |
1011 | 1036 | ||
1012 | # | 1037 | # |
@@ -1124,16 +1149,12 @@ CONFIG_REISERFS_FS_POSIX_ACL=y | |||
1124 | CONFIG_REISERFS_FS_SECURITY=y | 1149 | CONFIG_REISERFS_FS_SECURITY=y |
1125 | # CONFIG_JFS_FS is not set | 1150 | # CONFIG_JFS_FS is not set |
1126 | CONFIG_FS_POSIX_ACL=y | 1151 | CONFIG_FS_POSIX_ACL=y |
1127 | |||
1128 | # | ||
1129 | # XFS support | ||
1130 | # | ||
1131 | CONFIG_XFS_FS=m | 1152 | CONFIG_XFS_FS=m |
1132 | CONFIG_XFS_EXPORT=y | 1153 | CONFIG_XFS_EXPORT=y |
1133 | # CONFIG_XFS_RT is not set | ||
1134 | # CONFIG_XFS_QUOTA is not set | 1154 | # CONFIG_XFS_QUOTA is not set |
1135 | CONFIG_XFS_SECURITY=y | 1155 | CONFIG_XFS_SECURITY=y |
1136 | CONFIG_XFS_POSIX_ACL=y | 1156 | CONFIG_XFS_POSIX_ACL=y |
1157 | # CONFIG_XFS_RT is not set | ||
1137 | # CONFIG_MINIX_FS is not set | 1158 | # CONFIG_MINIX_FS is not set |
1138 | # CONFIG_ROMFS_FS is not set | 1159 | # CONFIG_ROMFS_FS is not set |
1139 | CONFIG_INOTIFY=y | 1160 | CONFIG_INOTIFY=y |
@@ -1141,6 +1162,7 @@ CONFIG_INOTIFY=y | |||
1141 | CONFIG_DNOTIFY=y | 1162 | CONFIG_DNOTIFY=y |
1142 | CONFIG_AUTOFS_FS=m | 1163 | CONFIG_AUTOFS_FS=m |
1143 | # CONFIG_AUTOFS4_FS is not set | 1164 | # CONFIG_AUTOFS4_FS is not set |
1165 | # CONFIG_FUSE_FS is not set | ||
1144 | 1166 | ||
1145 | # | 1167 | # |
1146 | # CD-ROM/DVD Filesystems | 1168 | # CD-ROM/DVD Filesystems |
@@ -1168,14 +1190,11 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
1168 | CONFIG_PROC_FS=y | 1190 | CONFIG_PROC_FS=y |
1169 | CONFIG_PROC_KCORE=y | 1191 | CONFIG_PROC_KCORE=y |
1170 | CONFIG_SYSFS=y | 1192 | CONFIG_SYSFS=y |
1171 | CONFIG_DEVPTS_FS_XATTR=y | ||
1172 | # CONFIG_DEVPTS_FS_SECURITY is not set | ||
1173 | CONFIG_TMPFS=y | 1193 | CONFIG_TMPFS=y |
1174 | CONFIG_TMPFS_XATTR=y | ||
1175 | CONFIG_TMPFS_SECURITY=y | ||
1176 | CONFIG_HUGETLBFS=y | 1194 | CONFIG_HUGETLBFS=y |
1177 | CONFIG_HUGETLB_PAGE=y | 1195 | CONFIG_HUGETLB_PAGE=y |
1178 | CONFIG_RAMFS=y | 1196 | CONFIG_RAMFS=y |
1197 | # CONFIG_RELAYFS_FS is not set | ||
1179 | 1198 | ||
1180 | # | 1199 | # |
1181 | # Miscellaneous filesystems | 1200 | # Miscellaneous filesystems |
@@ -1225,6 +1244,7 @@ CONFIG_CIFS=m | |||
1225 | # CONFIG_NCP_FS is not set | 1244 | # CONFIG_NCP_FS is not set |
1226 | # CONFIG_CODA_FS is not set | 1245 | # CONFIG_CODA_FS is not set |
1227 | # CONFIG_AFS_FS is not set | 1246 | # CONFIG_AFS_FS is not set |
1247 | # CONFIG_9P_FS is not set | ||
1228 | 1248 | ||
1229 | # | 1249 | # |
1230 | # Partition Types | 1250 | # Partition Types |
@@ -1303,6 +1323,7 @@ CONFIG_OPROFILE=y | |||
1303 | CONFIG_DEBUG_KERNEL=y | 1323 | CONFIG_DEBUG_KERNEL=y |
1304 | CONFIG_MAGIC_SYSRQ=y | 1324 | CONFIG_MAGIC_SYSRQ=y |
1305 | CONFIG_LOG_BUF_SHIFT=17 | 1325 | CONFIG_LOG_BUF_SHIFT=17 |
1326 | CONFIG_DETECT_SOFTLOCKUP=y | ||
1306 | # CONFIG_SCHEDSTATS is not set | 1327 | # CONFIG_SCHEDSTATS is not set |
1307 | # CONFIG_DEBUG_SLAB is not set | 1328 | # CONFIG_DEBUG_SLAB is not set |
1308 | # CONFIG_DEBUG_SPINLOCK is not set | 1329 | # CONFIG_DEBUG_SPINLOCK is not set |
@@ -1360,7 +1381,12 @@ CONFIG_CRYPTO_TEST=m | |||
1360 | # Library routines | 1381 | # Library routines |
1361 | # | 1382 | # |
1362 | CONFIG_CRC_CCITT=m | 1383 | CONFIG_CRC_CCITT=m |
1384 | # CONFIG_CRC16 is not set | ||
1363 | CONFIG_CRC32=y | 1385 | CONFIG_CRC32=y |
1364 | CONFIG_LIBCRC32C=m | 1386 | CONFIG_LIBCRC32C=m |
1365 | CONFIG_ZLIB_INFLATE=y | 1387 | CONFIG_ZLIB_INFLATE=y |
1366 | CONFIG_ZLIB_DEFLATE=m | 1388 | CONFIG_ZLIB_DEFLATE=m |
1389 | CONFIG_TEXTSEARCH=y | ||
1390 | CONFIG_TEXTSEARCH_KMP=m | ||
1391 | CONFIG_TEXTSEARCH_BM=m | ||
1392 | CONFIG_TEXTSEARCH_FSM=m | ||
diff --git a/arch/ppc64/configs/iSeries_defconfig b/arch/ppc64/configs/iSeries_defconfig index 013d4e0e4003..62e92c7e9e27 100644 --- a/arch/ppc64/configs/iSeries_defconfig +++ b/arch/ppc64/configs/iSeries_defconfig | |||
@@ -1,17 +1,17 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.13-rc6 | 3 | # Linux kernel version: 2.6.14-rc4 |
4 | # Mon Aug 8 14:17:02 2005 | 4 | # Thu Oct 20 08:30:56 2005 |
5 | # | 5 | # |
6 | CONFIG_64BIT=y | 6 | CONFIG_64BIT=y |
7 | CONFIG_MMU=y | 7 | CONFIG_MMU=y |
8 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 8 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
9 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 9 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
10 | CONFIG_GENERIC_ISA_DMA=y | 10 | CONFIG_GENERIC_ISA_DMA=y |
11 | CONFIG_HAVE_DEC_LOCK=y | ||
12 | CONFIG_EARLY_PRINTK=y | 11 | CONFIG_EARLY_PRINTK=y |
13 | CONFIG_COMPAT=y | 12 | CONFIG_COMPAT=y |
14 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | 13 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y |
14 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | ||
15 | CONFIG_FORCE_MAX_ZONEORDER=13 | 15 | CONFIG_FORCE_MAX_ZONEORDER=13 |
16 | 16 | ||
17 | # | 17 | # |
@@ -26,6 +26,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32 | |||
26 | # General setup | 26 | # General setup |
27 | # | 27 | # |
28 | CONFIG_LOCALVERSION="" | 28 | CONFIG_LOCALVERSION="" |
29 | CONFIG_LOCALVERSION_AUTO=y | ||
29 | CONFIG_SWAP=y | 30 | CONFIG_SWAP=y |
30 | CONFIG_SYSVIPC=y | 31 | CONFIG_SYSVIPC=y |
31 | CONFIG_POSIX_MQUEUE=y | 32 | CONFIG_POSIX_MQUEUE=y |
@@ -38,6 +39,7 @@ CONFIG_KOBJECT_UEVENT=y | |||
38 | CONFIG_IKCONFIG=y | 39 | CONFIG_IKCONFIG=y |
39 | CONFIG_IKCONFIG_PROC=y | 40 | CONFIG_IKCONFIG_PROC=y |
40 | # CONFIG_CPUSETS is not set | 41 | # CONFIG_CPUSETS is not set |
42 | CONFIG_INITRAMFS_SOURCE="" | ||
41 | # CONFIG_EMBEDDED is not set | 43 | # CONFIG_EMBEDDED is not set |
42 | CONFIG_KALLSYMS=y | 44 | CONFIG_KALLSYMS=y |
43 | # CONFIG_KALLSYMS_ALL is not set | 45 | # CONFIG_KALLSYMS_ALL is not set |
@@ -88,6 +90,7 @@ CONFIG_FLATMEM_MANUAL=y | |||
88 | # CONFIG_SPARSEMEM_MANUAL is not set | 90 | # CONFIG_SPARSEMEM_MANUAL is not set |
89 | CONFIG_FLATMEM=y | 91 | CONFIG_FLATMEM=y |
90 | CONFIG_FLAT_NODE_MEM_MAP=y | 92 | CONFIG_FLAT_NODE_MEM_MAP=y |
93 | # CONFIG_SPARSEMEM_STATIC is not set | ||
91 | # CONFIG_NUMA is not set | 94 | # CONFIG_NUMA is not set |
92 | # CONFIG_SCHED_SMT is not set | 95 | # CONFIG_SCHED_SMT is not set |
93 | CONFIG_PREEMPT_NONE=y | 96 | CONFIG_PREEMPT_NONE=y |
@@ -101,17 +104,16 @@ CONFIG_HZ=250 | |||
101 | CONFIG_GENERIC_HARDIRQS=y | 104 | CONFIG_GENERIC_HARDIRQS=y |
102 | CONFIG_LPARCFG=y | 105 | CONFIG_LPARCFG=y |
103 | CONFIG_SECCOMP=y | 106 | CONFIG_SECCOMP=y |
107 | CONFIG_BINFMT_ELF=y | ||
108 | # CONFIG_BINFMT_MISC is not set | ||
104 | CONFIG_ISA_DMA_API=y | 109 | CONFIG_ISA_DMA_API=y |
105 | 110 | ||
106 | # | 111 | # |
107 | # General setup | 112 | # Bus Options |
108 | # | 113 | # |
109 | CONFIG_PCI=y | 114 | CONFIG_PCI=y |
110 | CONFIG_PCI_DOMAINS=y | 115 | CONFIG_PCI_DOMAINS=y |
111 | CONFIG_BINFMT_ELF=y | ||
112 | # CONFIG_BINFMT_MISC is not set | ||
113 | CONFIG_PCI_LEGACY_PROC=y | 116 | CONFIG_PCI_LEGACY_PROC=y |
114 | CONFIG_PCI_NAMES=y | ||
115 | # CONFIG_PCI_DEBUG is not set | 117 | # CONFIG_PCI_DEBUG is not set |
116 | 118 | ||
117 | # | 119 | # |
@@ -152,8 +154,8 @@ CONFIG_INET_AH=m | |||
152 | CONFIG_INET_ESP=m | 154 | CONFIG_INET_ESP=m |
153 | CONFIG_INET_IPCOMP=m | 155 | CONFIG_INET_IPCOMP=m |
154 | CONFIG_INET_TUNNEL=y | 156 | CONFIG_INET_TUNNEL=y |
155 | CONFIG_IP_TCPDIAG=m | 157 | CONFIG_INET_DIAG=y |
156 | # CONFIG_IP_TCPDIAG_IPV6 is not set | 158 | CONFIG_INET_TCP_DIAG=y |
157 | # CONFIG_TCP_CONG_ADVANCED is not set | 159 | # CONFIG_TCP_CONG_ADVANCED is not set |
158 | CONFIG_TCP_CONG_BIC=y | 160 | CONFIG_TCP_CONG_BIC=y |
159 | 161 | ||
@@ -164,6 +166,7 @@ CONFIG_TCP_CONG_BIC=y | |||
164 | # CONFIG_IPV6 is not set | 166 | # CONFIG_IPV6 is not set |
165 | CONFIG_NETFILTER=y | 167 | CONFIG_NETFILTER=y |
166 | # CONFIG_NETFILTER_DEBUG is not set | 168 | # CONFIG_NETFILTER_DEBUG is not set |
169 | # CONFIG_NETFILTER_NETLINK is not set | ||
167 | 170 | ||
168 | # | 171 | # |
169 | # IP: Netfilter Configuration | 172 | # IP: Netfilter Configuration |
@@ -171,11 +174,14 @@ CONFIG_NETFILTER=y | |||
171 | CONFIG_IP_NF_CONNTRACK=m | 174 | CONFIG_IP_NF_CONNTRACK=m |
172 | CONFIG_IP_NF_CT_ACCT=y | 175 | CONFIG_IP_NF_CT_ACCT=y |
173 | CONFIG_IP_NF_CONNTRACK_MARK=y | 176 | CONFIG_IP_NF_CONNTRACK_MARK=y |
177 | CONFIG_IP_NF_CONNTRACK_EVENTS=y | ||
174 | CONFIG_IP_NF_CT_PROTO_SCTP=m | 178 | CONFIG_IP_NF_CT_PROTO_SCTP=m |
175 | CONFIG_IP_NF_FTP=m | 179 | CONFIG_IP_NF_FTP=m |
176 | CONFIG_IP_NF_IRC=m | 180 | CONFIG_IP_NF_IRC=m |
181 | # CONFIG_IP_NF_NETBIOS_NS is not set | ||
177 | CONFIG_IP_NF_TFTP=m | 182 | CONFIG_IP_NF_TFTP=m |
178 | CONFIG_IP_NF_AMANDA=m | 183 | CONFIG_IP_NF_AMANDA=m |
184 | # CONFIG_IP_NF_PPTP is not set | ||
179 | CONFIG_IP_NF_QUEUE=m | 185 | CONFIG_IP_NF_QUEUE=m |
180 | CONFIG_IP_NF_IPTABLES=m | 186 | CONFIG_IP_NF_IPTABLES=m |
181 | CONFIG_IP_NF_MATCH_LIMIT=m | 187 | CONFIG_IP_NF_MATCH_LIMIT=m |
@@ -199,14 +205,18 @@ CONFIG_IP_NF_MATCH_OWNER=m | |||
199 | CONFIG_IP_NF_MATCH_ADDRTYPE=m | 205 | CONFIG_IP_NF_MATCH_ADDRTYPE=m |
200 | CONFIG_IP_NF_MATCH_REALM=m | 206 | CONFIG_IP_NF_MATCH_REALM=m |
201 | CONFIG_IP_NF_MATCH_SCTP=m | 207 | CONFIG_IP_NF_MATCH_SCTP=m |
208 | # CONFIG_IP_NF_MATCH_DCCP is not set | ||
202 | CONFIG_IP_NF_MATCH_COMMENT=m | 209 | CONFIG_IP_NF_MATCH_COMMENT=m |
203 | CONFIG_IP_NF_MATCH_CONNMARK=m | 210 | CONFIG_IP_NF_MATCH_CONNMARK=m |
211 | CONFIG_IP_NF_MATCH_CONNBYTES=m | ||
204 | CONFIG_IP_NF_MATCH_HASHLIMIT=m | 212 | CONFIG_IP_NF_MATCH_HASHLIMIT=m |
213 | CONFIG_IP_NF_MATCH_STRING=m | ||
205 | CONFIG_IP_NF_FILTER=m | 214 | CONFIG_IP_NF_FILTER=m |
206 | CONFIG_IP_NF_TARGET_REJECT=m | 215 | CONFIG_IP_NF_TARGET_REJECT=m |
207 | CONFIG_IP_NF_TARGET_LOG=m | 216 | CONFIG_IP_NF_TARGET_LOG=m |
208 | CONFIG_IP_NF_TARGET_ULOG=m | 217 | CONFIG_IP_NF_TARGET_ULOG=m |
209 | CONFIG_IP_NF_TARGET_TCPMSS=m | 218 | CONFIG_IP_NF_TARGET_TCPMSS=m |
219 | CONFIG_IP_NF_TARGET_NFQUEUE=m | ||
210 | CONFIG_IP_NF_NAT=m | 220 | CONFIG_IP_NF_NAT=m |
211 | CONFIG_IP_NF_NAT_NEEDED=y | 221 | CONFIG_IP_NF_NAT_NEEDED=y |
212 | CONFIG_IP_NF_TARGET_MASQUERADE=m | 222 | CONFIG_IP_NF_TARGET_MASQUERADE=m |
@@ -224,6 +234,7 @@ CONFIG_IP_NF_TARGET_ECN=m | |||
224 | CONFIG_IP_NF_TARGET_DSCP=m | 234 | CONFIG_IP_NF_TARGET_DSCP=m |
225 | CONFIG_IP_NF_TARGET_MARK=m | 235 | CONFIG_IP_NF_TARGET_MARK=m |
226 | CONFIG_IP_NF_TARGET_CLASSIFY=m | 236 | CONFIG_IP_NF_TARGET_CLASSIFY=m |
237 | CONFIG_IP_NF_TARGET_TTL=m | ||
227 | CONFIG_IP_NF_TARGET_CONNMARK=m | 238 | CONFIG_IP_NF_TARGET_CONNMARK=m |
228 | CONFIG_IP_NF_TARGET_CLUSTERIP=m | 239 | CONFIG_IP_NF_TARGET_CLUSTERIP=m |
229 | CONFIG_IP_NF_RAW=m | 240 | CONFIG_IP_NF_RAW=m |
@@ -233,6 +244,11 @@ CONFIG_IP_NF_ARPFILTER=m | |||
233 | CONFIG_IP_NF_ARP_MANGLE=m | 244 | CONFIG_IP_NF_ARP_MANGLE=m |
234 | 245 | ||
235 | # | 246 | # |
247 | # DCCP Configuration (EXPERIMENTAL) | ||
248 | # | ||
249 | # CONFIG_IP_DCCP is not set | ||
250 | |||
251 | # | ||
236 | # SCTP Configuration (EXPERIMENTAL) | 252 | # SCTP Configuration (EXPERIMENTAL) |
237 | # | 253 | # |
238 | # CONFIG_IP_SCTP is not set | 254 | # CONFIG_IP_SCTP is not set |
@@ -259,6 +275,7 @@ CONFIG_NET_CLS_ROUTE=y | |||
259 | # CONFIG_HAMRADIO is not set | 275 | # CONFIG_HAMRADIO is not set |
260 | # CONFIG_IRDA is not set | 276 | # CONFIG_IRDA is not set |
261 | # CONFIG_BT is not set | 277 | # CONFIG_BT is not set |
278 | # CONFIG_IEEE80211 is not set | ||
262 | 279 | ||
263 | # | 280 | # |
264 | # Device Drivers | 281 | # Device Drivers |
@@ -273,6 +290,11 @@ CONFIG_FW_LOADER=m | |||
273 | # CONFIG_DEBUG_DRIVER is not set | 290 | # CONFIG_DEBUG_DRIVER is not set |
274 | 291 | ||
275 | # | 292 | # |
293 | # Connector - unified userspace <-> kernelspace linker | ||
294 | # | ||
295 | # CONFIG_CONNECTOR is not set | ||
296 | |||
297 | # | ||
276 | # Memory Technology Devices (MTD) | 298 | # Memory Technology Devices (MTD) |
277 | # | 299 | # |
278 | # CONFIG_MTD is not set | 300 | # CONFIG_MTD is not set |
@@ -303,7 +325,6 @@ CONFIG_BLK_DEV_RAM=y | |||
303 | CONFIG_BLK_DEV_RAM_COUNT=16 | 325 | CONFIG_BLK_DEV_RAM_COUNT=16 |
304 | CONFIG_BLK_DEV_RAM_SIZE=65536 | 326 | CONFIG_BLK_DEV_RAM_SIZE=65536 |
305 | CONFIG_BLK_DEV_INITRD=y | 327 | CONFIG_BLK_DEV_INITRD=y |
306 | CONFIG_INITRAMFS_SOURCE="" | ||
307 | # CONFIG_CDROM_PKTCDVD is not set | 328 | # CONFIG_CDROM_PKTCDVD is not set |
308 | 329 | ||
309 | # | 330 | # |
@@ -323,6 +344,7 @@ CONFIG_IOSCHED_CFQ=y | |||
323 | # | 344 | # |
324 | # SCSI device support | 345 | # SCSI device support |
325 | # | 346 | # |
347 | # CONFIG_RAID_ATTRS is not set | ||
326 | CONFIG_SCSI=y | 348 | CONFIG_SCSI=y |
327 | CONFIG_SCSI_PROC_FS=y | 349 | CONFIG_SCSI_PROC_FS=y |
328 | 350 | ||
@@ -350,6 +372,7 @@ CONFIG_SCSI_CONSTANTS=y | |||
350 | CONFIG_SCSI_SPI_ATTRS=y | 372 | CONFIG_SCSI_SPI_ATTRS=y |
351 | CONFIG_SCSI_FC_ATTRS=y | 373 | CONFIG_SCSI_FC_ATTRS=y |
352 | # CONFIG_SCSI_ISCSI_ATTRS is not set | 374 | # CONFIG_SCSI_ISCSI_ATTRS is not set |
375 | # CONFIG_SCSI_SAS_ATTRS is not set | ||
353 | 376 | ||
354 | # | 377 | # |
355 | # SCSI low-level drivers | 378 | # SCSI low-level drivers |
@@ -363,6 +386,7 @@ CONFIG_SCSI_FC_ATTRS=y | |||
363 | # CONFIG_SCSI_AIC79XX is not set | 386 | # CONFIG_SCSI_AIC79XX is not set |
364 | # CONFIG_MEGARAID_NEWGEN is not set | 387 | # CONFIG_MEGARAID_NEWGEN is not set |
365 | # CONFIG_MEGARAID_LEGACY is not set | 388 | # CONFIG_MEGARAID_LEGACY is not set |
389 | # CONFIG_MEGARAID_SAS is not set | ||
366 | # CONFIG_SCSI_SATA is not set | 390 | # CONFIG_SCSI_SATA is not set |
367 | # CONFIG_SCSI_BUSLOGIC is not set | 391 | # CONFIG_SCSI_BUSLOGIC is not set |
368 | # CONFIG_SCSI_DMX3191D is not set | 392 | # CONFIG_SCSI_DMX3191D is not set |
@@ -415,6 +439,7 @@ CONFIG_DM_ZERO=m | |||
415 | # CONFIG_FUSION is not set | 439 | # CONFIG_FUSION is not set |
416 | # CONFIG_FUSION_SPI is not set | 440 | # CONFIG_FUSION_SPI is not set |
417 | # CONFIG_FUSION_FC is not set | 441 | # CONFIG_FUSION_FC is not set |
442 | # CONFIG_FUSION_SAS is not set | ||
418 | 443 | ||
419 | # | 444 | # |
420 | # IEEE 1394 (FireWire) support | 445 | # IEEE 1394 (FireWire) support |
@@ -445,12 +470,18 @@ CONFIG_TUN=m | |||
445 | # CONFIG_ARCNET is not set | 470 | # CONFIG_ARCNET is not set |
446 | 471 | ||
447 | # | 472 | # |
473 | # PHY device support | ||
474 | # | ||
475 | # CONFIG_PHYLIB is not set | ||
476 | |||
477 | # | ||
448 | # Ethernet (10 or 100Mbit) | 478 | # Ethernet (10 or 100Mbit) |
449 | # | 479 | # |
450 | CONFIG_NET_ETHERNET=y | 480 | CONFIG_NET_ETHERNET=y |
451 | CONFIG_MII=y | 481 | CONFIG_MII=y |
452 | # CONFIG_HAPPYMEAL is not set | 482 | # CONFIG_HAPPYMEAL is not set |
453 | # CONFIG_SUNGEM is not set | 483 | # CONFIG_SUNGEM is not set |
484 | # CONFIG_CASSINI is not set | ||
454 | # CONFIG_NET_VENDOR_3COM is not set | 485 | # CONFIG_NET_VENDOR_3COM is not set |
455 | 486 | ||
456 | # | 487 | # |
@@ -489,6 +520,7 @@ CONFIG_E1000=m | |||
489 | # CONFIG_HAMACHI is not set | 520 | # CONFIG_HAMACHI is not set |
490 | # CONFIG_YELLOWFIN is not set | 521 | # CONFIG_YELLOWFIN is not set |
491 | # CONFIG_R8169 is not set | 522 | # CONFIG_R8169 is not set |
523 | # CONFIG_SIS190 is not set | ||
492 | # CONFIG_SKGE is not set | 524 | # CONFIG_SKGE is not set |
493 | # CONFIG_SK98LIN is not set | 525 | # CONFIG_SK98LIN is not set |
494 | # CONFIG_VIA_VELOCITY is not set | 526 | # CONFIG_VIA_VELOCITY is not set |
@@ -498,6 +530,7 @@ CONFIG_E1000=m | |||
498 | # | 530 | # |
499 | # Ethernet (10000 Mbit) | 531 | # Ethernet (10000 Mbit) |
500 | # | 532 | # |
533 | # CONFIG_CHELSIO_T1 is not set | ||
501 | # CONFIG_IXGB is not set | 534 | # CONFIG_IXGB is not set |
502 | # CONFIG_S2IO is not set | 535 | # CONFIG_S2IO is not set |
503 | 536 | ||
@@ -632,7 +665,6 @@ CONFIG_MAX_RAW_DEVS=256 | |||
632 | # I2C support | 665 | # I2C support |
633 | # | 666 | # |
634 | # CONFIG_I2C is not set | 667 | # CONFIG_I2C is not set |
635 | # CONFIG_I2C_SENSOR is not set | ||
636 | 668 | ||
637 | # | 669 | # |
638 | # Dallas's 1-wire bus | 670 | # Dallas's 1-wire bus |
@@ -643,12 +675,17 @@ CONFIG_MAX_RAW_DEVS=256 | |||
643 | # Hardware Monitoring support | 675 | # Hardware Monitoring support |
644 | # | 676 | # |
645 | # CONFIG_HWMON is not set | 677 | # CONFIG_HWMON is not set |
678 | # CONFIG_HWMON_VID is not set | ||
646 | 679 | ||
647 | # | 680 | # |
648 | # Misc devices | 681 | # Misc devices |
649 | # | 682 | # |
650 | 683 | ||
651 | # | 684 | # |
685 | # Multimedia Capabilities Port drivers | ||
686 | # | ||
687 | |||
688 | # | ||
652 | # Multimedia devices | 689 | # Multimedia devices |
653 | # | 690 | # |
654 | # CONFIG_VIDEO_DEV is not set | 691 | # CONFIG_VIDEO_DEV is not set |
@@ -722,16 +759,12 @@ CONFIG_JFS_SECURITY=y | |||
722 | # CONFIG_JFS_DEBUG is not set | 759 | # CONFIG_JFS_DEBUG is not set |
723 | # CONFIG_JFS_STATISTICS is not set | 760 | # CONFIG_JFS_STATISTICS is not set |
724 | CONFIG_FS_POSIX_ACL=y | 761 | CONFIG_FS_POSIX_ACL=y |
725 | |||
726 | # | ||
727 | # XFS support | ||
728 | # | ||
729 | CONFIG_XFS_FS=m | 762 | CONFIG_XFS_FS=m |
730 | CONFIG_XFS_EXPORT=y | 763 | CONFIG_XFS_EXPORT=y |
731 | # CONFIG_XFS_RT is not set | ||
732 | # CONFIG_XFS_QUOTA is not set | 764 | # CONFIG_XFS_QUOTA is not set |
733 | CONFIG_XFS_SECURITY=y | 765 | CONFIG_XFS_SECURITY=y |
734 | CONFIG_XFS_POSIX_ACL=y | 766 | CONFIG_XFS_POSIX_ACL=y |
767 | # CONFIG_XFS_RT is not set | ||
735 | # CONFIG_MINIX_FS is not set | 768 | # CONFIG_MINIX_FS is not set |
736 | # CONFIG_ROMFS_FS is not set | 769 | # CONFIG_ROMFS_FS is not set |
737 | CONFIG_INOTIFY=y | 770 | CONFIG_INOTIFY=y |
@@ -739,6 +772,7 @@ CONFIG_INOTIFY=y | |||
739 | CONFIG_DNOTIFY=y | 772 | CONFIG_DNOTIFY=y |
740 | CONFIG_AUTOFS_FS=m | 773 | CONFIG_AUTOFS_FS=m |
741 | # CONFIG_AUTOFS4_FS is not set | 774 | # CONFIG_AUTOFS4_FS is not set |
775 | # CONFIG_FUSE_FS is not set | ||
742 | 776 | ||
743 | # | 777 | # |
744 | # CD-ROM/DVD Filesystems | 778 | # CD-ROM/DVD Filesystems |
@@ -766,14 +800,11 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
766 | CONFIG_PROC_FS=y | 800 | CONFIG_PROC_FS=y |
767 | CONFIG_PROC_KCORE=y | 801 | CONFIG_PROC_KCORE=y |
768 | CONFIG_SYSFS=y | 802 | CONFIG_SYSFS=y |
769 | CONFIG_DEVPTS_FS_XATTR=y | ||
770 | CONFIG_DEVPTS_FS_SECURITY=y | ||
771 | CONFIG_TMPFS=y | 803 | CONFIG_TMPFS=y |
772 | CONFIG_TMPFS_XATTR=y | ||
773 | CONFIG_TMPFS_SECURITY=y | ||
774 | # CONFIG_HUGETLBFS is not set | 804 | # CONFIG_HUGETLBFS is not set |
775 | # CONFIG_HUGETLB_PAGE is not set | 805 | # CONFIG_HUGETLB_PAGE is not set |
776 | CONFIG_RAMFS=y | 806 | CONFIG_RAMFS=y |
807 | # CONFIG_RELAYFS_FS is not set | ||
777 | 808 | ||
778 | # | 809 | # |
779 | # Miscellaneous filesystems | 810 | # Miscellaneous filesystems |
@@ -824,6 +855,7 @@ CONFIG_CIFS_POSIX=y | |||
824 | # CONFIG_NCP_FS is not set | 855 | # CONFIG_NCP_FS is not set |
825 | # CONFIG_CODA_FS is not set | 856 | # CONFIG_CODA_FS is not set |
826 | # CONFIG_AFS_FS is not set | 857 | # CONFIG_AFS_FS is not set |
858 | # CONFIG_9P_FS is not set | ||
827 | 859 | ||
828 | # | 860 | # |
829 | # Partition Types | 861 | # Partition Types |
@@ -897,6 +929,7 @@ CONFIG_OPROFILE=y | |||
897 | CONFIG_DEBUG_KERNEL=y | 929 | CONFIG_DEBUG_KERNEL=y |
898 | CONFIG_MAGIC_SYSRQ=y | 930 | CONFIG_MAGIC_SYSRQ=y |
899 | CONFIG_LOG_BUF_SHIFT=17 | 931 | CONFIG_LOG_BUF_SHIFT=17 |
932 | CONFIG_DETECT_SOFTLOCKUP=y | ||
900 | # CONFIG_SCHEDSTATS is not set | 933 | # CONFIG_SCHEDSTATS is not set |
901 | # CONFIG_DEBUG_SLAB is not set | 934 | # CONFIG_DEBUG_SLAB is not set |
902 | # CONFIG_DEBUG_SPINLOCK is not set | 935 | # CONFIG_DEBUG_SPINLOCK is not set |
@@ -954,7 +987,12 @@ CONFIG_CRYPTO_TEST=m | |||
954 | # Library routines | 987 | # Library routines |
955 | # | 988 | # |
956 | CONFIG_CRC_CCITT=m | 989 | CONFIG_CRC_CCITT=m |
990 | # CONFIG_CRC16 is not set | ||
957 | CONFIG_CRC32=y | 991 | CONFIG_CRC32=y |
958 | CONFIG_LIBCRC32C=m | 992 | CONFIG_LIBCRC32C=m |
959 | CONFIG_ZLIB_INFLATE=y | 993 | CONFIG_ZLIB_INFLATE=y |
960 | CONFIG_ZLIB_DEFLATE=m | 994 | CONFIG_ZLIB_DEFLATE=m |
995 | CONFIG_TEXTSEARCH=y | ||
996 | CONFIG_TEXTSEARCH_KMP=m | ||
997 | CONFIG_TEXTSEARCH_BM=m | ||
998 | CONFIG_TEXTSEARCH_FSM=m | ||
diff --git a/arch/ppc64/configs/maple_defconfig b/arch/ppc64/configs/maple_defconfig index dd42892cd873..7b480f3d1406 100644 --- a/arch/ppc64/configs/maple_defconfig +++ b/arch/ppc64/configs/maple_defconfig | |||
@@ -1,17 +1,17 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.13-rc6 | 3 | # Linux kernel version: 2.6.14-rc4 |
4 | # Mon Aug 8 14:17:04 2005 | 4 | # Thu Oct 20 08:31:24 2005 |
5 | # | 5 | # |
6 | CONFIG_64BIT=y | 6 | CONFIG_64BIT=y |
7 | CONFIG_MMU=y | 7 | CONFIG_MMU=y |
8 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 8 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
9 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 9 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
10 | CONFIG_GENERIC_ISA_DMA=y | 10 | CONFIG_GENERIC_ISA_DMA=y |
11 | CONFIG_HAVE_DEC_LOCK=y | ||
12 | CONFIG_EARLY_PRINTK=y | 11 | CONFIG_EARLY_PRINTK=y |
13 | CONFIG_COMPAT=y | 12 | CONFIG_COMPAT=y |
14 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | 13 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y |
14 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | ||
15 | CONFIG_FORCE_MAX_ZONEORDER=13 | 15 | CONFIG_FORCE_MAX_ZONEORDER=13 |
16 | 16 | ||
17 | # | 17 | # |
@@ -26,6 +26,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32 | |||
26 | # General setup | 26 | # General setup |
27 | # | 27 | # |
28 | CONFIG_LOCALVERSION="" | 28 | CONFIG_LOCALVERSION="" |
29 | CONFIG_LOCALVERSION_AUTO=y | ||
29 | CONFIG_SWAP=y | 30 | CONFIG_SWAP=y |
30 | CONFIG_SYSVIPC=y | 31 | CONFIG_SYSVIPC=y |
31 | CONFIG_POSIX_MQUEUE=y | 32 | CONFIG_POSIX_MQUEUE=y |
@@ -37,6 +38,7 @@ CONFIG_KOBJECT_UEVENT=y | |||
37 | CONFIG_IKCONFIG=y | 38 | CONFIG_IKCONFIG=y |
38 | CONFIG_IKCONFIG_PROC=y | 39 | CONFIG_IKCONFIG_PROC=y |
39 | # CONFIG_CPUSETS is not set | 40 | # CONFIG_CPUSETS is not set |
41 | CONFIG_INITRAMFS_SOURCE="" | ||
40 | # CONFIG_EMBEDDED is not set | 42 | # CONFIG_EMBEDDED is not set |
41 | CONFIG_KALLSYMS=y | 43 | CONFIG_KALLSYMS=y |
42 | CONFIG_KALLSYMS_ALL=y | 44 | CONFIG_KALLSYMS_ALL=y |
@@ -97,6 +99,7 @@ CONFIG_FLATMEM_MANUAL=y | |||
97 | # CONFIG_SPARSEMEM_MANUAL is not set | 99 | # CONFIG_SPARSEMEM_MANUAL is not set |
98 | CONFIG_FLATMEM=y | 100 | CONFIG_FLATMEM=y |
99 | CONFIG_FLAT_NODE_MEM_MAP=y | 101 | CONFIG_FLAT_NODE_MEM_MAP=y |
102 | # CONFIG_SPARSEMEM_STATIC is not set | ||
100 | # CONFIG_NUMA is not set | 103 | # CONFIG_NUMA is not set |
101 | # CONFIG_SCHED_SMT is not set | 104 | # CONFIG_SCHED_SMT is not set |
102 | CONFIG_PREEMPT_NONE=y | 105 | CONFIG_PREEMPT_NONE=y |
@@ -109,17 +112,18 @@ CONFIG_HZ_250=y | |||
109 | CONFIG_HZ=250 | 112 | CONFIG_HZ=250 |
110 | CONFIG_GENERIC_HARDIRQS=y | 113 | CONFIG_GENERIC_HARDIRQS=y |
111 | CONFIG_SECCOMP=y | 114 | CONFIG_SECCOMP=y |
115 | CONFIG_BINFMT_ELF=y | ||
116 | # CONFIG_BINFMT_MISC is not set | ||
117 | CONFIG_PROC_DEVICETREE=y | ||
118 | # CONFIG_CMDLINE_BOOL is not set | ||
112 | CONFIG_ISA_DMA_API=y | 119 | CONFIG_ISA_DMA_API=y |
113 | 120 | ||
114 | # | 121 | # |
115 | # General setup | 122 | # Bus Options |
116 | # | 123 | # |
117 | CONFIG_PCI=y | 124 | CONFIG_PCI=y |
118 | CONFIG_PCI_DOMAINS=y | 125 | CONFIG_PCI_DOMAINS=y |
119 | CONFIG_BINFMT_ELF=y | ||
120 | # CONFIG_BINFMT_MISC is not set | ||
121 | CONFIG_PCI_LEGACY_PROC=y | 126 | CONFIG_PCI_LEGACY_PROC=y |
122 | CONFIG_PCI_NAMES=y | ||
123 | # CONFIG_PCI_DEBUG is not set | 127 | # CONFIG_PCI_DEBUG is not set |
124 | 128 | ||
125 | # | 129 | # |
@@ -131,8 +135,6 @@ CONFIG_PCI_NAMES=y | |||
131 | # PCI Hotplug Support | 135 | # PCI Hotplug Support |
132 | # | 136 | # |
133 | # CONFIG_HOTPLUG_PCI is not set | 137 | # CONFIG_HOTPLUG_PCI is not set |
134 | CONFIG_PROC_DEVICETREE=y | ||
135 | # CONFIG_CMDLINE_BOOL is not set | ||
136 | 138 | ||
137 | # | 139 | # |
138 | # Networking | 140 | # Networking |
@@ -163,14 +165,19 @@ CONFIG_IP_PNP_DHCP=y | |||
163 | # CONFIG_INET_ESP is not set | 165 | # CONFIG_INET_ESP is not set |
164 | # CONFIG_INET_IPCOMP is not set | 166 | # CONFIG_INET_IPCOMP is not set |
165 | # CONFIG_INET_TUNNEL is not set | 167 | # CONFIG_INET_TUNNEL is not set |
166 | CONFIG_IP_TCPDIAG=y | 168 | CONFIG_INET_DIAG=y |
167 | # CONFIG_IP_TCPDIAG_IPV6 is not set | 169 | CONFIG_INET_TCP_DIAG=y |
168 | # CONFIG_TCP_CONG_ADVANCED is not set | 170 | # CONFIG_TCP_CONG_ADVANCED is not set |
169 | CONFIG_TCP_CONG_BIC=y | 171 | CONFIG_TCP_CONG_BIC=y |
170 | # CONFIG_IPV6 is not set | 172 | # CONFIG_IPV6 is not set |
171 | # CONFIG_NETFILTER is not set | 173 | # CONFIG_NETFILTER is not set |
172 | 174 | ||
173 | # | 175 | # |
176 | # DCCP Configuration (EXPERIMENTAL) | ||
177 | # | ||
178 | # CONFIG_IP_DCCP is not set | ||
179 | |||
180 | # | ||
174 | # SCTP Configuration (EXPERIMENTAL) | 181 | # SCTP Configuration (EXPERIMENTAL) |
175 | # | 182 | # |
176 | # CONFIG_IP_SCTP is not set | 183 | # CONFIG_IP_SCTP is not set |
@@ -196,6 +203,7 @@ CONFIG_TCP_CONG_BIC=y | |||
196 | # CONFIG_HAMRADIO is not set | 203 | # CONFIG_HAMRADIO is not set |
197 | # CONFIG_IRDA is not set | 204 | # CONFIG_IRDA is not set |
198 | # CONFIG_BT is not set | 205 | # CONFIG_BT is not set |
206 | # CONFIG_IEEE80211 is not set | ||
199 | 207 | ||
200 | # | 208 | # |
201 | # Device Drivers | 209 | # Device Drivers |
@@ -210,6 +218,11 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y | |||
210 | # CONFIG_DEBUG_DRIVER is not set | 218 | # CONFIG_DEBUG_DRIVER is not set |
211 | 219 | ||
212 | # | 220 | # |
221 | # Connector - unified userspace <-> kernelspace linker | ||
222 | # | ||
223 | # CONFIG_CONNECTOR is not set | ||
224 | |||
225 | # | ||
213 | # Memory Technology Devices (MTD) | 226 | # Memory Technology Devices (MTD) |
214 | # | 227 | # |
215 | # CONFIG_MTD is not set | 228 | # CONFIG_MTD is not set |
@@ -240,7 +253,6 @@ CONFIG_BLK_DEV_RAM=y | |||
240 | CONFIG_BLK_DEV_RAM_COUNT=16 | 253 | CONFIG_BLK_DEV_RAM_COUNT=16 |
241 | CONFIG_BLK_DEV_RAM_SIZE=8192 | 254 | CONFIG_BLK_DEV_RAM_SIZE=8192 |
242 | # CONFIG_BLK_DEV_INITRD is not set | 255 | # CONFIG_BLK_DEV_INITRD is not set |
243 | CONFIG_INITRAMFS_SOURCE="" | ||
244 | # CONFIG_CDROM_PKTCDVD is not set | 256 | # CONFIG_CDROM_PKTCDVD is not set |
245 | 257 | ||
246 | # | 258 | # |
@@ -313,6 +325,7 @@ CONFIG_IDEDMA_AUTO=y | |||
313 | # | 325 | # |
314 | # SCSI device support | 326 | # SCSI device support |
315 | # | 327 | # |
328 | # CONFIG_RAID_ATTRS is not set | ||
316 | # CONFIG_SCSI is not set | 329 | # CONFIG_SCSI is not set |
317 | 330 | ||
318 | # | 331 | # |
@@ -354,12 +367,18 @@ CONFIG_NETDEVICES=y | |||
354 | # CONFIG_ARCNET is not set | 367 | # CONFIG_ARCNET is not set |
355 | 368 | ||
356 | # | 369 | # |
370 | # PHY device support | ||
371 | # | ||
372 | # CONFIG_PHYLIB is not set | ||
373 | |||
374 | # | ||
357 | # Ethernet (10 or 100Mbit) | 375 | # Ethernet (10 or 100Mbit) |
358 | # | 376 | # |
359 | CONFIG_NET_ETHERNET=y | 377 | CONFIG_NET_ETHERNET=y |
360 | CONFIG_MII=y | 378 | CONFIG_MII=y |
361 | # CONFIG_HAPPYMEAL is not set | 379 | # CONFIG_HAPPYMEAL is not set |
362 | # CONFIG_SUNGEM is not set | 380 | # CONFIG_SUNGEM is not set |
381 | # CONFIG_CASSINI is not set | ||
363 | # CONFIG_NET_VENDOR_3COM is not set | 382 | # CONFIG_NET_VENDOR_3COM is not set |
364 | 383 | ||
365 | # | 384 | # |
@@ -398,6 +417,7 @@ CONFIG_E1000=y | |||
398 | # CONFIG_HAMACHI is not set | 417 | # CONFIG_HAMACHI is not set |
399 | # CONFIG_YELLOWFIN is not set | 418 | # CONFIG_YELLOWFIN is not set |
400 | # CONFIG_R8169 is not set | 419 | # CONFIG_R8169 is not set |
420 | # CONFIG_SIS190 is not set | ||
401 | # CONFIG_SKGE is not set | 421 | # CONFIG_SKGE is not set |
402 | # CONFIG_SK98LIN is not set | 422 | # CONFIG_SK98LIN is not set |
403 | # CONFIG_VIA_VELOCITY is not set | 423 | # CONFIG_VIA_VELOCITY is not set |
@@ -408,6 +428,7 @@ CONFIG_E1000=y | |||
408 | # | 428 | # |
409 | # Ethernet (10000 Mbit) | 429 | # Ethernet (10000 Mbit) |
410 | # | 430 | # |
431 | # CONFIG_CHELSIO_T1 is not set | ||
411 | # CONFIG_IXGB is not set | 432 | # CONFIG_IXGB is not set |
412 | # CONFIG_S2IO is not set | 433 | # CONFIG_S2IO is not set |
413 | 434 | ||
@@ -553,7 +574,6 @@ CONFIG_I2C_AMD8111=y | |||
553 | # CONFIG_I2C_I801 is not set | 574 | # CONFIG_I2C_I801 is not set |
554 | # CONFIG_I2C_I810 is not set | 575 | # CONFIG_I2C_I810 is not set |
555 | # CONFIG_I2C_PIIX4 is not set | 576 | # CONFIG_I2C_PIIX4 is not set |
556 | # CONFIG_I2C_ISA is not set | ||
557 | # CONFIG_I2C_NFORCE2 is not set | 577 | # CONFIG_I2C_NFORCE2 is not set |
558 | # CONFIG_I2C_PARPORT_LIGHT is not set | 578 | # CONFIG_I2C_PARPORT_LIGHT is not set |
559 | # CONFIG_I2C_PROSAVAGE is not set | 579 | # CONFIG_I2C_PROSAVAGE is not set |
@@ -567,7 +587,6 @@ CONFIG_I2C_AMD8111=y | |||
567 | # CONFIG_I2C_VIAPRO is not set | 587 | # CONFIG_I2C_VIAPRO is not set |
568 | # CONFIG_I2C_VOODOO3 is not set | 588 | # CONFIG_I2C_VOODOO3 is not set |
569 | # CONFIG_I2C_PCA_ISA is not set | 589 | # CONFIG_I2C_PCA_ISA is not set |
570 | # CONFIG_I2C_SENSOR is not set | ||
571 | 590 | ||
572 | # | 591 | # |
573 | # Miscellaneous I2C Chip support | 592 | # Miscellaneous I2C Chip support |
@@ -594,12 +613,17 @@ CONFIG_I2C_AMD8111=y | |||
594 | # Hardware Monitoring support | 613 | # Hardware Monitoring support |
595 | # | 614 | # |
596 | # CONFIG_HWMON is not set | 615 | # CONFIG_HWMON is not set |
616 | # CONFIG_HWMON_VID is not set | ||
597 | 617 | ||
598 | # | 618 | # |
599 | # Misc devices | 619 | # Misc devices |
600 | # | 620 | # |
601 | 621 | ||
602 | # | 622 | # |
623 | # Multimedia Capabilities Port drivers | ||
624 | # | ||
625 | |||
626 | # | ||
603 | # Multimedia devices | 627 | # Multimedia devices |
604 | # | 628 | # |
605 | # CONFIG_VIDEO_DEV is not set | 629 | # CONFIG_VIDEO_DEV is not set |
@@ -681,9 +705,11 @@ CONFIG_USB_HIDINPUT=y | |||
681 | # CONFIG_USB_MTOUCH is not set | 705 | # CONFIG_USB_MTOUCH is not set |
682 | # CONFIG_USB_ITMTOUCH is not set | 706 | # CONFIG_USB_ITMTOUCH is not set |
683 | # CONFIG_USB_EGALAX is not set | 707 | # CONFIG_USB_EGALAX is not set |
708 | # CONFIG_USB_YEALINK is not set | ||
684 | # CONFIG_USB_XPAD is not set | 709 | # CONFIG_USB_XPAD is not set |
685 | # CONFIG_USB_ATI_REMOTE is not set | 710 | # CONFIG_USB_ATI_REMOTE is not set |
686 | # CONFIG_USB_KEYSPAN_REMOTE is not set | 711 | # CONFIG_USB_KEYSPAN_REMOTE is not set |
712 | # CONFIG_USB_APPLETOUCH is not set | ||
687 | 713 | ||
688 | # | 714 | # |
689 | # USB Imaging devices | 715 | # USB Imaging devices |
@@ -814,10 +840,6 @@ CONFIG_JBD=y | |||
814 | # CONFIG_REISERFS_FS is not set | 840 | # CONFIG_REISERFS_FS is not set |
815 | # CONFIG_JFS_FS is not set | 841 | # CONFIG_JFS_FS is not set |
816 | CONFIG_FS_POSIX_ACL=y | 842 | CONFIG_FS_POSIX_ACL=y |
817 | |||
818 | # | ||
819 | # XFS support | ||
820 | # | ||
821 | # CONFIG_XFS_FS is not set | 843 | # CONFIG_XFS_FS is not set |
822 | # CONFIG_MINIX_FS is not set | 844 | # CONFIG_MINIX_FS is not set |
823 | # CONFIG_ROMFS_FS is not set | 845 | # CONFIG_ROMFS_FS is not set |
@@ -826,6 +848,7 @@ CONFIG_INOTIFY=y | |||
826 | CONFIG_DNOTIFY=y | 848 | CONFIG_DNOTIFY=y |
827 | # CONFIG_AUTOFS_FS is not set | 849 | # CONFIG_AUTOFS_FS is not set |
828 | # CONFIG_AUTOFS4_FS is not set | 850 | # CONFIG_AUTOFS4_FS is not set |
851 | # CONFIG_FUSE_FS is not set | ||
829 | 852 | ||
830 | # | 853 | # |
831 | # CD-ROM/DVD Filesystems | 854 | # CD-ROM/DVD Filesystems |
@@ -849,14 +872,11 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
849 | CONFIG_PROC_FS=y | 872 | CONFIG_PROC_FS=y |
850 | CONFIG_PROC_KCORE=y | 873 | CONFIG_PROC_KCORE=y |
851 | CONFIG_SYSFS=y | 874 | CONFIG_SYSFS=y |
852 | CONFIG_DEVPTS_FS_XATTR=y | ||
853 | # CONFIG_DEVPTS_FS_SECURITY is not set | ||
854 | CONFIG_TMPFS=y | 875 | CONFIG_TMPFS=y |
855 | CONFIG_TMPFS_XATTR=y | ||
856 | CONFIG_TMPFS_SECURITY=y | ||
857 | CONFIG_HUGETLBFS=y | 876 | CONFIG_HUGETLBFS=y |
858 | CONFIG_HUGETLB_PAGE=y | 877 | CONFIG_HUGETLB_PAGE=y |
859 | CONFIG_RAMFS=y | 878 | CONFIG_RAMFS=y |
879 | # CONFIG_RELAYFS_FS is not set | ||
860 | 880 | ||
861 | # | 881 | # |
862 | # Miscellaneous filesystems | 882 | # Miscellaneous filesystems |
@@ -898,6 +918,7 @@ CONFIG_RPCSEC_GSS_KRB5=y | |||
898 | # CONFIG_NCP_FS is not set | 918 | # CONFIG_NCP_FS is not set |
899 | # CONFIG_CODA_FS is not set | 919 | # CONFIG_CODA_FS is not set |
900 | # CONFIG_AFS_FS is not set | 920 | # CONFIG_AFS_FS is not set |
921 | # CONFIG_9P_FS is not set | ||
901 | 922 | ||
902 | # | 923 | # |
903 | # Partition Types | 924 | # Partition Types |
@@ -975,6 +996,7 @@ CONFIG_NLS_UTF8=y | |||
975 | CONFIG_DEBUG_KERNEL=y | 996 | CONFIG_DEBUG_KERNEL=y |
976 | CONFIG_MAGIC_SYSRQ=y | 997 | CONFIG_MAGIC_SYSRQ=y |
977 | CONFIG_LOG_BUF_SHIFT=17 | 998 | CONFIG_LOG_BUF_SHIFT=17 |
999 | CONFIG_DETECT_SOFTLOCKUP=y | ||
978 | # CONFIG_SCHEDSTATS is not set | 1000 | # CONFIG_SCHEDSTATS is not set |
979 | CONFIG_DEBUG_SLAB=y | 1001 | CONFIG_DEBUG_SLAB=y |
980 | # CONFIG_DEBUG_SPINLOCK is not set | 1002 | # CONFIG_DEBUG_SPINLOCK is not set |
@@ -1034,6 +1056,7 @@ CONFIG_CRYPTO_DES=y | |||
1034 | # Library routines | 1056 | # Library routines |
1035 | # | 1057 | # |
1036 | CONFIG_CRC_CCITT=y | 1058 | CONFIG_CRC_CCITT=y |
1059 | # CONFIG_CRC16 is not set | ||
1037 | CONFIG_CRC32=y | 1060 | CONFIG_CRC32=y |
1038 | # CONFIG_LIBCRC32C is not set | 1061 | # CONFIG_LIBCRC32C is not set |
1039 | CONFIG_ZLIB_INFLATE=y | 1062 | CONFIG_ZLIB_INFLATE=y |
diff --git a/arch/ppc64/configs/pSeries_defconfig b/arch/ppc64/configs/pSeries_defconfig index 29f7b80b0efc..9f09dff9e11a 100644 --- a/arch/ppc64/configs/pSeries_defconfig +++ b/arch/ppc64/configs/pSeries_defconfig | |||
@@ -1,17 +1,17 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.13-rc6 | 3 | # Linux kernel version: 2.6.14-rc4 |
4 | # Mon Aug 8 14:17:07 2005 | 4 | # Thu Oct 20 08:32:17 2005 |
5 | # | 5 | # |
6 | CONFIG_64BIT=y | 6 | CONFIG_64BIT=y |
7 | CONFIG_MMU=y | 7 | CONFIG_MMU=y |
8 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 8 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
9 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 9 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
10 | CONFIG_GENERIC_ISA_DMA=y | 10 | CONFIG_GENERIC_ISA_DMA=y |
11 | CONFIG_HAVE_DEC_LOCK=y | ||
12 | CONFIG_EARLY_PRINTK=y | 11 | CONFIG_EARLY_PRINTK=y |
13 | CONFIG_COMPAT=y | 12 | CONFIG_COMPAT=y |
14 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | 13 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y |
14 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | ||
15 | CONFIG_FORCE_MAX_ZONEORDER=13 | 15 | CONFIG_FORCE_MAX_ZONEORDER=13 |
16 | 16 | ||
17 | # | 17 | # |
@@ -26,6 +26,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32 | |||
26 | # General setup | 26 | # General setup |
27 | # | 27 | # |
28 | CONFIG_LOCALVERSION="" | 28 | CONFIG_LOCALVERSION="" |
29 | CONFIG_LOCALVERSION_AUTO=y | ||
29 | CONFIG_SWAP=y | 30 | CONFIG_SWAP=y |
30 | CONFIG_SYSVIPC=y | 31 | CONFIG_SYSVIPC=y |
31 | CONFIG_POSIX_MQUEUE=y | 32 | CONFIG_POSIX_MQUEUE=y |
@@ -38,6 +39,7 @@ CONFIG_KOBJECT_UEVENT=y | |||
38 | CONFIG_IKCONFIG=y | 39 | CONFIG_IKCONFIG=y |
39 | CONFIG_IKCONFIG_PROC=y | 40 | CONFIG_IKCONFIG_PROC=y |
40 | CONFIG_CPUSETS=y | 41 | CONFIG_CPUSETS=y |
42 | CONFIG_INITRAMFS_SOURCE="" | ||
41 | # CONFIG_EMBEDDED is not set | 43 | # CONFIG_EMBEDDED is not set |
42 | CONFIG_KALLSYMS=y | 44 | CONFIG_KALLSYMS=y |
43 | CONFIG_KALLSYMS_ALL=y | 45 | CONFIG_KALLSYMS_ALL=y |
@@ -104,6 +106,7 @@ CONFIG_DISCONTIGMEM_MANUAL=y | |||
104 | CONFIG_DISCONTIGMEM=y | 106 | CONFIG_DISCONTIGMEM=y |
105 | CONFIG_FLAT_NODE_MEM_MAP=y | 107 | CONFIG_FLAT_NODE_MEM_MAP=y |
106 | CONFIG_NEED_MULTIPLE_NODES=y | 108 | CONFIG_NEED_MULTIPLE_NODES=y |
109 | # CONFIG_SPARSEMEM_STATIC is not set | ||
107 | CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y | 110 | CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y |
108 | CONFIG_NODES_SPAN_OTHER_NODES=y | 111 | CONFIG_NODES_SPAN_OTHER_NODES=y |
109 | CONFIG_NUMA=y | 112 | CONFIG_NUMA=y |
@@ -124,19 +127,20 @@ CONFIG_RTAS_FLASH=m | |||
124 | CONFIG_SCANLOG=m | 127 | CONFIG_SCANLOG=m |
125 | CONFIG_LPARCFG=y | 128 | CONFIG_LPARCFG=y |
126 | CONFIG_SECCOMP=y | 129 | CONFIG_SECCOMP=y |
130 | CONFIG_BINFMT_ELF=y | ||
131 | # CONFIG_BINFMT_MISC is not set | ||
132 | CONFIG_HOTPLUG_CPU=y | ||
133 | CONFIG_PROC_DEVICETREE=y | ||
134 | # CONFIG_CMDLINE_BOOL is not set | ||
127 | CONFIG_ISA_DMA_API=y | 135 | CONFIG_ISA_DMA_API=y |
128 | 136 | ||
129 | # | 137 | # |
130 | # General setup | 138 | # Bus Options |
131 | # | 139 | # |
132 | CONFIG_PCI=y | 140 | CONFIG_PCI=y |
133 | CONFIG_PCI_DOMAINS=y | 141 | CONFIG_PCI_DOMAINS=y |
134 | CONFIG_BINFMT_ELF=y | ||
135 | # CONFIG_BINFMT_MISC is not set | ||
136 | CONFIG_PCI_LEGACY_PROC=y | 142 | CONFIG_PCI_LEGACY_PROC=y |
137 | CONFIG_PCI_NAMES=y | ||
138 | # CONFIG_PCI_DEBUG is not set | 143 | # CONFIG_PCI_DEBUG is not set |
139 | CONFIG_HOTPLUG_CPU=y | ||
140 | 144 | ||
141 | # | 145 | # |
142 | # PCCARD (PCMCIA/CardBus) support | 146 | # PCCARD (PCMCIA/CardBus) support |
@@ -152,8 +156,6 @@ CONFIG_HOTPLUG_PCI=m | |||
152 | # CONFIG_HOTPLUG_PCI_SHPC is not set | 156 | # CONFIG_HOTPLUG_PCI_SHPC is not set |
153 | CONFIG_HOTPLUG_PCI_RPA=m | 157 | CONFIG_HOTPLUG_PCI_RPA=m |
154 | CONFIG_HOTPLUG_PCI_RPA_DLPAR=m | 158 | CONFIG_HOTPLUG_PCI_RPA_DLPAR=m |
155 | CONFIG_PROC_DEVICETREE=y | ||
156 | # CONFIG_CMDLINE_BOOL is not set | ||
157 | 159 | ||
158 | # | 160 | # |
159 | # Networking | 161 | # Networking |
@@ -183,8 +185,8 @@ CONFIG_INET_AH=m | |||
183 | CONFIG_INET_ESP=m | 185 | CONFIG_INET_ESP=m |
184 | CONFIG_INET_IPCOMP=m | 186 | CONFIG_INET_IPCOMP=m |
185 | CONFIG_INET_TUNNEL=y | 187 | CONFIG_INET_TUNNEL=y |
186 | CONFIG_IP_TCPDIAG=m | 188 | CONFIG_INET_DIAG=y |
187 | # CONFIG_IP_TCPDIAG_IPV6 is not set | 189 | CONFIG_INET_TCP_DIAG=y |
188 | # CONFIG_TCP_CONG_ADVANCED is not set | 190 | # CONFIG_TCP_CONG_ADVANCED is not set |
189 | CONFIG_TCP_CONG_BIC=y | 191 | CONFIG_TCP_CONG_BIC=y |
190 | 192 | ||
@@ -195,6 +197,9 @@ CONFIG_TCP_CONG_BIC=y | |||
195 | # CONFIG_IPV6 is not set | 197 | # CONFIG_IPV6 is not set |
196 | CONFIG_NETFILTER=y | 198 | CONFIG_NETFILTER=y |
197 | # CONFIG_NETFILTER_DEBUG is not set | 199 | # CONFIG_NETFILTER_DEBUG is not set |
200 | CONFIG_NETFILTER_NETLINK=y | ||
201 | CONFIG_NETFILTER_NETLINK_QUEUE=m | ||
202 | CONFIG_NETFILTER_NETLINK_LOG=m | ||
198 | 203 | ||
199 | # | 204 | # |
200 | # IP: Netfilter Configuration | 205 | # IP: Netfilter Configuration |
@@ -202,11 +207,15 @@ CONFIG_NETFILTER=y | |||
202 | CONFIG_IP_NF_CONNTRACK=m | 207 | CONFIG_IP_NF_CONNTRACK=m |
203 | CONFIG_IP_NF_CT_ACCT=y | 208 | CONFIG_IP_NF_CT_ACCT=y |
204 | CONFIG_IP_NF_CONNTRACK_MARK=y | 209 | CONFIG_IP_NF_CONNTRACK_MARK=y |
210 | CONFIG_IP_NF_CONNTRACK_EVENTS=y | ||
211 | CONFIG_IP_NF_CONNTRACK_NETLINK=m | ||
205 | CONFIG_IP_NF_CT_PROTO_SCTP=m | 212 | CONFIG_IP_NF_CT_PROTO_SCTP=m |
206 | CONFIG_IP_NF_FTP=m | 213 | CONFIG_IP_NF_FTP=m |
207 | CONFIG_IP_NF_IRC=m | 214 | CONFIG_IP_NF_IRC=m |
215 | # CONFIG_IP_NF_NETBIOS_NS is not set | ||
208 | CONFIG_IP_NF_TFTP=m | 216 | CONFIG_IP_NF_TFTP=m |
209 | CONFIG_IP_NF_AMANDA=m | 217 | CONFIG_IP_NF_AMANDA=m |
218 | # CONFIG_IP_NF_PPTP is not set | ||
210 | CONFIG_IP_NF_QUEUE=m | 219 | CONFIG_IP_NF_QUEUE=m |
211 | CONFIG_IP_NF_IPTABLES=m | 220 | CONFIG_IP_NF_IPTABLES=m |
212 | CONFIG_IP_NF_MATCH_LIMIT=m | 221 | CONFIG_IP_NF_MATCH_LIMIT=m |
@@ -230,14 +239,18 @@ CONFIG_IP_NF_MATCH_OWNER=m | |||
230 | CONFIG_IP_NF_MATCH_ADDRTYPE=m | 239 | CONFIG_IP_NF_MATCH_ADDRTYPE=m |
231 | CONFIG_IP_NF_MATCH_REALM=m | 240 | CONFIG_IP_NF_MATCH_REALM=m |
232 | CONFIG_IP_NF_MATCH_SCTP=m | 241 | CONFIG_IP_NF_MATCH_SCTP=m |
242 | # CONFIG_IP_NF_MATCH_DCCP is not set | ||
233 | CONFIG_IP_NF_MATCH_COMMENT=m | 243 | CONFIG_IP_NF_MATCH_COMMENT=m |
234 | CONFIG_IP_NF_MATCH_CONNMARK=m | 244 | CONFIG_IP_NF_MATCH_CONNMARK=m |
245 | CONFIG_IP_NF_MATCH_CONNBYTES=m | ||
235 | CONFIG_IP_NF_MATCH_HASHLIMIT=m | 246 | CONFIG_IP_NF_MATCH_HASHLIMIT=m |
247 | CONFIG_IP_NF_MATCH_STRING=m | ||
236 | CONFIG_IP_NF_FILTER=m | 248 | CONFIG_IP_NF_FILTER=m |
237 | CONFIG_IP_NF_TARGET_REJECT=m | 249 | CONFIG_IP_NF_TARGET_REJECT=m |
238 | CONFIG_IP_NF_TARGET_LOG=m | 250 | CONFIG_IP_NF_TARGET_LOG=m |
239 | CONFIG_IP_NF_TARGET_ULOG=m | 251 | CONFIG_IP_NF_TARGET_ULOG=m |
240 | CONFIG_IP_NF_TARGET_TCPMSS=m | 252 | CONFIG_IP_NF_TARGET_TCPMSS=m |
253 | CONFIG_IP_NF_TARGET_NFQUEUE=m | ||
241 | CONFIG_IP_NF_NAT=m | 254 | CONFIG_IP_NF_NAT=m |
242 | CONFIG_IP_NF_NAT_NEEDED=y | 255 | CONFIG_IP_NF_NAT_NEEDED=y |
243 | CONFIG_IP_NF_TARGET_MASQUERADE=m | 256 | CONFIG_IP_NF_TARGET_MASQUERADE=m |
@@ -255,6 +268,7 @@ CONFIG_IP_NF_TARGET_ECN=m | |||
255 | CONFIG_IP_NF_TARGET_DSCP=m | 268 | CONFIG_IP_NF_TARGET_DSCP=m |
256 | CONFIG_IP_NF_TARGET_MARK=m | 269 | CONFIG_IP_NF_TARGET_MARK=m |
257 | CONFIG_IP_NF_TARGET_CLASSIFY=m | 270 | CONFIG_IP_NF_TARGET_CLASSIFY=m |
271 | CONFIG_IP_NF_TARGET_TTL=m | ||
258 | CONFIG_IP_NF_TARGET_CONNMARK=m | 272 | CONFIG_IP_NF_TARGET_CONNMARK=m |
259 | CONFIG_IP_NF_TARGET_CLUSTERIP=m | 273 | CONFIG_IP_NF_TARGET_CLUSTERIP=m |
260 | CONFIG_IP_NF_RAW=m | 274 | CONFIG_IP_NF_RAW=m |
@@ -264,6 +278,11 @@ CONFIG_IP_NF_ARPFILTER=m | |||
264 | CONFIG_IP_NF_ARP_MANGLE=m | 278 | CONFIG_IP_NF_ARP_MANGLE=m |
265 | 279 | ||
266 | # | 280 | # |
281 | # DCCP Configuration (EXPERIMENTAL) | ||
282 | # | ||
283 | # CONFIG_IP_DCCP is not set | ||
284 | |||
285 | # | ||
267 | # SCTP Configuration (EXPERIMENTAL) | 286 | # SCTP Configuration (EXPERIMENTAL) |
268 | # | 287 | # |
269 | # CONFIG_IP_SCTP is not set | 288 | # CONFIG_IP_SCTP is not set |
@@ -290,6 +309,7 @@ CONFIG_NET_CLS_ROUTE=y | |||
290 | # CONFIG_HAMRADIO is not set | 309 | # CONFIG_HAMRADIO is not set |
291 | # CONFIG_IRDA is not set | 310 | # CONFIG_IRDA is not set |
292 | # CONFIG_BT is not set | 311 | # CONFIG_BT is not set |
312 | # CONFIG_IEEE80211 is not set | ||
293 | 313 | ||
294 | # | 314 | # |
295 | # Device Drivers | 315 | # Device Drivers |
@@ -304,6 +324,11 @@ CONFIG_FW_LOADER=y | |||
304 | # CONFIG_DEBUG_DRIVER is not set | 324 | # CONFIG_DEBUG_DRIVER is not set |
305 | 325 | ||
306 | # | 326 | # |
327 | # Connector - unified userspace <-> kernelspace linker | ||
328 | # | ||
329 | # CONFIG_CONNECTOR is not set | ||
330 | |||
331 | # | ||
307 | # Memory Technology Devices (MTD) | 332 | # Memory Technology Devices (MTD) |
308 | # | 333 | # |
309 | # CONFIG_MTD is not set | 334 | # CONFIG_MTD is not set |
@@ -342,7 +367,6 @@ CONFIG_BLK_DEV_RAM=y | |||
342 | CONFIG_BLK_DEV_RAM_COUNT=16 | 367 | CONFIG_BLK_DEV_RAM_COUNT=16 |
343 | CONFIG_BLK_DEV_RAM_SIZE=65536 | 368 | CONFIG_BLK_DEV_RAM_SIZE=65536 |
344 | CONFIG_BLK_DEV_INITRD=y | 369 | CONFIG_BLK_DEV_INITRD=y |
345 | CONFIG_INITRAMFS_SOURCE="" | ||
346 | # CONFIG_CDROM_PKTCDVD is not set | 370 | # CONFIG_CDROM_PKTCDVD is not set |
347 | 371 | ||
348 | # | 372 | # |
@@ -416,6 +440,7 @@ CONFIG_IDEDMA_AUTO=y | |||
416 | # | 440 | # |
417 | # SCSI device support | 441 | # SCSI device support |
418 | # | 442 | # |
443 | # CONFIG_RAID_ATTRS is not set | ||
419 | CONFIG_SCSI=y | 444 | CONFIG_SCSI=y |
420 | CONFIG_SCSI_PROC_FS=y | 445 | CONFIG_SCSI_PROC_FS=y |
421 | 446 | ||
@@ -443,6 +468,7 @@ CONFIG_SCSI_CONSTANTS=y | |||
443 | CONFIG_SCSI_SPI_ATTRS=y | 468 | CONFIG_SCSI_SPI_ATTRS=y |
444 | CONFIG_SCSI_FC_ATTRS=y | 469 | CONFIG_SCSI_FC_ATTRS=y |
445 | CONFIG_SCSI_ISCSI_ATTRS=m | 470 | CONFIG_SCSI_ISCSI_ATTRS=m |
471 | # CONFIG_SCSI_SAS_ATTRS is not set | ||
446 | 472 | ||
447 | # | 473 | # |
448 | # SCSI low-level drivers | 474 | # SCSI low-level drivers |
@@ -456,6 +482,7 @@ CONFIG_SCSI_ISCSI_ATTRS=m | |||
456 | # CONFIG_SCSI_AIC79XX is not set | 482 | # CONFIG_SCSI_AIC79XX is not set |
457 | # CONFIG_MEGARAID_NEWGEN is not set | 483 | # CONFIG_MEGARAID_NEWGEN is not set |
458 | # CONFIG_MEGARAID_LEGACY is not set | 484 | # CONFIG_MEGARAID_LEGACY is not set |
485 | # CONFIG_MEGARAID_SAS is not set | ||
459 | # CONFIG_SCSI_SATA is not set | 486 | # CONFIG_SCSI_SATA is not set |
460 | # CONFIG_SCSI_BUSLOGIC is not set | 487 | # CONFIG_SCSI_BUSLOGIC is not set |
461 | # CONFIG_SCSI_DMX3191D is not set | 488 | # CONFIG_SCSI_DMX3191D is not set |
@@ -517,6 +544,7 @@ CONFIG_DM_MULTIPATH_EMC=m | |||
517 | # CONFIG_FUSION is not set | 544 | # CONFIG_FUSION is not set |
518 | # CONFIG_FUSION_SPI is not set | 545 | # CONFIG_FUSION_SPI is not set |
519 | # CONFIG_FUSION_FC is not set | 546 | # CONFIG_FUSION_FC is not set |
547 | # CONFIG_FUSION_SAS is not set | ||
520 | 548 | ||
521 | # | 549 | # |
522 | # IEEE 1394 (FireWire) support | 550 | # IEEE 1394 (FireWire) support |
@@ -547,12 +575,18 @@ CONFIG_TUN=m | |||
547 | # CONFIG_ARCNET is not set | 575 | # CONFIG_ARCNET is not set |
548 | 576 | ||
549 | # | 577 | # |
578 | # PHY device support | ||
579 | # | ||
580 | # CONFIG_PHYLIB is not set | ||
581 | |||
582 | # | ||
550 | # Ethernet (10 or 100Mbit) | 583 | # Ethernet (10 or 100Mbit) |
551 | # | 584 | # |
552 | CONFIG_NET_ETHERNET=y | 585 | CONFIG_NET_ETHERNET=y |
553 | CONFIG_MII=y | 586 | CONFIG_MII=y |
554 | # CONFIG_HAPPYMEAL is not set | 587 | # CONFIG_HAPPYMEAL is not set |
555 | # CONFIG_SUNGEM is not set | 588 | # CONFIG_SUNGEM is not set |
589 | # CONFIG_CASSINI is not set | ||
556 | CONFIG_NET_VENDOR_3COM=y | 590 | CONFIG_NET_VENDOR_3COM=y |
557 | CONFIG_VORTEX=y | 591 | CONFIG_VORTEX=y |
558 | # CONFIG_TYPHOON is not set | 592 | # CONFIG_TYPHOON is not set |
@@ -581,6 +615,7 @@ CONFIG_E100=y | |||
581 | # CONFIG_EPIC100 is not set | 615 | # CONFIG_EPIC100 is not set |
582 | # CONFIG_SUNDANCE is not set | 616 | # CONFIG_SUNDANCE is not set |
583 | # CONFIG_VIA_RHINE is not set | 617 | # CONFIG_VIA_RHINE is not set |
618 | # CONFIG_NET_POCKET is not set | ||
584 | 619 | ||
585 | # | 620 | # |
586 | # Ethernet (1000 Mbit) | 621 | # Ethernet (1000 Mbit) |
@@ -594,6 +629,7 @@ CONFIG_E1000=y | |||
594 | # CONFIG_HAMACHI is not set | 629 | # CONFIG_HAMACHI is not set |
595 | # CONFIG_YELLOWFIN is not set | 630 | # CONFIG_YELLOWFIN is not set |
596 | # CONFIG_R8169 is not set | 631 | # CONFIG_R8169 is not set |
632 | # CONFIG_SIS190 is not set | ||
597 | # CONFIG_SKGE is not set | 633 | # CONFIG_SKGE is not set |
598 | # CONFIG_SK98LIN is not set | 634 | # CONFIG_SK98LIN is not set |
599 | # CONFIG_VIA_VELOCITY is not set | 635 | # CONFIG_VIA_VELOCITY is not set |
@@ -604,6 +640,7 @@ CONFIG_TIGON3=y | |||
604 | # | 640 | # |
605 | # Ethernet (10000 Mbit) | 641 | # Ethernet (10000 Mbit) |
606 | # | 642 | # |
643 | # CONFIG_CHELSIO_T1 is not set | ||
607 | CONFIG_IXGB=m | 644 | CONFIG_IXGB=m |
608 | # CONFIG_IXGB_NAPI is not set | 645 | # CONFIG_IXGB_NAPI is not set |
609 | CONFIG_S2IO=m | 646 | CONFIG_S2IO=m |
@@ -789,7 +826,6 @@ CONFIG_I2C_ALGOBIT=y | |||
789 | # CONFIG_I2C_I801 is not set | 826 | # CONFIG_I2C_I801 is not set |
790 | # CONFIG_I2C_I810 is not set | 827 | # CONFIG_I2C_I810 is not set |
791 | # CONFIG_I2C_PIIX4 is not set | 828 | # CONFIG_I2C_PIIX4 is not set |
792 | # CONFIG_I2C_ISA is not set | ||
793 | # CONFIG_I2C_NFORCE2 is not set | 829 | # CONFIG_I2C_NFORCE2 is not set |
794 | # CONFIG_I2C_PARPORT is not set | 830 | # CONFIG_I2C_PARPORT is not set |
795 | # CONFIG_I2C_PARPORT_LIGHT is not set | 831 | # CONFIG_I2C_PARPORT_LIGHT is not set |
@@ -804,7 +840,6 @@ CONFIG_I2C_ALGOBIT=y | |||
804 | # CONFIG_I2C_VIAPRO is not set | 840 | # CONFIG_I2C_VIAPRO is not set |
805 | # CONFIG_I2C_VOODOO3 is not set | 841 | # CONFIG_I2C_VOODOO3 is not set |
806 | # CONFIG_I2C_PCA_ISA is not set | 842 | # CONFIG_I2C_PCA_ISA is not set |
807 | # CONFIG_I2C_SENSOR is not set | ||
808 | 843 | ||
809 | # | 844 | # |
810 | # Miscellaneous I2C Chip support | 845 | # Miscellaneous I2C Chip support |
@@ -831,12 +866,17 @@ CONFIG_I2C_ALGOBIT=y | |||
831 | # Hardware Monitoring support | 866 | # Hardware Monitoring support |
832 | # | 867 | # |
833 | # CONFIG_HWMON is not set | 868 | # CONFIG_HWMON is not set |
869 | # CONFIG_HWMON_VID is not set | ||
834 | 870 | ||
835 | # | 871 | # |
836 | # Misc devices | 872 | # Misc devices |
837 | # | 873 | # |
838 | 874 | ||
839 | # | 875 | # |
876 | # Multimedia Capabilities Port drivers | ||
877 | # | ||
878 | |||
879 | # | ||
840 | # Multimedia devices | 880 | # Multimedia devices |
841 | # | 881 | # |
842 | # CONFIG_VIDEO_DEV is not set | 882 | # CONFIG_VIDEO_DEV is not set |
@@ -885,6 +925,7 @@ CONFIG_FB_RADEON_I2C=y | |||
885 | # CONFIG_FB_KYRO is not set | 925 | # CONFIG_FB_KYRO is not set |
886 | # CONFIG_FB_3DFX is not set | 926 | # CONFIG_FB_3DFX is not set |
887 | # CONFIG_FB_VOODOO1 is not set | 927 | # CONFIG_FB_VOODOO1 is not set |
928 | # CONFIG_FB_CYBLA is not set | ||
888 | # CONFIG_FB_TRIDENT is not set | 929 | # CONFIG_FB_TRIDENT is not set |
889 | # CONFIG_FB_S1D13XXX is not set | 930 | # CONFIG_FB_S1D13XXX is not set |
890 | # CONFIG_FB_VIRTUAL is not set | 931 | # CONFIG_FB_VIRTUAL is not set |
@@ -982,9 +1023,11 @@ CONFIG_USB_HIDDEV=y | |||
982 | # CONFIG_USB_MTOUCH is not set | 1023 | # CONFIG_USB_MTOUCH is not set |
983 | # CONFIG_USB_ITMTOUCH is not set | 1024 | # CONFIG_USB_ITMTOUCH is not set |
984 | # CONFIG_USB_EGALAX is not set | 1025 | # CONFIG_USB_EGALAX is not set |
1026 | # CONFIG_USB_YEALINK is not set | ||
985 | # CONFIG_USB_XPAD is not set | 1027 | # CONFIG_USB_XPAD is not set |
986 | # CONFIG_USB_ATI_REMOTE is not set | 1028 | # CONFIG_USB_ATI_REMOTE is not set |
987 | # CONFIG_USB_KEYSPAN_REMOTE is not set | 1029 | # CONFIG_USB_KEYSPAN_REMOTE is not set |
1030 | # CONFIG_USB_APPLETOUCH is not set | ||
988 | 1031 | ||
989 | # | 1032 | # |
990 | # USB Imaging devices | 1033 | # USB Imaging devices |
@@ -1057,7 +1100,8 @@ CONFIG_USB_MON=y | |||
1057 | # InfiniBand support | 1100 | # InfiniBand support |
1058 | # | 1101 | # |
1059 | CONFIG_INFINIBAND=m | 1102 | CONFIG_INFINIBAND=m |
1060 | CONFIG_INFINIBAND_USER_VERBS=m | 1103 | # CONFIG_INFINIBAND_USER_MAD is not set |
1104 | # CONFIG_INFINIBAND_USER_ACCESS is not set | ||
1061 | CONFIG_INFINIBAND_MTHCA=m | 1105 | CONFIG_INFINIBAND_MTHCA=m |
1062 | # CONFIG_INFINIBAND_MTHCA_DEBUG is not set | 1106 | # CONFIG_INFINIBAND_MTHCA_DEBUG is not set |
1063 | CONFIG_INFINIBAND_IPOIB=m | 1107 | CONFIG_INFINIBAND_IPOIB=m |
@@ -1095,16 +1139,12 @@ CONFIG_JFS_SECURITY=y | |||
1095 | # CONFIG_JFS_DEBUG is not set | 1139 | # CONFIG_JFS_DEBUG is not set |
1096 | # CONFIG_JFS_STATISTICS is not set | 1140 | # CONFIG_JFS_STATISTICS is not set |
1097 | CONFIG_FS_POSIX_ACL=y | 1141 | CONFIG_FS_POSIX_ACL=y |
1098 | |||
1099 | # | ||
1100 | # XFS support | ||
1101 | # | ||
1102 | CONFIG_XFS_FS=m | 1142 | CONFIG_XFS_FS=m |
1103 | CONFIG_XFS_EXPORT=y | 1143 | CONFIG_XFS_EXPORT=y |
1104 | # CONFIG_XFS_RT is not set | ||
1105 | # CONFIG_XFS_QUOTA is not set | 1144 | # CONFIG_XFS_QUOTA is not set |
1106 | CONFIG_XFS_SECURITY=y | 1145 | CONFIG_XFS_SECURITY=y |
1107 | CONFIG_XFS_POSIX_ACL=y | 1146 | CONFIG_XFS_POSIX_ACL=y |
1147 | # CONFIG_XFS_RT is not set | ||
1108 | # CONFIG_MINIX_FS is not set | 1148 | # CONFIG_MINIX_FS is not set |
1109 | # CONFIG_ROMFS_FS is not set | 1149 | # CONFIG_ROMFS_FS is not set |
1110 | CONFIG_INOTIFY=y | 1150 | CONFIG_INOTIFY=y |
@@ -1112,6 +1152,7 @@ CONFIG_INOTIFY=y | |||
1112 | CONFIG_DNOTIFY=y | 1152 | CONFIG_DNOTIFY=y |
1113 | CONFIG_AUTOFS_FS=m | 1153 | CONFIG_AUTOFS_FS=m |
1114 | # CONFIG_AUTOFS4_FS is not set | 1154 | # CONFIG_AUTOFS4_FS is not set |
1155 | # CONFIG_FUSE_FS is not set | ||
1115 | 1156 | ||
1116 | # | 1157 | # |
1117 | # CD-ROM/DVD Filesystems | 1158 | # CD-ROM/DVD Filesystems |
@@ -1139,14 +1180,11 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
1139 | CONFIG_PROC_FS=y | 1180 | CONFIG_PROC_FS=y |
1140 | CONFIG_PROC_KCORE=y | 1181 | CONFIG_PROC_KCORE=y |
1141 | CONFIG_SYSFS=y | 1182 | CONFIG_SYSFS=y |
1142 | CONFIG_DEVPTS_FS_XATTR=y | ||
1143 | CONFIG_DEVPTS_FS_SECURITY=y | ||
1144 | CONFIG_TMPFS=y | 1183 | CONFIG_TMPFS=y |
1145 | CONFIG_TMPFS_XATTR=y | ||
1146 | CONFIG_TMPFS_SECURITY=y | ||
1147 | CONFIG_HUGETLBFS=y | 1184 | CONFIG_HUGETLBFS=y |
1148 | CONFIG_HUGETLB_PAGE=y | 1185 | CONFIG_HUGETLB_PAGE=y |
1149 | CONFIG_RAMFS=y | 1186 | CONFIG_RAMFS=y |
1187 | # CONFIG_RELAYFS_FS is not set | ||
1150 | 1188 | ||
1151 | # | 1189 | # |
1152 | # Miscellaneous filesystems | 1190 | # Miscellaneous filesystems |
@@ -1197,6 +1235,7 @@ CONFIG_CIFS_POSIX=y | |||
1197 | # CONFIG_NCP_FS is not set | 1235 | # CONFIG_NCP_FS is not set |
1198 | # CONFIG_CODA_FS is not set | 1236 | # CONFIG_CODA_FS is not set |
1199 | # CONFIG_AFS_FS is not set | 1237 | # CONFIG_AFS_FS is not set |
1238 | # CONFIG_9P_FS is not set | ||
1200 | 1239 | ||
1201 | # | 1240 | # |
1202 | # Partition Types | 1241 | # Partition Types |
@@ -1261,6 +1300,7 @@ CONFIG_OPROFILE=y | |||
1261 | CONFIG_DEBUG_KERNEL=y | 1300 | CONFIG_DEBUG_KERNEL=y |
1262 | CONFIG_MAGIC_SYSRQ=y | 1301 | CONFIG_MAGIC_SYSRQ=y |
1263 | CONFIG_LOG_BUF_SHIFT=17 | 1302 | CONFIG_LOG_BUF_SHIFT=17 |
1303 | CONFIG_DETECT_SOFTLOCKUP=y | ||
1264 | # CONFIG_SCHEDSTATS is not set | 1304 | # CONFIG_SCHEDSTATS is not set |
1265 | # CONFIG_DEBUG_SLAB is not set | 1305 | # CONFIG_DEBUG_SLAB is not set |
1266 | # CONFIG_DEBUG_SPINLOCK is not set | 1306 | # CONFIG_DEBUG_SPINLOCK is not set |
@@ -1320,7 +1360,12 @@ CONFIG_CRYPTO_TEST=m | |||
1320 | # Library routines | 1360 | # Library routines |
1321 | # | 1361 | # |
1322 | CONFIG_CRC_CCITT=m | 1362 | CONFIG_CRC_CCITT=m |
1363 | # CONFIG_CRC16 is not set | ||
1323 | CONFIG_CRC32=y | 1364 | CONFIG_CRC32=y |
1324 | CONFIG_LIBCRC32C=m | 1365 | CONFIG_LIBCRC32C=m |
1325 | CONFIG_ZLIB_INFLATE=y | 1366 | CONFIG_ZLIB_INFLATE=y |
1326 | CONFIG_ZLIB_DEFLATE=m | 1367 | CONFIG_ZLIB_DEFLATE=m |
1368 | CONFIG_TEXTSEARCH=y | ||
1369 | CONFIG_TEXTSEARCH_KMP=m | ||
1370 | CONFIG_TEXTSEARCH_BM=m | ||
1371 | CONFIG_TEXTSEARCH_FSM=m | ||
diff --git a/arch/ppc64/defconfig b/arch/ppc64/defconfig index 7cb4750bb7a9..37c157c93cef 100644 --- a/arch/ppc64/defconfig +++ b/arch/ppc64/defconfig | |||
@@ -1,17 +1,17 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.13-rc6 | 3 | # Linux kernel version: 2.6.14-rc4 |
4 | # Mon Aug 8 14:16:54 2005 | 4 | # Thu Oct 20 08:28:33 2005 |
5 | # | 5 | # |
6 | CONFIG_64BIT=y | 6 | CONFIG_64BIT=y |
7 | CONFIG_MMU=y | 7 | CONFIG_MMU=y |
8 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 8 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
9 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 9 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
10 | CONFIG_GENERIC_ISA_DMA=y | 10 | CONFIG_GENERIC_ISA_DMA=y |
11 | CONFIG_HAVE_DEC_LOCK=y | ||
12 | CONFIG_EARLY_PRINTK=y | 11 | CONFIG_EARLY_PRINTK=y |
13 | CONFIG_COMPAT=y | 12 | CONFIG_COMPAT=y |
14 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | 13 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y |
14 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | ||
15 | CONFIG_FORCE_MAX_ZONEORDER=13 | 15 | CONFIG_FORCE_MAX_ZONEORDER=13 |
16 | 16 | ||
17 | # | 17 | # |
@@ -26,6 +26,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32 | |||
26 | # General setup | 26 | # General setup |
27 | # | 27 | # |
28 | CONFIG_LOCALVERSION="" | 28 | CONFIG_LOCALVERSION="" |
29 | CONFIG_LOCALVERSION_AUTO=y | ||
29 | CONFIG_SWAP=y | 30 | CONFIG_SWAP=y |
30 | CONFIG_SYSVIPC=y | 31 | CONFIG_SYSVIPC=y |
31 | CONFIG_POSIX_MQUEUE=y | 32 | CONFIG_POSIX_MQUEUE=y |
@@ -37,6 +38,7 @@ CONFIG_KOBJECT_UEVENT=y | |||
37 | CONFIG_IKCONFIG=y | 38 | CONFIG_IKCONFIG=y |
38 | CONFIG_IKCONFIG_PROC=y | 39 | CONFIG_IKCONFIG_PROC=y |
39 | CONFIG_CPUSETS=y | 40 | CONFIG_CPUSETS=y |
41 | CONFIG_INITRAMFS_SOURCE="" | ||
40 | # CONFIG_EMBEDDED is not set | 42 | # CONFIG_EMBEDDED is not set |
41 | CONFIG_KALLSYMS=y | 43 | CONFIG_KALLSYMS=y |
42 | # CONFIG_KALLSYMS_ALL is not set | 44 | # CONFIG_KALLSYMS_ALL is not set |
@@ -106,6 +108,7 @@ CONFIG_DISCONTIGMEM_MANUAL=y | |||
106 | CONFIG_DISCONTIGMEM=y | 108 | CONFIG_DISCONTIGMEM=y |
107 | CONFIG_FLAT_NODE_MEM_MAP=y | 109 | CONFIG_FLAT_NODE_MEM_MAP=y |
108 | CONFIG_NEED_MULTIPLE_NODES=y | 110 | CONFIG_NEED_MULTIPLE_NODES=y |
111 | # CONFIG_SPARSEMEM_STATIC is not set | ||
109 | CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y | 112 | CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y |
110 | CONFIG_NODES_SPAN_OTHER_NODES=y | 113 | CONFIG_NODES_SPAN_OTHER_NODES=y |
111 | # CONFIG_NUMA is not set | 114 | # CONFIG_NUMA is not set |
@@ -126,19 +129,20 @@ CONFIG_RTAS_FLASH=m | |||
126 | CONFIG_SCANLOG=m | 129 | CONFIG_SCANLOG=m |
127 | CONFIG_LPARCFG=y | 130 | CONFIG_LPARCFG=y |
128 | CONFIG_SECCOMP=y | 131 | CONFIG_SECCOMP=y |
132 | CONFIG_BINFMT_ELF=y | ||
133 | CONFIG_BINFMT_MISC=m | ||
134 | CONFIG_HOTPLUG_CPU=y | ||
135 | CONFIG_PROC_DEVICETREE=y | ||
136 | # CONFIG_CMDLINE_BOOL is not set | ||
129 | CONFIG_ISA_DMA_API=y | 137 | CONFIG_ISA_DMA_API=y |
130 | 138 | ||
131 | # | 139 | # |
132 | # General setup | 140 | # Bus Options |
133 | # | 141 | # |
134 | CONFIG_PCI=y | 142 | CONFIG_PCI=y |
135 | CONFIG_PCI_DOMAINS=y | 143 | CONFIG_PCI_DOMAINS=y |
136 | CONFIG_BINFMT_ELF=y | ||
137 | CONFIG_BINFMT_MISC=m | ||
138 | # CONFIG_PCI_LEGACY_PROC is not set | 144 | # CONFIG_PCI_LEGACY_PROC is not set |
139 | # CONFIG_PCI_NAMES is not set | ||
140 | # CONFIG_PCI_DEBUG is not set | 145 | # CONFIG_PCI_DEBUG is not set |
141 | CONFIG_HOTPLUG_CPU=y | ||
142 | 146 | ||
143 | # | 147 | # |
144 | # PCCARD (PCMCIA/CardBus) support | 148 | # PCCARD (PCMCIA/CardBus) support |
@@ -154,8 +158,6 @@ CONFIG_HOTPLUG_PCI=m | |||
154 | # CONFIG_HOTPLUG_PCI_SHPC is not set | 158 | # CONFIG_HOTPLUG_PCI_SHPC is not set |
155 | CONFIG_HOTPLUG_PCI_RPA=m | 159 | CONFIG_HOTPLUG_PCI_RPA=m |
156 | CONFIG_HOTPLUG_PCI_RPA_DLPAR=m | 160 | CONFIG_HOTPLUG_PCI_RPA_DLPAR=m |
157 | CONFIG_PROC_DEVICETREE=y | ||
158 | # CONFIG_CMDLINE_BOOL is not set | ||
159 | 161 | ||
160 | # | 162 | # |
161 | # Networking | 163 | # Networking |
@@ -185,8 +187,8 @@ CONFIG_INET_AH=m | |||
185 | CONFIG_INET_ESP=m | 187 | CONFIG_INET_ESP=m |
186 | CONFIG_INET_IPCOMP=m | 188 | CONFIG_INET_IPCOMP=m |
187 | CONFIG_INET_TUNNEL=y | 189 | CONFIG_INET_TUNNEL=y |
188 | # CONFIG_IP_TCPDIAG is not set | 190 | CONFIG_INET_DIAG=y |
189 | # CONFIG_IP_TCPDIAG_IPV6 is not set | 191 | CONFIG_INET_TCP_DIAG=y |
190 | # CONFIG_TCP_CONG_ADVANCED is not set | 192 | # CONFIG_TCP_CONG_ADVANCED is not set |
191 | CONFIG_TCP_CONG_BIC=y | 193 | CONFIG_TCP_CONG_BIC=y |
192 | 194 | ||
@@ -197,6 +199,9 @@ CONFIG_TCP_CONG_BIC=y | |||
197 | # CONFIG_IPV6 is not set | 199 | # CONFIG_IPV6 is not set |
198 | CONFIG_NETFILTER=y | 200 | CONFIG_NETFILTER=y |
199 | # CONFIG_NETFILTER_DEBUG is not set | 201 | # CONFIG_NETFILTER_DEBUG is not set |
202 | CONFIG_NETFILTER_NETLINK=y | ||
203 | CONFIG_NETFILTER_NETLINK_QUEUE=m | ||
204 | CONFIG_NETFILTER_NETLINK_LOG=m | ||
200 | 205 | ||
201 | # | 206 | # |
202 | # IP: Netfilter Configuration | 207 | # IP: Netfilter Configuration |
@@ -204,11 +209,15 @@ CONFIG_NETFILTER=y | |||
204 | CONFIG_IP_NF_CONNTRACK=m | 209 | CONFIG_IP_NF_CONNTRACK=m |
205 | CONFIG_IP_NF_CT_ACCT=y | 210 | CONFIG_IP_NF_CT_ACCT=y |
206 | CONFIG_IP_NF_CONNTRACK_MARK=y | 211 | CONFIG_IP_NF_CONNTRACK_MARK=y |
212 | CONFIG_IP_NF_CONNTRACK_EVENTS=y | ||
213 | CONFIG_IP_NF_CONNTRACK_NETLINK=m | ||
207 | CONFIG_IP_NF_CT_PROTO_SCTP=m | 214 | CONFIG_IP_NF_CT_PROTO_SCTP=m |
208 | CONFIG_IP_NF_FTP=m | 215 | CONFIG_IP_NF_FTP=m |
209 | CONFIG_IP_NF_IRC=m | 216 | CONFIG_IP_NF_IRC=m |
217 | # CONFIG_IP_NF_NETBIOS_NS is not set | ||
210 | CONFIG_IP_NF_TFTP=m | 218 | CONFIG_IP_NF_TFTP=m |
211 | CONFIG_IP_NF_AMANDA=m | 219 | CONFIG_IP_NF_AMANDA=m |
220 | # CONFIG_IP_NF_PPTP is not set | ||
212 | CONFIG_IP_NF_QUEUE=m | 221 | CONFIG_IP_NF_QUEUE=m |
213 | CONFIG_IP_NF_IPTABLES=m | 222 | CONFIG_IP_NF_IPTABLES=m |
214 | CONFIG_IP_NF_MATCH_LIMIT=m | 223 | CONFIG_IP_NF_MATCH_LIMIT=m |
@@ -232,14 +241,18 @@ CONFIG_IP_NF_MATCH_OWNER=m | |||
232 | CONFIG_IP_NF_MATCH_ADDRTYPE=m | 241 | CONFIG_IP_NF_MATCH_ADDRTYPE=m |
233 | CONFIG_IP_NF_MATCH_REALM=m | 242 | CONFIG_IP_NF_MATCH_REALM=m |
234 | CONFIG_IP_NF_MATCH_SCTP=m | 243 | CONFIG_IP_NF_MATCH_SCTP=m |
244 | CONFIG_IP_NF_MATCH_DCCP=m | ||
235 | CONFIG_IP_NF_MATCH_COMMENT=m | 245 | CONFIG_IP_NF_MATCH_COMMENT=m |
236 | CONFIG_IP_NF_MATCH_CONNMARK=m | 246 | CONFIG_IP_NF_MATCH_CONNMARK=m |
247 | CONFIG_IP_NF_MATCH_CONNBYTES=m | ||
237 | CONFIG_IP_NF_MATCH_HASHLIMIT=m | 248 | CONFIG_IP_NF_MATCH_HASHLIMIT=m |
249 | CONFIG_IP_NF_MATCH_STRING=m | ||
238 | CONFIG_IP_NF_FILTER=m | 250 | CONFIG_IP_NF_FILTER=m |
239 | CONFIG_IP_NF_TARGET_REJECT=m | 251 | CONFIG_IP_NF_TARGET_REJECT=m |
240 | CONFIG_IP_NF_TARGET_LOG=m | 252 | CONFIG_IP_NF_TARGET_LOG=m |
241 | CONFIG_IP_NF_TARGET_ULOG=m | 253 | CONFIG_IP_NF_TARGET_ULOG=m |
242 | CONFIG_IP_NF_TARGET_TCPMSS=m | 254 | CONFIG_IP_NF_TARGET_TCPMSS=m |
255 | CONFIG_IP_NF_TARGET_NFQUEUE=m | ||
243 | CONFIG_IP_NF_NAT=m | 256 | CONFIG_IP_NF_NAT=m |
244 | CONFIG_IP_NF_NAT_NEEDED=y | 257 | CONFIG_IP_NF_NAT_NEEDED=y |
245 | CONFIG_IP_NF_TARGET_MASQUERADE=m | 258 | CONFIG_IP_NF_TARGET_MASQUERADE=m |
@@ -257,6 +270,7 @@ CONFIG_IP_NF_TARGET_ECN=m | |||
257 | CONFIG_IP_NF_TARGET_DSCP=m | 270 | CONFIG_IP_NF_TARGET_DSCP=m |
258 | CONFIG_IP_NF_TARGET_MARK=m | 271 | CONFIG_IP_NF_TARGET_MARK=m |
259 | CONFIG_IP_NF_TARGET_CLASSIFY=m | 272 | CONFIG_IP_NF_TARGET_CLASSIFY=m |
273 | CONFIG_IP_NF_TARGET_TTL=m | ||
260 | CONFIG_IP_NF_TARGET_CONNMARK=m | 274 | CONFIG_IP_NF_TARGET_CONNMARK=m |
261 | CONFIG_IP_NF_TARGET_CLUSTERIP=m | 275 | CONFIG_IP_NF_TARGET_CLUSTERIP=m |
262 | CONFIG_IP_NF_RAW=m | 276 | CONFIG_IP_NF_RAW=m |
@@ -266,6 +280,11 @@ CONFIG_IP_NF_ARPFILTER=m | |||
266 | CONFIG_IP_NF_ARP_MANGLE=m | 280 | CONFIG_IP_NF_ARP_MANGLE=m |
267 | 281 | ||
268 | # | 282 | # |
283 | # DCCP Configuration (EXPERIMENTAL) | ||
284 | # | ||
285 | # CONFIG_IP_DCCP is not set | ||
286 | |||
287 | # | ||
269 | # SCTP Configuration (EXPERIMENTAL) | 288 | # SCTP Configuration (EXPERIMENTAL) |
270 | # | 289 | # |
271 | # CONFIG_IP_SCTP is not set | 290 | # CONFIG_IP_SCTP is not set |
@@ -292,6 +311,7 @@ CONFIG_NET_CLS_ROUTE=y | |||
292 | # CONFIG_HAMRADIO is not set | 311 | # CONFIG_HAMRADIO is not set |
293 | # CONFIG_IRDA is not set | 312 | # CONFIG_IRDA is not set |
294 | # CONFIG_BT is not set | 313 | # CONFIG_BT is not set |
314 | # CONFIG_IEEE80211 is not set | ||
295 | 315 | ||
296 | # | 316 | # |
297 | # Device Drivers | 317 | # Device Drivers |
@@ -306,6 +326,11 @@ CONFIG_FW_LOADER=y | |||
306 | # CONFIG_DEBUG_DRIVER is not set | 326 | # CONFIG_DEBUG_DRIVER is not set |
307 | 327 | ||
308 | # | 328 | # |
329 | # Connector - unified userspace <-> kernelspace linker | ||
330 | # | ||
331 | # CONFIG_CONNECTOR is not set | ||
332 | |||
333 | # | ||
309 | # Memory Technology Devices (MTD) | 334 | # Memory Technology Devices (MTD) |
310 | # | 335 | # |
311 | # CONFIG_MTD is not set | 336 | # CONFIG_MTD is not set |
@@ -344,7 +369,6 @@ CONFIG_BLK_DEV_RAM=y | |||
344 | CONFIG_BLK_DEV_RAM_COUNT=16 | 369 | CONFIG_BLK_DEV_RAM_COUNT=16 |
345 | CONFIG_BLK_DEV_RAM_SIZE=65536 | 370 | CONFIG_BLK_DEV_RAM_SIZE=65536 |
346 | CONFIG_BLK_DEV_INITRD=y | 371 | CONFIG_BLK_DEV_INITRD=y |
347 | CONFIG_INITRAMFS_SOURCE="" | ||
348 | # CONFIG_CDROM_PKTCDVD is not set | 372 | # CONFIG_CDROM_PKTCDVD is not set |
349 | 373 | ||
350 | # | 374 | # |
@@ -422,6 +446,7 @@ CONFIG_IDEDMA_AUTO=y | |||
422 | # | 446 | # |
423 | # SCSI device support | 447 | # SCSI device support |
424 | # | 448 | # |
449 | # CONFIG_RAID_ATTRS is not set | ||
425 | CONFIG_SCSI=y | 450 | CONFIG_SCSI=y |
426 | CONFIG_SCSI_PROC_FS=y | 451 | CONFIG_SCSI_PROC_FS=y |
427 | 452 | ||
@@ -449,6 +474,7 @@ CONFIG_SCSI_CONSTANTS=y | |||
449 | CONFIG_SCSI_SPI_ATTRS=y | 474 | CONFIG_SCSI_SPI_ATTRS=y |
450 | CONFIG_SCSI_FC_ATTRS=y | 475 | CONFIG_SCSI_FC_ATTRS=y |
451 | CONFIG_SCSI_ISCSI_ATTRS=m | 476 | CONFIG_SCSI_ISCSI_ATTRS=m |
477 | # CONFIG_SCSI_SAS_ATTRS is not set | ||
452 | 478 | ||
453 | # | 479 | # |
454 | # SCSI low-level drivers | 480 | # SCSI low-level drivers |
@@ -462,10 +488,12 @@ CONFIG_SCSI_ISCSI_ATTRS=m | |||
462 | # CONFIG_SCSI_AIC79XX is not set | 488 | # CONFIG_SCSI_AIC79XX is not set |
463 | # CONFIG_MEGARAID_NEWGEN is not set | 489 | # CONFIG_MEGARAID_NEWGEN is not set |
464 | # CONFIG_MEGARAID_LEGACY is not set | 490 | # CONFIG_MEGARAID_LEGACY is not set |
491 | # CONFIG_MEGARAID_SAS is not set | ||
465 | CONFIG_SCSI_SATA=y | 492 | CONFIG_SCSI_SATA=y |
466 | # CONFIG_SCSI_SATA_AHCI is not set | 493 | # CONFIG_SCSI_SATA_AHCI is not set |
467 | CONFIG_SCSI_SATA_SVW=y | 494 | CONFIG_SCSI_SATA_SVW=y |
468 | # CONFIG_SCSI_ATA_PIIX is not set | 495 | # CONFIG_SCSI_ATA_PIIX is not set |
496 | # CONFIG_SCSI_SATA_MV is not set | ||
469 | # CONFIG_SCSI_SATA_NV is not set | 497 | # CONFIG_SCSI_SATA_NV is not set |
470 | # CONFIG_SCSI_SATA_PROMISE is not set | 498 | # CONFIG_SCSI_SATA_PROMISE is not set |
471 | # CONFIG_SCSI_SATA_QSTOR is not set | 499 | # CONFIG_SCSI_SATA_QSTOR is not set |
@@ -535,6 +563,7 @@ CONFIG_DM_MULTIPATH_EMC=m | |||
535 | # CONFIG_FUSION is not set | 563 | # CONFIG_FUSION is not set |
536 | # CONFIG_FUSION_SPI is not set | 564 | # CONFIG_FUSION_SPI is not set |
537 | # CONFIG_FUSION_FC is not set | 565 | # CONFIG_FUSION_FC is not set |
566 | # CONFIG_FUSION_SAS is not set | ||
538 | 567 | ||
539 | # | 568 | # |
540 | # IEEE 1394 (FireWire) support | 569 | # IEEE 1394 (FireWire) support |
@@ -578,7 +607,6 @@ CONFIG_IEEE1394_AMDTP=m | |||
578 | # | 607 | # |
579 | CONFIG_ADB_PMU=y | 608 | CONFIG_ADB_PMU=y |
580 | CONFIG_PMAC_SMU=y | 609 | CONFIG_PMAC_SMU=y |
581 | # CONFIG_PMAC_BACKLIGHT is not set | ||
582 | CONFIG_THERM_PM72=y | 610 | CONFIG_THERM_PM72=y |
583 | 611 | ||
584 | # | 612 | # |
@@ -596,12 +624,18 @@ CONFIG_TUN=m | |||
596 | # CONFIG_ARCNET is not set | 624 | # CONFIG_ARCNET is not set |
597 | 625 | ||
598 | # | 626 | # |
627 | # PHY device support | ||
628 | # | ||
629 | # CONFIG_PHYLIB is not set | ||
630 | |||
631 | # | ||
599 | # Ethernet (10 or 100Mbit) | 632 | # Ethernet (10 or 100Mbit) |
600 | # | 633 | # |
601 | CONFIG_NET_ETHERNET=y | 634 | CONFIG_NET_ETHERNET=y |
602 | CONFIG_MII=y | 635 | CONFIG_MII=y |
603 | # CONFIG_HAPPYMEAL is not set | 636 | # CONFIG_HAPPYMEAL is not set |
604 | CONFIG_SUNGEM=y | 637 | CONFIG_SUNGEM=y |
638 | # CONFIG_CASSINI is not set | ||
605 | CONFIG_NET_VENDOR_3COM=y | 639 | CONFIG_NET_VENDOR_3COM=y |
606 | CONFIG_VORTEX=y | 640 | CONFIG_VORTEX=y |
607 | # CONFIG_TYPHOON is not set | 641 | # CONFIG_TYPHOON is not set |
@@ -630,6 +664,7 @@ CONFIG_E100=y | |||
630 | # CONFIG_EPIC100 is not set | 664 | # CONFIG_EPIC100 is not set |
631 | # CONFIG_SUNDANCE is not set | 665 | # CONFIG_SUNDANCE is not set |
632 | # CONFIG_VIA_RHINE is not set | 666 | # CONFIG_VIA_RHINE is not set |
667 | # CONFIG_NET_POCKET is not set | ||
633 | 668 | ||
634 | # | 669 | # |
635 | # Ethernet (1000 Mbit) | 670 | # Ethernet (1000 Mbit) |
@@ -643,16 +678,19 @@ CONFIG_E1000=y | |||
643 | # CONFIG_HAMACHI is not set | 678 | # CONFIG_HAMACHI is not set |
644 | # CONFIG_YELLOWFIN is not set | 679 | # CONFIG_YELLOWFIN is not set |
645 | # CONFIG_R8169 is not set | 680 | # CONFIG_R8169 is not set |
681 | # CONFIG_SIS190 is not set | ||
646 | # CONFIG_SKGE is not set | 682 | # CONFIG_SKGE is not set |
647 | # CONFIG_SK98LIN is not set | 683 | # CONFIG_SK98LIN is not set |
648 | # CONFIG_VIA_VELOCITY is not set | 684 | # CONFIG_VIA_VELOCITY is not set |
649 | CONFIG_TIGON3=y | 685 | CONFIG_TIGON3=y |
650 | # CONFIG_BNX2 is not set | 686 | # CONFIG_BNX2 is not set |
687 | # CONFIG_SPIDER_NET is not set | ||
651 | # CONFIG_MV643XX_ETH is not set | 688 | # CONFIG_MV643XX_ETH is not set |
652 | 689 | ||
653 | # | 690 | # |
654 | # Ethernet (10000 Mbit) | 691 | # Ethernet (10000 Mbit) |
655 | # | 692 | # |
693 | # CONFIG_CHELSIO_T1 is not set | ||
656 | CONFIG_IXGB=m | 694 | CONFIG_IXGB=m |
657 | # CONFIG_IXGB_NAPI is not set | 695 | # CONFIG_IXGB_NAPI is not set |
658 | # CONFIG_S2IO is not set | 696 | # CONFIG_S2IO is not set |
@@ -838,8 +876,8 @@ CONFIG_I2C_AMD8111=y | |||
838 | # CONFIG_I2C_I801 is not set | 876 | # CONFIG_I2C_I801 is not set |
839 | # CONFIG_I2C_I810 is not set | 877 | # CONFIG_I2C_I810 is not set |
840 | # CONFIG_I2C_PIIX4 is not set | 878 | # CONFIG_I2C_PIIX4 is not set |
841 | # CONFIG_I2C_ISA is not set | ||
842 | CONFIG_I2C_KEYWEST=y | 879 | CONFIG_I2C_KEYWEST=y |
880 | CONFIG_I2C_PMAC_SMU=y | ||
843 | # CONFIG_I2C_NFORCE2 is not set | 881 | # CONFIG_I2C_NFORCE2 is not set |
844 | # CONFIG_I2C_PARPORT is not set | 882 | # CONFIG_I2C_PARPORT is not set |
845 | # CONFIG_I2C_PARPORT_LIGHT is not set | 883 | # CONFIG_I2C_PARPORT_LIGHT is not set |
@@ -854,7 +892,6 @@ CONFIG_I2C_KEYWEST=y | |||
854 | # CONFIG_I2C_VIAPRO is not set | 892 | # CONFIG_I2C_VIAPRO is not set |
855 | # CONFIG_I2C_VOODOO3 is not set | 893 | # CONFIG_I2C_VOODOO3 is not set |
856 | # CONFIG_I2C_PCA_ISA is not set | 894 | # CONFIG_I2C_PCA_ISA is not set |
857 | # CONFIG_I2C_SENSOR is not set | ||
858 | 895 | ||
859 | # | 896 | # |
860 | # Miscellaneous I2C Chip support | 897 | # Miscellaneous I2C Chip support |
@@ -881,12 +918,17 @@ CONFIG_I2C_KEYWEST=y | |||
881 | # Hardware Monitoring support | 918 | # Hardware Monitoring support |
882 | # | 919 | # |
883 | # CONFIG_HWMON is not set | 920 | # CONFIG_HWMON is not set |
921 | # CONFIG_HWMON_VID is not set | ||
884 | 922 | ||
885 | # | 923 | # |
886 | # Misc devices | 924 | # Misc devices |
887 | # | 925 | # |
888 | 926 | ||
889 | # | 927 | # |
928 | # Multimedia Capabilities Port drivers | ||
929 | # | ||
930 | |||
931 | # | ||
890 | # Multimedia devices | 932 | # Multimedia devices |
891 | # | 933 | # |
892 | # CONFIG_VIDEO_DEV is not set | 934 | # CONFIG_VIDEO_DEV is not set |
@@ -939,6 +981,7 @@ CONFIG_FB_RADEON_I2C=y | |||
939 | # CONFIG_FB_KYRO is not set | 981 | # CONFIG_FB_KYRO is not set |
940 | # CONFIG_FB_3DFX is not set | 982 | # CONFIG_FB_3DFX is not set |
941 | # CONFIG_FB_VOODOO1 is not set | 983 | # CONFIG_FB_VOODOO1 is not set |
984 | # CONFIG_FB_CYBLA is not set | ||
942 | # CONFIG_FB_TRIDENT is not set | 985 | # CONFIG_FB_TRIDENT is not set |
943 | # CONFIG_FB_S1D13XXX is not set | 986 | # CONFIG_FB_S1D13XXX is not set |
944 | # CONFIG_FB_VIRTUAL is not set | 987 | # CONFIG_FB_VIRTUAL is not set |
@@ -1020,6 +1063,7 @@ CONFIG_USB_STORAGE=m | |||
1020 | # CONFIG_USB_STORAGE_SDDR09 is not set | 1063 | # CONFIG_USB_STORAGE_SDDR09 is not set |
1021 | # CONFIG_USB_STORAGE_SDDR55 is not set | 1064 | # CONFIG_USB_STORAGE_SDDR55 is not set |
1022 | # CONFIG_USB_STORAGE_JUMPSHOT is not set | 1065 | # CONFIG_USB_STORAGE_JUMPSHOT is not set |
1066 | # CONFIG_USB_STORAGE_ONETOUCH is not set | ||
1023 | 1067 | ||
1024 | # | 1068 | # |
1025 | # USB Input Devices | 1069 | # USB Input Devices |
@@ -1036,9 +1080,11 @@ CONFIG_USB_HIDDEV=y | |||
1036 | # CONFIG_USB_MTOUCH is not set | 1080 | # CONFIG_USB_MTOUCH is not set |
1037 | # CONFIG_USB_ITMTOUCH is not set | 1081 | # CONFIG_USB_ITMTOUCH is not set |
1038 | # CONFIG_USB_EGALAX is not set | 1082 | # CONFIG_USB_EGALAX is not set |
1083 | # CONFIG_USB_YEALINK is not set | ||
1039 | # CONFIG_USB_XPAD is not set | 1084 | # CONFIG_USB_XPAD is not set |
1040 | # CONFIG_USB_ATI_REMOTE is not set | 1085 | # CONFIG_USB_ATI_REMOTE is not set |
1041 | # CONFIG_USB_KEYSPAN_REMOTE is not set | 1086 | # CONFIG_USB_KEYSPAN_REMOTE is not set |
1087 | # CONFIG_USB_APPLETOUCH is not set | ||
1042 | 1088 | ||
1043 | # | 1089 | # |
1044 | # USB Imaging devices | 1090 | # USB Imaging devices |
@@ -1111,7 +1157,8 @@ CONFIG_USB_PEGASUS=y | |||
1111 | # InfiniBand support | 1157 | # InfiniBand support |
1112 | # | 1158 | # |
1113 | CONFIG_INFINIBAND=m | 1159 | CONFIG_INFINIBAND=m |
1114 | CONFIG_INFINIBAND_USER_VERBS=m | 1160 | # CONFIG_INFINIBAND_USER_MAD is not set |
1161 | # CONFIG_INFINIBAND_USER_ACCESS is not set | ||
1115 | CONFIG_INFINIBAND_MTHCA=m | 1162 | CONFIG_INFINIBAND_MTHCA=m |
1116 | # CONFIG_INFINIBAND_MTHCA_DEBUG is not set | 1163 | # CONFIG_INFINIBAND_MTHCA_DEBUG is not set |
1117 | CONFIG_INFINIBAND_IPOIB=m | 1164 | CONFIG_INFINIBAND_IPOIB=m |
@@ -1149,16 +1196,12 @@ CONFIG_JFS_SECURITY=y | |||
1149 | # CONFIG_JFS_DEBUG is not set | 1196 | # CONFIG_JFS_DEBUG is not set |
1150 | # CONFIG_JFS_STATISTICS is not set | 1197 | # CONFIG_JFS_STATISTICS is not set |
1151 | CONFIG_FS_POSIX_ACL=y | 1198 | CONFIG_FS_POSIX_ACL=y |
1152 | |||
1153 | # | ||
1154 | # XFS support | ||
1155 | # | ||
1156 | CONFIG_XFS_FS=m | 1199 | CONFIG_XFS_FS=m |
1157 | CONFIG_XFS_EXPORT=y | 1200 | CONFIG_XFS_EXPORT=y |
1158 | # CONFIG_XFS_RT is not set | ||
1159 | # CONFIG_XFS_QUOTA is not set | 1201 | # CONFIG_XFS_QUOTA is not set |
1160 | CONFIG_XFS_SECURITY=y | 1202 | CONFIG_XFS_SECURITY=y |
1161 | CONFIG_XFS_POSIX_ACL=y | 1203 | CONFIG_XFS_POSIX_ACL=y |
1204 | # CONFIG_XFS_RT is not set | ||
1162 | # CONFIG_MINIX_FS is not set | 1205 | # CONFIG_MINIX_FS is not set |
1163 | # CONFIG_ROMFS_FS is not set | 1206 | # CONFIG_ROMFS_FS is not set |
1164 | CONFIG_INOTIFY=y | 1207 | CONFIG_INOTIFY=y |
@@ -1166,6 +1209,7 @@ CONFIG_INOTIFY=y | |||
1166 | CONFIG_DNOTIFY=y | 1209 | CONFIG_DNOTIFY=y |
1167 | CONFIG_AUTOFS_FS=y | 1210 | CONFIG_AUTOFS_FS=y |
1168 | # CONFIG_AUTOFS4_FS is not set | 1211 | # CONFIG_AUTOFS4_FS is not set |
1212 | # CONFIG_FUSE_FS is not set | ||
1169 | 1213 | ||
1170 | # | 1214 | # |
1171 | # CD-ROM/DVD Filesystems | 1215 | # CD-ROM/DVD Filesystems |
@@ -1192,14 +1236,11 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
1192 | CONFIG_PROC_FS=y | 1236 | CONFIG_PROC_FS=y |
1193 | CONFIG_PROC_KCORE=y | 1237 | CONFIG_PROC_KCORE=y |
1194 | CONFIG_SYSFS=y | 1238 | CONFIG_SYSFS=y |
1195 | CONFIG_DEVPTS_FS_XATTR=y | ||
1196 | CONFIG_DEVPTS_FS_SECURITY=y | ||
1197 | CONFIG_TMPFS=y | 1239 | CONFIG_TMPFS=y |
1198 | CONFIG_TMPFS_XATTR=y | ||
1199 | CONFIG_TMPFS_SECURITY=y | ||
1200 | CONFIG_HUGETLBFS=y | 1240 | CONFIG_HUGETLBFS=y |
1201 | CONFIG_HUGETLB_PAGE=y | 1241 | CONFIG_HUGETLB_PAGE=y |
1202 | CONFIG_RAMFS=y | 1242 | CONFIG_RAMFS=y |
1243 | # CONFIG_RELAYFS_FS is not set | ||
1203 | 1244 | ||
1204 | # | 1245 | # |
1205 | # Miscellaneous filesystems | 1246 | # Miscellaneous filesystems |
@@ -1250,6 +1291,7 @@ CONFIG_CIFS_POSIX=y | |||
1250 | # CONFIG_NCP_FS is not set | 1291 | # CONFIG_NCP_FS is not set |
1251 | # CONFIG_CODA_FS is not set | 1292 | # CONFIG_CODA_FS is not set |
1252 | # CONFIG_AFS_FS is not set | 1293 | # CONFIG_AFS_FS is not set |
1294 | # CONFIG_9P_FS is not set | ||
1253 | 1295 | ||
1254 | # | 1296 | # |
1255 | # Partition Types | 1297 | # Partition Types |
@@ -1328,6 +1370,7 @@ CONFIG_OPROFILE=y | |||
1328 | CONFIG_DEBUG_KERNEL=y | 1370 | CONFIG_DEBUG_KERNEL=y |
1329 | CONFIG_MAGIC_SYSRQ=y | 1371 | CONFIG_MAGIC_SYSRQ=y |
1330 | CONFIG_LOG_BUF_SHIFT=17 | 1372 | CONFIG_LOG_BUF_SHIFT=17 |
1373 | CONFIG_DETECT_SOFTLOCKUP=y | ||
1331 | # CONFIG_SCHEDSTATS is not set | 1374 | # CONFIG_SCHEDSTATS is not set |
1332 | # CONFIG_DEBUG_SLAB is not set | 1375 | # CONFIG_DEBUG_SLAB is not set |
1333 | # CONFIG_DEBUG_SPINLOCK is not set | 1376 | # CONFIG_DEBUG_SPINLOCK is not set |
@@ -1387,7 +1430,12 @@ CONFIG_CRYPTO_TEST=m | |||
1387 | # Library routines | 1430 | # Library routines |
1388 | # | 1431 | # |
1389 | CONFIG_CRC_CCITT=m | 1432 | CONFIG_CRC_CCITT=m |
1433 | # CONFIG_CRC16 is not set | ||
1390 | CONFIG_CRC32=y | 1434 | CONFIG_CRC32=y |
1391 | CONFIG_LIBCRC32C=m | 1435 | CONFIG_LIBCRC32C=m |
1392 | CONFIG_ZLIB_INFLATE=y | 1436 | CONFIG_ZLIB_INFLATE=y |
1393 | CONFIG_ZLIB_DEFLATE=m | 1437 | CONFIG_ZLIB_DEFLATE=m |
1438 | CONFIG_TEXTSEARCH=y | ||
1439 | CONFIG_TEXTSEARCH_KMP=m | ||
1440 | CONFIG_TEXTSEARCH_BM=m | ||
1441 | CONFIG_TEXTSEARCH_FSM=m | ||
diff --git a/arch/ppc64/kernel/vdso32/gettimeofday.S b/arch/ppc64/kernel/vdso32/gettimeofday.S index 07f1c1c650c8..e243c1d24af7 100644 --- a/arch/ppc64/kernel/vdso32/gettimeofday.S +++ b/arch/ppc64/kernel/vdso32/gettimeofday.S | |||
@@ -109,7 +109,7 @@ __do_get_xsec: | |||
109 | lwz r6,(CFG_TB_TO_XS+4)(r9) | 109 | lwz r6,(CFG_TB_TO_XS+4)(r9) |
110 | mulhwu r4,r7,r5 | 110 | mulhwu r4,r7,r5 |
111 | mulhwu r6,r7,r6 | 111 | mulhwu r6,r7,r6 |
112 | mullw r6,r7,r5 | 112 | mullw r0,r7,r5 |
113 | addc r6,r6,r0 | 113 | addc r6,r6,r0 |
114 | 114 | ||
115 | /* At this point, we have the scaled xsec value in r4 + XER:CA | 115 | /* At this point, we have the scaled xsec value in r4 + XER:CA |
diff --git a/arch/um/include/sysdep-x86_64/ptrace.h b/arch/um/include/sysdep-x86_64/ptrace.h index 8f0656766c21..8d353f0feec1 100644 --- a/arch/um/include/sysdep-x86_64/ptrace.h +++ b/arch/um/include/sysdep-x86_64/ptrace.h | |||
@@ -183,10 +183,6 @@ struct syscall_args { | |||
183 | case RBP: val = UPT_RBP(regs); break; \ | 183 | case RBP: val = UPT_RBP(regs); break; \ |
184 | case ORIG_RAX: val = UPT_ORIG_RAX(regs); break; \ | 184 | case ORIG_RAX: val = UPT_ORIG_RAX(regs); break; \ |
185 | case CS: val = UPT_CS(regs); break; \ | 185 | case CS: val = UPT_CS(regs); break; \ |
186 | case DS: val = UPT_DS(regs); break; \ | ||
187 | case ES: val = UPT_ES(regs); break; \ | ||
188 | case FS: val = UPT_FS(regs); break; \ | ||
189 | case GS: val = UPT_GS(regs); break; \ | ||
190 | case EFLAGS: val = UPT_EFLAGS(regs); break; \ | 186 | case EFLAGS: val = UPT_EFLAGS(regs); break; \ |
191 | default : \ | 187 | default : \ |
192 | panic("Bad register in UPT_REG : %d\n", reg); \ | 188 | panic("Bad register in UPT_REG : %d\n", reg); \ |
diff --git a/drivers/acpi/glue.c b/drivers/acpi/glue.c index e36c5da2b31a..3937adf4e5e5 100644 --- a/drivers/acpi/glue.c +++ b/drivers/acpi/glue.c | |||
@@ -96,7 +96,7 @@ struct acpi_find_pci_root { | |||
96 | static acpi_status | 96 | static acpi_status |
97 | do_root_bridge_busnr_callback(struct acpi_resource *resource, void *data) | 97 | do_root_bridge_busnr_callback(struct acpi_resource *resource, void *data) |
98 | { | 98 | { |
99 | int *busnr = (int *)data; | 99 | unsigned long *busnr = (unsigned long *)data; |
100 | struct acpi_resource_address64 address; | 100 | struct acpi_resource_address64 address; |
101 | 101 | ||
102 | if (resource->id != ACPI_RSTYPE_ADDRESS16 && | 102 | if (resource->id != ACPI_RSTYPE_ADDRESS16 && |
@@ -115,13 +115,13 @@ do_root_bridge_busnr_callback(struct acpi_resource *resource, void *data) | |||
115 | static int get_root_bridge_busnr(acpi_handle handle) | 115 | static int get_root_bridge_busnr(acpi_handle handle) |
116 | { | 116 | { |
117 | acpi_status status; | 117 | acpi_status status; |
118 | int bus, bbn; | 118 | unsigned long bus, bbn; |
119 | struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL }; | 119 | struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL }; |
120 | 120 | ||
121 | acpi_get_name(handle, ACPI_FULL_PATHNAME, &buffer); | 121 | acpi_get_name(handle, ACPI_FULL_PATHNAME, &buffer); |
122 | 122 | ||
123 | status = acpi_evaluate_integer(handle, METHOD_NAME__BBN, NULL, | 123 | status = acpi_evaluate_integer(handle, METHOD_NAME__BBN, NULL, |
124 | (unsigned long *)&bbn); | 124 | &bbn); |
125 | if (status == AE_NOT_FOUND) { | 125 | if (status == AE_NOT_FOUND) { |
126 | /* Assume bus = 0 */ | 126 | /* Assume bus = 0 */ |
127 | printk(KERN_INFO PREFIX | 127 | printk(KERN_INFO PREFIX |
@@ -153,7 +153,7 @@ static int get_root_bridge_busnr(acpi_handle handle) | |||
153 | } | 153 | } |
154 | exit: | 154 | exit: |
155 | acpi_os_free(buffer.pointer); | 155 | acpi_os_free(buffer.pointer); |
156 | return bbn; | 156 | return (int)bbn; |
157 | } | 157 | } |
158 | 158 | ||
159 | static acpi_status | 159 | static acpi_status |
diff --git a/drivers/char/.gitignore b/drivers/char/.gitignore new file mode 100644 index 000000000000..2b6b1d772ed7 --- /dev/null +++ b/drivers/char/.gitignore | |||
@@ -0,0 +1,3 @@ | |||
1 | consolemap_deftbl.c | ||
2 | defkeymap.c | ||
3 | |||
diff --git a/drivers/char/drm/mga_dma.c b/drivers/char/drm/mga_dma.c index fc7d4a594bca..c8e1b6c83636 100644 --- a/drivers/char/drm/mga_dma.c +++ b/drivers/char/drm/mga_dma.c | |||
@@ -437,7 +437,7 @@ static int mga_do_agp_dma_bootstrap(drm_device_t * dev, | |||
437 | drm_mga_dma_bootstrap_t * dma_bs) | 437 | drm_mga_dma_bootstrap_t * dma_bs) |
438 | { | 438 | { |
439 | drm_mga_private_t * const dev_priv = (drm_mga_private_t *) dev->dev_private; | 439 | drm_mga_private_t * const dev_priv = (drm_mga_private_t *) dev->dev_private; |
440 | const unsigned int warp_size = mga_warp_microcode_size(dev_priv); | 440 | unsigned int warp_size = mga_warp_microcode_size(dev_priv); |
441 | int err; | 441 | int err; |
442 | unsigned offset; | 442 | unsigned offset; |
443 | const unsigned secondary_size = dma_bs->secondary_bin_count | 443 | const unsigned secondary_size = dma_bs->secondary_bin_count |
@@ -499,6 +499,12 @@ static int mga_do_agp_dma_bootstrap(drm_device_t * dev, | |||
499 | return err; | 499 | return err; |
500 | } | 500 | } |
501 | 501 | ||
502 | /* Make drm_addbufs happy by not trying to create a mapping for less | ||
503 | * than a page. | ||
504 | */ | ||
505 | if (warp_size < PAGE_SIZE) | ||
506 | warp_size = PAGE_SIZE; | ||
507 | |||
502 | offset = 0; | 508 | offset = 0; |
503 | err = drm_addmap( dev, offset, warp_size, | 509 | err = drm_addmap( dev, offset, warp_size, |
504 | _DRM_AGP, _DRM_READ_ONLY, & dev_priv->warp ); | 510 | _DRM_AGP, _DRM_READ_ONLY, & dev_priv->warp ); |
@@ -587,7 +593,7 @@ static int mga_do_pci_dma_bootstrap(drm_device_t * dev, | |||
587 | drm_mga_dma_bootstrap_t * dma_bs) | 593 | drm_mga_dma_bootstrap_t * dma_bs) |
588 | { | 594 | { |
589 | drm_mga_private_t * const dev_priv = (drm_mga_private_t *) dev->dev_private; | 595 | drm_mga_private_t * const dev_priv = (drm_mga_private_t *) dev->dev_private; |
590 | const unsigned int warp_size = mga_warp_microcode_size(dev_priv); | 596 | unsigned int warp_size = mga_warp_microcode_size(dev_priv); |
591 | unsigned int primary_size; | 597 | unsigned int primary_size; |
592 | unsigned int bin_count; | 598 | unsigned int bin_count; |
593 | int err; | 599 | int err; |
@@ -599,6 +605,12 @@ static int mga_do_pci_dma_bootstrap(drm_device_t * dev, | |||
599 | return DRM_ERR(EFAULT); | 605 | return DRM_ERR(EFAULT); |
600 | } | 606 | } |
601 | 607 | ||
608 | /* Make drm_addbufs happy by not trying to create a mapping for less | ||
609 | * than a page. | ||
610 | */ | ||
611 | if (warp_size < PAGE_SIZE) | ||
612 | warp_size = PAGE_SIZE; | ||
613 | |||
602 | /* The proper alignment is 0x100 for this mapping */ | 614 | /* The proper alignment is 0x100 for this mapping */ |
603 | err = drm_addmap(dev, 0, warp_size, _DRM_CONSISTENT, | 615 | err = drm_addmap(dev, 0, warp_size, _DRM_CONSISTENT, |
604 | _DRM_READ_ONLY, &dev_priv->warp); | 616 | _DRM_READ_ONLY, &dev_priv->warp); |
@@ -812,6 +824,10 @@ static int mga_do_init_dma( drm_device_t *dev, drm_mga_init_t *init ) | |||
812 | } | 824 | } |
813 | 825 | ||
814 | if (! dev_priv->used_new_dma_init) { | 826 | if (! dev_priv->used_new_dma_init) { |
827 | |||
828 | dev_priv->dma_access = MGA_PAGPXFER; | ||
829 | dev_priv->wagp_enable = MGA_WAGP_ENABLE; | ||
830 | |||
815 | dev_priv->status = drm_core_findmap(dev, init->status_offset); | 831 | dev_priv->status = drm_core_findmap(dev, init->status_offset); |
816 | if (!dev_priv->status) { | 832 | if (!dev_priv->status) { |
817 | DRM_ERROR("failed to find status page!\n"); | 833 | DRM_ERROR("failed to find status page!\n"); |
@@ -928,7 +944,7 @@ static int mga_do_cleanup_dma( drm_device_t *dev ) | |||
928 | drm_mga_private_t *dev_priv = dev->dev_private; | 944 | drm_mga_private_t *dev_priv = dev->dev_private; |
929 | 945 | ||
930 | if ((dev_priv->warp != NULL) | 946 | if ((dev_priv->warp != NULL) |
931 | && (dev_priv->mmio->type != _DRM_CONSISTENT)) | 947 | && (dev_priv->warp->type != _DRM_CONSISTENT)) |
932 | drm_core_ioremapfree(dev_priv->warp, dev); | 948 | drm_core_ioremapfree(dev_priv->warp, dev); |
933 | 949 | ||
934 | if ((dev_priv->primary != NULL) | 950 | if ((dev_priv->primary != NULL) |
diff --git a/drivers/ieee1394/ohci1394.c b/drivers/ieee1394/ohci1394.c index 6a6acbd80af4..4cf9b8f3e336 100644 --- a/drivers/ieee1394/ohci1394.c +++ b/drivers/ieee1394/ohci1394.c | |||
@@ -2283,8 +2283,9 @@ static void ohci_schedule_iso_tasklets(struct ti_ohci *ohci, | |||
2283 | { | 2283 | { |
2284 | struct ohci1394_iso_tasklet *t; | 2284 | struct ohci1394_iso_tasklet *t; |
2285 | unsigned long mask; | 2285 | unsigned long mask; |
2286 | unsigned long flags; | ||
2286 | 2287 | ||
2287 | spin_lock(&ohci->iso_tasklet_list_lock); | 2288 | spin_lock_irqsave(&ohci->iso_tasklet_list_lock, flags); |
2288 | 2289 | ||
2289 | list_for_each_entry(t, &ohci->iso_tasklet_list, link) { | 2290 | list_for_each_entry(t, &ohci->iso_tasklet_list, link) { |
2290 | mask = 1 << t->context; | 2291 | mask = 1 << t->context; |
@@ -2295,8 +2296,7 @@ static void ohci_schedule_iso_tasklets(struct ti_ohci *ohci, | |||
2295 | tasklet_schedule(&t->tasklet); | 2296 | tasklet_schedule(&t->tasklet); |
2296 | } | 2297 | } |
2297 | 2298 | ||
2298 | spin_unlock(&ohci->iso_tasklet_list_lock); | 2299 | spin_unlock_irqrestore(&ohci->iso_tasklet_list_lock, flags); |
2299 | |||
2300 | } | 2300 | } |
2301 | 2301 | ||
2302 | static irqreturn_t ohci_irq_handler(int irq, void *dev_id, | 2302 | static irqreturn_t ohci_irq_handler(int irq, void *dev_id, |
diff --git a/drivers/ieee1394/raw1394.c b/drivers/ieee1394/raw1394.c index 315f5ca8bedb..0470f77a9cd1 100644 --- a/drivers/ieee1394/raw1394.c +++ b/drivers/ieee1394/raw1394.c | |||
@@ -412,6 +412,7 @@ static void fcp_request(struct hpsb_host *host, int nodeid, int direction, | |||
412 | static ssize_t raw1394_read(struct file *file, char __user * buffer, | 412 | static ssize_t raw1394_read(struct file *file, char __user * buffer, |
413 | size_t count, loff_t * offset_is_ignored) | 413 | size_t count, loff_t * offset_is_ignored) |
414 | { | 414 | { |
415 | unsigned long flags; | ||
415 | struct file_info *fi = (struct file_info *)file->private_data; | 416 | struct file_info *fi = (struct file_info *)file->private_data; |
416 | struct list_head *lh; | 417 | struct list_head *lh; |
417 | struct pending_request *req; | 418 | struct pending_request *req; |
@@ -435,10 +436,10 @@ static ssize_t raw1394_read(struct file *file, char __user * buffer, | |||
435 | } | 436 | } |
436 | } | 437 | } |
437 | 438 | ||
438 | spin_lock_irq(&fi->reqlists_lock); | 439 | spin_lock_irqsave(&fi->reqlists_lock, flags); |
439 | lh = fi->req_complete.next; | 440 | lh = fi->req_complete.next; |
440 | list_del(lh); | 441 | list_del(lh); |
441 | spin_unlock_irq(&fi->reqlists_lock); | 442 | spin_unlock_irqrestore(&fi->reqlists_lock, flags); |
442 | 443 | ||
443 | req = list_entry(lh, struct pending_request, list); | 444 | req = list_entry(lh, struct pending_request, list); |
444 | 445 | ||
@@ -486,6 +487,7 @@ static int state_opened(struct file_info *fi, struct pending_request *req) | |||
486 | 487 | ||
487 | static int state_initialized(struct file_info *fi, struct pending_request *req) | 488 | static int state_initialized(struct file_info *fi, struct pending_request *req) |
488 | { | 489 | { |
490 | unsigned long flags; | ||
489 | struct host_info *hi; | 491 | struct host_info *hi; |
490 | struct raw1394_khost_list *khl; | 492 | struct raw1394_khost_list *khl; |
491 | 493 | ||
@@ -499,7 +501,7 @@ static int state_initialized(struct file_info *fi, struct pending_request *req) | |||
499 | 501 | ||
500 | switch (req->req.type) { | 502 | switch (req->req.type) { |
501 | case RAW1394_REQ_LIST_CARDS: | 503 | case RAW1394_REQ_LIST_CARDS: |
502 | spin_lock_irq(&host_info_lock); | 504 | spin_lock_irqsave(&host_info_lock, flags); |
503 | khl = kmalloc(sizeof(struct raw1394_khost_list) * host_count, | 505 | khl = kmalloc(sizeof(struct raw1394_khost_list) * host_count, |
504 | SLAB_ATOMIC); | 506 | SLAB_ATOMIC); |
505 | 507 | ||
@@ -513,7 +515,7 @@ static int state_initialized(struct file_info *fi, struct pending_request *req) | |||
513 | khl++; | 515 | khl++; |
514 | } | 516 | } |
515 | } | 517 | } |
516 | spin_unlock_irq(&host_info_lock); | 518 | spin_unlock_irqrestore(&host_info_lock, flags); |
517 | 519 | ||
518 | if (khl != NULL) { | 520 | if (khl != NULL) { |
519 | req->req.error = RAW1394_ERROR_NONE; | 521 | req->req.error = RAW1394_ERROR_NONE; |
@@ -528,7 +530,7 @@ static int state_initialized(struct file_info *fi, struct pending_request *req) | |||
528 | break; | 530 | break; |
529 | 531 | ||
530 | case RAW1394_REQ_SET_CARD: | 532 | case RAW1394_REQ_SET_CARD: |
531 | spin_lock_irq(&host_info_lock); | 533 | spin_lock_irqsave(&host_info_lock, flags); |
532 | if (req->req.misc < host_count) { | 534 | if (req->req.misc < host_count) { |
533 | list_for_each_entry(hi, &host_info_list, list) { | 535 | list_for_each_entry(hi, &host_info_list, list) { |
534 | if (!req->req.misc--) | 536 | if (!req->req.misc--) |
@@ -550,7 +552,7 @@ static int state_initialized(struct file_info *fi, struct pending_request *req) | |||
550 | } else { | 552 | } else { |
551 | req->req.error = RAW1394_ERROR_INVALID_ARG; | 553 | req->req.error = RAW1394_ERROR_INVALID_ARG; |
552 | } | 554 | } |
553 | spin_unlock_irq(&host_info_lock); | 555 | spin_unlock_irqrestore(&host_info_lock, flags); |
554 | 556 | ||
555 | req->req.length = 0; | 557 | req->req.length = 0; |
556 | break; | 558 | break; |
@@ -569,7 +571,6 @@ static void handle_iso_listen(struct file_info *fi, struct pending_request *req) | |||
569 | { | 571 | { |
570 | int channel = req->req.misc; | 572 | int channel = req->req.misc; |
571 | 573 | ||
572 | spin_lock_irq(&host_info_lock); | ||
573 | if ((channel > 63) || (channel < -64)) { | 574 | if ((channel > 63) || (channel < -64)) { |
574 | req->req.error = RAW1394_ERROR_INVALID_ARG; | 575 | req->req.error = RAW1394_ERROR_INVALID_ARG; |
575 | } else if (channel >= 0) { | 576 | } else if (channel >= 0) { |
@@ -601,7 +602,6 @@ static void handle_iso_listen(struct file_info *fi, struct pending_request *req) | |||
601 | 602 | ||
602 | req->req.length = 0; | 603 | req->req.length = 0; |
603 | queue_complete_req(req); | 604 | queue_complete_req(req); |
604 | spin_unlock_irq(&host_info_lock); | ||
605 | } | 605 | } |
606 | 606 | ||
607 | static void handle_fcp_listen(struct file_info *fi, struct pending_request *req) | 607 | static void handle_fcp_listen(struct file_info *fi, struct pending_request *req) |
@@ -627,6 +627,7 @@ static void handle_fcp_listen(struct file_info *fi, struct pending_request *req) | |||
627 | static int handle_async_request(struct file_info *fi, | 627 | static int handle_async_request(struct file_info *fi, |
628 | struct pending_request *req, int node) | 628 | struct pending_request *req, int node) |
629 | { | 629 | { |
630 | unsigned long flags; | ||
630 | struct hpsb_packet *packet = NULL; | 631 | struct hpsb_packet *packet = NULL; |
631 | u64 addr = req->req.address & 0xffffffffffffULL; | 632 | u64 addr = req->req.address & 0xffffffffffffULL; |
632 | 633 | ||
@@ -761,9 +762,9 @@ static int handle_async_request(struct file_info *fi, | |||
761 | hpsb_set_packet_complete_task(packet, | 762 | hpsb_set_packet_complete_task(packet, |
762 | (void (*)(void *))queue_complete_cb, req); | 763 | (void (*)(void *))queue_complete_cb, req); |
763 | 764 | ||
764 | spin_lock_irq(&fi->reqlists_lock); | 765 | spin_lock_irqsave(&fi->reqlists_lock, flags); |
765 | list_add_tail(&req->list, &fi->req_pending); | 766 | list_add_tail(&req->list, &fi->req_pending); |
766 | spin_unlock_irq(&fi->reqlists_lock); | 767 | spin_unlock_irqrestore(&fi->reqlists_lock, flags); |
767 | 768 | ||
768 | packet->generation = req->req.generation; | 769 | packet->generation = req->req.generation; |
769 | 770 | ||
@@ -779,6 +780,7 @@ static int handle_async_request(struct file_info *fi, | |||
779 | static int handle_iso_send(struct file_info *fi, struct pending_request *req, | 780 | static int handle_iso_send(struct file_info *fi, struct pending_request *req, |
780 | int channel) | 781 | int channel) |
781 | { | 782 | { |
783 | unsigned long flags; | ||
782 | struct hpsb_packet *packet; | 784 | struct hpsb_packet *packet; |
783 | 785 | ||
784 | packet = hpsb_make_isopacket(fi->host, req->req.length, channel & 0x3f, | 786 | packet = hpsb_make_isopacket(fi->host, req->req.length, channel & 0x3f, |
@@ -804,9 +806,9 @@ static int handle_iso_send(struct file_info *fi, struct pending_request *req, | |||
804 | (void (*)(void *))queue_complete_req, | 806 | (void (*)(void *))queue_complete_req, |
805 | req); | 807 | req); |
806 | 808 | ||
807 | spin_lock_irq(&fi->reqlists_lock); | 809 | spin_lock_irqsave(&fi->reqlists_lock, flags); |
808 | list_add_tail(&req->list, &fi->req_pending); | 810 | list_add_tail(&req->list, &fi->req_pending); |
809 | spin_unlock_irq(&fi->reqlists_lock); | 811 | spin_unlock_irqrestore(&fi->reqlists_lock, flags); |
810 | 812 | ||
811 | /* Update the generation of the packet just before sending. */ | 813 | /* Update the generation of the packet just before sending. */ |
812 | packet->generation = req->req.generation; | 814 | packet->generation = req->req.generation; |
@@ -821,6 +823,7 @@ static int handle_iso_send(struct file_info *fi, struct pending_request *req, | |||
821 | 823 | ||
822 | static int handle_async_send(struct file_info *fi, struct pending_request *req) | 824 | static int handle_async_send(struct file_info *fi, struct pending_request *req) |
823 | { | 825 | { |
826 | unsigned long flags; | ||
824 | struct hpsb_packet *packet; | 827 | struct hpsb_packet *packet; |
825 | int header_length = req->req.misc & 0xffff; | 828 | int header_length = req->req.misc & 0xffff; |
826 | int expect_response = req->req.misc >> 16; | 829 | int expect_response = req->req.misc >> 16; |
@@ -867,9 +870,9 @@ static int handle_async_send(struct file_info *fi, struct pending_request *req) | |||
867 | hpsb_set_packet_complete_task(packet, | 870 | hpsb_set_packet_complete_task(packet, |
868 | (void (*)(void *))queue_complete_cb, req); | 871 | (void (*)(void *))queue_complete_cb, req); |
869 | 872 | ||
870 | spin_lock_irq(&fi->reqlists_lock); | 873 | spin_lock_irqsave(&fi->reqlists_lock, flags); |
871 | list_add_tail(&req->list, &fi->req_pending); | 874 | list_add_tail(&req->list, &fi->req_pending); |
872 | spin_unlock_irq(&fi->reqlists_lock); | 875 | spin_unlock_irqrestore(&fi->reqlists_lock, flags); |
873 | 876 | ||
874 | /* Update the generation of the packet just before sending. */ | 877 | /* Update the generation of the packet just before sending. */ |
875 | packet->generation = req->req.generation; | 878 | packet->generation = req->req.generation; |
@@ -885,6 +888,7 @@ static int handle_async_send(struct file_info *fi, struct pending_request *req) | |||
885 | static int arm_read(struct hpsb_host *host, int nodeid, quadlet_t * buffer, | 888 | static int arm_read(struct hpsb_host *host, int nodeid, quadlet_t * buffer, |
886 | u64 addr, size_t length, u16 flags) | 889 | u64 addr, size_t length, u16 flags) |
887 | { | 890 | { |
891 | unsigned long irqflags; | ||
888 | struct pending_request *req; | 892 | struct pending_request *req; |
889 | struct host_info *hi; | 893 | struct host_info *hi; |
890 | struct file_info *fi = NULL; | 894 | struct file_info *fi = NULL; |
@@ -899,7 +903,7 @@ static int arm_read(struct hpsb_host *host, int nodeid, quadlet_t * buffer, | |||
899 | "addr: %4.4x %8.8x length: %Zu", nodeid, | 903 | "addr: %4.4x %8.8x length: %Zu", nodeid, |
900 | (u16) ((addr >> 32) & 0xFFFF), (u32) (addr & 0xFFFFFFFF), | 904 | (u16) ((addr >> 32) & 0xFFFF), (u32) (addr & 0xFFFFFFFF), |
901 | length); | 905 | length); |
902 | spin_lock(&host_info_lock); | 906 | spin_lock_irqsave(&host_info_lock, irqflags); |
903 | hi = find_host_info(host); /* search address-entry */ | 907 | hi = find_host_info(host); /* search address-entry */ |
904 | if (hi != NULL) { | 908 | if (hi != NULL) { |
905 | list_for_each_entry(fi, &hi->file_info_list, list) { | 909 | list_for_each_entry(fi, &hi->file_info_list, list) { |
@@ -924,7 +928,7 @@ static int arm_read(struct hpsb_host *host, int nodeid, quadlet_t * buffer, | |||
924 | if (!found) { | 928 | if (!found) { |
925 | printk(KERN_ERR "raw1394: arm_read FAILED addr_entry not found" | 929 | printk(KERN_ERR "raw1394: arm_read FAILED addr_entry not found" |
926 | " -> rcode_address_error\n"); | 930 | " -> rcode_address_error\n"); |
927 | spin_unlock(&host_info_lock); | 931 | spin_unlock_irqrestore(&host_info_lock, irqflags); |
928 | return (RCODE_ADDRESS_ERROR); | 932 | return (RCODE_ADDRESS_ERROR); |
929 | } else { | 933 | } else { |
930 | DBGMSG("arm_read addr_entry FOUND"); | 934 | DBGMSG("arm_read addr_entry FOUND"); |
@@ -954,7 +958,7 @@ static int arm_read(struct hpsb_host *host, int nodeid, quadlet_t * buffer, | |||
954 | req = __alloc_pending_request(SLAB_ATOMIC); | 958 | req = __alloc_pending_request(SLAB_ATOMIC); |
955 | if (!req) { | 959 | if (!req) { |
956 | DBGMSG("arm_read -> rcode_conflict_error"); | 960 | DBGMSG("arm_read -> rcode_conflict_error"); |
957 | spin_unlock(&host_info_lock); | 961 | spin_unlock_irqrestore(&host_info_lock, irqflags); |
958 | return (RCODE_CONFLICT_ERROR); /* A resource conflict was detected. | 962 | return (RCODE_CONFLICT_ERROR); /* A resource conflict was detected. |
959 | The request may be retried */ | 963 | The request may be retried */ |
960 | } | 964 | } |
@@ -974,7 +978,7 @@ static int arm_read(struct hpsb_host *host, int nodeid, quadlet_t * buffer, | |||
974 | if (!(req->data)) { | 978 | if (!(req->data)) { |
975 | free_pending_request(req); | 979 | free_pending_request(req); |
976 | DBGMSG("arm_read -> rcode_conflict_error"); | 980 | DBGMSG("arm_read -> rcode_conflict_error"); |
977 | spin_unlock(&host_info_lock); | 981 | spin_unlock_irqrestore(&host_info_lock, irqflags); |
978 | return (RCODE_CONFLICT_ERROR); /* A resource conflict was detected. | 982 | return (RCODE_CONFLICT_ERROR); /* A resource conflict was detected. |
979 | The request may be retried */ | 983 | The request may be retried */ |
980 | } | 984 | } |
@@ -1031,13 +1035,14 @@ static int arm_read(struct hpsb_host *host, int nodeid, quadlet_t * buffer, | |||
1031 | sizeof(struct arm_request)); | 1035 | sizeof(struct arm_request)); |
1032 | queue_complete_req(req); | 1036 | queue_complete_req(req); |
1033 | } | 1037 | } |
1034 | spin_unlock(&host_info_lock); | 1038 | spin_unlock_irqrestore(&host_info_lock, irqflags); |
1035 | return (rcode); | 1039 | return (rcode); |
1036 | } | 1040 | } |
1037 | 1041 | ||
1038 | static int arm_write(struct hpsb_host *host, int nodeid, int destid, | 1042 | static int arm_write(struct hpsb_host *host, int nodeid, int destid, |
1039 | quadlet_t * data, u64 addr, size_t length, u16 flags) | 1043 | quadlet_t * data, u64 addr, size_t length, u16 flags) |
1040 | { | 1044 | { |
1045 | unsigned long irqflags; | ||
1041 | struct pending_request *req; | 1046 | struct pending_request *req; |
1042 | struct host_info *hi; | 1047 | struct host_info *hi; |
1043 | struct file_info *fi = NULL; | 1048 | struct file_info *fi = NULL; |
@@ -1052,7 +1057,7 @@ static int arm_write(struct hpsb_host *host, int nodeid, int destid, | |||
1052 | "addr: %4.4x %8.8x length: %Zu", nodeid, | 1057 | "addr: %4.4x %8.8x length: %Zu", nodeid, |
1053 | (u16) ((addr >> 32) & 0xFFFF), (u32) (addr & 0xFFFFFFFF), | 1058 | (u16) ((addr >> 32) & 0xFFFF), (u32) (addr & 0xFFFFFFFF), |
1054 | length); | 1059 | length); |
1055 | spin_lock(&host_info_lock); | 1060 | spin_lock_irqsave(&host_info_lock, irqflags); |
1056 | hi = find_host_info(host); /* search address-entry */ | 1061 | hi = find_host_info(host); /* search address-entry */ |
1057 | if (hi != NULL) { | 1062 | if (hi != NULL) { |
1058 | list_for_each_entry(fi, &hi->file_info_list, list) { | 1063 | list_for_each_entry(fi, &hi->file_info_list, list) { |
@@ -1077,7 +1082,7 @@ static int arm_write(struct hpsb_host *host, int nodeid, int destid, | |||
1077 | if (!found) { | 1082 | if (!found) { |
1078 | printk(KERN_ERR "raw1394: arm_write FAILED addr_entry not found" | 1083 | printk(KERN_ERR "raw1394: arm_write FAILED addr_entry not found" |
1079 | " -> rcode_address_error\n"); | 1084 | " -> rcode_address_error\n"); |
1080 | spin_unlock(&host_info_lock); | 1085 | spin_unlock_irqrestore(&host_info_lock, irqflags); |
1081 | return (RCODE_ADDRESS_ERROR); | 1086 | return (RCODE_ADDRESS_ERROR); |
1082 | } else { | 1087 | } else { |
1083 | DBGMSG("arm_write addr_entry FOUND"); | 1088 | DBGMSG("arm_write addr_entry FOUND"); |
@@ -1106,7 +1111,7 @@ static int arm_write(struct hpsb_host *host, int nodeid, int destid, | |||
1106 | req = __alloc_pending_request(SLAB_ATOMIC); | 1111 | req = __alloc_pending_request(SLAB_ATOMIC); |
1107 | if (!req) { | 1112 | if (!req) { |
1108 | DBGMSG("arm_write -> rcode_conflict_error"); | 1113 | DBGMSG("arm_write -> rcode_conflict_error"); |
1109 | spin_unlock(&host_info_lock); | 1114 | spin_unlock_irqrestore(&host_info_lock, irqflags); |
1110 | return (RCODE_CONFLICT_ERROR); /* A resource conflict was detected. | 1115 | return (RCODE_CONFLICT_ERROR); /* A resource conflict was detected. |
1111 | The request my be retried */ | 1116 | The request my be retried */ |
1112 | } | 1117 | } |
@@ -1118,7 +1123,7 @@ static int arm_write(struct hpsb_host *host, int nodeid, int destid, | |||
1118 | if (!(req->data)) { | 1123 | if (!(req->data)) { |
1119 | free_pending_request(req); | 1124 | free_pending_request(req); |
1120 | DBGMSG("arm_write -> rcode_conflict_error"); | 1125 | DBGMSG("arm_write -> rcode_conflict_error"); |
1121 | spin_unlock(&host_info_lock); | 1126 | spin_unlock_irqrestore(&host_info_lock, irqflags); |
1122 | return (RCODE_CONFLICT_ERROR); /* A resource conflict was detected. | 1127 | return (RCODE_CONFLICT_ERROR); /* A resource conflict was detected. |
1123 | The request may be retried */ | 1128 | The request may be retried */ |
1124 | } | 1129 | } |
@@ -1165,7 +1170,7 @@ static int arm_write(struct hpsb_host *host, int nodeid, int destid, | |||
1165 | sizeof(struct arm_request)); | 1170 | sizeof(struct arm_request)); |
1166 | queue_complete_req(req); | 1171 | queue_complete_req(req); |
1167 | } | 1172 | } |
1168 | spin_unlock(&host_info_lock); | 1173 | spin_unlock_irqrestore(&host_info_lock, irqflags); |
1169 | return (rcode); | 1174 | return (rcode); |
1170 | } | 1175 | } |
1171 | 1176 | ||
@@ -1173,6 +1178,7 @@ static int arm_lock(struct hpsb_host *host, int nodeid, quadlet_t * store, | |||
1173 | u64 addr, quadlet_t data, quadlet_t arg, int ext_tcode, | 1178 | u64 addr, quadlet_t data, quadlet_t arg, int ext_tcode, |
1174 | u16 flags) | 1179 | u16 flags) |
1175 | { | 1180 | { |
1181 | unsigned long irqflags; | ||
1176 | struct pending_request *req; | 1182 | struct pending_request *req; |
1177 | struct host_info *hi; | 1183 | struct host_info *hi; |
1178 | struct file_info *fi = NULL; | 1184 | struct file_info *fi = NULL; |
@@ -1198,7 +1204,7 @@ static int arm_lock(struct hpsb_host *host, int nodeid, quadlet_t * store, | |||
1198 | (u32) (addr & 0xFFFFFFFF), ext_tcode & 0xFF, | 1204 | (u32) (addr & 0xFFFFFFFF), ext_tcode & 0xFF, |
1199 | be32_to_cpu(data), be32_to_cpu(arg)); | 1205 | be32_to_cpu(data), be32_to_cpu(arg)); |
1200 | } | 1206 | } |
1201 | spin_lock(&host_info_lock); | 1207 | spin_lock_irqsave(&host_info_lock, irqflags); |
1202 | hi = find_host_info(host); /* search address-entry */ | 1208 | hi = find_host_info(host); /* search address-entry */ |
1203 | if (hi != NULL) { | 1209 | if (hi != NULL) { |
1204 | list_for_each_entry(fi, &hi->file_info_list, list) { | 1210 | list_for_each_entry(fi, &hi->file_info_list, list) { |
@@ -1224,7 +1230,7 @@ static int arm_lock(struct hpsb_host *host, int nodeid, quadlet_t * store, | |||
1224 | if (!found) { | 1230 | if (!found) { |
1225 | printk(KERN_ERR "raw1394: arm_lock FAILED addr_entry not found" | 1231 | printk(KERN_ERR "raw1394: arm_lock FAILED addr_entry not found" |
1226 | " -> rcode_address_error\n"); | 1232 | " -> rcode_address_error\n"); |
1227 | spin_unlock(&host_info_lock); | 1233 | spin_unlock_irqrestore(&host_info_lock, irqflags); |
1228 | return (RCODE_ADDRESS_ERROR); | 1234 | return (RCODE_ADDRESS_ERROR); |
1229 | } else { | 1235 | } else { |
1230 | DBGMSG("arm_lock addr_entry FOUND"); | 1236 | DBGMSG("arm_lock addr_entry FOUND"); |
@@ -1307,7 +1313,7 @@ static int arm_lock(struct hpsb_host *host, int nodeid, quadlet_t * store, | |||
1307 | req = __alloc_pending_request(SLAB_ATOMIC); | 1313 | req = __alloc_pending_request(SLAB_ATOMIC); |
1308 | if (!req) { | 1314 | if (!req) { |
1309 | DBGMSG("arm_lock -> rcode_conflict_error"); | 1315 | DBGMSG("arm_lock -> rcode_conflict_error"); |
1310 | spin_unlock(&host_info_lock); | 1316 | spin_unlock_irqrestore(&host_info_lock, irqflags); |
1311 | return (RCODE_CONFLICT_ERROR); /* A resource conflict was detected. | 1317 | return (RCODE_CONFLICT_ERROR); /* A resource conflict was detected. |
1312 | The request may be retried */ | 1318 | The request may be retried */ |
1313 | } | 1319 | } |
@@ -1316,7 +1322,7 @@ static int arm_lock(struct hpsb_host *host, int nodeid, quadlet_t * store, | |||
1316 | if (!(req->data)) { | 1322 | if (!(req->data)) { |
1317 | free_pending_request(req); | 1323 | free_pending_request(req); |
1318 | DBGMSG("arm_lock -> rcode_conflict_error"); | 1324 | DBGMSG("arm_lock -> rcode_conflict_error"); |
1319 | spin_unlock(&host_info_lock); | 1325 | spin_unlock_irqrestore(&host_info_lock, irqflags); |
1320 | return (RCODE_CONFLICT_ERROR); /* A resource conflict was detected. | 1326 | return (RCODE_CONFLICT_ERROR); /* A resource conflict was detected. |
1321 | The request may be retried */ | 1327 | The request may be retried */ |
1322 | } | 1328 | } |
@@ -1382,7 +1388,7 @@ static int arm_lock(struct hpsb_host *host, int nodeid, quadlet_t * store, | |||
1382 | sizeof(struct arm_response) + 2 * sizeof(*store)); | 1388 | sizeof(struct arm_response) + 2 * sizeof(*store)); |
1383 | queue_complete_req(req); | 1389 | queue_complete_req(req); |
1384 | } | 1390 | } |
1385 | spin_unlock(&host_info_lock); | 1391 | spin_unlock_irqrestore(&host_info_lock, irqflags); |
1386 | return (rcode); | 1392 | return (rcode); |
1387 | } | 1393 | } |
1388 | 1394 | ||
@@ -1390,6 +1396,7 @@ static int arm_lock64(struct hpsb_host *host, int nodeid, octlet_t * store, | |||
1390 | u64 addr, octlet_t data, octlet_t arg, int ext_tcode, | 1396 | u64 addr, octlet_t data, octlet_t arg, int ext_tcode, |
1391 | u16 flags) | 1397 | u16 flags) |
1392 | { | 1398 | { |
1399 | unsigned long irqflags; | ||
1393 | struct pending_request *req; | 1400 | struct pending_request *req; |
1394 | struct host_info *hi; | 1401 | struct host_info *hi; |
1395 | struct file_info *fi = NULL; | 1402 | struct file_info *fi = NULL; |
@@ -1422,7 +1429,7 @@ static int arm_lock64(struct hpsb_host *host, int nodeid, octlet_t * store, | |||
1422 | (u32) ((be64_to_cpu(arg) >> 32) & 0xFFFFFFFF), | 1429 | (u32) ((be64_to_cpu(arg) >> 32) & 0xFFFFFFFF), |
1423 | (u32) (be64_to_cpu(arg) & 0xFFFFFFFF)); | 1430 | (u32) (be64_to_cpu(arg) & 0xFFFFFFFF)); |
1424 | } | 1431 | } |
1425 | spin_lock(&host_info_lock); | 1432 | spin_lock_irqsave(&host_info_lock, irqflags); |
1426 | hi = find_host_info(host); /* search addressentry in file_info's for host */ | 1433 | hi = find_host_info(host); /* search addressentry in file_info's for host */ |
1427 | if (hi != NULL) { | 1434 | if (hi != NULL) { |
1428 | list_for_each_entry(fi, &hi->file_info_list, list) { | 1435 | list_for_each_entry(fi, &hi->file_info_list, list) { |
@@ -1449,7 +1456,7 @@ static int arm_lock64(struct hpsb_host *host, int nodeid, octlet_t * store, | |||
1449 | printk(KERN_ERR | 1456 | printk(KERN_ERR |
1450 | "raw1394: arm_lock64 FAILED addr_entry not found" | 1457 | "raw1394: arm_lock64 FAILED addr_entry not found" |
1451 | " -> rcode_address_error\n"); | 1458 | " -> rcode_address_error\n"); |
1452 | spin_unlock(&host_info_lock); | 1459 | spin_unlock_irqrestore(&host_info_lock, irqflags); |
1453 | return (RCODE_ADDRESS_ERROR); | 1460 | return (RCODE_ADDRESS_ERROR); |
1454 | } else { | 1461 | } else { |
1455 | DBGMSG("arm_lock64 addr_entry FOUND"); | 1462 | DBGMSG("arm_lock64 addr_entry FOUND"); |
@@ -1533,7 +1540,7 @@ static int arm_lock64(struct hpsb_host *host, int nodeid, octlet_t * store, | |||
1533 | DBGMSG("arm_lock64 -> entering notification-section"); | 1540 | DBGMSG("arm_lock64 -> entering notification-section"); |
1534 | req = __alloc_pending_request(SLAB_ATOMIC); | 1541 | req = __alloc_pending_request(SLAB_ATOMIC); |
1535 | if (!req) { | 1542 | if (!req) { |
1536 | spin_unlock(&host_info_lock); | 1543 | spin_unlock_irqrestore(&host_info_lock, irqflags); |
1537 | DBGMSG("arm_lock64 -> rcode_conflict_error"); | 1544 | DBGMSG("arm_lock64 -> rcode_conflict_error"); |
1538 | return (RCODE_CONFLICT_ERROR); /* A resource conflict was detected. | 1545 | return (RCODE_CONFLICT_ERROR); /* A resource conflict was detected. |
1539 | The request may be retried */ | 1546 | The request may be retried */ |
@@ -1542,7 +1549,7 @@ static int arm_lock64(struct hpsb_host *host, int nodeid, octlet_t * store, | |||
1542 | req->data = kmalloc(size, SLAB_ATOMIC); | 1549 | req->data = kmalloc(size, SLAB_ATOMIC); |
1543 | if (!(req->data)) { | 1550 | if (!(req->data)) { |
1544 | free_pending_request(req); | 1551 | free_pending_request(req); |
1545 | spin_unlock(&host_info_lock); | 1552 | spin_unlock_irqrestore(&host_info_lock, irqflags); |
1546 | DBGMSG("arm_lock64 -> rcode_conflict_error"); | 1553 | DBGMSG("arm_lock64 -> rcode_conflict_error"); |
1547 | return (RCODE_CONFLICT_ERROR); /* A resource conflict was detected. | 1554 | return (RCODE_CONFLICT_ERROR); /* A resource conflict was detected. |
1548 | The request may be retried */ | 1555 | The request may be retried */ |
@@ -1609,7 +1616,7 @@ static int arm_lock64(struct hpsb_host *host, int nodeid, octlet_t * store, | |||
1609 | sizeof(struct arm_response) + 2 * sizeof(*store)); | 1616 | sizeof(struct arm_response) + 2 * sizeof(*store)); |
1610 | queue_complete_req(req); | 1617 | queue_complete_req(req); |
1611 | } | 1618 | } |
1612 | spin_unlock(&host_info_lock); | 1619 | spin_unlock_irqrestore(&host_info_lock, irqflags); |
1613 | return (rcode); | 1620 | return (rcode); |
1614 | } | 1621 | } |
1615 | 1622 | ||
@@ -1980,6 +1987,7 @@ static int write_phypacket(struct file_info *fi, struct pending_request *req) | |||
1980 | struct hpsb_packet *packet = NULL; | 1987 | struct hpsb_packet *packet = NULL; |
1981 | int retval = 0; | 1988 | int retval = 0; |
1982 | quadlet_t data; | 1989 | quadlet_t data; |
1990 | unsigned long flags; | ||
1983 | 1991 | ||
1984 | data = be32_to_cpu((u32) req->req.sendb); | 1992 | data = be32_to_cpu((u32) req->req.sendb); |
1985 | DBGMSG("write_phypacket called - quadlet 0x%8.8x ", data); | 1993 | DBGMSG("write_phypacket called - quadlet 0x%8.8x ", data); |
@@ -1990,9 +1998,9 @@ static int write_phypacket(struct file_info *fi, struct pending_request *req) | |||
1990 | req->packet = packet; | 1998 | req->packet = packet; |
1991 | hpsb_set_packet_complete_task(packet, | 1999 | hpsb_set_packet_complete_task(packet, |
1992 | (void (*)(void *))queue_complete_cb, req); | 2000 | (void (*)(void *))queue_complete_cb, req); |
1993 | spin_lock_irq(&fi->reqlists_lock); | 2001 | spin_lock_irqsave(&fi->reqlists_lock, flags); |
1994 | list_add_tail(&req->list, &fi->req_pending); | 2002 | list_add_tail(&req->list, &fi->req_pending); |
1995 | spin_unlock_irq(&fi->reqlists_lock); | 2003 | spin_unlock_irqrestore(&fi->reqlists_lock, flags); |
1996 | packet->generation = req->req.generation; | 2004 | packet->generation = req->req.generation; |
1997 | retval = hpsb_send_packet(packet); | 2005 | retval = hpsb_send_packet(packet); |
1998 | DBGMSG("write_phypacket send_packet called => retval: %d ", retval); | 2006 | DBGMSG("write_phypacket send_packet called => retval: %d ", retval); |
@@ -2659,14 +2667,15 @@ static unsigned int raw1394_poll(struct file *file, poll_table * pt) | |||
2659 | { | 2667 | { |
2660 | struct file_info *fi = file->private_data; | 2668 | struct file_info *fi = file->private_data; |
2661 | unsigned int mask = POLLOUT | POLLWRNORM; | 2669 | unsigned int mask = POLLOUT | POLLWRNORM; |
2670 | unsigned long flags; | ||
2662 | 2671 | ||
2663 | poll_wait(file, &fi->poll_wait_complete, pt); | 2672 | poll_wait(file, &fi->poll_wait_complete, pt); |
2664 | 2673 | ||
2665 | spin_lock_irq(&fi->reqlists_lock); | 2674 | spin_lock_irqsave(&fi->reqlists_lock, flags); |
2666 | if (!list_empty(&fi->req_complete)) { | 2675 | if (!list_empty(&fi->req_complete)) { |
2667 | mask |= POLLIN | POLLRDNORM; | 2676 | mask |= POLLIN | POLLRDNORM; |
2668 | } | 2677 | } |
2669 | spin_unlock_irq(&fi->reqlists_lock); | 2678 | spin_unlock_irqrestore(&fi->reqlists_lock, flags); |
2670 | 2679 | ||
2671 | return mask; | 2680 | return mask; |
2672 | } | 2681 | } |
@@ -2710,6 +2719,7 @@ static int raw1394_release(struct inode *inode, struct file *file) | |||
2710 | struct arm_addr *arm_addr = NULL; | 2719 | struct arm_addr *arm_addr = NULL; |
2711 | int another_host; | 2720 | int another_host; |
2712 | int csr_mod = 0; | 2721 | int csr_mod = 0; |
2722 | unsigned long flags; | ||
2713 | 2723 | ||
2714 | if (fi->iso_state != RAW1394_ISO_INACTIVE) | 2724 | if (fi->iso_state != RAW1394_ISO_INACTIVE) |
2715 | raw1394_iso_shutdown(fi); | 2725 | raw1394_iso_shutdown(fi); |
@@ -2720,13 +2730,11 @@ static int raw1394_release(struct inode *inode, struct file *file) | |||
2720 | } | 2730 | } |
2721 | } | 2731 | } |
2722 | 2732 | ||
2723 | spin_lock_irq(&host_info_lock); | 2733 | spin_lock_irqsave(&host_info_lock, flags); |
2724 | fi->listen_channels = 0; | 2734 | fi->listen_channels = 0; |
2725 | spin_unlock_irq(&host_info_lock); | ||
2726 | 2735 | ||
2727 | fail = 0; | 2736 | fail = 0; |
2728 | /* set address-entries invalid */ | 2737 | /* set address-entries invalid */ |
2729 | spin_lock_irq(&host_info_lock); | ||
2730 | 2738 | ||
2731 | while (!list_empty(&fi->addr_list)) { | 2739 | while (!list_empty(&fi->addr_list)) { |
2732 | another_host = 0; | 2740 | another_host = 0; |
@@ -2777,14 +2785,14 @@ static int raw1394_release(struct inode *inode, struct file *file) | |||
2777 | vfree(addr->addr_space_buffer); | 2785 | vfree(addr->addr_space_buffer); |
2778 | kfree(addr); | 2786 | kfree(addr); |
2779 | } /* while */ | 2787 | } /* while */ |
2780 | spin_unlock_irq(&host_info_lock); | 2788 | spin_unlock_irqrestore(&host_info_lock, flags); |
2781 | if (fail > 0) { | 2789 | if (fail > 0) { |
2782 | printk(KERN_ERR "raw1394: during addr_list-release " | 2790 | printk(KERN_ERR "raw1394: during addr_list-release " |
2783 | "error(s) occurred \n"); | 2791 | "error(s) occurred \n"); |
2784 | } | 2792 | } |
2785 | 2793 | ||
2786 | while (!done) { | 2794 | while (!done) { |
2787 | spin_lock_irq(&fi->reqlists_lock); | 2795 | spin_lock_irqsave(&fi->reqlists_lock, flags); |
2788 | 2796 | ||
2789 | while (!list_empty(&fi->req_complete)) { | 2797 | while (!list_empty(&fi->req_complete)) { |
2790 | lh = fi->req_complete.next; | 2798 | lh = fi->req_complete.next; |
@@ -2798,7 +2806,7 @@ static int raw1394_release(struct inode *inode, struct file *file) | |||
2798 | if (list_empty(&fi->req_pending)) | 2806 | if (list_empty(&fi->req_pending)) |
2799 | done = 1; | 2807 | done = 1; |
2800 | 2808 | ||
2801 | spin_unlock_irq(&fi->reqlists_lock); | 2809 | spin_unlock_irqrestore(&fi->reqlists_lock, flags); |
2802 | 2810 | ||
2803 | if (!done) | 2811 | if (!done) |
2804 | down_interruptible(&fi->complete_sem); | 2812 | down_interruptible(&fi->complete_sem); |
@@ -2828,9 +2836,9 @@ static int raw1394_release(struct inode *inode, struct file *file) | |||
2828 | fi->host->id); | 2836 | fi->host->id); |
2829 | 2837 | ||
2830 | if (fi->state == connected) { | 2838 | if (fi->state == connected) { |
2831 | spin_lock_irq(&host_info_lock); | 2839 | spin_lock_irqsave(&host_info_lock, flags); |
2832 | list_del(&fi->list); | 2840 | list_del(&fi->list); |
2833 | spin_unlock_irq(&host_info_lock); | 2841 | spin_unlock_irqrestore(&host_info_lock, flags); |
2834 | 2842 | ||
2835 | put_device(&fi->host->device); | 2843 | put_device(&fi->host->device); |
2836 | } | 2844 | } |
diff --git a/drivers/md/md.c b/drivers/md/md.c index 2897df90df44..e9476075aa13 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c | |||
@@ -3063,6 +3063,7 @@ static int md_thread(void * arg) | |||
3063 | * many dirty RAID5 blocks. | 3063 | * many dirty RAID5 blocks. |
3064 | */ | 3064 | */ |
3065 | 3065 | ||
3066 | allow_signal(SIGKILL); | ||
3066 | complete(thread->event); | 3067 | complete(thread->event); |
3067 | while (!kthread_should_stop()) { | 3068 | while (!kthread_should_stop()) { |
3068 | void (*run)(mddev_t *); | 3069 | void (*run)(mddev_t *); |
@@ -3111,7 +3112,7 @@ mdk_thread_t *md_register_thread(void (*run) (mddev_t *), mddev_t *mddev, | |||
3111 | thread->mddev = mddev; | 3112 | thread->mddev = mddev; |
3112 | thread->name = name; | 3113 | thread->name = name; |
3113 | thread->timeout = MAX_SCHEDULE_TIMEOUT; | 3114 | thread->timeout = MAX_SCHEDULE_TIMEOUT; |
3114 | thread->tsk = kthread_run(md_thread, thread, mdname(thread->mddev)); | 3115 | thread->tsk = kthread_run(md_thread, thread, name, mdname(thread->mddev)); |
3115 | if (IS_ERR(thread->tsk)) { | 3116 | if (IS_ERR(thread->tsk)) { |
3116 | kfree(thread); | 3117 | kfree(thread); |
3117 | return NULL; | 3118 | return NULL; |
@@ -3569,6 +3570,7 @@ static void md_do_sync(mddev_t *mddev) | |||
3569 | try_again: | 3570 | try_again: |
3570 | if (signal_pending(current)) { | 3571 | if (signal_pending(current)) { |
3571 | flush_signals(current); | 3572 | flush_signals(current); |
3573 | set_bit(MD_RECOVERY_INTR, &mddev->recovery); | ||
3572 | goto skip; | 3574 | goto skip; |
3573 | } | 3575 | } |
3574 | ITERATE_MDDEV(mddev2,tmp) { | 3576 | ITERATE_MDDEV(mddev2,tmp) { |
diff --git a/drivers/net/wireless/orinoco.c b/drivers/net/wireless/orinoco.c index cf3daaa1b369..15ceaf615756 100644 --- a/drivers/net/wireless/orinoco.c +++ b/drivers/net/wireless/orinoco.c | |||
@@ -578,8 +578,9 @@ static int orinoco_xmit(struct sk_buff *skb, struct net_device *dev) | |||
578 | txfid, NULL); | 578 | txfid, NULL); |
579 | if (err) { | 579 | if (err) { |
580 | netif_start_queue(dev); | 580 | netif_start_queue(dev); |
581 | printk(KERN_ERR "%s: Error %d transmitting packet\n", | 581 | if (net_ratelimit()) |
582 | dev->name, err); | 582 | printk(KERN_ERR "%s: Error %d transmitting packet\n", |
583 | dev->name, err); | ||
583 | stats->tx_errors++; | 584 | stats->tx_errors++; |
584 | goto fail; | 585 | goto fail; |
585 | } | 586 | } |
diff --git a/drivers/pci/.gitignore b/drivers/pci/.gitignore new file mode 100644 index 000000000000..f297ca8d313e --- /dev/null +++ b/drivers/pci/.gitignore | |||
@@ -0,0 +1,4 @@ | |||
1 | classlist.h | ||
2 | devlist.h | ||
3 | gen-devlist | ||
4 | |||
diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c index ad5342165079..52b348c36d56 100644 --- a/drivers/scsi/scsi_error.c +++ b/drivers/scsi/scsi_error.c | |||
@@ -1645,6 +1645,8 @@ int scsi_error_handler(void *data) | |||
1645 | set_current_state(TASK_INTERRUPTIBLE); | 1645 | set_current_state(TASK_INTERRUPTIBLE); |
1646 | } | 1646 | } |
1647 | 1647 | ||
1648 | __set_current_state(TASK_RUNNING); | ||
1649 | |||
1648 | SCSI_LOG_ERROR_RECOVERY(1, printk("Error handler scsi_eh_%d" | 1650 | SCSI_LOG_ERROR_RECOVERY(1, printk("Error handler scsi_eh_%d" |
1649 | " exiting\n",shost->host_no)); | 1651 | " exiting\n",shost->host_no)); |
1650 | 1652 | ||
diff --git a/drivers/serial/8250_pnp.c b/drivers/serial/8250_pnp.c index c2786fc41cc5..5d8660a42b77 100644 --- a/drivers/serial/8250_pnp.c +++ b/drivers/serial/8250_pnp.c | |||
@@ -276,6 +276,8 @@ static const struct pnp_device_id pnp_dev_table[] = { | |||
276 | { "SUP1620", 0 }, | 276 | { "SUP1620", 0 }, |
277 | /* SupraExpress 33.6 Data/Fax PnP modem */ | 277 | /* SupraExpress 33.6 Data/Fax PnP modem */ |
278 | { "SUP1760", 0 }, | 278 | { "SUP1760", 0 }, |
279 | /* SupraExpress 56i Sp Intl */ | ||
280 | { "SUP2171", 0 }, | ||
279 | /* Phoebe Micro */ | 281 | /* Phoebe Micro */ |
280 | /* Phoebe Micro 33.6 Data Fax 1433VQH Plug & Play */ | 282 | /* Phoebe Micro 33.6 Data Fax 1433VQH Plug & Play */ |
281 | { "TEX0011", 0 }, | 283 | { "TEX0011", 0 }, |
diff --git a/drivers/video/logo/.gitignore b/drivers/video/logo/.gitignore new file mode 100644 index 000000000000..e48355f538fa --- /dev/null +++ b/drivers/video/logo/.gitignore | |||
@@ -0,0 +1,7 @@ | |||
1 | # | ||
2 | # Generated files | ||
3 | # | ||
4 | *_mono.c | ||
5 | *_vga16.c | ||
6 | *_clut224.c | ||
7 | *_gray256.c | ||
diff --git a/drivers/video/vesafb.c b/drivers/video/vesafb.c index 1ca80264c7b0..b1243da55fc5 100644 --- a/drivers/video/vesafb.c +++ b/drivers/video/vesafb.c | |||
@@ -96,14 +96,14 @@ static int vesafb_blank(int blank, struct fb_info *info) | |||
96 | int loop = 10000; | 96 | int loop = 10000; |
97 | u8 seq = 0, crtc17 = 0; | 97 | u8 seq = 0, crtc17 = 0; |
98 | 98 | ||
99 | err = 0; | 99 | if (blank == FB_BLANK_POWERDOWN) { |
100 | |||
101 | if (blank) { | ||
102 | seq = 0x20; | 100 | seq = 0x20; |
103 | crtc17 = 0x00; | 101 | crtc17 = 0x00; |
102 | err = 0; | ||
104 | } else { | 103 | } else { |
105 | seq = 0x00; | 104 | seq = 0x00; |
106 | crtc17 = 0x80; | 105 | crtc17 = 0x80; |
106 | err = (blank == FB_BLANK_UNBLANK) ? 0 : -EINVAL; | ||
107 | } | 107 | } |
108 | 108 | ||
109 | vga_wseq(NULL, 0x00, 0x01); | 109 | vga_wseq(NULL, 0x00, 0x01); |
diff --git a/fs/nfs/nfs4_fs.h b/fs/nfs/nfs4_fs.h index 8a3788199052..78a53f5a9f18 100644 --- a/fs/nfs/nfs4_fs.h +++ b/fs/nfs/nfs4_fs.h | |||
@@ -110,9 +110,8 @@ struct nfs_seqid_counter { | |||
110 | }; | 110 | }; |
111 | 111 | ||
112 | struct nfs_seqid { | 112 | struct nfs_seqid { |
113 | struct list_head list; | ||
114 | struct nfs_seqid_counter *sequence; | 113 | struct nfs_seqid_counter *sequence; |
115 | struct rpc_task *task; | 114 | struct list_head list; |
116 | }; | 115 | }; |
117 | 116 | ||
118 | static inline void nfs_confirm_seqid(struct nfs_seqid_counter *seqid, int status) | 117 | static inline void nfs_confirm_seqid(struct nfs_seqid_counter *seqid, int status) |
@@ -127,6 +126,7 @@ static inline void nfs_confirm_seqid(struct nfs_seqid_counter *seqid, int status | |||
127 | * semantics by allowing the server to identify replayed requests. | 126 | * semantics by allowing the server to identify replayed requests. |
128 | */ | 127 | */ |
129 | struct nfs4_state_owner { | 128 | struct nfs4_state_owner { |
129 | spinlock_t so_lock; | ||
130 | struct list_head so_list; /* per-clientid list of state_owners */ | 130 | struct list_head so_list; /* per-clientid list of state_owners */ |
131 | struct nfs4_client *so_client; | 131 | struct nfs4_client *so_client; |
132 | u32 so_id; /* 32-bit identifier, unique */ | 132 | u32 so_id; /* 32-bit identifier, unique */ |
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index ff378126ccd7..9c1da34036aa 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c | |||
@@ -212,6 +212,7 @@ static void update_open_stateid(struct nfs4_state *state, nfs4_stateid *stateid, | |||
212 | 212 | ||
213 | open_flags &= (FMODE_READ|FMODE_WRITE); | 213 | open_flags &= (FMODE_READ|FMODE_WRITE); |
214 | /* Protect against nfs4_find_state() */ | 214 | /* Protect against nfs4_find_state() */ |
215 | spin_lock(&state->owner->so_lock); | ||
215 | spin_lock(&inode->i_lock); | 216 | spin_lock(&inode->i_lock); |
216 | state->state |= open_flags; | 217 | state->state |= open_flags; |
217 | /* NB! List reordering - see the reclaim code for why. */ | 218 | /* NB! List reordering - see the reclaim code for why. */ |
@@ -221,6 +222,7 @@ static void update_open_stateid(struct nfs4_state *state, nfs4_stateid *stateid, | |||
221 | state->nreaders++; | 222 | state->nreaders++; |
222 | memcpy(&state->stateid, stateid, sizeof(state->stateid)); | 223 | memcpy(&state->stateid, stateid, sizeof(state->stateid)); |
223 | spin_unlock(&inode->i_lock); | 224 | spin_unlock(&inode->i_lock); |
225 | spin_unlock(&state->owner->so_lock); | ||
224 | } | 226 | } |
225 | 227 | ||
226 | /* | 228 | /* |
@@ -2357,7 +2359,7 @@ static inline ssize_t nfs4_get_acl_uncached(struct inode *inode, void *buf, size | |||
2357 | return -ENOMEM; | 2359 | return -ENOMEM; |
2358 | args.acl_pages[0] = localpage; | 2360 | args.acl_pages[0] = localpage; |
2359 | args.acl_pgbase = 0; | 2361 | args.acl_pgbase = 0; |
2360 | args.acl_len = PAGE_SIZE; | 2362 | resp_len = args.acl_len = PAGE_SIZE; |
2361 | } else { | 2363 | } else { |
2362 | resp_buf = buf; | 2364 | resp_buf = buf; |
2363 | buf_to_pages(buf, buflen, args.acl_pages, &args.acl_pgbase); | 2365 | buf_to_pages(buf, buflen, args.acl_pages, &args.acl_pgbase); |
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c index 23834c8fb740..2d5a6a2b9dec 100644 --- a/fs/nfs/nfs4state.c +++ b/fs/nfs/nfs4state.c | |||
@@ -267,6 +267,7 @@ nfs4_alloc_state_owner(void) | |||
267 | sp = kzalloc(sizeof(*sp),GFP_KERNEL); | 267 | sp = kzalloc(sizeof(*sp),GFP_KERNEL); |
268 | if (!sp) | 268 | if (!sp) |
269 | return NULL; | 269 | return NULL; |
270 | spin_lock_init(&sp->so_lock); | ||
270 | INIT_LIST_HEAD(&sp->so_states); | 271 | INIT_LIST_HEAD(&sp->so_states); |
271 | INIT_LIST_HEAD(&sp->so_delegations); | 272 | INIT_LIST_HEAD(&sp->so_delegations); |
272 | rpc_init_wait_queue(&sp->so_sequence.wait, "Seqid_waitqueue"); | 273 | rpc_init_wait_queue(&sp->so_sequence.wait, "Seqid_waitqueue"); |
@@ -438,20 +439,23 @@ nfs4_get_open_state(struct inode *inode, struct nfs4_state_owner *owner) | |||
438 | if (state) | 439 | if (state) |
439 | goto out; | 440 | goto out; |
440 | new = nfs4_alloc_open_state(); | 441 | new = nfs4_alloc_open_state(); |
442 | spin_lock(&owner->so_lock); | ||
441 | spin_lock(&inode->i_lock); | 443 | spin_lock(&inode->i_lock); |
442 | state = __nfs4_find_state_byowner(inode, owner); | 444 | state = __nfs4_find_state_byowner(inode, owner); |
443 | if (state == NULL && new != NULL) { | 445 | if (state == NULL && new != NULL) { |
444 | state = new; | 446 | state = new; |
445 | /* Note: The reclaim code dictates that we add stateless | ||
446 | * and read-only stateids to the end of the list */ | ||
447 | list_add_tail(&state->open_states, &owner->so_states); | ||
448 | state->owner = owner; | 447 | state->owner = owner; |
449 | atomic_inc(&owner->so_count); | 448 | atomic_inc(&owner->so_count); |
450 | list_add(&state->inode_states, &nfsi->open_states); | 449 | list_add(&state->inode_states, &nfsi->open_states); |
451 | state->inode = igrab(inode); | 450 | state->inode = igrab(inode); |
452 | spin_unlock(&inode->i_lock); | 451 | spin_unlock(&inode->i_lock); |
452 | /* Note: The reclaim code dictates that we add stateless | ||
453 | * and read-only stateids to the end of the list */ | ||
454 | list_add_tail(&state->open_states, &owner->so_states); | ||
455 | spin_unlock(&owner->so_lock); | ||
453 | } else { | 456 | } else { |
454 | spin_unlock(&inode->i_lock); | 457 | spin_unlock(&inode->i_lock); |
458 | spin_unlock(&owner->so_lock); | ||
455 | if (new) | 459 | if (new) |
456 | nfs4_free_open_state(new); | 460 | nfs4_free_open_state(new); |
457 | } | 461 | } |
@@ -468,12 +472,14 @@ void nfs4_put_open_state(struct nfs4_state *state) | |||
468 | struct inode *inode = state->inode; | 472 | struct inode *inode = state->inode; |
469 | struct nfs4_state_owner *owner = state->owner; | 473 | struct nfs4_state_owner *owner = state->owner; |
470 | 474 | ||
471 | if (!atomic_dec_and_lock(&state->count, &inode->i_lock)) | 475 | if (!atomic_dec_and_lock(&state->count, &owner->so_lock)) |
472 | return; | 476 | return; |
477 | spin_lock(&inode->i_lock); | ||
473 | if (!list_empty(&state->inode_states)) | 478 | if (!list_empty(&state->inode_states)) |
474 | list_del(&state->inode_states); | 479 | list_del(&state->inode_states); |
475 | spin_unlock(&inode->i_lock); | ||
476 | list_del(&state->open_states); | 480 | list_del(&state->open_states); |
481 | spin_unlock(&inode->i_lock); | ||
482 | spin_unlock(&owner->so_lock); | ||
477 | iput(inode); | 483 | iput(inode); |
478 | BUG_ON (state->state != 0); | 484 | BUG_ON (state->state != 0); |
479 | nfs4_free_open_state(state); | 485 | nfs4_free_open_state(state); |
@@ -491,6 +497,7 @@ void nfs4_close_state(struct nfs4_state *state, mode_t mode) | |||
491 | 497 | ||
492 | atomic_inc(&owner->so_count); | 498 | atomic_inc(&owner->so_count); |
493 | /* Protect against nfs4_find_state() */ | 499 | /* Protect against nfs4_find_state() */ |
500 | spin_lock(&owner->so_lock); | ||
494 | spin_lock(&inode->i_lock); | 501 | spin_lock(&inode->i_lock); |
495 | if (mode & FMODE_READ) | 502 | if (mode & FMODE_READ) |
496 | state->nreaders--; | 503 | state->nreaders--; |
@@ -503,6 +510,7 @@ void nfs4_close_state(struct nfs4_state *state, mode_t mode) | |||
503 | list_move_tail(&state->open_states, &owner->so_states); | 510 | list_move_tail(&state->open_states, &owner->so_states); |
504 | } | 511 | } |
505 | spin_unlock(&inode->i_lock); | 512 | spin_unlock(&inode->i_lock); |
513 | spin_unlock(&owner->so_lock); | ||
506 | newstate = 0; | 514 | newstate = 0; |
507 | if (state->state != 0) { | 515 | if (state->state != 0) { |
508 | if (state->nreaders) | 516 | if (state->nreaders) |
@@ -670,16 +678,12 @@ void nfs4_copy_stateid(nfs4_stateid *dst, struct nfs4_state *state, fl_owner_t f | |||
670 | 678 | ||
671 | struct nfs_seqid *nfs_alloc_seqid(struct nfs_seqid_counter *counter) | 679 | struct nfs_seqid *nfs_alloc_seqid(struct nfs_seqid_counter *counter) |
672 | { | 680 | { |
673 | struct rpc_sequence *sequence = counter->sequence; | ||
674 | struct nfs_seqid *new; | 681 | struct nfs_seqid *new; |
675 | 682 | ||
676 | new = kmalloc(sizeof(*new), GFP_KERNEL); | 683 | new = kmalloc(sizeof(*new), GFP_KERNEL); |
677 | if (new != NULL) { | 684 | if (new != NULL) { |
678 | new->sequence = counter; | 685 | new->sequence = counter; |
679 | new->task = NULL; | 686 | INIT_LIST_HEAD(&new->list); |
680 | spin_lock(&sequence->lock); | ||
681 | list_add_tail(&new->list, &sequence->list); | ||
682 | spin_unlock(&sequence->lock); | ||
683 | } | 687 | } |
684 | return new; | 688 | return new; |
685 | } | 689 | } |
@@ -687,16 +691,13 @@ struct nfs_seqid *nfs_alloc_seqid(struct nfs_seqid_counter *counter) | |||
687 | void nfs_free_seqid(struct nfs_seqid *seqid) | 691 | void nfs_free_seqid(struct nfs_seqid *seqid) |
688 | { | 692 | { |
689 | struct rpc_sequence *sequence = seqid->sequence->sequence; | 693 | struct rpc_sequence *sequence = seqid->sequence->sequence; |
690 | struct rpc_task *next = NULL; | ||
691 | 694 | ||
692 | spin_lock(&sequence->lock); | 695 | if (!list_empty(&seqid->list)) { |
693 | list_del(&seqid->list); | 696 | spin_lock(&sequence->lock); |
694 | if (!list_empty(&sequence->list)) { | 697 | list_del(&seqid->list); |
695 | next = list_entry(sequence->list.next, struct nfs_seqid, list)->task; | 698 | spin_unlock(&sequence->lock); |
696 | if (next) | ||
697 | rpc_wake_up_task(next); | ||
698 | } | 699 | } |
699 | spin_unlock(&sequence->lock); | 700 | rpc_wake_up_next(&sequence->wait); |
700 | kfree(seqid); | 701 | kfree(seqid); |
701 | } | 702 | } |
702 | 703 | ||
@@ -752,13 +753,16 @@ int nfs_wait_on_sequence(struct nfs_seqid *seqid, struct rpc_task *task) | |||
752 | struct rpc_sequence *sequence = seqid->sequence->sequence; | 753 | struct rpc_sequence *sequence = seqid->sequence->sequence; |
753 | int status = 0; | 754 | int status = 0; |
754 | 755 | ||
756 | if (sequence->list.next == &seqid->list) | ||
757 | goto out; | ||
755 | spin_lock(&sequence->lock); | 758 | spin_lock(&sequence->lock); |
756 | if (sequence->list.next != &seqid->list) { | 759 | if (!list_empty(&sequence->list)) { |
757 | seqid->task = task; | ||
758 | rpc_sleep_on(&sequence->wait, task, NULL, NULL); | 760 | rpc_sleep_on(&sequence->wait, task, NULL, NULL); |
759 | status = -EAGAIN; | 761 | status = -EAGAIN; |
760 | } | 762 | } else |
763 | list_add(&seqid->list, &sequence->list); | ||
761 | spin_unlock(&sequence->lock); | 764 | spin_unlock(&sequence->lock); |
765 | out: | ||
762 | return status; | 766 | return status; |
763 | } | 767 | } |
764 | 768 | ||
@@ -903,6 +907,7 @@ static void nfs4_state_mark_reclaim(struct nfs4_client *clp) | |||
903 | list_for_each_entry(sp, &clp->cl_state_owners, so_list) { | 907 | list_for_each_entry(sp, &clp->cl_state_owners, so_list) { |
904 | sp->so_seqid.counter = 0; | 908 | sp->so_seqid.counter = 0; |
905 | sp->so_seqid.flags = 0; | 909 | sp->so_seqid.flags = 0; |
910 | spin_lock(&sp->so_lock); | ||
906 | list_for_each_entry(state, &sp->so_states, open_states) { | 911 | list_for_each_entry(state, &sp->so_states, open_states) { |
907 | list_for_each_entry(lock, &state->lock_states, ls_locks) { | 912 | list_for_each_entry(lock, &state->lock_states, ls_locks) { |
908 | lock->ls_seqid.counter = 0; | 913 | lock->ls_seqid.counter = 0; |
@@ -910,6 +915,7 @@ static void nfs4_state_mark_reclaim(struct nfs4_client *clp) | |||
910 | lock->ls_flags &= ~NFS_LOCK_INITIALIZED; | 915 | lock->ls_flags &= ~NFS_LOCK_INITIALIZED; |
911 | } | 916 | } |
912 | } | 917 | } |
918 | spin_unlock(&sp->so_lock); | ||
913 | } | 919 | } |
914 | } | 920 | } |
915 | 921 | ||
diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c index c5c75235c5b8..cd762648fa9a 100644 --- a/fs/nfs/nfs4xdr.c +++ b/fs/nfs/nfs4xdr.c | |||
@@ -3255,7 +3255,8 @@ static int decode_getacl(struct xdr_stream *xdr, struct rpc_rqst *req, | |||
3255 | if (attrlen <= *acl_len) | 3255 | if (attrlen <= *acl_len) |
3256 | xdr_read_pages(xdr, attrlen); | 3256 | xdr_read_pages(xdr, attrlen); |
3257 | *acl_len = attrlen; | 3257 | *acl_len = attrlen; |
3258 | } | 3258 | } else |
3259 | status = -EOPNOTSUPP; | ||
3259 | 3260 | ||
3260 | out: | 3261 | out: |
3261 | return status; | 3262 | return status; |
diff --git a/include/asm-arm/arch-ixp4xx/entry-macro.S b/include/asm-arm/arch-ixp4xx/entry-macro.S index 455da64832de..323b0bc4a39c 100644 --- a/include/asm-arm/arch-ixp4xx/entry-macro.S +++ b/include/asm-arm/arch-ixp4xx/entry-macro.S | |||
@@ -15,25 +15,26 @@ | |||
15 | ldr \irqstat, =(IXP4XX_INTC_BASE_VIRT+IXP4XX_ICIP_OFFSET) | 15 | ldr \irqstat, =(IXP4XX_INTC_BASE_VIRT+IXP4XX_ICIP_OFFSET) |
16 | ldr \irqstat, [\irqstat] @ get interrupts | 16 | ldr \irqstat, [\irqstat] @ get interrupts |
17 | cmp \irqstat, #0 | 17 | cmp \irqstat, #0 |
18 | beq 1001f | 18 | beq 1001f @ upper IRQ? |
19 | clz \irqnr, \irqstat | 19 | clz \irqnr, \irqstat |
20 | mov \base, #31 | 20 | mov \base, #31 |
21 | subs \irqnr, \base, \irqnr | 21 | sub \irqnr, \base, \irqnr |
22 | b 1002f @ lower IRQ being | ||
23 | @ handled | ||
22 | 24 | ||
23 | 1001: | 25 | 1001: |
24 | /* | 26 | /* |
25 | * IXP465 has an upper IRQ status register | 27 | * IXP465 has an upper IRQ status register |
26 | */ | 28 | */ |
27 | #if defined(CONFIG_CPU_IXP46X) | 29 | #if defined(CONFIG_CPU_IXP46X) |
28 | bne 1002f | ||
29 | ldr \irqstat, =(IXP4XX_INTC_BASE_VIRT+IXP4XX_ICIP2_OFFSET) | 30 | ldr \irqstat, =(IXP4XX_INTC_BASE_VIRT+IXP4XX_ICIP2_OFFSET) |
30 | ldr \irqstat, [\irqstat] @ get upper interrupts | 31 | ldr \irqstat, [\irqstat] @ get upper interrupts |
31 | mov \irqnr, #63 | 32 | mov \irqnr, #63 |
32 | clz \irqstat, \irqstat | 33 | clz \irqstat, \irqstat |
33 | cmp \irqstat, #32 | 34 | cmp \irqstat, #32 |
34 | subne \irqnr, \irqnr, \irqstat | 35 | subne \irqnr, \irqnr, \irqstat |
35 | 1002: | ||
36 | #endif | 36 | #endif |
37 | 1002: | ||
37 | .endm | 38 | .endm |
38 | 39 | ||
39 | 40 | ||
diff --git a/include/asm-arm/arch-ixp4xx/hardware.h b/include/asm-arm/arch-ixp4xx/hardware.h index 4ac964b9078a..55d85eea8c1a 100644 --- a/include/asm-arm/arch-ixp4xx/hardware.h +++ b/include/asm-arm/arch-ixp4xx/hardware.h | |||
@@ -27,7 +27,7 @@ | |||
27 | 27 | ||
28 | #define pcibios_assign_all_busses() 1 | 28 | #define pcibios_assign_all_busses() 1 |
29 | 29 | ||
30 | #if defined(CONFIG_CPU_IXP465) && !defined(__ASSEMBLY__) | 30 | #if defined(CONFIG_CPU_IXP46X) && !defined(__ASSEMBLY__) |
31 | extern unsigned int processor_id; | 31 | extern unsigned int processor_id; |
32 | #define cpu_is_ixp465() ((processor_id & 0xffffffc0) == 0x69054200) | 32 | #define cpu_is_ixp465() ((processor_id & 0xffffffc0) == 0x69054200) |
33 | #else | 33 | #else |
diff --git a/include/asm-arm/arch-pxa/pxa-regs.h b/include/asm-arm/arch-pxa/pxa-regs.h index 13fa2deb4ddd..3af7165ab0d7 100644 --- a/include/asm-arm/arch-pxa/pxa-regs.h +++ b/include/asm-arm/arch-pxa/pxa-regs.h | |||
@@ -653,7 +653,7 @@ | |||
653 | 653 | ||
654 | #define UDCCS_IO_RFS (1 << 0) /* Receive FIFO service */ | 654 | #define UDCCS_IO_RFS (1 << 0) /* Receive FIFO service */ |
655 | #define UDCCS_IO_RPC (1 << 1) /* Receive packet complete */ | 655 | #define UDCCS_IO_RPC (1 << 1) /* Receive packet complete */ |
656 | #define UDCCS_IO_ROF (1 << 3) /* Receive overflow */ | 656 | #define UDCCS_IO_ROF (1 << 2) /* Receive overflow */ |
657 | #define UDCCS_IO_DME (1 << 3) /* DMA enable */ | 657 | #define UDCCS_IO_DME (1 << 3) /* DMA enable */ |
658 | #define UDCCS_IO_RNE (1 << 6) /* Receive FIFO not empty */ | 658 | #define UDCCS_IO_RNE (1 << 6) /* Receive FIFO not empty */ |
659 | #define UDCCS_IO_RSP (1 << 7) /* Receive short packet */ | 659 | #define UDCCS_IO_RSP (1 << 7) /* Receive short packet */ |
diff --git a/include/asm-arm/locks.h b/include/asm-arm/locks.h index f08dc8447913..852220eecdbc 100644 --- a/include/asm-arm/locks.h +++ b/include/asm-arm/locks.h | |||
@@ -103,7 +103,7 @@ | |||
103 | ({ \ | 103 | ({ \ |
104 | smp_mb(); \ | 104 | smp_mb(); \ |
105 | __asm__ __volatile__( \ | 105 | __asm__ __volatile__( \ |
106 | "@ up_op_read\n" \ | 106 | "@ up_op_write\n" \ |
107 | "1: ldrex lr, [%0]\n" \ | 107 | "1: ldrex lr, [%0]\n" \ |
108 | " adds lr, lr, %1\n" \ | 108 | " adds lr, lr, %1\n" \ |
109 | " strex ip, lr, [%0]\n" \ | 109 | " strex ip, lr, [%0]\n" \ |
@@ -231,7 +231,7 @@ | |||
231 | #define __up_op_write(ptr,wake) \ | 231 | #define __up_op_write(ptr,wake) \ |
232 | ({ \ | 232 | ({ \ |
233 | __asm__ __volatile__( \ | 233 | __asm__ __volatile__( \ |
234 | "@ up_op_read\n" \ | 234 | "@ up_op_write\n" \ |
235 | " mrs ip, cpsr\n" \ | 235 | " mrs ip, cpsr\n" \ |
236 | " orr lr, ip, #128\n" \ | 236 | " orr lr, ip, #128\n" \ |
237 | " msr cpsr_c, lr\n" \ | 237 | " msr cpsr_c, lr\n" \ |
diff --git a/include/linux/bootmem.h b/include/linux/bootmem.h index 82bd8842d11c..3b03b0b868dd 100644 --- a/include/linux/bootmem.h +++ b/include/linux/bootmem.h | |||
@@ -43,7 +43,7 @@ typedef struct bootmem_data { | |||
43 | extern unsigned long __init bootmem_bootmap_pages (unsigned long); | 43 | extern unsigned long __init bootmem_bootmap_pages (unsigned long); |
44 | extern unsigned long __init init_bootmem (unsigned long addr, unsigned long memend); | 44 | extern unsigned long __init init_bootmem (unsigned long addr, unsigned long memend); |
45 | extern void __init free_bootmem (unsigned long addr, unsigned long size); | 45 | extern void __init free_bootmem (unsigned long addr, unsigned long size); |
46 | extern void * __init __alloc_bootmem (unsigned long size, unsigned long align, unsigned long goal); | 46 | extern void * __init __alloc_bootmem_limit (unsigned long size, unsigned long align, unsigned long goal, unsigned long limit); |
47 | #ifndef CONFIG_HAVE_ARCH_BOOTMEM_NODE | 47 | #ifndef CONFIG_HAVE_ARCH_BOOTMEM_NODE |
48 | extern void __init reserve_bootmem (unsigned long addr, unsigned long size); | 48 | extern void __init reserve_bootmem (unsigned long addr, unsigned long size); |
49 | #define alloc_bootmem(x) \ | 49 | #define alloc_bootmem(x) \ |
@@ -54,6 +54,16 @@ extern void __init reserve_bootmem (unsigned long addr, unsigned long size); | |||
54 | __alloc_bootmem((x), PAGE_SIZE, __pa(MAX_DMA_ADDRESS)) | 54 | __alloc_bootmem((x), PAGE_SIZE, __pa(MAX_DMA_ADDRESS)) |
55 | #define alloc_bootmem_low_pages(x) \ | 55 | #define alloc_bootmem_low_pages(x) \ |
56 | __alloc_bootmem((x), PAGE_SIZE, 0) | 56 | __alloc_bootmem((x), PAGE_SIZE, 0) |
57 | |||
58 | #define alloc_bootmem_limit(x, limit) \ | ||
59 | __alloc_bootmem_limit((x), SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS), (limit)) | ||
60 | #define alloc_bootmem_low_limit(x, limit) \ | ||
61 | __alloc_bootmem_limit((x), SMP_CACHE_BYTES, 0, (limit)) | ||
62 | #define alloc_bootmem_pages_limit(x, limit) \ | ||
63 | __alloc_bootmem_limit((x), PAGE_SIZE, __pa(MAX_DMA_ADDRESS), (limit)) | ||
64 | #define alloc_bootmem_low_pages_limit(x, limit) \ | ||
65 | __alloc_bootmem_limit((x), PAGE_SIZE, 0, (limit)) | ||
66 | |||
57 | #endif /* !CONFIG_HAVE_ARCH_BOOTMEM_NODE */ | 67 | #endif /* !CONFIG_HAVE_ARCH_BOOTMEM_NODE */ |
58 | extern unsigned long __init free_all_bootmem (void); | 68 | extern unsigned long __init free_all_bootmem (void); |
59 | 69 | ||
@@ -61,7 +71,7 @@ extern unsigned long __init init_bootmem_node (pg_data_t *pgdat, unsigned long f | |||
61 | extern void __init reserve_bootmem_node (pg_data_t *pgdat, unsigned long physaddr, unsigned long size); | 71 | extern void __init reserve_bootmem_node (pg_data_t *pgdat, unsigned long physaddr, unsigned long size); |
62 | extern void __init free_bootmem_node (pg_data_t *pgdat, unsigned long addr, unsigned long size); | 72 | extern void __init free_bootmem_node (pg_data_t *pgdat, unsigned long addr, unsigned long size); |
63 | extern unsigned long __init free_all_bootmem_node (pg_data_t *pgdat); | 73 | extern unsigned long __init free_all_bootmem_node (pg_data_t *pgdat); |
64 | extern void * __init __alloc_bootmem_node (pg_data_t *pgdat, unsigned long size, unsigned long align, unsigned long goal); | 74 | extern void * __init __alloc_bootmem_node_limit (pg_data_t *pgdat, unsigned long size, unsigned long align, unsigned long goal, unsigned long limit); |
65 | #ifndef CONFIG_HAVE_ARCH_BOOTMEM_NODE | 75 | #ifndef CONFIG_HAVE_ARCH_BOOTMEM_NODE |
66 | #define alloc_bootmem_node(pgdat, x) \ | 76 | #define alloc_bootmem_node(pgdat, x) \ |
67 | __alloc_bootmem_node((pgdat), (x), SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS)) | 77 | __alloc_bootmem_node((pgdat), (x), SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS)) |
@@ -69,6 +79,14 @@ extern void * __init __alloc_bootmem_node (pg_data_t *pgdat, unsigned long size, | |||
69 | __alloc_bootmem_node((pgdat), (x), PAGE_SIZE, __pa(MAX_DMA_ADDRESS)) | 79 | __alloc_bootmem_node((pgdat), (x), PAGE_SIZE, __pa(MAX_DMA_ADDRESS)) |
70 | #define alloc_bootmem_low_pages_node(pgdat, x) \ | 80 | #define alloc_bootmem_low_pages_node(pgdat, x) \ |
71 | __alloc_bootmem_node((pgdat), (x), PAGE_SIZE, 0) | 81 | __alloc_bootmem_node((pgdat), (x), PAGE_SIZE, 0) |
82 | |||
83 | #define alloc_bootmem_node_limit(pgdat, x, limit) \ | ||
84 | __alloc_bootmem_node_limit((pgdat), (x), SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS), (limit)) | ||
85 | #define alloc_bootmem_pages_node_limit(pgdat, x, limit) \ | ||
86 | __alloc_bootmem_node_limit((pgdat), (x), PAGE_SIZE, __pa(MAX_DMA_ADDRESS), (limit)) | ||
87 | #define alloc_bootmem_low_pages_node_limit(pgdat, x, limit) \ | ||
88 | __alloc_bootmem_node_limit((pgdat), (x), PAGE_SIZE, 0, (limit)) | ||
89 | |||
72 | #endif /* !CONFIG_HAVE_ARCH_BOOTMEM_NODE */ | 90 | #endif /* !CONFIG_HAVE_ARCH_BOOTMEM_NODE */ |
73 | 91 | ||
74 | #ifdef CONFIG_HAVE_ARCH_ALLOC_REMAP | 92 | #ifdef CONFIG_HAVE_ARCH_ALLOC_REMAP |
@@ -105,5 +123,15 @@ extern void *__init alloc_large_system_hash(const char *tablename, | |||
105 | #endif | 123 | #endif |
106 | extern int __initdata hashdist; /* Distribute hashes across NUMA nodes? */ | 124 | extern int __initdata hashdist; /* Distribute hashes across NUMA nodes? */ |
107 | 125 | ||
126 | static inline void *__alloc_bootmem (unsigned long size, unsigned long align, unsigned long goal) | ||
127 | { | ||
128 | return __alloc_bootmem_limit(size, align, goal, 0); | ||
129 | } | ||
130 | |||
131 | static inline void *__alloc_bootmem_node (pg_data_t *pgdat, unsigned long size, unsigned long align, | ||
132 | unsigned long goal) | ||
133 | { | ||
134 | return __alloc_bootmem_node_limit(pgdat, size, align, goal, 0); | ||
135 | } | ||
108 | 136 | ||
109 | #endif /* _LINUX_BOOTMEM_H */ | 137 | #endif /* _LINUX_BOOTMEM_H */ |
diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h index e670b0d13fe0..42cb7d70f9ac 100644 --- a/include/linux/hugetlb.h +++ b/include/linux/hugetlb.h | |||
@@ -155,11 +155,24 @@ static inline void set_file_hugepages(struct file *file) | |||
155 | { | 155 | { |
156 | file->f_op = &hugetlbfs_file_operations; | 156 | file->f_op = &hugetlbfs_file_operations; |
157 | } | 157 | } |
158 | |||
159 | static inline int valid_hugetlb_file_off(struct vm_area_struct *vma, | ||
160 | unsigned long address) | ||
161 | { | ||
162 | struct inode *inode = vma->vm_file->f_dentry->d_inode; | ||
163 | loff_t file_off = address - vma->vm_start; | ||
164 | |||
165 | file_off += (vma->vm_pgoff << PAGE_SHIFT); | ||
166 | |||
167 | return (file_off < inode->i_size); | ||
168 | } | ||
169 | |||
158 | #else /* !CONFIG_HUGETLBFS */ | 170 | #else /* !CONFIG_HUGETLBFS */ |
159 | 171 | ||
160 | #define is_file_hugepages(file) 0 | 172 | #define is_file_hugepages(file) 0 |
161 | #define set_file_hugepages(file) BUG() | 173 | #define set_file_hugepages(file) BUG() |
162 | #define hugetlb_zero_setup(size) ERR_PTR(-ENOSYS) | 174 | #define hugetlb_zero_setup(size) ERR_PTR(-ENOSYS) |
175 | #define valid_hugetlb_file_off(vma, address) 0 | ||
163 | 176 | ||
164 | #endif /* !CONFIG_HUGETLBFS */ | 177 | #endif /* !CONFIG_HUGETLBFS */ |
165 | 178 | ||
diff --git a/include/linux/sunrpc/auth.h b/include/linux/sunrpc/auth.h index 04ebc24db348..b68c11a2d6dd 100644 --- a/include/linux/sunrpc/auth.h +++ b/include/linux/sunrpc/auth.h | |||
@@ -66,7 +66,12 @@ struct rpc_cred_cache { | |||
66 | 66 | ||
67 | struct rpc_auth { | 67 | struct rpc_auth { |
68 | unsigned int au_cslack; /* call cred size estimate */ | 68 | unsigned int au_cslack; /* call cred size estimate */ |
69 | unsigned int au_rslack; /* reply verf size guess */ | 69 | /* guess at number of u32's auth adds before |
70 | * reply data; normally the verifier size: */ | ||
71 | unsigned int au_rslack; | ||
72 | /* for gss, used to calculate au_rslack: */ | ||
73 | unsigned int au_verfsize; | ||
74 | |||
70 | unsigned int au_flags; /* various flags */ | 75 | unsigned int au_flags; /* various flags */ |
71 | struct rpc_authops * au_ops; /* operations */ | 76 | struct rpc_authops * au_ops; /* operations */ |
72 | rpc_authflavor_t au_flavor; /* pseudoflavor (note may | 77 | rpc_authflavor_t au_flavor; /* pseudoflavor (note may |
diff --git a/include/linux/sunrpc/gss_api.h b/include/linux/sunrpc/gss_api.h index 689262f63059..9b8bcf125c18 100644 --- a/include/linux/sunrpc/gss_api.h +++ b/include/linux/sunrpc/gss_api.h | |||
@@ -40,14 +40,21 @@ int gss_import_sec_context( | |||
40 | struct gss_ctx **ctx_id); | 40 | struct gss_ctx **ctx_id); |
41 | u32 gss_get_mic( | 41 | u32 gss_get_mic( |
42 | struct gss_ctx *ctx_id, | 42 | struct gss_ctx *ctx_id, |
43 | u32 qop, | ||
44 | struct xdr_buf *message, | 43 | struct xdr_buf *message, |
45 | struct xdr_netobj *mic_token); | 44 | struct xdr_netobj *mic_token); |
46 | u32 gss_verify_mic( | 45 | u32 gss_verify_mic( |
47 | struct gss_ctx *ctx_id, | 46 | struct gss_ctx *ctx_id, |
48 | struct xdr_buf *message, | 47 | struct xdr_buf *message, |
49 | struct xdr_netobj *mic_token, | 48 | struct xdr_netobj *mic_token); |
50 | u32 *qstate); | 49 | u32 gss_wrap( |
50 | struct gss_ctx *ctx_id, | ||
51 | int offset, | ||
52 | struct xdr_buf *outbuf, | ||
53 | struct page **inpages); | ||
54 | u32 gss_unwrap( | ||
55 | struct gss_ctx *ctx_id, | ||
56 | int offset, | ||
57 | struct xdr_buf *inbuf); | ||
51 | u32 gss_delete_sec_context( | 58 | u32 gss_delete_sec_context( |
52 | struct gss_ctx **ctx_id); | 59 | struct gss_ctx **ctx_id); |
53 | 60 | ||
@@ -56,7 +63,6 @@ char *gss_service_to_auth_domain_name(struct gss_api_mech *, u32 service); | |||
56 | 63 | ||
57 | struct pf_desc { | 64 | struct pf_desc { |
58 | u32 pseudoflavor; | 65 | u32 pseudoflavor; |
59 | u32 qop; | ||
60 | u32 service; | 66 | u32 service; |
61 | char *name; | 67 | char *name; |
62 | char *auth_domain_name; | 68 | char *auth_domain_name; |
@@ -85,14 +91,21 @@ struct gss_api_ops { | |||
85 | struct gss_ctx *ctx_id); | 91 | struct gss_ctx *ctx_id); |
86 | u32 (*gss_get_mic)( | 92 | u32 (*gss_get_mic)( |
87 | struct gss_ctx *ctx_id, | 93 | struct gss_ctx *ctx_id, |
88 | u32 qop, | ||
89 | struct xdr_buf *message, | 94 | struct xdr_buf *message, |
90 | struct xdr_netobj *mic_token); | 95 | struct xdr_netobj *mic_token); |
91 | u32 (*gss_verify_mic)( | 96 | u32 (*gss_verify_mic)( |
92 | struct gss_ctx *ctx_id, | 97 | struct gss_ctx *ctx_id, |
93 | struct xdr_buf *message, | 98 | struct xdr_buf *message, |
94 | struct xdr_netobj *mic_token, | 99 | struct xdr_netobj *mic_token); |
95 | u32 *qstate); | 100 | u32 (*gss_wrap)( |
101 | struct gss_ctx *ctx_id, | ||
102 | int offset, | ||
103 | struct xdr_buf *outbuf, | ||
104 | struct page **inpages); | ||
105 | u32 (*gss_unwrap)( | ||
106 | struct gss_ctx *ctx_id, | ||
107 | int offset, | ||
108 | struct xdr_buf *buf); | ||
96 | void (*gss_delete_sec_context)( | 109 | void (*gss_delete_sec_context)( |
97 | void *internal_ctx_id); | 110 | void *internal_ctx_id); |
98 | }; | 111 | }; |
diff --git a/include/linux/sunrpc/gss_err.h b/include/linux/sunrpc/gss_err.h index 92608a2e574c..a6807867bd21 100644 --- a/include/linux/sunrpc/gss_err.h +++ b/include/linux/sunrpc/gss_err.h | |||
@@ -66,16 +66,6 @@ typedef unsigned int OM_uint32; | |||
66 | 66 | ||
67 | 67 | ||
68 | /* | 68 | /* |
69 | * Define the default Quality of Protection for per-message services. Note | ||
70 | * that an implementation that offers multiple levels of QOP may either reserve | ||
71 | * a value (for example zero, as assumed here) to mean "default protection", or | ||
72 | * alternatively may simply equate GSS_C_QOP_DEFAULT to a specific explicit | ||
73 | * QOP value. However a value of 0 should always be interpreted by a GSSAPI | ||
74 | * implementation as a request for the default protection level. | ||
75 | */ | ||
76 | #define GSS_C_QOP_DEFAULT 0 | ||
77 | |||
78 | /* | ||
79 | * Expiration time of 2^32-1 seconds means infinite lifetime for a | 69 | * Expiration time of 2^32-1 seconds means infinite lifetime for a |
80 | * credential or security context | 70 | * credential or security context |
81 | */ | 71 | */ |
diff --git a/include/linux/sunrpc/gss_krb5.h b/include/linux/sunrpc/gss_krb5.h index ffe31d2eb9ec..2c3601d31045 100644 --- a/include/linux/sunrpc/gss_krb5.h +++ b/include/linux/sunrpc/gss_krb5.h | |||
@@ -116,18 +116,22 @@ enum seal_alg { | |||
116 | 116 | ||
117 | s32 | 117 | s32 |
118 | make_checksum(s32 cksumtype, char *header, int hdrlen, struct xdr_buf *body, | 118 | make_checksum(s32 cksumtype, char *header, int hdrlen, struct xdr_buf *body, |
119 | struct xdr_netobj *cksum); | 119 | int body_offset, struct xdr_netobj *cksum); |
120 | |||
121 | u32 gss_get_mic_kerberos(struct gss_ctx *, struct xdr_buf *, | ||
122 | struct xdr_netobj *); | ||
123 | |||
124 | u32 gss_verify_mic_kerberos(struct gss_ctx *, struct xdr_buf *, | ||
125 | struct xdr_netobj *); | ||
120 | 126 | ||
121 | u32 | 127 | u32 |
122 | krb5_make_token(struct krb5_ctx *context_handle, int qop_req, | 128 | gss_wrap_kerberos(struct gss_ctx *ctx_id, int offset, |
123 | struct xdr_buf *input_message_buffer, | 129 | struct xdr_buf *outbuf, struct page **pages); |
124 | struct xdr_netobj *output_message_buffer, int toktype); | ||
125 | 130 | ||
126 | u32 | 131 | u32 |
127 | krb5_read_token(struct krb5_ctx *context_handle, | 132 | gss_unwrap_kerberos(struct gss_ctx *ctx_id, int offset, |
128 | struct xdr_netobj *input_token_buffer, | 133 | struct xdr_buf *buf); |
129 | struct xdr_buf *message_buffer, | 134 | |
130 | int *qop_state, int toktype); | ||
131 | 135 | ||
132 | u32 | 136 | u32 |
133 | krb5_encrypt(struct crypto_tfm * key, | 137 | krb5_encrypt(struct crypto_tfm * key, |
@@ -137,6 +141,13 @@ u32 | |||
137 | krb5_decrypt(struct crypto_tfm * key, | 141 | krb5_decrypt(struct crypto_tfm * key, |
138 | void *iv, void *in, void *out, int length); | 142 | void *iv, void *in, void *out, int length); |
139 | 143 | ||
144 | int | ||
145 | gss_encrypt_xdr_buf(struct crypto_tfm *tfm, struct xdr_buf *outbuf, int offset, | ||
146 | struct page **pages); | ||
147 | |||
148 | int | ||
149 | gss_decrypt_xdr_buf(struct crypto_tfm *tfm, struct xdr_buf *inbuf, int offset); | ||
150 | |||
140 | s32 | 151 | s32 |
141 | krb5_make_seq_num(struct crypto_tfm * key, | 152 | krb5_make_seq_num(struct crypto_tfm * key, |
142 | int direction, | 153 | int direction, |
diff --git a/include/linux/sunrpc/gss_spkm3.h b/include/linux/sunrpc/gss_spkm3.h index b5c9968c3c17..0beb2cf00a84 100644 --- a/include/linux/sunrpc/gss_spkm3.h +++ b/include/linux/sunrpc/gss_spkm3.h | |||
@@ -41,9 +41,9 @@ struct spkm3_ctx { | |||
41 | #define SPKM_WRAP_TOK 5 | 41 | #define SPKM_WRAP_TOK 5 |
42 | #define SPKM_DEL_TOK 6 | 42 | #define SPKM_DEL_TOK 6 |
43 | 43 | ||
44 | u32 spkm3_make_token(struct spkm3_ctx *ctx, int qop_req, struct xdr_buf * text, struct xdr_netobj * token, int toktype); | 44 | u32 spkm3_make_token(struct spkm3_ctx *ctx, struct xdr_buf * text, struct xdr_netobj * token, int toktype); |
45 | 45 | ||
46 | u32 spkm3_read_token(struct spkm3_ctx *ctx, struct xdr_netobj *read_token, struct xdr_buf *message_buffer, int *qop_state, int toktype); | 46 | u32 spkm3_read_token(struct spkm3_ctx *ctx, struct xdr_netobj *read_token, struct xdr_buf *message_buffer, int toktype); |
47 | 47 | ||
48 | #define CKSUMTYPE_RSA_MD5 0x0007 | 48 | #define CKSUMTYPE_RSA_MD5 0x0007 |
49 | 49 | ||
diff --git a/include/linux/sunrpc/xprt.h b/include/linux/sunrpc/xprt.h index 068e1fb0868b..3b8b6e823c70 100644 --- a/include/linux/sunrpc/xprt.h +++ b/include/linux/sunrpc/xprt.h | |||
@@ -73,7 +73,10 @@ struct rpc_rqst { | |||
73 | int rq_cong; /* has incremented xprt->cong */ | 73 | int rq_cong; /* has incremented xprt->cong */ |
74 | int rq_received; /* receive completed */ | 74 | int rq_received; /* receive completed */ |
75 | u32 rq_seqno; /* gss seq no. used on req. */ | 75 | u32 rq_seqno; /* gss seq no. used on req. */ |
76 | 76 | int rq_enc_pages_num; | |
77 | struct page **rq_enc_pages; /* scratch pages for use by | ||
78 | gss privacy code */ | ||
79 | void (*rq_release_snd_buf)(struct rpc_rqst *); /* release rq_enc_pages */ | ||
77 | struct list_head rq_list; | 80 | struct list_head rq_list; |
78 | 81 | ||
79 | struct xdr_buf rq_private_buf; /* The receive buffer | 82 | struct xdr_buf rq_private_buf; /* The receive buffer |
diff --git a/kernel/fork.c b/kernel/fork.c index 533ce27f4b2c..280bd44ac441 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
@@ -848,7 +848,7 @@ static inline void copy_flags(unsigned long clone_flags, struct task_struct *p) | |||
848 | { | 848 | { |
849 | unsigned long new_flags = p->flags; | 849 | unsigned long new_flags = p->flags; |
850 | 850 | ||
851 | new_flags &= ~PF_SUPERPRIV; | 851 | new_flags &= ~(PF_SUPERPRIV | PF_NOFREEZE); |
852 | new_flags |= PF_FORKNOEXEC; | 852 | new_flags |= PF_FORKNOEXEC; |
853 | if (!(clone_flags & CLONE_PTRACE)) | 853 | if (!(clone_flags & CLONE_PTRACE)) |
854 | p->ptrace = 0; | 854 | p->ptrace = 0; |
diff --git a/kernel/posix-cpu-timers.c b/kernel/posix-cpu-timers.c index 7a51a5597c33..b3f3edc475de 100644 --- a/kernel/posix-cpu-timers.c +++ b/kernel/posix-cpu-timers.c | |||
@@ -387,25 +387,19 @@ int posix_cpu_timer_del(struct k_itimer *timer) | |||
387 | if (unlikely(p == NULL)) | 387 | if (unlikely(p == NULL)) |
388 | return 0; | 388 | return 0; |
389 | 389 | ||
390 | spin_lock(&p->sighand->siglock); | ||
390 | if (!list_empty(&timer->it.cpu.entry)) { | 391 | if (!list_empty(&timer->it.cpu.entry)) { |
391 | read_lock(&tasklist_lock); | 392 | /* |
392 | if (unlikely(p->signal == NULL)) { | 393 | * Take us off the task's timer list. We don't need to |
393 | /* | 394 | * take tasklist_lock and check for the task being reaped. |
394 | * We raced with the reaping of the task. | 395 | * If it was reaped, it already called posix_cpu_timers_exit |
395 | * The deletion should have cleared us off the list. | 396 | * and posix_cpu_timers_exit_group to clear all the timers |
396 | */ | 397 | * that pointed to it. |
397 | BUG_ON(!list_empty(&timer->it.cpu.entry)); | 398 | */ |
398 | } else { | 399 | list_del(&timer->it.cpu.entry); |
399 | /* | 400 | put_task_struct(p); |
400 | * Take us off the task's timer list. | ||
401 | */ | ||
402 | spin_lock(&p->sighand->siglock); | ||
403 | list_del(&timer->it.cpu.entry); | ||
404 | spin_unlock(&p->sighand->siglock); | ||
405 | } | ||
406 | read_unlock(&tasklist_lock); | ||
407 | } | 401 | } |
408 | put_task_struct(p); | 402 | spin_unlock(&p->sighand->siglock); |
409 | 403 | ||
410 | return 0; | 404 | return 0; |
411 | } | 405 | } |
diff --git a/lib/.gitignore b/lib/.gitignore new file mode 100644 index 000000000000..3bef1ea94c99 --- /dev/null +++ b/lib/.gitignore | |||
@@ -0,0 +1,6 @@ | |||
1 | # | ||
2 | # Generated files | ||
3 | # | ||
4 | gen_crc32table | ||
5 | crc32table.h | ||
6 | |||
diff --git a/mm/bootmem.c b/mm/bootmem.c index c1330cc19783..a58699b6579e 100644 --- a/mm/bootmem.c +++ b/mm/bootmem.c | |||
@@ -154,10 +154,10 @@ static void __init free_bootmem_core(bootmem_data_t *bdata, unsigned long addr, | |||
154 | */ | 154 | */ |
155 | static void * __init | 155 | static void * __init |
156 | __alloc_bootmem_core(struct bootmem_data *bdata, unsigned long size, | 156 | __alloc_bootmem_core(struct bootmem_data *bdata, unsigned long size, |
157 | unsigned long align, unsigned long goal) | 157 | unsigned long align, unsigned long goal, unsigned long limit) |
158 | { | 158 | { |
159 | unsigned long offset, remaining_size, areasize, preferred; | 159 | unsigned long offset, remaining_size, areasize, preferred; |
160 | unsigned long i, start = 0, incr, eidx; | 160 | unsigned long i, start = 0, incr, eidx, end_pfn = bdata->node_low_pfn; |
161 | void *ret; | 161 | void *ret; |
162 | 162 | ||
163 | if(!size) { | 163 | if(!size) { |
@@ -166,7 +166,14 @@ __alloc_bootmem_core(struct bootmem_data *bdata, unsigned long size, | |||
166 | } | 166 | } |
167 | BUG_ON(align & (align-1)); | 167 | BUG_ON(align & (align-1)); |
168 | 168 | ||
169 | eidx = bdata->node_low_pfn - (bdata->node_boot_start >> PAGE_SHIFT); | 169 | if (limit && bdata->node_boot_start >= limit) |
170 | return NULL; | ||
171 | |||
172 | limit >>=PAGE_SHIFT; | ||
173 | if (limit && end_pfn > limit) | ||
174 | end_pfn = limit; | ||
175 | |||
176 | eidx = end_pfn - (bdata->node_boot_start >> PAGE_SHIFT); | ||
170 | offset = 0; | 177 | offset = 0; |
171 | if (align && | 178 | if (align && |
172 | (bdata->node_boot_start & (align - 1UL)) != 0) | 179 | (bdata->node_boot_start & (align - 1UL)) != 0) |
@@ -178,11 +185,12 @@ __alloc_bootmem_core(struct bootmem_data *bdata, unsigned long size, | |||
178 | * first, then we try to allocate lower pages. | 185 | * first, then we try to allocate lower pages. |
179 | */ | 186 | */ |
180 | if (goal && (goal >= bdata->node_boot_start) && | 187 | if (goal && (goal >= bdata->node_boot_start) && |
181 | ((goal >> PAGE_SHIFT) < bdata->node_low_pfn)) { | 188 | ((goal >> PAGE_SHIFT) < end_pfn)) { |
182 | preferred = goal - bdata->node_boot_start; | 189 | preferred = goal - bdata->node_boot_start; |
183 | 190 | ||
184 | if (bdata->last_success >= preferred) | 191 | if (bdata->last_success >= preferred) |
185 | preferred = bdata->last_success; | 192 | if (!limit || (limit && limit > bdata->last_success)) |
193 | preferred = bdata->last_success; | ||
186 | } else | 194 | } else |
187 | preferred = 0; | 195 | preferred = 0; |
188 | 196 | ||
@@ -382,14 +390,15 @@ unsigned long __init free_all_bootmem (void) | |||
382 | return(free_all_bootmem_core(NODE_DATA(0))); | 390 | return(free_all_bootmem_core(NODE_DATA(0))); |
383 | } | 391 | } |
384 | 392 | ||
385 | void * __init __alloc_bootmem (unsigned long size, unsigned long align, unsigned long goal) | 393 | void * __init __alloc_bootmem_limit (unsigned long size, unsigned long align, unsigned long goal, |
394 | unsigned long limit) | ||
386 | { | 395 | { |
387 | pg_data_t *pgdat = pgdat_list; | 396 | pg_data_t *pgdat = pgdat_list; |
388 | void *ptr; | 397 | void *ptr; |
389 | 398 | ||
390 | for_each_pgdat(pgdat) | 399 | for_each_pgdat(pgdat) |
391 | if ((ptr = __alloc_bootmem_core(pgdat->bdata, size, | 400 | if ((ptr = __alloc_bootmem_core(pgdat->bdata, size, |
392 | align, goal))) | 401 | align, goal, limit))) |
393 | return(ptr); | 402 | return(ptr); |
394 | 403 | ||
395 | /* | 404 | /* |
@@ -400,14 +409,16 @@ void * __init __alloc_bootmem (unsigned long size, unsigned long align, unsigned | |||
400 | return NULL; | 409 | return NULL; |
401 | } | 410 | } |
402 | 411 | ||
403 | void * __init __alloc_bootmem_node (pg_data_t *pgdat, unsigned long size, unsigned long align, unsigned long goal) | 412 | |
413 | void * __init __alloc_bootmem_node_limit (pg_data_t *pgdat, unsigned long size, unsigned long align, | ||
414 | unsigned long goal, unsigned long limit) | ||
404 | { | 415 | { |
405 | void *ptr; | 416 | void *ptr; |
406 | 417 | ||
407 | ptr = __alloc_bootmem_core(pgdat->bdata, size, align, goal); | 418 | ptr = __alloc_bootmem_core(pgdat->bdata, size, align, goal, limit); |
408 | if (ptr) | 419 | if (ptr) |
409 | return (ptr); | 420 | return (ptr); |
410 | 421 | ||
411 | return __alloc_bootmem(size, align, goal); | 422 | return __alloc_bootmem_limit(size, align, goal, limit); |
412 | } | 423 | } |
413 | 424 | ||
diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 901ac523a1c3..a1b30d45459e 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c | |||
@@ -274,21 +274,22 @@ int copy_hugetlb_page_range(struct mm_struct *dst, struct mm_struct *src, | |||
274 | { | 274 | { |
275 | pte_t *src_pte, *dst_pte, entry; | 275 | pte_t *src_pte, *dst_pte, entry; |
276 | struct page *ptepage; | 276 | struct page *ptepage; |
277 | unsigned long addr = vma->vm_start; | 277 | unsigned long addr; |
278 | unsigned long end = vma->vm_end; | ||
279 | 278 | ||
280 | while (addr < end) { | 279 | for (addr = vma->vm_start; addr < vma->vm_end; addr += HPAGE_SIZE) { |
281 | dst_pte = huge_pte_alloc(dst, addr); | 280 | dst_pte = huge_pte_alloc(dst, addr); |
282 | if (!dst_pte) | 281 | if (!dst_pte) |
283 | goto nomem; | 282 | goto nomem; |
283 | spin_lock(&src->page_table_lock); | ||
284 | src_pte = huge_pte_offset(src, addr); | 284 | src_pte = huge_pte_offset(src, addr); |
285 | BUG_ON(!src_pte || pte_none(*src_pte)); /* prefaulted */ | 285 | if (src_pte && !pte_none(*src_pte)) { |
286 | entry = *src_pte; | 286 | entry = *src_pte; |
287 | ptepage = pte_page(entry); | 287 | ptepage = pte_page(entry); |
288 | get_page(ptepage); | 288 | get_page(ptepage); |
289 | add_mm_counter(dst, rss, HPAGE_SIZE / PAGE_SIZE); | 289 | add_mm_counter(dst, rss, HPAGE_SIZE / PAGE_SIZE); |
290 | set_huge_pte_at(dst, addr, dst_pte, entry); | 290 | set_huge_pte_at(dst, addr, dst_pte, entry); |
291 | addr += HPAGE_SIZE; | 291 | } |
292 | spin_unlock(&src->page_table_lock); | ||
292 | } | 293 | } |
293 | return 0; | 294 | return 0; |
294 | 295 | ||
@@ -323,8 +324,8 @@ void unmap_hugepage_range(struct vm_area_struct *vma, unsigned long start, | |||
323 | 324 | ||
324 | page = pte_page(pte); | 325 | page = pte_page(pte); |
325 | put_page(page); | 326 | put_page(page); |
327 | add_mm_counter(mm, rss, - (HPAGE_SIZE / PAGE_SIZE)); | ||
326 | } | 328 | } |
327 | add_mm_counter(mm, rss, -((end - start) >> PAGE_SHIFT)); | ||
328 | flush_tlb_range(vma, start, end); | 329 | flush_tlb_range(vma, start, end); |
329 | } | 330 | } |
330 | 331 | ||
@@ -403,6 +404,7 @@ int follow_hugetlb_page(struct mm_struct *mm, struct vm_area_struct *vma, | |||
403 | BUG_ON(!is_vm_hugetlb_page(vma)); | 404 | BUG_ON(!is_vm_hugetlb_page(vma)); |
404 | 405 | ||
405 | vpfn = vaddr/PAGE_SIZE; | 406 | vpfn = vaddr/PAGE_SIZE; |
407 | spin_lock(&mm->page_table_lock); | ||
406 | while (vaddr < vma->vm_end && remainder) { | 408 | while (vaddr < vma->vm_end && remainder) { |
407 | 409 | ||
408 | if (pages) { | 410 | if (pages) { |
@@ -415,8 +417,13 @@ int follow_hugetlb_page(struct mm_struct *mm, struct vm_area_struct *vma, | |||
415 | * indexing below to work. */ | 417 | * indexing below to work. */ |
416 | pte = huge_pte_offset(mm, vaddr & HPAGE_MASK); | 418 | pte = huge_pte_offset(mm, vaddr & HPAGE_MASK); |
417 | 419 | ||
418 | /* hugetlb should be locked, and hence, prefaulted */ | 420 | /* the hugetlb file might have been truncated */ |
419 | WARN_ON(!pte || pte_none(*pte)); | 421 | if (!pte || pte_none(*pte)) { |
422 | remainder = 0; | ||
423 | if (!i) | ||
424 | i = -EFAULT; | ||
425 | break; | ||
426 | } | ||
420 | 427 | ||
421 | page = &pte_page(*pte)[vpfn % (HPAGE_SIZE/PAGE_SIZE)]; | 428 | page = &pte_page(*pte)[vpfn % (HPAGE_SIZE/PAGE_SIZE)]; |
422 | 429 | ||
@@ -434,7 +441,7 @@ int follow_hugetlb_page(struct mm_struct *mm, struct vm_area_struct *vma, | |||
434 | --remainder; | 441 | --remainder; |
435 | ++i; | 442 | ++i; |
436 | } | 443 | } |
437 | 444 | spin_unlock(&mm->page_table_lock); | |
438 | *length = remainder; | 445 | *length = remainder; |
439 | *position = vaddr; | 446 | *position = vaddr; |
440 | 447 | ||
diff --git a/mm/memory.c b/mm/memory.c index ae8161f1f459..8c88b973abc5 100644 --- a/mm/memory.c +++ b/mm/memory.c | |||
@@ -2045,8 +2045,18 @@ int __handle_mm_fault(struct mm_struct *mm, struct vm_area_struct * vma, | |||
2045 | 2045 | ||
2046 | inc_page_state(pgfault); | 2046 | inc_page_state(pgfault); |
2047 | 2047 | ||
2048 | if (is_vm_hugetlb_page(vma)) | 2048 | if (unlikely(is_vm_hugetlb_page(vma))) { |
2049 | return VM_FAULT_SIGBUS; /* mapping truncation does this. */ | 2049 | if (valid_hugetlb_file_off(vma, address)) |
2050 | /* We get here only if there was a stale(zero) TLB entry | ||
2051 | * (because of HW prefetching). | ||
2052 | * Low-level arch code (if needed) should have already | ||
2053 | * purged the stale entry as part of this fault handling. | ||
2054 | * Here we just return. | ||
2055 | */ | ||
2056 | return VM_FAULT_MINOR; | ||
2057 | else | ||
2058 | return VM_FAULT_SIGBUS; /* mapping truncation does this. */ | ||
2059 | } | ||
2050 | 2060 | ||
2051 | /* | 2061 | /* |
2052 | * We need the page table lock to synchronize with kswapd | 2062 | * We need the page table lock to synchronize with kswapd |
diff --git a/net/sunrpc/auth_gss/Makefile b/net/sunrpc/auth_gss/Makefile index fe1b874084bc..f3431a7e33da 100644 --- a/net/sunrpc/auth_gss/Makefile +++ b/net/sunrpc/auth_gss/Makefile | |||
@@ -10,7 +10,7 @@ auth_rpcgss-objs := auth_gss.o gss_generic_token.o \ | |||
10 | obj-$(CONFIG_RPCSEC_GSS_KRB5) += rpcsec_gss_krb5.o | 10 | obj-$(CONFIG_RPCSEC_GSS_KRB5) += rpcsec_gss_krb5.o |
11 | 11 | ||
12 | rpcsec_gss_krb5-objs := gss_krb5_mech.o gss_krb5_seal.o gss_krb5_unseal.o \ | 12 | rpcsec_gss_krb5-objs := gss_krb5_mech.o gss_krb5_seal.o gss_krb5_unseal.o \ |
13 | gss_krb5_seqnum.o | 13 | gss_krb5_seqnum.o gss_krb5_wrap.o |
14 | 14 | ||
15 | obj-$(CONFIG_RPCSEC_GSS_SPKM3) += rpcsec_gss_spkm3.o | 15 | obj-$(CONFIG_RPCSEC_GSS_SPKM3) += rpcsec_gss_spkm3.o |
16 | 16 | ||
diff --git a/net/sunrpc/auth_gss/auth_gss.c b/net/sunrpc/auth_gss/auth_gss.c index d2b08f16c257..f44f46f1d8e0 100644 --- a/net/sunrpc/auth_gss/auth_gss.c +++ b/net/sunrpc/auth_gss/auth_gss.c | |||
@@ -43,6 +43,7 @@ | |||
43 | #include <linux/types.h> | 43 | #include <linux/types.h> |
44 | #include <linux/slab.h> | 44 | #include <linux/slab.h> |
45 | #include <linux/sched.h> | 45 | #include <linux/sched.h> |
46 | #include <linux/pagemap.h> | ||
46 | #include <linux/sunrpc/clnt.h> | 47 | #include <linux/sunrpc/clnt.h> |
47 | #include <linux/sunrpc/auth.h> | 48 | #include <linux/sunrpc/auth.h> |
48 | #include <linux/sunrpc/auth_gss.h> | 49 | #include <linux/sunrpc/auth_gss.h> |
@@ -853,9 +854,7 @@ gss_marshal(struct rpc_task *task, u32 *p) | |||
853 | *p++ = htonl(RPC_AUTH_GSS); | 854 | *p++ = htonl(RPC_AUTH_GSS); |
854 | 855 | ||
855 | mic.data = (u8 *)(p + 1); | 856 | mic.data = (u8 *)(p + 1); |
856 | maj_stat = gss_get_mic(ctx->gc_gss_ctx, | 857 | maj_stat = gss_get_mic(ctx->gc_gss_ctx, &verf_buf, &mic); |
857 | GSS_C_QOP_DEFAULT, | ||
858 | &verf_buf, &mic); | ||
859 | if (maj_stat == GSS_S_CONTEXT_EXPIRED) { | 858 | if (maj_stat == GSS_S_CONTEXT_EXPIRED) { |
860 | cred->cr_flags &= ~RPCAUTH_CRED_UPTODATE; | 859 | cred->cr_flags &= ~RPCAUTH_CRED_UPTODATE; |
861 | } else if (maj_stat != 0) { | 860 | } else if (maj_stat != 0) { |
@@ -886,10 +885,8 @@ static u32 * | |||
886 | gss_validate(struct rpc_task *task, u32 *p) | 885 | gss_validate(struct rpc_task *task, u32 *p) |
887 | { | 886 | { |
888 | struct rpc_cred *cred = task->tk_msg.rpc_cred; | 887 | struct rpc_cred *cred = task->tk_msg.rpc_cred; |
889 | struct gss_cred *gss_cred = container_of(cred, struct gss_cred, | ||
890 | gc_base); | ||
891 | struct gss_cl_ctx *ctx = gss_cred_get_ctx(cred); | 888 | struct gss_cl_ctx *ctx = gss_cred_get_ctx(cred); |
892 | u32 seq, qop_state; | 889 | u32 seq; |
893 | struct kvec iov; | 890 | struct kvec iov; |
894 | struct xdr_buf verf_buf; | 891 | struct xdr_buf verf_buf; |
895 | struct xdr_netobj mic; | 892 | struct xdr_netobj mic; |
@@ -910,23 +907,14 @@ gss_validate(struct rpc_task *task, u32 *p) | |||
910 | mic.data = (u8 *)p; | 907 | mic.data = (u8 *)p; |
911 | mic.len = len; | 908 | mic.len = len; |
912 | 909 | ||
913 | maj_stat = gss_verify_mic(ctx->gc_gss_ctx, &verf_buf, &mic, &qop_state); | 910 | maj_stat = gss_verify_mic(ctx->gc_gss_ctx, &verf_buf, &mic); |
914 | if (maj_stat == GSS_S_CONTEXT_EXPIRED) | 911 | if (maj_stat == GSS_S_CONTEXT_EXPIRED) |
915 | cred->cr_flags &= ~RPCAUTH_CRED_UPTODATE; | 912 | cred->cr_flags &= ~RPCAUTH_CRED_UPTODATE; |
916 | if (maj_stat) | 913 | if (maj_stat) |
917 | goto out_bad; | 914 | goto out_bad; |
918 | switch (gss_cred->gc_service) { | 915 | /* We leave it to unwrap to calculate au_rslack. For now we just |
919 | case RPC_GSS_SVC_NONE: | 916 | * calculate the length of the verifier: */ |
920 | /* verifier data, flavor, length: */ | 917 | task->tk_auth->au_verfsize = XDR_QUADLEN(len) + 2; |
921 | task->tk_auth->au_rslack = XDR_QUADLEN(len) + 2; | ||
922 | break; | ||
923 | case RPC_GSS_SVC_INTEGRITY: | ||
924 | /* verifier data, flavor, length, length, sequence number: */ | ||
925 | task->tk_auth->au_rslack = XDR_QUADLEN(len) + 4; | ||
926 | break; | ||
927 | case RPC_GSS_SVC_PRIVACY: | ||
928 | goto out_bad; | ||
929 | } | ||
930 | gss_put_ctx(ctx); | 918 | gss_put_ctx(ctx); |
931 | dprintk("RPC: %4u GSS gss_validate: gss_verify_mic succeeded.\n", | 919 | dprintk("RPC: %4u GSS gss_validate: gss_verify_mic succeeded.\n", |
932 | task->tk_pid); | 920 | task->tk_pid); |
@@ -971,8 +959,7 @@ gss_wrap_req_integ(struct rpc_cred *cred, struct gss_cl_ctx *ctx, | |||
971 | p = iov->iov_base + iov->iov_len; | 959 | p = iov->iov_base + iov->iov_len; |
972 | mic.data = (u8 *)(p + 1); | 960 | mic.data = (u8 *)(p + 1); |
973 | 961 | ||
974 | maj_stat = gss_get_mic(ctx->gc_gss_ctx, | 962 | maj_stat = gss_get_mic(ctx->gc_gss_ctx, &integ_buf, &mic); |
975 | GSS_C_QOP_DEFAULT, &integ_buf, &mic); | ||
976 | status = -EIO; /* XXX? */ | 963 | status = -EIO; /* XXX? */ |
977 | if (maj_stat == GSS_S_CONTEXT_EXPIRED) | 964 | if (maj_stat == GSS_S_CONTEXT_EXPIRED) |
978 | cred->cr_flags &= ~RPCAUTH_CRED_UPTODATE; | 965 | cred->cr_flags &= ~RPCAUTH_CRED_UPTODATE; |
@@ -986,6 +973,113 @@ gss_wrap_req_integ(struct rpc_cred *cred, struct gss_cl_ctx *ctx, | |||
986 | return 0; | 973 | return 0; |
987 | } | 974 | } |
988 | 975 | ||
976 | static void | ||
977 | priv_release_snd_buf(struct rpc_rqst *rqstp) | ||
978 | { | ||
979 | int i; | ||
980 | |||
981 | for (i=0; i < rqstp->rq_enc_pages_num; i++) | ||
982 | __free_page(rqstp->rq_enc_pages[i]); | ||
983 | kfree(rqstp->rq_enc_pages); | ||
984 | } | ||
985 | |||
986 | static int | ||
987 | alloc_enc_pages(struct rpc_rqst *rqstp) | ||
988 | { | ||
989 | struct xdr_buf *snd_buf = &rqstp->rq_snd_buf; | ||
990 | int first, last, i; | ||
991 | |||
992 | if (snd_buf->page_len == 0) { | ||
993 | rqstp->rq_enc_pages_num = 0; | ||
994 | return 0; | ||
995 | } | ||
996 | |||
997 | first = snd_buf->page_base >> PAGE_CACHE_SHIFT; | ||
998 | last = (snd_buf->page_base + snd_buf->page_len - 1) >> PAGE_CACHE_SHIFT; | ||
999 | rqstp->rq_enc_pages_num = last - first + 1 + 1; | ||
1000 | rqstp->rq_enc_pages | ||
1001 | = kmalloc(rqstp->rq_enc_pages_num * sizeof(struct page *), | ||
1002 | GFP_NOFS); | ||
1003 | if (!rqstp->rq_enc_pages) | ||
1004 | goto out; | ||
1005 | for (i=0; i < rqstp->rq_enc_pages_num; i++) { | ||
1006 | rqstp->rq_enc_pages[i] = alloc_page(GFP_NOFS); | ||
1007 | if (rqstp->rq_enc_pages[i] == NULL) | ||
1008 | goto out_free; | ||
1009 | } | ||
1010 | rqstp->rq_release_snd_buf = priv_release_snd_buf; | ||
1011 | return 0; | ||
1012 | out_free: | ||
1013 | for (i--; i >= 0; i--) { | ||
1014 | __free_page(rqstp->rq_enc_pages[i]); | ||
1015 | } | ||
1016 | out: | ||
1017 | return -EAGAIN; | ||
1018 | } | ||
1019 | |||
1020 | static inline int | ||
1021 | gss_wrap_req_priv(struct rpc_cred *cred, struct gss_cl_ctx *ctx, | ||
1022 | kxdrproc_t encode, struct rpc_rqst *rqstp, u32 *p, void *obj) | ||
1023 | { | ||
1024 | struct xdr_buf *snd_buf = &rqstp->rq_snd_buf; | ||
1025 | u32 offset; | ||
1026 | u32 maj_stat; | ||
1027 | int status; | ||
1028 | u32 *opaque_len; | ||
1029 | struct page **inpages; | ||
1030 | int first; | ||
1031 | int pad; | ||
1032 | struct kvec *iov; | ||
1033 | char *tmp; | ||
1034 | |||
1035 | opaque_len = p++; | ||
1036 | offset = (u8 *)p - (u8 *)snd_buf->head[0].iov_base; | ||
1037 | *p++ = htonl(rqstp->rq_seqno); | ||
1038 | |||
1039 | status = encode(rqstp, p, obj); | ||
1040 | if (status) | ||
1041 | return status; | ||
1042 | |||
1043 | status = alloc_enc_pages(rqstp); | ||
1044 | if (status) | ||
1045 | return status; | ||
1046 | first = snd_buf->page_base >> PAGE_CACHE_SHIFT; | ||
1047 | inpages = snd_buf->pages + first; | ||
1048 | snd_buf->pages = rqstp->rq_enc_pages; | ||
1049 | snd_buf->page_base -= first << PAGE_CACHE_SHIFT; | ||
1050 | /* Give the tail its own page, in case we need extra space in the | ||
1051 | * head when wrapping: */ | ||
1052 | if (snd_buf->page_len || snd_buf->tail[0].iov_len) { | ||
1053 | tmp = page_address(rqstp->rq_enc_pages[rqstp->rq_enc_pages_num - 1]); | ||
1054 | memcpy(tmp, snd_buf->tail[0].iov_base, snd_buf->tail[0].iov_len); | ||
1055 | snd_buf->tail[0].iov_base = tmp; | ||
1056 | } | ||
1057 | maj_stat = gss_wrap(ctx->gc_gss_ctx, offset, snd_buf, inpages); | ||
1058 | /* RPC_SLACK_SPACE should prevent this ever happening: */ | ||
1059 | BUG_ON(snd_buf->len > snd_buf->buflen); | ||
1060 | status = -EIO; | ||
1061 | /* We're assuming that when GSS_S_CONTEXT_EXPIRED, the encryption was | ||
1062 | * done anyway, so it's safe to put the request on the wire: */ | ||
1063 | if (maj_stat == GSS_S_CONTEXT_EXPIRED) | ||
1064 | cred->cr_flags &= ~RPCAUTH_CRED_UPTODATE; | ||
1065 | else if (maj_stat) | ||
1066 | return status; | ||
1067 | |||
1068 | *opaque_len = htonl(snd_buf->len - offset); | ||
1069 | /* guess whether we're in the head or the tail: */ | ||
1070 | if (snd_buf->page_len || snd_buf->tail[0].iov_len) | ||
1071 | iov = snd_buf->tail; | ||
1072 | else | ||
1073 | iov = snd_buf->head; | ||
1074 | p = iov->iov_base + iov->iov_len; | ||
1075 | pad = 3 - ((snd_buf->len - offset - 1) & 3); | ||
1076 | memset(p, 0, pad); | ||
1077 | iov->iov_len += pad; | ||
1078 | snd_buf->len += pad; | ||
1079 | |||
1080 | return 0; | ||
1081 | } | ||
1082 | |||
989 | static int | 1083 | static int |
990 | gss_wrap_req(struct rpc_task *task, | 1084 | gss_wrap_req(struct rpc_task *task, |
991 | kxdrproc_t encode, void *rqstp, u32 *p, void *obj) | 1085 | kxdrproc_t encode, void *rqstp, u32 *p, void *obj) |
@@ -1013,6 +1107,8 @@ gss_wrap_req(struct rpc_task *task, | |||
1013 | rqstp, p, obj); | 1107 | rqstp, p, obj); |
1014 | break; | 1108 | break; |
1015 | case RPC_GSS_SVC_PRIVACY: | 1109 | case RPC_GSS_SVC_PRIVACY: |
1110 | status = gss_wrap_req_priv(cred, ctx, encode, | ||
1111 | rqstp, p, obj); | ||
1016 | break; | 1112 | break; |
1017 | } | 1113 | } |
1018 | out: | 1114 | out: |
@@ -1050,8 +1146,7 @@ gss_unwrap_resp_integ(struct rpc_cred *cred, struct gss_cl_ctx *ctx, | |||
1050 | if (xdr_buf_read_netobj(rcv_buf, &mic, mic_offset)) | 1146 | if (xdr_buf_read_netobj(rcv_buf, &mic, mic_offset)) |
1051 | return status; | 1147 | return status; |
1052 | 1148 | ||
1053 | maj_stat = gss_verify_mic(ctx->gc_gss_ctx, &integ_buf, | 1149 | maj_stat = gss_verify_mic(ctx->gc_gss_ctx, &integ_buf, &mic); |
1054 | &mic, NULL); | ||
1055 | if (maj_stat == GSS_S_CONTEXT_EXPIRED) | 1150 | if (maj_stat == GSS_S_CONTEXT_EXPIRED) |
1056 | cred->cr_flags &= ~RPCAUTH_CRED_UPTODATE; | 1151 | cred->cr_flags &= ~RPCAUTH_CRED_UPTODATE; |
1057 | if (maj_stat != GSS_S_COMPLETE) | 1152 | if (maj_stat != GSS_S_COMPLETE) |
@@ -1059,6 +1154,35 @@ gss_unwrap_resp_integ(struct rpc_cred *cred, struct gss_cl_ctx *ctx, | |||
1059 | return 0; | 1154 | return 0; |
1060 | } | 1155 | } |
1061 | 1156 | ||
1157 | static inline int | ||
1158 | gss_unwrap_resp_priv(struct rpc_cred *cred, struct gss_cl_ctx *ctx, | ||
1159 | struct rpc_rqst *rqstp, u32 **p) | ||
1160 | { | ||
1161 | struct xdr_buf *rcv_buf = &rqstp->rq_rcv_buf; | ||
1162 | u32 offset; | ||
1163 | u32 opaque_len; | ||
1164 | u32 maj_stat; | ||
1165 | int status = -EIO; | ||
1166 | |||
1167 | opaque_len = ntohl(*(*p)++); | ||
1168 | offset = (u8 *)(*p) - (u8 *)rcv_buf->head[0].iov_base; | ||
1169 | if (offset + opaque_len > rcv_buf->len) | ||
1170 | return status; | ||
1171 | /* remove padding: */ | ||
1172 | rcv_buf->len = offset + opaque_len; | ||
1173 | |||
1174 | maj_stat = gss_unwrap(ctx->gc_gss_ctx, offset, rcv_buf); | ||
1175 | if (maj_stat == GSS_S_CONTEXT_EXPIRED) | ||
1176 | cred->cr_flags &= ~RPCAUTH_CRED_UPTODATE; | ||
1177 | if (maj_stat != GSS_S_COMPLETE) | ||
1178 | return status; | ||
1179 | if (ntohl(*(*p)++) != rqstp->rq_seqno) | ||
1180 | return status; | ||
1181 | |||
1182 | return 0; | ||
1183 | } | ||
1184 | |||
1185 | |||
1062 | static int | 1186 | static int |
1063 | gss_unwrap_resp(struct rpc_task *task, | 1187 | gss_unwrap_resp(struct rpc_task *task, |
1064 | kxdrproc_t decode, void *rqstp, u32 *p, void *obj) | 1188 | kxdrproc_t decode, void *rqstp, u32 *p, void *obj) |
@@ -1067,6 +1191,9 @@ gss_unwrap_resp(struct rpc_task *task, | |||
1067 | struct gss_cred *gss_cred = container_of(cred, struct gss_cred, | 1191 | struct gss_cred *gss_cred = container_of(cred, struct gss_cred, |
1068 | gc_base); | 1192 | gc_base); |
1069 | struct gss_cl_ctx *ctx = gss_cred_get_ctx(cred); | 1193 | struct gss_cl_ctx *ctx = gss_cred_get_ctx(cred); |
1194 | u32 *savedp = p; | ||
1195 | struct kvec *head = ((struct rpc_rqst *)rqstp)->rq_rcv_buf.head; | ||
1196 | int savedlen = head->iov_len; | ||
1070 | int status = -EIO; | 1197 | int status = -EIO; |
1071 | 1198 | ||
1072 | if (ctx->gc_proc != RPC_GSS_PROC_DATA) | 1199 | if (ctx->gc_proc != RPC_GSS_PROC_DATA) |
@@ -1080,8 +1207,14 @@ gss_unwrap_resp(struct rpc_task *task, | |||
1080 | goto out; | 1207 | goto out; |
1081 | break; | 1208 | break; |
1082 | case RPC_GSS_SVC_PRIVACY: | 1209 | case RPC_GSS_SVC_PRIVACY: |
1210 | status = gss_unwrap_resp_priv(cred, ctx, rqstp, &p); | ||
1211 | if (status) | ||
1212 | goto out; | ||
1083 | break; | 1213 | break; |
1084 | } | 1214 | } |
1215 | /* take into account extra slack for integrity and privacy cases: */ | ||
1216 | task->tk_auth->au_rslack = task->tk_auth->au_verfsize + (p - savedp) | ||
1217 | + (savedlen - head->iov_len); | ||
1085 | out_decode: | 1218 | out_decode: |
1086 | status = decode(rqstp, p, obj); | 1219 | status = decode(rqstp, p, obj); |
1087 | out: | 1220 | out: |
diff --git a/net/sunrpc/auth_gss/gss_krb5_crypto.c b/net/sunrpc/auth_gss/gss_krb5_crypto.c index ee6ae74cd1b2..3f3d5437f02d 100644 --- a/net/sunrpc/auth_gss/gss_krb5_crypto.c +++ b/net/sunrpc/auth_gss/gss_krb5_crypto.c | |||
@@ -139,17 +139,91 @@ buf_to_sg(struct scatterlist *sg, char *ptr, int len) { | |||
139 | sg->length = len; | 139 | sg->length = len; |
140 | } | 140 | } |
141 | 141 | ||
142 | static int | ||
143 | process_xdr_buf(struct xdr_buf *buf, int offset, int len, | ||
144 | int (*actor)(struct scatterlist *, void *), void *data) | ||
145 | { | ||
146 | int i, page_len, thislen, page_offset, ret = 0; | ||
147 | struct scatterlist sg[1]; | ||
148 | |||
149 | if (offset >= buf->head[0].iov_len) { | ||
150 | offset -= buf->head[0].iov_len; | ||
151 | } else { | ||
152 | thislen = buf->head[0].iov_len - offset; | ||
153 | if (thislen > len) | ||
154 | thislen = len; | ||
155 | buf_to_sg(sg, buf->head[0].iov_base + offset, thislen); | ||
156 | ret = actor(sg, data); | ||
157 | if (ret) | ||
158 | goto out; | ||
159 | offset = 0; | ||
160 | len -= thislen; | ||
161 | } | ||
162 | if (len == 0) | ||
163 | goto out; | ||
164 | |||
165 | if (offset >= buf->page_len) { | ||
166 | offset -= buf->page_len; | ||
167 | } else { | ||
168 | page_len = buf->page_len - offset; | ||
169 | if (page_len > len) | ||
170 | page_len = len; | ||
171 | len -= page_len; | ||
172 | page_offset = (offset + buf->page_base) & (PAGE_CACHE_SIZE - 1); | ||
173 | i = (offset + buf->page_base) >> PAGE_CACHE_SHIFT; | ||
174 | thislen = PAGE_CACHE_SIZE - page_offset; | ||
175 | do { | ||
176 | if (thislen > page_len) | ||
177 | thislen = page_len; | ||
178 | sg->page = buf->pages[i]; | ||
179 | sg->offset = page_offset; | ||
180 | sg->length = thislen; | ||
181 | ret = actor(sg, data); | ||
182 | if (ret) | ||
183 | goto out; | ||
184 | page_len -= thislen; | ||
185 | i++; | ||
186 | page_offset = 0; | ||
187 | thislen = PAGE_CACHE_SIZE; | ||
188 | } while (page_len != 0); | ||
189 | offset = 0; | ||
190 | } | ||
191 | if (len == 0) | ||
192 | goto out; | ||
193 | |||
194 | if (offset < buf->tail[0].iov_len) { | ||
195 | thislen = buf->tail[0].iov_len - offset; | ||
196 | if (thislen > len) | ||
197 | thislen = len; | ||
198 | buf_to_sg(sg, buf->tail[0].iov_base + offset, thislen); | ||
199 | ret = actor(sg, data); | ||
200 | len -= thislen; | ||
201 | } | ||
202 | if (len != 0) | ||
203 | ret = -EINVAL; | ||
204 | out: | ||
205 | return ret; | ||
206 | } | ||
207 | |||
208 | static int | ||
209 | checksummer(struct scatterlist *sg, void *data) | ||
210 | { | ||
211 | struct crypto_tfm *tfm = (struct crypto_tfm *)data; | ||
212 | |||
213 | crypto_digest_update(tfm, sg, 1); | ||
214 | |||
215 | return 0; | ||
216 | } | ||
217 | |||
142 | /* checksum the plaintext data and hdrlen bytes of the token header */ | 218 | /* checksum the plaintext data and hdrlen bytes of the token header */ |
143 | s32 | 219 | s32 |
144 | make_checksum(s32 cksumtype, char *header, int hdrlen, struct xdr_buf *body, | 220 | make_checksum(s32 cksumtype, char *header, int hdrlen, struct xdr_buf *body, |
145 | struct xdr_netobj *cksum) | 221 | int body_offset, struct xdr_netobj *cksum) |
146 | { | 222 | { |
147 | char *cksumname; | 223 | char *cksumname; |
148 | struct crypto_tfm *tfm = NULL; /* XXX add to ctx? */ | 224 | struct crypto_tfm *tfm = NULL; /* XXX add to ctx? */ |
149 | struct scatterlist sg[1]; | 225 | struct scatterlist sg[1]; |
150 | u32 code = GSS_S_FAILURE; | 226 | u32 code = GSS_S_FAILURE; |
151 | int len, thislen, offset; | ||
152 | int i; | ||
153 | 227 | ||
154 | switch (cksumtype) { | 228 | switch (cksumtype) { |
155 | case CKSUMTYPE_RSA_MD5: | 229 | case CKSUMTYPE_RSA_MD5: |
@@ -169,33 +243,8 @@ make_checksum(s32 cksumtype, char *header, int hdrlen, struct xdr_buf *body, | |||
169 | crypto_digest_init(tfm); | 243 | crypto_digest_init(tfm); |
170 | buf_to_sg(sg, header, hdrlen); | 244 | buf_to_sg(sg, header, hdrlen); |
171 | crypto_digest_update(tfm, sg, 1); | 245 | crypto_digest_update(tfm, sg, 1); |
172 | if (body->head[0].iov_len) { | 246 | process_xdr_buf(body, body_offset, body->len - body_offset, |
173 | buf_to_sg(sg, body->head[0].iov_base, body->head[0].iov_len); | 247 | checksummer, tfm); |
174 | crypto_digest_update(tfm, sg, 1); | ||
175 | } | ||
176 | |||
177 | len = body->page_len; | ||
178 | if (len != 0) { | ||
179 | offset = body->page_base & (PAGE_CACHE_SIZE - 1); | ||
180 | i = body->page_base >> PAGE_CACHE_SHIFT; | ||
181 | thislen = PAGE_CACHE_SIZE - offset; | ||
182 | do { | ||
183 | if (thislen > len) | ||
184 | thislen = len; | ||
185 | sg->page = body->pages[i]; | ||
186 | sg->offset = offset; | ||
187 | sg->length = thislen; | ||
188 | crypto_digest_update(tfm, sg, 1); | ||
189 | len -= thislen; | ||
190 | i++; | ||
191 | offset = 0; | ||
192 | thislen = PAGE_CACHE_SIZE; | ||
193 | } while(len != 0); | ||
194 | } | ||
195 | if (body->tail[0].iov_len) { | ||
196 | buf_to_sg(sg, body->tail[0].iov_base, body->tail[0].iov_len); | ||
197 | crypto_digest_update(tfm, sg, 1); | ||
198 | } | ||
199 | crypto_digest_final(tfm, cksum->data); | 248 | crypto_digest_final(tfm, cksum->data); |
200 | code = 0; | 249 | code = 0; |
201 | out: | 250 | out: |
@@ -204,3 +253,154 @@ out: | |||
204 | } | 253 | } |
205 | 254 | ||
206 | EXPORT_SYMBOL(make_checksum); | 255 | EXPORT_SYMBOL(make_checksum); |
256 | |||
257 | struct encryptor_desc { | ||
258 | u8 iv[8]; /* XXX hard-coded blocksize */ | ||
259 | struct crypto_tfm *tfm; | ||
260 | int pos; | ||
261 | struct xdr_buf *outbuf; | ||
262 | struct page **pages; | ||
263 | struct scatterlist infrags[4]; | ||
264 | struct scatterlist outfrags[4]; | ||
265 | int fragno; | ||
266 | int fraglen; | ||
267 | }; | ||
268 | |||
269 | static int | ||
270 | encryptor(struct scatterlist *sg, void *data) | ||
271 | { | ||
272 | struct encryptor_desc *desc = data; | ||
273 | struct xdr_buf *outbuf = desc->outbuf; | ||
274 | struct page *in_page; | ||
275 | int thislen = desc->fraglen + sg->length; | ||
276 | int fraglen, ret; | ||
277 | int page_pos; | ||
278 | |||
279 | /* Worst case is 4 fragments: head, end of page 1, start | ||
280 | * of page 2, tail. Anything more is a bug. */ | ||
281 | BUG_ON(desc->fragno > 3); | ||
282 | desc->infrags[desc->fragno] = *sg; | ||
283 | desc->outfrags[desc->fragno] = *sg; | ||
284 | |||
285 | page_pos = desc->pos - outbuf->head[0].iov_len; | ||
286 | if (page_pos >= 0 && page_pos < outbuf->page_len) { | ||
287 | /* pages are not in place: */ | ||
288 | int i = (page_pos + outbuf->page_base) >> PAGE_CACHE_SHIFT; | ||
289 | in_page = desc->pages[i]; | ||
290 | } else { | ||
291 | in_page = sg->page; | ||
292 | } | ||
293 | desc->infrags[desc->fragno].page = in_page; | ||
294 | desc->fragno++; | ||
295 | desc->fraglen += sg->length; | ||
296 | desc->pos += sg->length; | ||
297 | |||
298 | fraglen = thislen & 7; /* XXX hardcoded blocksize */ | ||
299 | thislen -= fraglen; | ||
300 | |||
301 | if (thislen == 0) | ||
302 | return 0; | ||
303 | |||
304 | ret = crypto_cipher_encrypt_iv(desc->tfm, desc->outfrags, desc->infrags, | ||
305 | thislen, desc->iv); | ||
306 | if (ret) | ||
307 | return ret; | ||
308 | if (fraglen) { | ||
309 | desc->outfrags[0].page = sg->page; | ||
310 | desc->outfrags[0].offset = sg->offset + sg->length - fraglen; | ||
311 | desc->outfrags[0].length = fraglen; | ||
312 | desc->infrags[0] = desc->outfrags[0]; | ||
313 | desc->infrags[0].page = in_page; | ||
314 | desc->fragno = 1; | ||
315 | desc->fraglen = fraglen; | ||
316 | } else { | ||
317 | desc->fragno = 0; | ||
318 | desc->fraglen = 0; | ||
319 | } | ||
320 | return 0; | ||
321 | } | ||
322 | |||
323 | int | ||
324 | gss_encrypt_xdr_buf(struct crypto_tfm *tfm, struct xdr_buf *buf, int offset, | ||
325 | struct page **pages) | ||
326 | { | ||
327 | int ret; | ||
328 | struct encryptor_desc desc; | ||
329 | |||
330 | BUG_ON((buf->len - offset) % crypto_tfm_alg_blocksize(tfm) != 0); | ||
331 | |||
332 | memset(desc.iv, 0, sizeof(desc.iv)); | ||
333 | desc.tfm = tfm; | ||
334 | desc.pos = offset; | ||
335 | desc.outbuf = buf; | ||
336 | desc.pages = pages; | ||
337 | desc.fragno = 0; | ||
338 | desc.fraglen = 0; | ||
339 | |||
340 | ret = process_xdr_buf(buf, offset, buf->len - offset, encryptor, &desc); | ||
341 | return ret; | ||
342 | } | ||
343 | |||
344 | EXPORT_SYMBOL(gss_encrypt_xdr_buf); | ||
345 | |||
346 | struct decryptor_desc { | ||
347 | u8 iv[8]; /* XXX hard-coded blocksize */ | ||
348 | struct crypto_tfm *tfm; | ||
349 | struct scatterlist frags[4]; | ||
350 | int fragno; | ||
351 | int fraglen; | ||
352 | }; | ||
353 | |||
354 | static int | ||
355 | decryptor(struct scatterlist *sg, void *data) | ||
356 | { | ||
357 | struct decryptor_desc *desc = data; | ||
358 | int thislen = desc->fraglen + sg->length; | ||
359 | int fraglen, ret; | ||
360 | |||
361 | /* Worst case is 4 fragments: head, end of page 1, start | ||
362 | * of page 2, tail. Anything more is a bug. */ | ||
363 | BUG_ON(desc->fragno > 3); | ||
364 | desc->frags[desc->fragno] = *sg; | ||
365 | desc->fragno++; | ||
366 | desc->fraglen += sg->length; | ||
367 | |||
368 | fraglen = thislen & 7; /* XXX hardcoded blocksize */ | ||
369 | thislen -= fraglen; | ||
370 | |||
371 | if (thislen == 0) | ||
372 | return 0; | ||
373 | |||
374 | ret = crypto_cipher_decrypt_iv(desc->tfm, desc->frags, desc->frags, | ||
375 | thislen, desc->iv); | ||
376 | if (ret) | ||
377 | return ret; | ||
378 | if (fraglen) { | ||
379 | desc->frags[0].page = sg->page; | ||
380 | desc->frags[0].offset = sg->offset + sg->length - fraglen; | ||
381 | desc->frags[0].length = fraglen; | ||
382 | desc->fragno = 1; | ||
383 | desc->fraglen = fraglen; | ||
384 | } else { | ||
385 | desc->fragno = 0; | ||
386 | desc->fraglen = 0; | ||
387 | } | ||
388 | return 0; | ||
389 | } | ||
390 | |||
391 | int | ||
392 | gss_decrypt_xdr_buf(struct crypto_tfm *tfm, struct xdr_buf *buf, int offset) | ||
393 | { | ||
394 | struct decryptor_desc desc; | ||
395 | |||
396 | /* XXXJBF: */ | ||
397 | BUG_ON((buf->len - offset) % crypto_tfm_alg_blocksize(tfm) != 0); | ||
398 | |||
399 | memset(desc.iv, 0, sizeof(desc.iv)); | ||
400 | desc.tfm = tfm; | ||
401 | desc.fragno = 0; | ||
402 | desc.fraglen = 0; | ||
403 | return process_xdr_buf(buf, offset, buf->len - offset, decryptor, &desc); | ||
404 | } | ||
405 | |||
406 | EXPORT_SYMBOL(gss_decrypt_xdr_buf); | ||
diff --git a/net/sunrpc/auth_gss/gss_krb5_mech.c b/net/sunrpc/auth_gss/gss_krb5_mech.c index 462c5b86b073..5f1f806a0b11 100644 --- a/net/sunrpc/auth_gss/gss_krb5_mech.c +++ b/net/sunrpc/auth_gss/gss_krb5_mech.c | |||
@@ -190,43 +190,12 @@ gss_delete_sec_context_kerberos(void *internal_ctx) { | |||
190 | kfree(kctx); | 190 | kfree(kctx); |
191 | } | 191 | } |
192 | 192 | ||
193 | static u32 | ||
194 | gss_verify_mic_kerberos(struct gss_ctx *ctx, | ||
195 | struct xdr_buf *message, | ||
196 | struct xdr_netobj *mic_token, | ||
197 | u32 *qstate) { | ||
198 | u32 maj_stat = 0; | ||
199 | int qop_state; | ||
200 | struct krb5_ctx *kctx = ctx->internal_ctx_id; | ||
201 | |||
202 | maj_stat = krb5_read_token(kctx, mic_token, message, &qop_state, | ||
203 | KG_TOK_MIC_MSG); | ||
204 | if (!maj_stat && qop_state) | ||
205 | *qstate = qop_state; | ||
206 | |||
207 | dprintk("RPC: gss_verify_mic_kerberos returning %d\n", maj_stat); | ||
208 | return maj_stat; | ||
209 | } | ||
210 | |||
211 | static u32 | ||
212 | gss_get_mic_kerberos(struct gss_ctx *ctx, | ||
213 | u32 qop, | ||
214 | struct xdr_buf *message, | ||
215 | struct xdr_netobj *mic_token) { | ||
216 | u32 err = 0; | ||
217 | struct krb5_ctx *kctx = ctx->internal_ctx_id; | ||
218 | |||
219 | err = krb5_make_token(kctx, qop, message, mic_token, KG_TOK_MIC_MSG); | ||
220 | |||
221 | dprintk("RPC: gss_get_mic_kerberos returning %d\n",err); | ||
222 | |||
223 | return err; | ||
224 | } | ||
225 | |||
226 | static struct gss_api_ops gss_kerberos_ops = { | 193 | static struct gss_api_ops gss_kerberos_ops = { |
227 | .gss_import_sec_context = gss_import_sec_context_kerberos, | 194 | .gss_import_sec_context = gss_import_sec_context_kerberos, |
228 | .gss_get_mic = gss_get_mic_kerberos, | 195 | .gss_get_mic = gss_get_mic_kerberos, |
229 | .gss_verify_mic = gss_verify_mic_kerberos, | 196 | .gss_verify_mic = gss_verify_mic_kerberos, |
197 | .gss_wrap = gss_wrap_kerberos, | ||
198 | .gss_unwrap = gss_unwrap_kerberos, | ||
230 | .gss_delete_sec_context = gss_delete_sec_context_kerberos, | 199 | .gss_delete_sec_context = gss_delete_sec_context_kerberos, |
231 | }; | 200 | }; |
232 | 201 | ||
@@ -241,6 +210,11 @@ static struct pf_desc gss_kerberos_pfs[] = { | |||
241 | .service = RPC_GSS_SVC_INTEGRITY, | 210 | .service = RPC_GSS_SVC_INTEGRITY, |
242 | .name = "krb5i", | 211 | .name = "krb5i", |
243 | }, | 212 | }, |
213 | [2] = { | ||
214 | .pseudoflavor = RPC_AUTH_GSS_KRB5P, | ||
215 | .service = RPC_GSS_SVC_PRIVACY, | ||
216 | .name = "krb5p", | ||
217 | }, | ||
244 | }; | 218 | }; |
245 | 219 | ||
246 | static struct gss_api_mech gss_kerberos_mech = { | 220 | static struct gss_api_mech gss_kerberos_mech = { |
diff --git a/net/sunrpc/auth_gss/gss_krb5_seal.c b/net/sunrpc/auth_gss/gss_krb5_seal.c index afeeb8715a77..13f8ae979454 100644 --- a/net/sunrpc/auth_gss/gss_krb5_seal.c +++ b/net/sunrpc/auth_gss/gss_krb5_seal.c | |||
@@ -70,22 +70,13 @@ | |||
70 | # define RPCDBG_FACILITY RPCDBG_AUTH | 70 | # define RPCDBG_FACILITY RPCDBG_AUTH |
71 | #endif | 71 | #endif |
72 | 72 | ||
73 | static inline int | ||
74 | gss_krb5_padding(int blocksize, int length) { | ||
75 | /* Most of the code is block-size independent but in practice we | ||
76 | * use only 8: */ | ||
77 | BUG_ON(blocksize != 8); | ||
78 | return 8 - (length & 7); | ||
79 | } | ||
80 | |||
81 | u32 | 73 | u32 |
82 | krb5_make_token(struct krb5_ctx *ctx, int qop_req, | 74 | gss_get_mic_kerberos(struct gss_ctx *gss_ctx, struct xdr_buf *text, |
83 | struct xdr_buf *text, struct xdr_netobj *token, | 75 | struct xdr_netobj *token) |
84 | int toktype) | ||
85 | { | 76 | { |
77 | struct krb5_ctx *ctx = gss_ctx->internal_ctx_id; | ||
86 | s32 checksum_type; | 78 | s32 checksum_type; |
87 | struct xdr_netobj md5cksum = {.len = 0, .data = NULL}; | 79 | struct xdr_netobj md5cksum = {.len = 0, .data = NULL}; |
88 | int blocksize = 0, tmsglen; | ||
89 | unsigned char *ptr, *krb5_hdr, *msg_start; | 80 | unsigned char *ptr, *krb5_hdr, *msg_start; |
90 | s32 now; | 81 | s32 now; |
91 | 82 | ||
@@ -93,9 +84,6 @@ krb5_make_token(struct krb5_ctx *ctx, int qop_req, | |||
93 | 84 | ||
94 | now = get_seconds(); | 85 | now = get_seconds(); |
95 | 86 | ||
96 | if (qop_req != 0) | ||
97 | goto out_err; | ||
98 | |||
99 | switch (ctx->signalg) { | 87 | switch (ctx->signalg) { |
100 | case SGN_ALG_DES_MAC_MD5: | 88 | case SGN_ALG_DES_MAC_MD5: |
101 | checksum_type = CKSUMTYPE_RSA_MD5; | 89 | checksum_type = CKSUMTYPE_RSA_MD5; |
@@ -111,21 +99,13 @@ krb5_make_token(struct krb5_ctx *ctx, int qop_req, | |||
111 | goto out_err; | 99 | goto out_err; |
112 | } | 100 | } |
113 | 101 | ||
114 | if (toktype == KG_TOK_WRAP_MSG) { | 102 | token->len = g_token_size(&ctx->mech_used, 22); |
115 | blocksize = crypto_tfm_alg_blocksize(ctx->enc); | ||
116 | tmsglen = blocksize + text->len | ||
117 | + gss_krb5_padding(blocksize, blocksize + text->len); | ||
118 | } else { | ||
119 | tmsglen = 0; | ||
120 | } | ||
121 | |||
122 | token->len = g_token_size(&ctx->mech_used, 22 + tmsglen); | ||
123 | 103 | ||
124 | ptr = token->data; | 104 | ptr = token->data; |
125 | g_make_token_header(&ctx->mech_used, 22 + tmsglen, &ptr); | 105 | g_make_token_header(&ctx->mech_used, 22, &ptr); |
126 | 106 | ||
127 | *ptr++ = (unsigned char) ((toktype>>8)&0xff); | 107 | *ptr++ = (unsigned char) ((KG_TOK_MIC_MSG>>8)&0xff); |
128 | *ptr++ = (unsigned char) (toktype&0xff); | 108 | *ptr++ = (unsigned char) (KG_TOK_MIC_MSG&0xff); |
129 | 109 | ||
130 | /* ptr now at byte 2 of header described in rfc 1964, section 1.2.1: */ | 110 | /* ptr now at byte 2 of header described in rfc 1964, section 1.2.1: */ |
131 | krb5_hdr = ptr - 2; | 111 | krb5_hdr = ptr - 2; |
@@ -133,17 +113,9 @@ krb5_make_token(struct krb5_ctx *ctx, int qop_req, | |||
133 | 113 | ||
134 | *(u16 *)(krb5_hdr + 2) = htons(ctx->signalg); | 114 | *(u16 *)(krb5_hdr + 2) = htons(ctx->signalg); |
135 | memset(krb5_hdr + 4, 0xff, 4); | 115 | memset(krb5_hdr + 4, 0xff, 4); |
136 | if (toktype == KG_TOK_WRAP_MSG) | ||
137 | *(u16 *)(krb5_hdr + 4) = htons(ctx->sealalg); | ||
138 | 116 | ||
139 | if (toktype == KG_TOK_WRAP_MSG) { | 117 | if (make_checksum(checksum_type, krb5_hdr, 8, text, 0, &md5cksum)) |
140 | /* XXX removing support for now */ | ||
141 | goto out_err; | ||
142 | } else { /* Sign only. */ | ||
143 | if (make_checksum(checksum_type, krb5_hdr, 8, text, | ||
144 | &md5cksum)) | ||
145 | goto out_err; | 118 | goto out_err; |
146 | } | ||
147 | 119 | ||
148 | switch (ctx->signalg) { | 120 | switch (ctx->signalg) { |
149 | case SGN_ALG_DES_MAC_MD5: | 121 | case SGN_ALG_DES_MAC_MD5: |
diff --git a/net/sunrpc/auth_gss/gss_krb5_unseal.c b/net/sunrpc/auth_gss/gss_krb5_unseal.c index 8767fc53183d..2030475d98ed 100644 --- a/net/sunrpc/auth_gss/gss_krb5_unseal.c +++ b/net/sunrpc/auth_gss/gss_krb5_unseal.c | |||
@@ -68,21 +68,14 @@ | |||
68 | #endif | 68 | #endif |
69 | 69 | ||
70 | 70 | ||
71 | /* message_buffer is an input if toktype is MIC and an output if it is WRAP: | 71 | /* read_token is a mic token, and message_buffer is the data that the mic was |
72 | * If toktype is MIC: read_token is a mic token, and message_buffer is the | 72 | * supposedly taken over. */ |
73 | * data that the mic was supposedly taken over. | ||
74 | * If toktype is WRAP: read_token is a wrap token, and message_buffer is used | ||
75 | * to return the decrypted data. | ||
76 | */ | ||
77 | 73 | ||
78 | /* XXX will need to change prototype and/or just split into a separate function | ||
79 | * when we add privacy (because read_token will be in pages too). */ | ||
80 | u32 | 74 | u32 |
81 | krb5_read_token(struct krb5_ctx *ctx, | 75 | gss_verify_mic_kerberos(struct gss_ctx *gss_ctx, |
82 | struct xdr_netobj *read_token, | 76 | struct xdr_buf *message_buffer, struct xdr_netobj *read_token) |
83 | struct xdr_buf *message_buffer, | ||
84 | int *qop_state, int toktype) | ||
85 | { | 77 | { |
78 | struct krb5_ctx *ctx = gss_ctx->internal_ctx_id; | ||
86 | int signalg; | 79 | int signalg; |
87 | int sealalg; | 80 | int sealalg; |
88 | s32 checksum_type; | 81 | s32 checksum_type; |
@@ -100,16 +93,12 @@ krb5_read_token(struct krb5_ctx *ctx, | |||
100 | read_token->len)) | 93 | read_token->len)) |
101 | goto out; | 94 | goto out; |
102 | 95 | ||
103 | if ((*ptr++ != ((toktype>>8)&0xff)) || (*ptr++ != (toktype&0xff))) | 96 | if ((*ptr++ != ((KG_TOK_MIC_MSG>>8)&0xff)) || |
97 | (*ptr++ != ( KG_TOK_MIC_MSG &0xff)) ) | ||
104 | goto out; | 98 | goto out; |
105 | 99 | ||
106 | /* XXX sanity-check bodysize?? */ | 100 | /* XXX sanity-check bodysize?? */ |
107 | 101 | ||
108 | if (toktype == KG_TOK_WRAP_MSG) { | ||
109 | /* XXX gone */ | ||
110 | goto out; | ||
111 | } | ||
112 | |||
113 | /* get the sign and seal algorithms */ | 102 | /* get the sign and seal algorithms */ |
114 | 103 | ||
115 | signalg = ptr[0] + (ptr[1] << 8); | 104 | signalg = ptr[0] + (ptr[1] << 8); |
@@ -120,14 +109,7 @@ krb5_read_token(struct krb5_ctx *ctx, | |||
120 | if ((ptr[4] != 0xff) || (ptr[5] != 0xff)) | 109 | if ((ptr[4] != 0xff) || (ptr[5] != 0xff)) |
121 | goto out; | 110 | goto out; |
122 | 111 | ||
123 | if (((toktype != KG_TOK_WRAP_MSG) && (sealalg != 0xffff)) || | 112 | if (sealalg != 0xffff) |
124 | ((toktype == KG_TOK_WRAP_MSG) && (sealalg == 0xffff))) | ||
125 | goto out; | ||
126 | |||
127 | /* in the current spec, there is only one valid seal algorithm per | ||
128 | key type, so a simple comparison is ok */ | ||
129 | |||
130 | if ((toktype == KG_TOK_WRAP_MSG) && !(sealalg == ctx->sealalg)) | ||
131 | goto out; | 113 | goto out; |
132 | 114 | ||
133 | /* there are several mappings of seal algorithms to sign algorithms, | 115 | /* there are several mappings of seal algorithms to sign algorithms, |
@@ -154,7 +136,7 @@ krb5_read_token(struct krb5_ctx *ctx, | |||
154 | switch (signalg) { | 136 | switch (signalg) { |
155 | case SGN_ALG_DES_MAC_MD5: | 137 | case SGN_ALG_DES_MAC_MD5: |
156 | ret = make_checksum(checksum_type, ptr - 2, 8, | 138 | ret = make_checksum(checksum_type, ptr - 2, 8, |
157 | message_buffer, &md5cksum); | 139 | message_buffer, 0, &md5cksum); |
158 | if (ret) | 140 | if (ret) |
159 | goto out; | 141 | goto out; |
160 | 142 | ||
@@ -175,9 +157,6 @@ krb5_read_token(struct krb5_ctx *ctx, | |||
175 | 157 | ||
176 | /* it got through unscathed. Make sure the context is unexpired */ | 158 | /* it got through unscathed. Make sure the context is unexpired */ |
177 | 159 | ||
178 | if (qop_state) | ||
179 | *qop_state = GSS_C_QOP_DEFAULT; | ||
180 | |||
181 | now = get_seconds(); | 160 | now = get_seconds(); |
182 | 161 | ||
183 | ret = GSS_S_CONTEXT_EXPIRED; | 162 | ret = GSS_S_CONTEXT_EXPIRED; |
diff --git a/net/sunrpc/auth_gss/gss_krb5_wrap.c b/net/sunrpc/auth_gss/gss_krb5_wrap.c new file mode 100644 index 000000000000..af777cf9f251 --- /dev/null +++ b/net/sunrpc/auth_gss/gss_krb5_wrap.c | |||
@@ -0,0 +1,363 @@ | |||
1 | #include <linux/types.h> | ||
2 | #include <linux/slab.h> | ||
3 | #include <linux/jiffies.h> | ||
4 | #include <linux/sunrpc/gss_krb5.h> | ||
5 | #include <linux/random.h> | ||
6 | #include <linux/pagemap.h> | ||
7 | #include <asm/scatterlist.h> | ||
8 | #include <linux/crypto.h> | ||
9 | |||
10 | #ifdef RPC_DEBUG | ||
11 | # define RPCDBG_FACILITY RPCDBG_AUTH | ||
12 | #endif | ||
13 | |||
14 | static inline int | ||
15 | gss_krb5_padding(int blocksize, int length) | ||
16 | { | ||
17 | /* Most of the code is block-size independent but currently we | ||
18 | * use only 8: */ | ||
19 | BUG_ON(blocksize != 8); | ||
20 | return 8 - (length & 7); | ||
21 | } | ||
22 | |||
23 | static inline void | ||
24 | gss_krb5_add_padding(struct xdr_buf *buf, int offset, int blocksize) | ||
25 | { | ||
26 | int padding = gss_krb5_padding(blocksize, buf->len - offset); | ||
27 | char *p; | ||
28 | struct kvec *iov; | ||
29 | |||
30 | if (buf->page_len || buf->tail[0].iov_len) | ||
31 | iov = &buf->tail[0]; | ||
32 | else | ||
33 | iov = &buf->head[0]; | ||
34 | p = iov->iov_base + iov->iov_len; | ||
35 | iov->iov_len += padding; | ||
36 | buf->len += padding; | ||
37 | memset(p, padding, padding); | ||
38 | } | ||
39 | |||
40 | static inline int | ||
41 | gss_krb5_remove_padding(struct xdr_buf *buf, int blocksize) | ||
42 | { | ||
43 | u8 *ptr; | ||
44 | u8 pad; | ||
45 | int len = buf->len; | ||
46 | |||
47 | if (len <= buf->head[0].iov_len) { | ||
48 | pad = *(u8 *)(buf->head[0].iov_base + len - 1); | ||
49 | if (pad > buf->head[0].iov_len) | ||
50 | return -EINVAL; | ||
51 | buf->head[0].iov_len -= pad; | ||
52 | goto out; | ||
53 | } else | ||
54 | len -= buf->head[0].iov_len; | ||
55 | if (len <= buf->page_len) { | ||
56 | int last = (buf->page_base + len - 1) | ||
57 | >>PAGE_CACHE_SHIFT; | ||
58 | int offset = (buf->page_base + len - 1) | ||
59 | & (PAGE_CACHE_SIZE - 1); | ||
60 | ptr = kmap_atomic(buf->pages[last], KM_SKB_SUNRPC_DATA); | ||
61 | pad = *(ptr + offset); | ||
62 | kunmap_atomic(ptr, KM_SKB_SUNRPC_DATA); | ||
63 | goto out; | ||
64 | } else | ||
65 | len -= buf->page_len; | ||
66 | BUG_ON(len > buf->tail[0].iov_len); | ||
67 | pad = *(u8 *)(buf->tail[0].iov_base + len - 1); | ||
68 | out: | ||
69 | /* XXX: NOTE: we do not adjust the page lengths--they represent | ||
70 | * a range of data in the real filesystem page cache, and we need | ||
71 | * to know that range so the xdr code can properly place read data. | ||
72 | * However adjusting the head length, as we do above, is harmless. | ||
73 | * In the case of a request that fits into a single page, the server | ||
74 | * also uses length and head length together to determine the original | ||
75 | * start of the request to copy the request for deferal; so it's | ||
76 | * easier on the server if we adjust head and tail length in tandem. | ||
77 | * It's not really a problem that we don't fool with the page and | ||
78 | * tail lengths, though--at worst badly formed xdr might lead the | ||
79 | * server to attempt to parse the padding. | ||
80 | * XXX: Document all these weird requirements for gss mechanism | ||
81 | * wrap/unwrap functions. */ | ||
82 | if (pad > blocksize) | ||
83 | return -EINVAL; | ||
84 | if (buf->len > pad) | ||
85 | buf->len -= pad; | ||
86 | else | ||
87 | return -EINVAL; | ||
88 | return 0; | ||
89 | } | ||
90 | |||
91 | static inline void | ||
92 | make_confounder(char *p, int blocksize) | ||
93 | { | ||
94 | static u64 i = 0; | ||
95 | u64 *q = (u64 *)p; | ||
96 | |||
97 | /* rfc1964 claims this should be "random". But all that's really | ||
98 | * necessary is that it be unique. And not even that is necessary in | ||
99 | * our case since our "gssapi" implementation exists only to support | ||
100 | * rpcsec_gss, so we know that the only buffers we will ever encrypt | ||
101 | * already begin with a unique sequence number. Just to hedge my bets | ||
102 | * I'll make a half-hearted attempt at something unique, but ensuring | ||
103 | * uniqueness would mean worrying about atomicity and rollover, and I | ||
104 | * don't care enough. */ | ||
105 | |||
106 | BUG_ON(blocksize != 8); | ||
107 | *q = i++; | ||
108 | } | ||
109 | |||
110 | /* Assumptions: the head and tail of inbuf are ours to play with. | ||
111 | * The pages, however, may be real pages in the page cache and we replace | ||
112 | * them with scratch pages from **pages before writing to them. */ | ||
113 | /* XXX: obviously the above should be documentation of wrap interface, | ||
114 | * and shouldn't be in this kerberos-specific file. */ | ||
115 | |||
116 | /* XXX factor out common code with seal/unseal. */ | ||
117 | |||
118 | u32 | ||
119 | gss_wrap_kerberos(struct gss_ctx *ctx, int offset, | ||
120 | struct xdr_buf *buf, struct page **pages) | ||
121 | { | ||
122 | struct krb5_ctx *kctx = ctx->internal_ctx_id; | ||
123 | s32 checksum_type; | ||
124 | struct xdr_netobj md5cksum = {.len = 0, .data = NULL}; | ||
125 | int blocksize = 0, plainlen; | ||
126 | unsigned char *ptr, *krb5_hdr, *msg_start; | ||
127 | s32 now; | ||
128 | int headlen; | ||
129 | struct page **tmp_pages; | ||
130 | |||
131 | dprintk("RPC: gss_wrap_kerberos\n"); | ||
132 | |||
133 | now = get_seconds(); | ||
134 | |||
135 | switch (kctx->signalg) { | ||
136 | case SGN_ALG_DES_MAC_MD5: | ||
137 | checksum_type = CKSUMTYPE_RSA_MD5; | ||
138 | break; | ||
139 | default: | ||
140 | dprintk("RPC: gss_krb5_seal: kctx->signalg %d not" | ||
141 | " supported\n", kctx->signalg); | ||
142 | goto out_err; | ||
143 | } | ||
144 | if (kctx->sealalg != SEAL_ALG_NONE && kctx->sealalg != SEAL_ALG_DES) { | ||
145 | dprintk("RPC: gss_krb5_seal: kctx->sealalg %d not supported\n", | ||
146 | kctx->sealalg); | ||
147 | goto out_err; | ||
148 | } | ||
149 | |||
150 | blocksize = crypto_tfm_alg_blocksize(kctx->enc); | ||
151 | gss_krb5_add_padding(buf, offset, blocksize); | ||
152 | BUG_ON((buf->len - offset) % blocksize); | ||
153 | plainlen = blocksize + buf->len - offset; | ||
154 | |||
155 | headlen = g_token_size(&kctx->mech_used, 22 + plainlen) - | ||
156 | (buf->len - offset); | ||
157 | |||
158 | ptr = buf->head[0].iov_base + offset; | ||
159 | /* shift data to make room for header. */ | ||
160 | /* XXX Would be cleverer to encrypt while copying. */ | ||
161 | /* XXX bounds checking, slack, etc. */ | ||
162 | memmove(ptr + headlen, ptr, buf->head[0].iov_len - offset); | ||
163 | buf->head[0].iov_len += headlen; | ||
164 | buf->len += headlen; | ||
165 | BUG_ON((buf->len - offset - headlen) % blocksize); | ||
166 | |||
167 | g_make_token_header(&kctx->mech_used, 22 + plainlen, &ptr); | ||
168 | |||
169 | |||
170 | *ptr++ = (unsigned char) ((KG_TOK_WRAP_MSG>>8)&0xff); | ||
171 | *ptr++ = (unsigned char) (KG_TOK_WRAP_MSG&0xff); | ||
172 | |||
173 | /* ptr now at byte 2 of header described in rfc 1964, section 1.2.1: */ | ||
174 | krb5_hdr = ptr - 2; | ||
175 | msg_start = krb5_hdr + 24; | ||
176 | /* XXXJBF: */ BUG_ON(buf->head[0].iov_base + offset + headlen != msg_start + blocksize); | ||
177 | |||
178 | *(u16 *)(krb5_hdr + 2) = htons(kctx->signalg); | ||
179 | memset(krb5_hdr + 4, 0xff, 4); | ||
180 | *(u16 *)(krb5_hdr + 4) = htons(kctx->sealalg); | ||
181 | |||
182 | make_confounder(msg_start, blocksize); | ||
183 | |||
184 | /* XXXJBF: UGH!: */ | ||
185 | tmp_pages = buf->pages; | ||
186 | buf->pages = pages; | ||
187 | if (make_checksum(checksum_type, krb5_hdr, 8, buf, | ||
188 | offset + headlen - blocksize, &md5cksum)) | ||
189 | goto out_err; | ||
190 | buf->pages = tmp_pages; | ||
191 | |||
192 | switch (kctx->signalg) { | ||
193 | case SGN_ALG_DES_MAC_MD5: | ||
194 | if (krb5_encrypt(kctx->seq, NULL, md5cksum.data, | ||
195 | md5cksum.data, md5cksum.len)) | ||
196 | goto out_err; | ||
197 | memcpy(krb5_hdr + 16, | ||
198 | md5cksum.data + md5cksum.len - KRB5_CKSUM_LENGTH, | ||
199 | KRB5_CKSUM_LENGTH); | ||
200 | |||
201 | dprintk("RPC: make_seal_token: cksum data: \n"); | ||
202 | print_hexl((u32 *) (krb5_hdr + 16), KRB5_CKSUM_LENGTH, 0); | ||
203 | break; | ||
204 | default: | ||
205 | BUG(); | ||
206 | } | ||
207 | |||
208 | kfree(md5cksum.data); | ||
209 | |||
210 | /* XXX would probably be more efficient to compute checksum | ||
211 | * and encrypt at the same time: */ | ||
212 | if ((krb5_make_seq_num(kctx->seq, kctx->initiate ? 0 : 0xff, | ||
213 | kctx->seq_send, krb5_hdr + 16, krb5_hdr + 8))) | ||
214 | goto out_err; | ||
215 | |||
216 | if (gss_encrypt_xdr_buf(kctx->enc, buf, offset + headlen - blocksize, | ||
217 | pages)) | ||
218 | goto out_err; | ||
219 | |||
220 | kctx->seq_send++; | ||
221 | |||
222 | return ((kctx->endtime < now) ? GSS_S_CONTEXT_EXPIRED : GSS_S_COMPLETE); | ||
223 | out_err: | ||
224 | if (md5cksum.data) kfree(md5cksum.data); | ||
225 | return GSS_S_FAILURE; | ||
226 | } | ||
227 | |||
228 | u32 | ||
229 | gss_unwrap_kerberos(struct gss_ctx *ctx, int offset, struct xdr_buf *buf) | ||
230 | { | ||
231 | struct krb5_ctx *kctx = ctx->internal_ctx_id; | ||
232 | int signalg; | ||
233 | int sealalg; | ||
234 | s32 checksum_type; | ||
235 | struct xdr_netobj md5cksum = {.len = 0, .data = NULL}; | ||
236 | s32 now; | ||
237 | int direction; | ||
238 | s32 seqnum; | ||
239 | unsigned char *ptr; | ||
240 | int bodysize; | ||
241 | u32 ret = GSS_S_DEFECTIVE_TOKEN; | ||
242 | void *data_start, *orig_start; | ||
243 | int data_len; | ||
244 | int blocksize; | ||
245 | |||
246 | dprintk("RPC: gss_unwrap_kerberos\n"); | ||
247 | |||
248 | ptr = (u8 *)buf->head[0].iov_base + offset; | ||
249 | if (g_verify_token_header(&kctx->mech_used, &bodysize, &ptr, | ||
250 | buf->len - offset)) | ||
251 | goto out; | ||
252 | |||
253 | if ((*ptr++ != ((KG_TOK_WRAP_MSG>>8)&0xff)) || | ||
254 | (*ptr++ != (KG_TOK_WRAP_MSG &0xff)) ) | ||
255 | goto out; | ||
256 | |||
257 | /* XXX sanity-check bodysize?? */ | ||
258 | |||
259 | /* get the sign and seal algorithms */ | ||
260 | |||
261 | signalg = ptr[0] + (ptr[1] << 8); | ||
262 | sealalg = ptr[2] + (ptr[3] << 8); | ||
263 | |||
264 | /* Sanity checks */ | ||
265 | |||
266 | if ((ptr[4] != 0xff) || (ptr[5] != 0xff)) | ||
267 | goto out; | ||
268 | |||
269 | if (sealalg == 0xffff) | ||
270 | goto out; | ||
271 | |||
272 | /* in the current spec, there is only one valid seal algorithm per | ||
273 | key type, so a simple comparison is ok */ | ||
274 | |||
275 | if (sealalg != kctx->sealalg) | ||
276 | goto out; | ||
277 | |||
278 | /* there are several mappings of seal algorithms to sign algorithms, | ||
279 | but few enough that we can try them all. */ | ||
280 | |||
281 | if ((kctx->sealalg == SEAL_ALG_NONE && signalg > 1) || | ||
282 | (kctx->sealalg == SEAL_ALG_1 && signalg != SGN_ALG_3) || | ||
283 | (kctx->sealalg == SEAL_ALG_DES3KD && | ||
284 | signalg != SGN_ALG_HMAC_SHA1_DES3_KD)) | ||
285 | goto out; | ||
286 | |||
287 | if (gss_decrypt_xdr_buf(kctx->enc, buf, | ||
288 | ptr + 22 - (unsigned char *)buf->head[0].iov_base)) | ||
289 | goto out; | ||
290 | |||
291 | /* compute the checksum of the message */ | ||
292 | |||
293 | /* initialize the the cksum */ | ||
294 | switch (signalg) { | ||
295 | case SGN_ALG_DES_MAC_MD5: | ||
296 | checksum_type = CKSUMTYPE_RSA_MD5; | ||
297 | break; | ||
298 | default: | ||
299 | ret = GSS_S_DEFECTIVE_TOKEN; | ||
300 | goto out; | ||
301 | } | ||
302 | |||
303 | switch (signalg) { | ||
304 | case SGN_ALG_DES_MAC_MD5: | ||
305 | ret = make_checksum(checksum_type, ptr - 2, 8, buf, | ||
306 | ptr + 22 - (unsigned char *)buf->head[0].iov_base, &md5cksum); | ||
307 | if (ret) | ||
308 | goto out; | ||
309 | |||
310 | ret = krb5_encrypt(kctx->seq, NULL, md5cksum.data, | ||
311 | md5cksum.data, md5cksum.len); | ||
312 | if (ret) | ||
313 | goto out; | ||
314 | |||
315 | if (memcmp(md5cksum.data + 8, ptr + 14, 8)) { | ||
316 | ret = GSS_S_BAD_SIG; | ||
317 | goto out; | ||
318 | } | ||
319 | break; | ||
320 | default: | ||
321 | ret = GSS_S_DEFECTIVE_TOKEN; | ||
322 | goto out; | ||
323 | } | ||
324 | |||
325 | /* it got through unscathed. Make sure the context is unexpired */ | ||
326 | |||
327 | now = get_seconds(); | ||
328 | |||
329 | ret = GSS_S_CONTEXT_EXPIRED; | ||
330 | if (now > kctx->endtime) | ||
331 | goto out; | ||
332 | |||
333 | /* do sequencing checks */ | ||
334 | |||
335 | ret = GSS_S_BAD_SIG; | ||
336 | if ((ret = krb5_get_seq_num(kctx->seq, ptr + 14, ptr + 6, &direction, | ||
337 | &seqnum))) | ||
338 | goto out; | ||
339 | |||
340 | if ((kctx->initiate && direction != 0xff) || | ||
341 | (!kctx->initiate && direction != 0)) | ||
342 | goto out; | ||
343 | |||
344 | /* Copy the data back to the right position. XXX: Would probably be | ||
345 | * better to copy and encrypt at the same time. */ | ||
346 | |||
347 | blocksize = crypto_tfm_alg_blocksize(kctx->enc); | ||
348 | data_start = ptr + 22 + blocksize; | ||
349 | orig_start = buf->head[0].iov_base + offset; | ||
350 | data_len = (buf->head[0].iov_base + buf->head[0].iov_len) - data_start; | ||
351 | memmove(orig_start, data_start, data_len); | ||
352 | buf->head[0].iov_len -= (data_start - orig_start); | ||
353 | buf->len -= (data_start - orig_start); | ||
354 | |||
355 | ret = GSS_S_DEFECTIVE_TOKEN; | ||
356 | if (gss_krb5_remove_padding(buf, blocksize)) | ||
357 | goto out; | ||
358 | |||
359 | ret = GSS_S_COMPLETE; | ||
360 | out: | ||
361 | if (md5cksum.data) kfree(md5cksum.data); | ||
362 | return ret; | ||
363 | } | ||
diff --git a/net/sunrpc/auth_gss/gss_mech_switch.c b/net/sunrpc/auth_gss/gss_mech_switch.c index 58aeaddd8c79..b048bf672da2 100644 --- a/net/sunrpc/auth_gss/gss_mech_switch.c +++ b/net/sunrpc/auth_gss/gss_mech_switch.c | |||
@@ -250,13 +250,11 @@ gss_import_sec_context(const void *input_token, size_t bufsize, | |||
250 | 250 | ||
251 | u32 | 251 | u32 |
252 | gss_get_mic(struct gss_ctx *context_handle, | 252 | gss_get_mic(struct gss_ctx *context_handle, |
253 | u32 qop, | ||
254 | struct xdr_buf *message, | 253 | struct xdr_buf *message, |
255 | struct xdr_netobj *mic_token) | 254 | struct xdr_netobj *mic_token) |
256 | { | 255 | { |
257 | return context_handle->mech_type->gm_ops | 256 | return context_handle->mech_type->gm_ops |
258 | ->gss_get_mic(context_handle, | 257 | ->gss_get_mic(context_handle, |
259 | qop, | ||
260 | message, | 258 | message, |
261 | mic_token); | 259 | mic_token); |
262 | } | 260 | } |
@@ -266,16 +264,34 @@ gss_get_mic(struct gss_ctx *context_handle, | |||
266 | u32 | 264 | u32 |
267 | gss_verify_mic(struct gss_ctx *context_handle, | 265 | gss_verify_mic(struct gss_ctx *context_handle, |
268 | struct xdr_buf *message, | 266 | struct xdr_buf *message, |
269 | struct xdr_netobj *mic_token, | 267 | struct xdr_netobj *mic_token) |
270 | u32 *qstate) | ||
271 | { | 268 | { |
272 | return context_handle->mech_type->gm_ops | 269 | return context_handle->mech_type->gm_ops |
273 | ->gss_verify_mic(context_handle, | 270 | ->gss_verify_mic(context_handle, |
274 | message, | 271 | message, |
275 | mic_token, | 272 | mic_token); |
276 | qstate); | ||
277 | } | 273 | } |
278 | 274 | ||
275 | u32 | ||
276 | gss_wrap(struct gss_ctx *ctx_id, | ||
277 | int offset, | ||
278 | struct xdr_buf *buf, | ||
279 | struct page **inpages) | ||
280 | { | ||
281 | return ctx_id->mech_type->gm_ops | ||
282 | ->gss_wrap(ctx_id, offset, buf, inpages); | ||
283 | } | ||
284 | |||
285 | u32 | ||
286 | gss_unwrap(struct gss_ctx *ctx_id, | ||
287 | int offset, | ||
288 | struct xdr_buf *buf) | ||
289 | { | ||
290 | return ctx_id->mech_type->gm_ops | ||
291 | ->gss_unwrap(ctx_id, offset, buf); | ||
292 | } | ||
293 | |||
294 | |||
279 | /* gss_delete_sec_context: free all resources associated with context_handle. | 295 | /* gss_delete_sec_context: free all resources associated with context_handle. |
280 | * Note this differs from the RFC 2744-specified prototype in that we don't | 296 | * Note this differs from the RFC 2744-specified prototype in that we don't |
281 | * bother returning an output token, since it would never be used anyway. */ | 297 | * bother returning an output token, since it would never be used anyway. */ |
diff --git a/net/sunrpc/auth_gss/gss_spkm3_mech.c b/net/sunrpc/auth_gss/gss_spkm3_mech.c index 6c97d61baa9b..39b3edc14694 100644 --- a/net/sunrpc/auth_gss/gss_spkm3_mech.c +++ b/net/sunrpc/auth_gss/gss_spkm3_mech.c | |||
@@ -224,18 +224,13 @@ gss_delete_sec_context_spkm3(void *internal_ctx) { | |||
224 | static u32 | 224 | static u32 |
225 | gss_verify_mic_spkm3(struct gss_ctx *ctx, | 225 | gss_verify_mic_spkm3(struct gss_ctx *ctx, |
226 | struct xdr_buf *signbuf, | 226 | struct xdr_buf *signbuf, |
227 | struct xdr_netobj *checksum, | 227 | struct xdr_netobj *checksum) |
228 | u32 *qstate) { | 228 | { |
229 | u32 maj_stat = 0; | 229 | u32 maj_stat = 0; |
230 | int qop_state = 0; | ||
231 | struct spkm3_ctx *sctx = ctx->internal_ctx_id; | 230 | struct spkm3_ctx *sctx = ctx->internal_ctx_id; |
232 | 231 | ||
233 | dprintk("RPC: gss_verify_mic_spkm3 calling spkm3_read_token\n"); | 232 | dprintk("RPC: gss_verify_mic_spkm3 calling spkm3_read_token\n"); |
234 | maj_stat = spkm3_read_token(sctx, checksum, signbuf, &qop_state, | 233 | maj_stat = spkm3_read_token(sctx, checksum, signbuf, SPKM_MIC_TOK); |
235 | SPKM_MIC_TOK); | ||
236 | |||
237 | if (!maj_stat && qop_state) | ||
238 | *qstate = qop_state; | ||
239 | 234 | ||
240 | dprintk("RPC: gss_verify_mic_spkm3 returning %d\n", maj_stat); | 235 | dprintk("RPC: gss_verify_mic_spkm3 returning %d\n", maj_stat); |
241 | return maj_stat; | 236 | return maj_stat; |
@@ -243,15 +238,15 @@ gss_verify_mic_spkm3(struct gss_ctx *ctx, | |||
243 | 238 | ||
244 | static u32 | 239 | static u32 |
245 | gss_get_mic_spkm3(struct gss_ctx *ctx, | 240 | gss_get_mic_spkm3(struct gss_ctx *ctx, |
246 | u32 qop, | ||
247 | struct xdr_buf *message_buffer, | 241 | struct xdr_buf *message_buffer, |
248 | struct xdr_netobj *message_token) { | 242 | struct xdr_netobj *message_token) |
243 | { | ||
249 | u32 err = 0; | 244 | u32 err = 0; |
250 | struct spkm3_ctx *sctx = ctx->internal_ctx_id; | 245 | struct spkm3_ctx *sctx = ctx->internal_ctx_id; |
251 | 246 | ||
252 | dprintk("RPC: gss_get_mic_spkm3\n"); | 247 | dprintk("RPC: gss_get_mic_spkm3\n"); |
253 | 248 | ||
254 | err = spkm3_make_token(sctx, qop, message_buffer, | 249 | err = spkm3_make_token(sctx, message_buffer, |
255 | message_token, SPKM_MIC_TOK); | 250 | message_token, SPKM_MIC_TOK); |
256 | return err; | 251 | return err; |
257 | } | 252 | } |
@@ -264,8 +259,8 @@ static struct gss_api_ops gss_spkm3_ops = { | |||
264 | }; | 259 | }; |
265 | 260 | ||
266 | static struct pf_desc gss_spkm3_pfs[] = { | 261 | static struct pf_desc gss_spkm3_pfs[] = { |
267 | {RPC_AUTH_GSS_SPKM, 0, RPC_GSS_SVC_NONE, "spkm3"}, | 262 | {RPC_AUTH_GSS_SPKM, RPC_GSS_SVC_NONE, "spkm3"}, |
268 | {RPC_AUTH_GSS_SPKMI, 0, RPC_GSS_SVC_INTEGRITY, "spkm3i"}, | 263 | {RPC_AUTH_GSS_SPKMI, RPC_GSS_SVC_INTEGRITY, "spkm3i"}, |
269 | }; | 264 | }; |
270 | 265 | ||
271 | static struct gss_api_mech gss_spkm3_mech = { | 266 | static struct gss_api_mech gss_spkm3_mech = { |
diff --git a/net/sunrpc/auth_gss/gss_spkm3_seal.c b/net/sunrpc/auth_gss/gss_spkm3_seal.c index 25339868d462..148201e929d0 100644 --- a/net/sunrpc/auth_gss/gss_spkm3_seal.c +++ b/net/sunrpc/auth_gss/gss_spkm3_seal.c | |||
@@ -51,7 +51,7 @@ | |||
51 | */ | 51 | */ |
52 | 52 | ||
53 | u32 | 53 | u32 |
54 | spkm3_make_token(struct spkm3_ctx *ctx, int qop_req, | 54 | spkm3_make_token(struct spkm3_ctx *ctx, |
55 | struct xdr_buf * text, struct xdr_netobj * token, | 55 | struct xdr_buf * text, struct xdr_netobj * token, |
56 | int toktype) | 56 | int toktype) |
57 | { | 57 | { |
@@ -68,8 +68,6 @@ spkm3_make_token(struct spkm3_ctx *ctx, int qop_req, | |||
68 | dprintk("RPC: spkm3_make_token\n"); | 68 | dprintk("RPC: spkm3_make_token\n"); |
69 | 69 | ||
70 | now = jiffies; | 70 | now = jiffies; |
71 | if (qop_req != 0) | ||
72 | goto out_err; | ||
73 | 71 | ||
74 | if (ctx->ctx_id.len != 16) { | 72 | if (ctx->ctx_id.len != 16) { |
75 | dprintk("RPC: spkm3_make_token BAD ctx_id.len %d\n", | 73 | dprintk("RPC: spkm3_make_token BAD ctx_id.len %d\n", |
diff --git a/net/sunrpc/auth_gss/gss_spkm3_unseal.c b/net/sunrpc/auth_gss/gss_spkm3_unseal.c index 65ce81bf0bc4..c3c0d9586103 100644 --- a/net/sunrpc/auth_gss/gss_spkm3_unseal.c +++ b/net/sunrpc/auth_gss/gss_spkm3_unseal.c | |||
@@ -52,7 +52,7 @@ u32 | |||
52 | spkm3_read_token(struct spkm3_ctx *ctx, | 52 | spkm3_read_token(struct spkm3_ctx *ctx, |
53 | struct xdr_netobj *read_token, /* checksum */ | 53 | struct xdr_netobj *read_token, /* checksum */ |
54 | struct xdr_buf *message_buffer, /* signbuf */ | 54 | struct xdr_buf *message_buffer, /* signbuf */ |
55 | int *qop_state, int toktype) | 55 | int toktype) |
56 | { | 56 | { |
57 | s32 code; | 57 | s32 code; |
58 | struct xdr_netobj wire_cksum = {.len =0, .data = NULL}; | 58 | struct xdr_netobj wire_cksum = {.len =0, .data = NULL}; |
diff --git a/net/sunrpc/auth_gss/svcauth_gss.c b/net/sunrpc/auth_gss/svcauth_gss.c index e3308195374e..e4ada15ed856 100644 --- a/net/sunrpc/auth_gss/svcauth_gss.c +++ b/net/sunrpc/auth_gss/svcauth_gss.c | |||
@@ -566,8 +566,7 @@ gss_verify_header(struct svc_rqst *rqstp, struct rsc *rsci, | |||
566 | 566 | ||
567 | if (rqstp->rq_deferred) /* skip verification of revisited request */ | 567 | if (rqstp->rq_deferred) /* skip verification of revisited request */ |
568 | return SVC_OK; | 568 | return SVC_OK; |
569 | if (gss_verify_mic(ctx_id, &rpchdr, &checksum, NULL) | 569 | if (gss_verify_mic(ctx_id, &rpchdr, &checksum) != GSS_S_COMPLETE) { |
570 | != GSS_S_COMPLETE) { | ||
571 | *authp = rpcsec_gsserr_credproblem; | 570 | *authp = rpcsec_gsserr_credproblem; |
572 | return SVC_DENIED; | 571 | return SVC_DENIED; |
573 | } | 572 | } |
@@ -604,7 +603,7 @@ gss_write_verf(struct svc_rqst *rqstp, struct gss_ctx *ctx_id, u32 seq) | |||
604 | xdr_buf_from_iov(&iov, &verf_data); | 603 | xdr_buf_from_iov(&iov, &verf_data); |
605 | p = rqstp->rq_res.head->iov_base + rqstp->rq_res.head->iov_len; | 604 | p = rqstp->rq_res.head->iov_base + rqstp->rq_res.head->iov_len; |
606 | mic.data = (u8 *)(p + 1); | 605 | mic.data = (u8 *)(p + 1); |
607 | maj_stat = gss_get_mic(ctx_id, 0, &verf_data, &mic); | 606 | maj_stat = gss_get_mic(ctx_id, &verf_data, &mic); |
608 | if (maj_stat != GSS_S_COMPLETE) | 607 | if (maj_stat != GSS_S_COMPLETE) |
609 | return -1; | 608 | return -1; |
610 | *p++ = htonl(mic.len); | 609 | *p++ = htonl(mic.len); |
@@ -710,7 +709,7 @@ unwrap_integ_data(struct xdr_buf *buf, u32 seq, struct gss_ctx *ctx) | |||
710 | goto out; | 709 | goto out; |
711 | if (read_bytes_from_xdr_buf(buf, integ_len + 4, mic.data, mic.len)) | 710 | if (read_bytes_from_xdr_buf(buf, integ_len + 4, mic.data, mic.len)) |
712 | goto out; | 711 | goto out; |
713 | maj_stat = gss_verify_mic(ctx, &integ_buf, &mic, NULL); | 712 | maj_stat = gss_verify_mic(ctx, &integ_buf, &mic); |
714 | if (maj_stat != GSS_S_COMPLETE) | 713 | if (maj_stat != GSS_S_COMPLETE) |
715 | goto out; | 714 | goto out; |
716 | if (ntohl(svc_getu32(&buf->head[0])) != seq) | 715 | if (ntohl(svc_getu32(&buf->head[0])) != seq) |
@@ -1012,7 +1011,7 @@ svcauth_gss_release(struct svc_rqst *rqstp) | |||
1012 | resv = &resbuf->tail[0]; | 1011 | resv = &resbuf->tail[0]; |
1013 | } | 1012 | } |
1014 | mic.data = (u8 *)resv->iov_base + resv->iov_len + 4; | 1013 | mic.data = (u8 *)resv->iov_base + resv->iov_len + 4; |
1015 | if (gss_get_mic(gsd->rsci->mechctx, 0, &integ_buf, &mic)) | 1014 | if (gss_get_mic(gsd->rsci->mechctx, &integ_buf, &mic)) |
1016 | goto out_err; | 1015 | goto out_err; |
1017 | svc_putu32(resv, htonl(mic.len)); | 1016 | svc_putu32(resv, htonl(mic.len)); |
1018 | memset(mic.data + mic.len, 0, | 1017 | memset(mic.data + mic.len, 0, |
diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c index 534274056329..702ede309b06 100644 --- a/net/sunrpc/clnt.c +++ b/net/sunrpc/clnt.c | |||
@@ -710,9 +710,16 @@ call_encode(struct rpc_task *task) | |||
710 | rpc_exit(task, -EIO); | 710 | rpc_exit(task, -EIO); |
711 | return; | 711 | return; |
712 | } | 712 | } |
713 | if (encode != NULL) | 713 | if (encode == NULL) |
714 | task->tk_status = rpcauth_wrap_req(task, encode, req, p, | 714 | return; |
715 | task->tk_msg.rpc_argp); | 715 | |
716 | task->tk_status = rpcauth_wrap_req(task, encode, req, p, | ||
717 | task->tk_msg.rpc_argp); | ||
718 | if (task->tk_status == -ENOMEM) { | ||
719 | /* XXX: Is this sane? */ | ||
720 | rpc_delay(task, 3*HZ); | ||
721 | task->tk_status = -EAGAIN; | ||
722 | } | ||
716 | } | 723 | } |
717 | 724 | ||
718 | /* | 725 | /* |
diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c index ded6c63f11ec..649d609e7d94 100644 --- a/net/sunrpc/rpc_pipe.c +++ b/net/sunrpc/rpc_pipe.c | |||
@@ -177,6 +177,8 @@ rpc_pipe_release(struct inode *inode, struct file *filp) | |||
177 | __rpc_purge_upcall(inode, -EPIPE); | 177 | __rpc_purge_upcall(inode, -EPIPE); |
178 | if (rpci->ops->release_pipe) | 178 | if (rpci->ops->release_pipe) |
179 | rpci->ops->release_pipe(inode); | 179 | rpci->ops->release_pipe(inode); |
180 | if (!rpci->nreaders && !rpci->nwriters) | ||
181 | rpci->ops = NULL; | ||
180 | out: | 182 | out: |
181 | up(&inode->i_sem); | 183 | up(&inode->i_sem); |
182 | return 0; | 184 | return 0; |
diff --git a/net/sunrpc/xprt.c b/net/sunrpc/xprt.c index 1ba55dc38b7a..6dda3860351f 100644 --- a/net/sunrpc/xprt.c +++ b/net/sunrpc/xprt.c | |||
@@ -839,6 +839,7 @@ static void xprt_request_init(struct rpc_task *task, struct rpc_xprt *xprt) | |||
839 | req->rq_task = task; | 839 | req->rq_task = task; |
840 | req->rq_xprt = xprt; | 840 | req->rq_xprt = xprt; |
841 | req->rq_xid = xprt_alloc_xid(xprt); | 841 | req->rq_xid = xprt_alloc_xid(xprt); |
842 | req->rq_release_snd_buf = NULL; | ||
842 | dprintk("RPC: %4d reserved req %p xid %08x\n", task->tk_pid, | 843 | dprintk("RPC: %4d reserved req %p xid %08x\n", task->tk_pid, |
843 | req, ntohl(req->rq_xid)); | 844 | req, ntohl(req->rq_xid)); |
844 | } | 845 | } |
@@ -867,6 +868,8 @@ void xprt_release(struct rpc_task *task) | |||
867 | xprt->last_used + xprt->idle_timeout); | 868 | xprt->last_used + xprt->idle_timeout); |
868 | spin_unlock_bh(&xprt->transport_lock); | 869 | spin_unlock_bh(&xprt->transport_lock); |
869 | task->tk_rqstp = NULL; | 870 | task->tk_rqstp = NULL; |
871 | if (req->rq_release_snd_buf) | ||
872 | req->rq_release_snd_buf(req); | ||
870 | memset(req, 0, sizeof(*req)); /* mark unused */ | 873 | memset(req, 0, sizeof(*req)); /* mark unused */ |
871 | 874 | ||
872 | dprintk("RPC: %4d release request %p\n", task->tk_pid, req); | 875 | dprintk("RPC: %4d release request %p\n", task->tk_pid, req); |
diff --git a/scripts/.gitignore b/scripts/.gitignore new file mode 100644 index 000000000000..b46d68bb9e17 --- /dev/null +++ b/scripts/.gitignore | |||
@@ -0,0 +1,4 @@ | |||
1 | conmakehash | ||
2 | kallsyms | ||
3 | pnmtologo | ||
4 | |||
diff --git a/scripts/basic/.gitignore b/scripts/basic/.gitignore new file mode 100644 index 000000000000..7304e19782c7 --- /dev/null +++ b/scripts/basic/.gitignore | |||
@@ -0,0 +1,3 @@ | |||
1 | fixdep | ||
2 | split-include | ||
3 | docproc | ||
diff --git a/scripts/kconfig/.gitignore b/scripts/kconfig/.gitignore new file mode 100644 index 000000000000..2dac3442e0ac --- /dev/null +++ b/scripts/kconfig/.gitignore | |||
@@ -0,0 +1,16 @@ | |||
1 | # | ||
2 | # Generated files | ||
3 | # | ||
4 | config* | ||
5 | lex.*.c | ||
6 | *.tab.c | ||
7 | *.tab.h | ||
8 | |||
9 | # | ||
10 | # configuration programs | ||
11 | # | ||
12 | conf | ||
13 | mconf | ||
14 | qconf | ||
15 | gconf | ||
16 | kxgettext | ||
diff --git a/scripts/mod/.gitignore b/scripts/mod/.gitignore new file mode 100644 index 000000000000..e9b7abe7b95b --- /dev/null +++ b/scripts/mod/.gitignore | |||
@@ -0,0 +1,4 @@ | |||
1 | elfconfig.h | ||
2 | mk_elfconfig | ||
3 | modpost | ||
4 | |||
diff --git a/usr/.gitignore b/usr/.gitignore new file mode 100644 index 000000000000..be186a82e8d0 --- /dev/null +++ b/usr/.gitignore | |||
@@ -0,0 +1,7 @@ | |||
1 | # | ||
2 | # Generated files | ||
3 | # | ||
4 | gen_init_cpio | ||
5 | initramfs_data.cpio | ||
6 | initramfs_data.cpio.gz | ||
7 | initramfs_list | ||