aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.osdl.org>2006-12-21 02:59:36 -0500
committerLinus Torvalds <torvalds@woody.osdl.org>2006-12-21 02:59:36 -0500
commit5576d187a0eef3bb3c47500eaab33fb5485bc352 (patch)
tree608ac1f1091eddf17b4930d59c3a61dad7994614 /arch
parentee2fae03d68e702866a8661fbee7ff2f2f3754d7 (diff)
parent1c9bb1a01ac1bc92a0d98cf3e40a7922ee684dc0 (diff)
Merge branch 'merge' of master.kernel.org:/pub/scm/linux/kernel/git/paulus/powerpc
* 'merge' of master.kernel.org:/pub/scm/linux/kernel/git/paulus/powerpc: [POWERPC] Fix register save area alignment for swapcontext syscall [POWERPC] Fix PCI device channel state initialization [POWERPC] Update MTD OF documentation [POWERPC] Probe Efika platform before CHRP. [POWERPC] Fix build of cell zImage.initrd [POWERPC] iSeries: fix CONFIG_VIOPATH dependency [POWERPC] iSeries: fix viocons init [POWERPC] iSeries: fix viocd init [POWERPC] iSeries: fix iseries_veth init [POWERPC] iSeries: fix viotape init [POWERPC] iSeries: fix viodasd init [POWERPC] Workaround oldworld OF bug with IRQs & P2P bridges [POWERPC] powerpc: add scanning of ebc bus to of_platform [POWERPC] spufs: fix assignment of node numbers [POWERPC] cell: Fix spufs with "new style" device-tree [POWERPC] cell: Enable spider workarounds on all PCI buses [POWERPC] cell: add forward struct declarations to spu.h [POWERPC] cell: update cell_defconfig
Diffstat (limited to 'arch')
-rw-r--r--arch/powerpc/boot/Makefile3
-rw-r--r--arch/powerpc/configs/cell_defconfig358
-rw-r--r--arch/powerpc/kernel/of_platform.c1
-rw-r--r--arch/powerpc/kernel/pci_64.c1
-rw-r--r--arch/powerpc/kernel/prom_parse.c15
-rw-r--r--arch/powerpc/kernel/signal_32.c16
-rw-r--r--arch/powerpc/platforms/Makefile2
-rw-r--r--arch/powerpc/platforms/cell/io-workarounds.c2
-rw-r--r--arch/powerpc/platforms/cell/spu_priv1_mmio.c95
-rw-r--r--arch/powerpc/platforms/iseries/Kconfig2
10 files changed, 401 insertions, 94 deletions
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index 343dbcfdf08a..98392fb5f581 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -152,6 +152,9 @@ $(obj)/zImage.initrd.miboot: vmlinux $(wrapperbits)
152$(obj)/zImage.ps3: vmlinux 152$(obj)/zImage.ps3: vmlinux
153 $(STRIP) -s -R .comment $< -o $@ 153 $(STRIP) -s -R .comment $< -o $@
154 154
155$(obj)/zImage.initrd.ps3: vmlinux
156 @echo " WARNING zImage.initrd.ps3 not supported (yet)"
157
155$(obj)/uImage: vmlinux $(wrapperbits) 158$(obj)/uImage: vmlinux $(wrapperbits)
156 $(call cmd,wrap,uboot) 159 $(call cmd,wrap,uboot)
157 160
diff --git a/arch/powerpc/configs/cell_defconfig b/arch/powerpc/configs/cell_defconfig
index a98c982c73ad..d1d25152f74f 100644
--- a/arch/powerpc/configs/cell_defconfig
+++ b/arch/powerpc/configs/cell_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.19-rc6 3# Linux kernel version: 2.6.20-rc1
4# Wed Nov 22 15:33:04 2006 4# Tue Dec 19 14:59:53 2006
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7CONFIG_64BIT=y 7CONFIG_64BIT=y
@@ -10,6 +10,8 @@ CONFIG_MMU=y
10CONFIG_GENERIC_HARDIRQS=y 10CONFIG_GENERIC_HARDIRQS=y
11CONFIG_IRQ_PER_CPU=y 11CONFIG_IRQ_PER_CPU=y
12CONFIG_RWSEM_XCHGADD_ALGORITHM=y 12CONFIG_RWSEM_XCHGADD_ALGORITHM=y
13CONFIG_ARCH_HAS_ILOG2_U32=y
14CONFIG_ARCH_HAS_ILOG2_U64=y
13CONFIG_GENERIC_HWEIGHT=y 15CONFIG_GENERIC_HWEIGHT=y
14CONFIG_GENERIC_CALIBRATE_DELAY=y 16CONFIG_GENERIC_CALIBRATE_DELAY=y
15CONFIG_GENERIC_FIND_NEXT_BIT=y 17CONFIG_GENERIC_FIND_NEXT_BIT=y
@@ -23,6 +25,7 @@ CONFIG_PPC_OF=y
23CONFIG_PPC_UDBG_16550=y 25CONFIG_PPC_UDBG_16550=y
24# CONFIG_GENERIC_TBSYNC is not set 26# CONFIG_GENERIC_TBSYNC is not set
25CONFIG_AUDIT_ARCH=y 27CONFIG_AUDIT_ARCH=y
28CONFIG_GENERIC_BUG=y
26# CONFIG_DEFAULT_UIMAGE is not set 29# CONFIG_DEFAULT_UIMAGE is not set
27 30
28# 31#
@@ -66,6 +69,7 @@ CONFIG_SYSVIPC=y
66CONFIG_IKCONFIG=y 69CONFIG_IKCONFIG=y
67CONFIG_IKCONFIG_PROC=y 70CONFIG_IKCONFIG_PROC=y
68CONFIG_CPUSETS=y 71CONFIG_CPUSETS=y
72CONFIG_SYSFS_DEPRECATED=y
69# CONFIG_RELAY is not set 73# CONFIG_RELAY is not set
70CONFIG_INITRAMFS_SOURCE="" 74CONFIG_INITRAMFS_SOURCE=""
71CONFIG_CC_OPTIMIZE_FOR_SIZE=y 75CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -128,14 +132,16 @@ CONFIG_PPC_MULTIPLATFORM=y
128# CONFIG_APUS is not set 132# CONFIG_APUS is not set
129# CONFIG_PPC_PSERIES is not set 133# CONFIG_PPC_PSERIES is not set
130# CONFIG_PPC_ISERIES is not set 134# CONFIG_PPC_ISERIES is not set
135# CONFIG_PPC_MPC52xx is not set
131# CONFIG_PPC_PMAC is not set 136# CONFIG_PPC_PMAC is not set
132# CONFIG_PPC_MAPLE is not set 137# CONFIG_PPC_MAPLE is not set
133# CONFIG_PPC_PASEMI is not set 138# CONFIG_PPC_PASEMI is not set
134CONFIG_PPC_CELL=y 139CONFIG_PPC_CELL=y
135CONFIG_PPC_CELL_NATIVE=y 140CONFIG_PPC_CELL_NATIVE=y
136CONFIG_PPC_IBM_CELL_BLADE=y 141CONFIG_PPC_IBM_CELL_BLADE=y
137CONFIG_UDBG_RTAS_CONSOLE=y
138CONFIG_PPC_PS3=y 142CONFIG_PPC_PS3=y
143CONFIG_PPC_NATIVE=y
144CONFIG_UDBG_RTAS_CONSOLE=y
139# CONFIG_U3_DART is not set 145# CONFIG_U3_DART is not set
140CONFIG_PPC_RTAS=y 146CONFIG_PPC_RTAS=y
141# CONFIG_RTAS_ERROR_LOGGING is not set 147# CONFIG_RTAS_ERROR_LOGGING is not set
@@ -177,12 +183,14 @@ CONFIG_CBE_CPUFREQ=m
177CONFIG_PS3_HTAB_SIZE=20 183CONFIG_PS3_HTAB_SIZE=20
178# CONFIG_PS3_DYNAMIC_DMA is not set 184# CONFIG_PS3_DYNAMIC_DMA is not set
179CONFIG_PS3_USE_LPAR_ADDR=y 185CONFIG_PS3_USE_LPAR_ADDR=y
186CONFIG_PS3_VUART=y
180 187
181# 188#
182# Kernel options 189# Kernel options
183# 190#
184# CONFIG_HZ_100 is not set 191# CONFIG_HZ_100 is not set
185CONFIG_HZ_250=y 192CONFIG_HZ_250=y
193# CONFIG_HZ_300 is not set
186# CONFIG_HZ_1000 is not set 194# CONFIG_HZ_1000 is not set
187CONFIG_HZ=250 195CONFIG_HZ=250
188CONFIG_PREEMPT_NONE=y 196CONFIG_PREEMPT_NONE=y
@@ -237,6 +245,7 @@ CONFIG_GENERIC_ISA_DMA=y
237CONFIG_PCI=y 245CONFIG_PCI=y
238CONFIG_PCI_DOMAINS=y 246CONFIG_PCI_DOMAINS=y
239CONFIG_PCIEPORTBUS=y 247CONFIG_PCIEPORTBUS=y
248# CONFIG_PCI_MULTITHREAD_PROBE is not set
240# CONFIG_PCI_DEBUG is not set 249# CONFIG_PCI_DEBUG is not set
241 250
242# 251#
@@ -270,7 +279,10 @@ CONFIG_INET=y
270CONFIG_IP_MULTICAST=y 279CONFIG_IP_MULTICAST=y
271# CONFIG_IP_ADVANCED_ROUTER is not set 280# CONFIG_IP_ADVANCED_ROUTER is not set
272CONFIG_IP_FIB_HASH=y 281CONFIG_IP_FIB_HASH=y
273# CONFIG_IP_PNP is not set 282CONFIG_IP_PNP=y
283CONFIG_IP_PNP_DHCP=y
284CONFIG_IP_PNP_BOOTP=y
285CONFIG_IP_PNP_RARP=y
274CONFIG_NET_IPIP=y 286CONFIG_NET_IPIP=y
275# CONFIG_NET_IPGRE is not set 287# CONFIG_NET_IPGRE is not set
276# CONFIG_IP_MROUTE is not set 288# CONFIG_IP_MROUTE is not set
@@ -289,6 +301,7 @@ CONFIG_INET_TCP_DIAG=y
289# CONFIG_TCP_CONG_ADVANCED is not set 301# CONFIG_TCP_CONG_ADVANCED is not set
290CONFIG_TCP_CONG_CUBIC=y 302CONFIG_TCP_CONG_CUBIC=y
291CONFIG_DEFAULT_TCP_CONG="cubic" 303CONFIG_DEFAULT_TCP_CONG="cubic"
304# CONFIG_TCP_MD5SIG is not set
292 305
293# 306#
294# IP: Virtual Server Configuration 307# IP: Virtual Server Configuration
@@ -317,31 +330,67 @@ CONFIG_NETFILTER=y
317# 330#
318# Core Netfilter Configuration 331# Core Netfilter Configuration
319# 332#
320# CONFIG_NETFILTER_NETLINK is not set 333CONFIG_NETFILTER_NETLINK=m
321# CONFIG_NETFILTER_XTABLES is not set 334CONFIG_NETFILTER_NETLINK_QUEUE=m
335CONFIG_NETFILTER_NETLINK_LOG=m
336# CONFIG_NF_CONNTRACK_ENABLED is not set
337CONFIG_NETFILTER_XTABLES=m
338CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
339CONFIG_NETFILTER_XT_TARGET_DSCP=m
340CONFIG_NETFILTER_XT_TARGET_MARK=m
341CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
342CONFIG_NETFILTER_XT_TARGET_NFLOG=m
343CONFIG_NETFILTER_XT_MATCH_COMMENT=m
344CONFIG_NETFILTER_XT_MATCH_DCCP=m
345CONFIG_NETFILTER_XT_MATCH_DSCP=m
346CONFIG_NETFILTER_XT_MATCH_ESP=m
347CONFIG_NETFILTER_XT_MATCH_LENGTH=m
348CONFIG_NETFILTER_XT_MATCH_LIMIT=m
349CONFIG_NETFILTER_XT_MATCH_MAC=m
350CONFIG_NETFILTER_XT_MATCH_MARK=m
351CONFIG_NETFILTER_XT_MATCH_POLICY=m
352CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
353CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
354CONFIG_NETFILTER_XT_MATCH_QUOTA=m
355CONFIG_NETFILTER_XT_MATCH_REALM=m
356CONFIG_NETFILTER_XT_MATCH_SCTP=m
357CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
358CONFIG_NETFILTER_XT_MATCH_STRING=m
359CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
360CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
322 361
323# 362#
324# IP: Netfilter Configuration 363# IP: Netfilter Configuration
325# 364#
326CONFIG_IP_NF_CONNTRACK=y
327# CONFIG_IP_NF_CT_ACCT is not set
328# CONFIG_IP_NF_CONNTRACK_MARK is not set
329# CONFIG_IP_NF_CONNTRACK_EVENTS is not set
330CONFIG_IP_NF_CT_PROTO_SCTP=y
331CONFIG_IP_NF_FTP=m
332CONFIG_IP_NF_IRC=m
333# CONFIG_IP_NF_NETBIOS_NS is not set
334CONFIG_IP_NF_TFTP=m
335CONFIG_IP_NF_AMANDA=m
336# CONFIG_IP_NF_PPTP is not set
337# CONFIG_IP_NF_H323 is not set
338# CONFIG_IP_NF_SIP is not set
339CONFIG_IP_NF_QUEUE=m 365CONFIG_IP_NF_QUEUE=m
366CONFIG_IP_NF_IPTABLES=m
367CONFIG_IP_NF_MATCH_IPRANGE=m
368CONFIG_IP_NF_MATCH_TOS=m
369CONFIG_IP_NF_MATCH_RECENT=m
370CONFIG_IP_NF_MATCH_ECN=m
371CONFIG_IP_NF_MATCH_AH=m
372CONFIG_IP_NF_MATCH_TTL=m
373CONFIG_IP_NF_MATCH_OWNER=m
374CONFIG_IP_NF_MATCH_ADDRTYPE=m
375CONFIG_IP_NF_FILTER=m
376CONFIG_IP_NF_TARGET_REJECT=m
377CONFIG_IP_NF_TARGET_LOG=m
378CONFIG_IP_NF_TARGET_ULOG=m
379CONFIG_IP_NF_TARGET_TCPMSS=m
380CONFIG_IP_NF_MANGLE=m
381CONFIG_IP_NF_TARGET_TOS=m
382CONFIG_IP_NF_TARGET_ECN=m
383CONFIG_IP_NF_TARGET_TTL=m
384CONFIG_IP_NF_RAW=m
385CONFIG_IP_NF_ARPTABLES=m
386CONFIG_IP_NF_ARPFILTER=m
387CONFIG_IP_NF_ARP_MANGLE=m
340 388
341# 389#
342# IPv6: Netfilter Configuration (EXPERIMENTAL) 390# IPv6: Netfilter Configuration (EXPERIMENTAL)
343# 391#
344# CONFIG_IP6_NF_QUEUE is not set 392# CONFIG_IP6_NF_QUEUE is not set
393# CONFIG_IP6_NF_IPTABLES is not set
345 394
346# 395#
347# DCCP Configuration (EXPERIMENTAL) 396# DCCP Configuration (EXPERIMENTAL)
@@ -373,6 +422,7 @@ CONFIG_IP_NF_QUEUE=m
373# QoS and/or fair queueing 422# QoS and/or fair queueing
374# 423#
375# CONFIG_NET_SCHED is not set 424# CONFIG_NET_SCHED is not set
425CONFIG_NET_CLS_ROUTE=y
376 426
377# 427#
378# Network testing 428# Network testing
@@ -428,6 +478,7 @@ CONFIG_BLK_DEV_LOOP=y
428# CONFIG_BLK_DEV_CRYPTOLOOP is not set 478# CONFIG_BLK_DEV_CRYPTOLOOP is not set
429# CONFIG_BLK_DEV_NBD is not set 479# CONFIG_BLK_DEV_NBD is not set
430# CONFIG_BLK_DEV_SX8 is not set 480# CONFIG_BLK_DEV_SX8 is not set
481# CONFIG_BLK_DEV_UB is not set
431CONFIG_BLK_DEV_RAM=y 482CONFIG_BLK_DEV_RAM=y
432CONFIG_BLK_DEV_RAM_COUNT=16 483CONFIG_BLK_DEV_RAM_COUNT=16
433CONFIG_BLK_DEV_RAM_SIZE=131072 484CONFIG_BLK_DEV_RAM_SIZE=131072
@@ -457,6 +508,7 @@ CONFIG_IDEDISK_MULTI_MODE=y
457# CONFIG_BLK_DEV_IDECD is not set 508# CONFIG_BLK_DEV_IDECD is not set
458# CONFIG_BLK_DEV_IDETAPE is not set 509# CONFIG_BLK_DEV_IDETAPE is not set
459# CONFIG_BLK_DEV_IDEFLOPPY is not set 510# CONFIG_BLK_DEV_IDEFLOPPY is not set
511# CONFIG_BLK_DEV_IDESCSI is not set
460# CONFIG_IDE_TASK_IOCTL is not set 512# CONFIG_IDE_TASK_IOCTL is not set
461 513
462# 514#
@@ -468,7 +520,6 @@ CONFIG_IDEPCI_SHARE_IRQ=y
468# CONFIG_BLK_DEV_OFFBOARD is not set 520# CONFIG_BLK_DEV_OFFBOARD is not set
469CONFIG_BLK_DEV_GENERIC=y 521CONFIG_BLK_DEV_GENERIC=y
470# CONFIG_BLK_DEV_OPTI621 is not set 522# CONFIG_BLK_DEV_OPTI621 is not set
471# CONFIG_BLK_DEV_SL82C105 is not set
472CONFIG_BLK_DEV_IDEDMA_PCI=y 523CONFIG_BLK_DEV_IDEDMA_PCI=y
473# CONFIG_BLK_DEV_IDEDMA_FORCED is not set 524# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
474CONFIG_IDEDMA_PCI_AUTO=y 525CONFIG_IDEDMA_PCI_AUTO=y
@@ -492,6 +543,7 @@ CONFIG_BLK_DEV_AEC62XX=y
492# CONFIG_BLK_DEV_PDC202XX_NEW is not set 543# CONFIG_BLK_DEV_PDC202XX_NEW is not set
493# CONFIG_BLK_DEV_SVWKS is not set 544# CONFIG_BLK_DEV_SVWKS is not set
494CONFIG_BLK_DEV_SIIMAGE=y 545CONFIG_BLK_DEV_SIIMAGE=y
546# CONFIG_BLK_DEV_SL82C105 is not set
495# CONFIG_BLK_DEV_SLC90E66 is not set 547# CONFIG_BLK_DEV_SLC90E66 is not set
496# CONFIG_BLK_DEV_TRM290 is not set 548# CONFIG_BLK_DEV_TRM290 is not set
497# CONFIG_BLK_DEV_VIA82CXXX is not set 549# CONFIG_BLK_DEV_VIA82CXXX is not set
@@ -505,8 +557,74 @@ CONFIG_IDEDMA_AUTO=y
505# SCSI device support 557# SCSI device support
506# 558#
507# CONFIG_RAID_ATTRS is not set 559# CONFIG_RAID_ATTRS is not set
508# CONFIG_SCSI is not set 560CONFIG_SCSI=m
561# CONFIG_SCSI_TGT is not set
509# CONFIG_SCSI_NETLINK is not set 562# CONFIG_SCSI_NETLINK is not set
563CONFIG_SCSI_PROC_FS=y
564
565#
566# SCSI support type (disk, tape, CD-ROM)
567#
568CONFIG_BLK_DEV_SD=m
569# CONFIG_CHR_DEV_ST is not set
570# CONFIG_CHR_DEV_OSST is not set
571CONFIG_BLK_DEV_SR=m
572# CONFIG_BLK_DEV_SR_VENDOR is not set
573CONFIG_CHR_DEV_SG=m
574# CONFIG_CHR_DEV_SCH is not set
575
576#
577# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
578#
579# CONFIG_SCSI_MULTI_LUN is not set
580# CONFIG_SCSI_CONSTANTS is not set
581# CONFIG_SCSI_LOGGING is not set
582# CONFIG_SCSI_SCAN_ASYNC is not set
583
584#
585# SCSI Transports
586#
587# CONFIG_SCSI_SPI_ATTRS is not set
588# CONFIG_SCSI_FC_ATTRS is not set
589# CONFIG_SCSI_ISCSI_ATTRS is not set
590# CONFIG_SCSI_SAS_ATTRS is not set
591# CONFIG_SCSI_SAS_LIBSAS is not set
592
593#
594# SCSI low-level drivers
595#
596# CONFIG_ISCSI_TCP is not set
597# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
598# CONFIG_SCSI_3W_9XXX is not set
599# CONFIG_SCSI_ACARD is not set
600# CONFIG_SCSI_AACRAID is not set
601# CONFIG_SCSI_AIC7XXX is not set
602# CONFIG_SCSI_AIC7XXX_OLD is not set
603# CONFIG_SCSI_AIC79XX is not set
604# CONFIG_SCSI_AIC94XX is not set
605# CONFIG_SCSI_ARCMSR is not set
606# CONFIG_MEGARAID_NEWGEN is not set
607# CONFIG_MEGARAID_LEGACY is not set
608# CONFIG_MEGARAID_SAS is not set
609# CONFIG_SCSI_HPTIOP is not set
610# CONFIG_SCSI_BUSLOGIC is not set
611# CONFIG_SCSI_DMX3191D is not set
612# CONFIG_SCSI_EATA is not set
613# CONFIG_SCSI_FUTURE_DOMAIN is not set
614# CONFIG_SCSI_GDTH is not set
615# CONFIG_SCSI_IPS is not set
616# CONFIG_SCSI_INITIO is not set
617# CONFIG_SCSI_INIA100 is not set
618# CONFIG_SCSI_STEX is not set
619# CONFIG_SCSI_SYM53C8XX_2 is not set
620# CONFIG_SCSI_QLOGIC_1280 is not set
621# CONFIG_SCSI_QLA_FC is not set
622# CONFIG_SCSI_QLA_ISCSI is not set
623# CONFIG_SCSI_LPFC is not set
624# CONFIG_SCSI_DC395x is not set
625# CONFIG_SCSI_DC390T is not set
626# CONFIG_SCSI_DEBUG is not set
627# CONFIG_SCSI_SRP is not set
510 628
511# 629#
512# Serial ATA (prod) and Parallel ATA (experimental) drivers 630# Serial ATA (prod) and Parallel ATA (experimental) drivers
@@ -538,6 +656,9 @@ CONFIG_DM_MULTIPATH=m
538# Fusion MPT device support 656# Fusion MPT device support
539# 657#
540# CONFIG_FUSION is not set 658# CONFIG_FUSION is not set
659# CONFIG_FUSION_SPI is not set
660# CONFIG_FUSION_FC is not set
661# CONFIG_FUSION_SAS is not set
541 662
542# 663#
543# IEEE 1394 (FireWire) support 664# IEEE 1394 (FireWire) support
@@ -552,6 +673,7 @@ CONFIG_DM_MULTIPATH=m
552# 673#
553# Macintosh device drivers 674# Macintosh device drivers
554# 675#
676# CONFIG_MAC_EMUMOUSEBTN is not set
555# CONFIG_WINDFARM is not set 677# CONFIG_WINDFARM is not set
556 678
557# 679#
@@ -559,7 +681,7 @@ CONFIG_DM_MULTIPATH=m
559# 681#
560CONFIG_NETDEVICES=y 682CONFIG_NETDEVICES=y
561# CONFIG_DUMMY is not set 683# CONFIG_DUMMY is not set
562CONFIG_BONDING=y 684CONFIG_BONDING=m
563# CONFIG_EQUALIZER is not set 685# CONFIG_EQUALIZER is not set
564CONFIG_TUN=y 686CONFIG_TUN=y
565 687
@@ -604,11 +726,11 @@ CONFIG_E1000_NAPI=y
604# CONFIG_R8169 is not set 726# CONFIG_R8169 is not set
605# CONFIG_SIS190 is not set 727# CONFIG_SIS190 is not set
606CONFIG_SKGE=m 728CONFIG_SKGE=m
607# CONFIG_SKY2 is not set 729CONFIG_SKY2=m
608# CONFIG_SK98LIN is not set 730# CONFIG_SK98LIN is not set
609# CONFIG_TIGON3 is not set 731CONFIG_TIGON3=y
610# CONFIG_BNX2 is not set 732# CONFIG_BNX2 is not set
611CONFIG_SPIDER_NET=m 733CONFIG_SPIDER_NET=y
612# CONFIG_QLA3XXX is not set 734# CONFIG_QLA3XXX is not set
613 735
614# 736#
@@ -618,6 +740,7 @@ CONFIG_SPIDER_NET=m
618# CONFIG_IXGB is not set 740# CONFIG_IXGB is not set
619# CONFIG_S2IO is not set 741# CONFIG_S2IO is not set
620# CONFIG_MYRI10GE is not set 742# CONFIG_MYRI10GE is not set
743# CONFIG_NETXEN_NIC is not set
621 744
622# 745#
623# Token Ring devices 746# Token Ring devices
@@ -637,6 +760,7 @@ CONFIG_SPIDER_NET=m
637# CONFIG_HIPPI is not set 760# CONFIG_HIPPI is not set
638# CONFIG_PPP is not set 761# CONFIG_PPP is not set
639# CONFIG_SLIP is not set 762# CONFIG_SLIP is not set
763# CONFIG_NET_FC is not set
640# CONFIG_SHAPER is not set 764# CONFIG_SHAPER is not set
641# CONFIG_NETCONSOLE is not set 765# CONFIG_NETCONSOLE is not set
642# CONFIG_NETPOLL is not set 766# CONFIG_NETPOLL is not set
@@ -703,6 +827,7 @@ CONFIG_SERIAL_NONSTANDARD=y
703# CONFIG_DIGIEPCA is not set 827# CONFIG_DIGIEPCA is not set
704# CONFIG_MOXA_INTELLIO is not set 828# CONFIG_MOXA_INTELLIO is not set
705# CONFIG_MOXA_SMARTIO is not set 829# CONFIG_MOXA_SMARTIO is not set
830# CONFIG_MOXA_SMARTIO_NEW is not set
706# CONFIG_ISI is not set 831# CONFIG_ISI is not set
707# CONFIG_SYNCLINK is not set 832# CONFIG_SYNCLINK is not set
708# CONFIG_SYNCLINKMP is not set 833# CONFIG_SYNCLINKMP is not set
@@ -729,6 +854,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
729CONFIG_SERIAL_CORE=y 854CONFIG_SERIAL_CORE=y
730CONFIG_SERIAL_CORE_CONSOLE=y 855CONFIG_SERIAL_CORE_CONSOLE=y
731# CONFIG_SERIAL_JSM is not set 856# CONFIG_SERIAL_JSM is not set
857CONFIG_SERIAL_OF_PLATFORM=y
732CONFIG_UNIX98_PTYS=y 858CONFIG_UNIX98_PTYS=y
733# CONFIG_LEGACY_PTYS is not set 859# CONFIG_LEGACY_PTYS is not set
734CONFIG_HVC_DRIVER=y 860CONFIG_HVC_DRIVER=y
@@ -756,16 +882,17 @@ CONFIG_WATCHDOG_RTAS=y
756# 882#
757# CONFIG_PCIPCWATCHDOG is not set 883# CONFIG_PCIPCWATCHDOG is not set
758# CONFIG_WDTPCI is not set 884# CONFIG_WDTPCI is not set
885
886#
887# USB-based Watchdog Cards
888#
889# CONFIG_USBPCWATCHDOG is not set
759# CONFIG_HW_RANDOM is not set 890# CONFIG_HW_RANDOM is not set
760CONFIG_GEN_RTC=y 891CONFIG_GEN_RTC=y
761# CONFIG_GEN_RTC_X is not set 892# CONFIG_GEN_RTC_X is not set
762# CONFIG_DTLK is not set 893# CONFIG_DTLK is not set
763# CONFIG_R3964 is not set 894# CONFIG_R3964 is not set
764# CONFIG_APPLICOM is not set 895# CONFIG_APPLICOM is not set
765
766#
767# Ftape, the floppy tape device driver
768#
769# CONFIG_AGP is not set 896# CONFIG_AGP is not set
770# CONFIG_DRM is not set 897# CONFIG_DRM is not set
771# CONFIG_RAW_DRIVER is not set 898# CONFIG_RAW_DRIVER is not set
@@ -855,12 +982,14 @@ CONFIG_I2C_ALGOBIT=y
855# Digital Video Broadcasting Devices 982# Digital Video Broadcasting Devices
856# 983#
857# CONFIG_DVB is not set 984# CONFIG_DVB is not set
985# CONFIG_USB_DABUSB is not set
858 986
859# 987#
860# Graphics support 988# Graphics support
861# 989#
862CONFIG_FIRMWARE_EDID=y 990CONFIG_FIRMWARE_EDID=y
863# CONFIG_FB is not set 991# CONFIG_FB is not set
992# CONFIG_FB_IBM_GXT4500 is not set
864 993
865# 994#
866# Console display driver support 995# Console display driver support
@@ -875,18 +1004,145 @@ CONFIG_DUMMY_CONSOLE=y
875# CONFIG_SOUND is not set 1004# CONFIG_SOUND is not set
876 1005
877# 1006#
1007# HID Devices
1008#
1009CONFIG_HID=m
1010
1011#
878# USB support 1012# USB support
879# 1013#
880CONFIG_USB_ARCH_HAS_HCD=y 1014CONFIG_USB_ARCH_HAS_HCD=y
881CONFIG_USB_ARCH_HAS_OHCI=y 1015CONFIG_USB_ARCH_HAS_OHCI=y
882CONFIG_USB_ARCH_HAS_EHCI=y 1016CONFIG_USB_ARCH_HAS_EHCI=y
883# CONFIG_USB is not set 1017CONFIG_USB=m
1018# CONFIG_USB_DEBUG is not set
1019
1020#
1021# Miscellaneous USB options
1022#
1023CONFIG_USB_DEVICEFS=y
1024# CONFIG_USB_BANDWIDTH is not set
1025# CONFIG_USB_DYNAMIC_MINORS is not set
1026# CONFIG_USB_MULTITHREAD_PROBE is not set
1027# CONFIG_USB_OTG is not set
1028
1029#
1030# USB Host Controller Drivers
1031#
1032CONFIG_USB_EHCI_HCD=m
1033# CONFIG_USB_EHCI_SPLIT_ISO is not set
1034# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1035# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1036# CONFIG_USB_ISP116X_HCD is not set
1037CONFIG_USB_OHCI_HCD=m
1038# CONFIG_USB_OHCI_BIG_ENDIAN is not set
1039CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1040# CONFIG_USB_UHCI_HCD is not set
1041# CONFIG_USB_SL811_HCD is not set
1042
1043#
1044# USB Device Class drivers
1045#
1046# CONFIG_USB_ACM is not set
1047# CONFIG_USB_PRINTER is not set
884 1048
885# 1049#
886# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1050# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
887# 1051#
888 1052
889# 1053#
1054# may also be needed; see USB_STORAGE Help for more information
1055#
1056CONFIG_USB_STORAGE=m
1057# CONFIG_USB_STORAGE_DEBUG is not set
1058# CONFIG_USB_STORAGE_DATAFAB is not set
1059# CONFIG_USB_STORAGE_FREECOM is not set
1060# CONFIG_USB_STORAGE_ISD200 is not set
1061# CONFIG_USB_STORAGE_DPCM is not set
1062# CONFIG_USB_STORAGE_USBAT is not set
1063# CONFIG_USB_STORAGE_SDDR09 is not set
1064# CONFIG_USB_STORAGE_SDDR55 is not set
1065# CONFIG_USB_STORAGE_JUMPSHOT is not set
1066# CONFIG_USB_STORAGE_ALAUDA is not set
1067# CONFIG_USB_STORAGE_KARMA is not set
1068# CONFIG_USB_LIBUSUAL is not set
1069
1070#
1071# USB Input Devices
1072#
1073# CONFIG_USB_HID is not set
1074
1075#
1076# USB HID Boot Protocol drivers
1077#
1078# CONFIG_USB_KBD is not set
1079# CONFIG_USB_MOUSE is not set
1080# CONFIG_USB_AIPTEK is not set
1081# CONFIG_USB_WACOM is not set
1082# CONFIG_USB_ACECAD is not set
1083# CONFIG_USB_KBTAB is not set
1084# CONFIG_USB_POWERMATE is not set
1085# CONFIG_USB_TOUCHSCREEN is not set
1086# CONFIG_USB_YEALINK is not set
1087# CONFIG_USB_XPAD is not set
1088# CONFIG_USB_ATI_REMOTE is not set
1089# CONFIG_USB_ATI_REMOTE2 is not set
1090# CONFIG_USB_KEYSPAN_REMOTE is not set
1091# CONFIG_USB_APPLETOUCH is not set
1092
1093#
1094# USB Imaging devices
1095#
1096# CONFIG_USB_MDC800 is not set
1097# CONFIG_USB_MICROTEK is not set
1098
1099#
1100# USB Network Adapters
1101#
1102# CONFIG_USB_CATC is not set
1103# CONFIG_USB_KAWETH is not set
1104# CONFIG_USB_PEGASUS is not set
1105# CONFIG_USB_RTL8150 is not set
1106# CONFIG_USB_USBNET_MII is not set
1107# CONFIG_USB_USBNET is not set
1108CONFIG_USB_MON=y
1109
1110#
1111# USB port drivers
1112#
1113
1114#
1115# USB Serial Converter support
1116#
1117# CONFIG_USB_SERIAL is not set
1118
1119#
1120# USB Miscellaneous drivers
1121#
1122# CONFIG_USB_EMI62 is not set
1123# CONFIG_USB_EMI26 is not set
1124# CONFIG_USB_ADUTUX is not set
1125# CONFIG_USB_AUERSWALD is not set
1126# CONFIG_USB_RIO500 is not set
1127# CONFIG_USB_LEGOTOWER is not set
1128# CONFIG_USB_LCD is not set
1129# CONFIG_USB_LED is not set
1130# CONFIG_USB_CYPRESS_CY7C63 is not set
1131# CONFIG_USB_CYTHERM is not set
1132# CONFIG_USB_PHIDGET is not set
1133# CONFIG_USB_IDMOUSE is not set
1134# CONFIG_USB_FTDI_ELAN is not set
1135# CONFIG_USB_APPLEDISPLAY is not set
1136# CONFIG_USB_SISUSBVGA is not set
1137# CONFIG_USB_LD is not set
1138# CONFIG_USB_TRANCEVIBRATOR is not set
1139# CONFIG_USB_TEST is not set
1140
1141#
1142# USB DSL modem support
1143#
1144
1145#
890# USB Gadget Support 1146# USB Gadget Support
891# 1147#
892# CONFIG_USB_GADGET is not set 1148# CONFIG_USB_GADGET is not set
@@ -912,7 +1168,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
912# 1168#
913# InfiniBand support 1169# InfiniBand support
914# 1170#
915CONFIG_INFINIBAND=y 1171CONFIG_INFINIBAND=m
916CONFIG_INFINIBAND_USER_MAD=m 1172CONFIG_INFINIBAND_USER_MAD=m
917CONFIG_INFINIBAND_USER_ACCESS=m 1173CONFIG_INFINIBAND_USER_ACCESS=m
918CONFIG_INFINIBAND_ADDR_TRANS=y 1174CONFIG_INFINIBAND_ADDR_TRANS=y
@@ -922,6 +1178,8 @@ CONFIG_INFINIBAND_MTHCA_DEBUG=y
922CONFIG_INFINIBAND_IPOIB=m 1178CONFIG_INFINIBAND_IPOIB=m
923CONFIG_INFINIBAND_IPOIB_DEBUG=y 1179CONFIG_INFINIBAND_IPOIB_DEBUG=y
924CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y 1180CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y
1181# CONFIG_INFINIBAND_SRP is not set
1182# CONFIG_INFINIBAND_ISER is not set
925 1183
926# 1184#
927# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) 1185# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
@@ -946,6 +1204,10 @@ CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y
946# 1204#
947 1205
948# 1206#
1207# Virtualization
1208#
1209
1210#
949# File systems 1211# File systems
950# 1212#
951CONFIG_EXT2_FS=y 1213CONFIG_EXT2_FS=y
@@ -1028,23 +1290,18 @@ CONFIG_RAMFS=y
1028# 1290#
1029# Network File Systems 1291# Network File Systems
1030# 1292#
1031CONFIG_NFS_FS=m 1293CONFIG_NFS_FS=y
1032CONFIG_NFS_V3=y 1294CONFIG_NFS_V3=y
1033CONFIG_NFS_V3_ACL=y 1295CONFIG_NFS_V3_ACL=y
1034# CONFIG_NFS_V4 is not set 1296# CONFIG_NFS_V4 is not set
1035# CONFIG_NFS_DIRECTIO is not set 1297# CONFIG_NFS_DIRECTIO is not set
1036CONFIG_NFSD=m 1298# CONFIG_NFSD is not set
1037CONFIG_NFSD_V2_ACL=y 1299CONFIG_ROOT_NFS=y
1038CONFIG_NFSD_V3=y 1300CONFIG_LOCKD=y
1039CONFIG_NFSD_V3_ACL=y
1040# CONFIG_NFSD_V4 is not set
1041CONFIG_NFSD_TCP=y
1042CONFIG_LOCKD=m
1043CONFIG_LOCKD_V4=y 1301CONFIG_LOCKD_V4=y
1044CONFIG_EXPORTFS=m 1302CONFIG_NFS_ACL_SUPPORT=y
1045CONFIG_NFS_ACL_SUPPORT=m
1046CONFIG_NFS_COMMON=y 1303CONFIG_NFS_COMMON=y
1047CONFIG_SUNRPC=m 1304CONFIG_SUNRPC=y
1048# CONFIG_RPCSEC_GSS_KRB5 is not set 1305# CONFIG_RPCSEC_GSS_KRB5 is not set
1049# CONFIG_RPCSEC_GSS_SPKM3 is not set 1306# CONFIG_RPCSEC_GSS_SPKM3 is not set
1050# CONFIG_SMB_FS is not set 1307# CONFIG_SMB_FS is not set
@@ -1120,8 +1377,14 @@ CONFIG_NLS_ISO8859_15=m
1120# CONFIG_NLS_UTF8 is not set 1377# CONFIG_NLS_UTF8 is not set
1121 1378
1122# 1379#
1380# Distributed Lock Manager
1381#
1382# CONFIG_DLM is not set
1383
1384#
1123# Library routines 1385# Library routines
1124# 1386#
1387CONFIG_BITREVERSE=y
1125# CONFIG_CRC_CCITT is not set 1388# CONFIG_CRC_CCITT is not set
1126# CONFIG_CRC16 is not set 1389# CONFIG_CRC16 is not set
1127CONFIG_CRC32=y 1390CONFIG_CRC32=y
@@ -1130,7 +1393,10 @@ CONFIG_ZLIB_INFLATE=m
1130CONFIG_ZLIB_DEFLATE=m 1393CONFIG_ZLIB_DEFLATE=m
1131CONFIG_TEXTSEARCH=y 1394CONFIG_TEXTSEARCH=y
1132CONFIG_TEXTSEARCH_KMP=m 1395CONFIG_TEXTSEARCH_KMP=m
1396CONFIG_TEXTSEARCH_BM=m
1397CONFIG_TEXTSEARCH_FSM=m
1133CONFIG_PLIST=y 1398CONFIG_PLIST=y
1399CONFIG_IOMAP_COPY=y
1134 1400
1135# 1401#
1136# Instrumentation Support 1402# Instrumentation Support
@@ -1146,6 +1412,8 @@ CONFIG_OPROFILE=y
1146# CONFIG_ENABLE_MUST_CHECK is not set 1412# CONFIG_ENABLE_MUST_CHECK is not set
1147CONFIG_MAGIC_SYSRQ=y 1413CONFIG_MAGIC_SYSRQ=y
1148# CONFIG_UNUSED_SYMBOLS is not set 1414# CONFIG_UNUSED_SYMBOLS is not set
1415CONFIG_DEBUG_FS=y
1416# CONFIG_HEADERS_CHECK is not set
1149CONFIG_DEBUG_KERNEL=y 1417CONFIG_DEBUG_KERNEL=y
1150CONFIG_LOG_BUF_SHIFT=15 1418CONFIG_LOG_BUF_SHIFT=15
1151CONFIG_DETECT_SOFTLOCKUP=y 1419CONFIG_DETECT_SOFTLOCKUP=y
@@ -1159,12 +1427,11 @@ CONFIG_DEBUG_MUTEXES=y
1159CONFIG_DEBUG_SPINLOCK_SLEEP=y 1427CONFIG_DEBUG_SPINLOCK_SLEEP=y
1160# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1428# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1161# CONFIG_DEBUG_KOBJECT is not set 1429# CONFIG_DEBUG_KOBJECT is not set
1430CONFIG_DEBUG_BUGVERBOSE=y
1162# CONFIG_DEBUG_INFO is not set 1431# CONFIG_DEBUG_INFO is not set
1163CONFIG_DEBUG_FS=y
1164# CONFIG_DEBUG_VM is not set 1432# CONFIG_DEBUG_VM is not set
1165# CONFIG_DEBUG_LIST is not set 1433# CONFIG_DEBUG_LIST is not set
1166# CONFIG_FORCED_INLINING is not set 1434# CONFIG_FORCED_INLINING is not set
1167# CONFIG_HEADERS_CHECK is not set
1168# CONFIG_RCU_TORTURE_TEST is not set 1435# CONFIG_RCU_TORTURE_TEST is not set
1169# CONFIG_DEBUG_STACKOVERFLOW is not set 1436# CONFIG_DEBUG_STACKOVERFLOW is not set
1170# CONFIG_DEBUG_STACK_USAGE is not set 1437# CONFIG_DEBUG_STACK_USAGE is not set
@@ -1191,6 +1458,7 @@ CONFIG_CRYPTO_BLKCIPHER=m
1191CONFIG_CRYPTO_HASH=y 1458CONFIG_CRYPTO_HASH=y
1192CONFIG_CRYPTO_MANAGER=y 1459CONFIG_CRYPTO_MANAGER=y
1193CONFIG_CRYPTO_HMAC=y 1460CONFIG_CRYPTO_HMAC=y
1461# CONFIG_CRYPTO_XCBC is not set
1194# CONFIG_CRYPTO_NULL is not set 1462# CONFIG_CRYPTO_NULL is not set
1195# CONFIG_CRYPTO_MD4 is not set 1463# CONFIG_CRYPTO_MD4 is not set
1196CONFIG_CRYPTO_MD5=m 1464CONFIG_CRYPTO_MD5=m
@@ -1199,8 +1467,10 @@ CONFIG_CRYPTO_SHA1=m
1199# CONFIG_CRYPTO_SHA512 is not set 1467# CONFIG_CRYPTO_SHA512 is not set
1200# CONFIG_CRYPTO_WP512 is not set 1468# CONFIG_CRYPTO_WP512 is not set
1201# CONFIG_CRYPTO_TGR192 is not set 1469# CONFIG_CRYPTO_TGR192 is not set
1470# CONFIG_CRYPTO_GF128MUL is not set
1202CONFIG_CRYPTO_ECB=m 1471CONFIG_CRYPTO_ECB=m
1203CONFIG_CRYPTO_CBC=m 1472CONFIG_CRYPTO_CBC=m
1473# CONFIG_CRYPTO_LRW is not set
1204CONFIG_CRYPTO_DES=m 1474CONFIG_CRYPTO_DES=m
1205# CONFIG_CRYPTO_BLOWFISH is not set 1475# CONFIG_CRYPTO_BLOWFISH is not set
1206# CONFIG_CRYPTO_TWOFISH is not set 1476# CONFIG_CRYPTO_TWOFISH is not set
diff --git a/arch/powerpc/kernel/of_platform.c b/arch/powerpc/kernel/of_platform.c
index 3002ea3a61a2..b7345176b399 100644
--- a/arch/powerpc/kernel/of_platform.c
+++ b/arch/powerpc/kernel/of_platform.c
@@ -50,6 +50,7 @@ static struct of_device_id of_default_bus_ids[] = {
50 { .type = "plb5", }, 50 { .type = "plb5", },
51 { .type = "plb4", }, 51 { .type = "plb4", },
52 { .type = "opb", }, 52 { .type = "opb", },
53 { .type = "ebc", },
53 {}, 54 {},
54}; 55};
55 56
diff --git a/arch/powerpc/kernel/pci_64.c b/arch/powerpc/kernel/pci_64.c
index a6b7692c7269..73c59ec49120 100644
--- a/arch/powerpc/kernel/pci_64.c
+++ b/arch/powerpc/kernel/pci_64.c
@@ -360,6 +360,7 @@ struct pci_dev *of_create_pci_dev(struct device_node *node,
360 DBG(" class: 0x%x\n", dev->class); 360 DBG(" class: 0x%x\n", dev->class);
361 361
362 dev->current_state = 4; /* unknown power state */ 362 dev->current_state = 4; /* unknown power state */
363 dev->error_state = pci_channel_io_normal;
363 364
364 if (!strcmp(type, "pci") || !strcmp(type, "pciex")) { 365 if (!strcmp(type, "pci") || !strcmp(type, "pciex")) {
365 /* a PCI-PCI bridge */ 366 /* a PCI-PCI bridge */
diff --git a/arch/powerpc/kernel/prom_parse.c b/arch/powerpc/kernel/prom_parse.c
index 0dfbe1cd28eb..12c51e4ad2b4 100644
--- a/arch/powerpc/kernel/prom_parse.c
+++ b/arch/powerpc/kernel/prom_parse.c
@@ -920,9 +920,20 @@ static int of_irq_map_oldworld(struct device_node *device, int index,
920 920
921 /* 921 /*
922 * Old machines just have a list of interrupt numbers 922 * Old machines just have a list of interrupt numbers
923 * and no interrupt-controller nodes. 923 * and no interrupt-controller nodes. We also have dodgy
924 * cases where the APPL,interrupts property is completely
925 * missing behind pci-pci bridges and we have to get it
926 * from the parent (the bridge itself, as apple just wired
927 * everything together on these)
924 */ 928 */
925 ints = get_property(device, "AAPL,interrupts", &intlen); 929 while (device) {
930 ints = get_property(device, "AAPL,interrupts", &intlen);
931 if (ints != NULL)
932 break;
933 device = device->parent;
934 if (device && strcmp(device->type, "pci") != 0)
935 break;
936 }
926 if (ints == NULL) 937 if (ints == NULL)
927 return -EINVAL; 938 return -EINVAL;
928 intlen /= sizeof(u32); 939 intlen /= sizeof(u32);
diff --git a/arch/powerpc/kernel/signal_32.c b/arch/powerpc/kernel/signal_32.c
index e4ebe1a6228e..6b405a3f43f9 100644
--- a/arch/powerpc/kernel/signal_32.c
+++ b/arch/powerpc/kernel/signal_32.c
@@ -835,11 +835,21 @@ long sys_swapcontext(struct ucontext __user *old_ctx,
835 return -EINVAL; 835 return -EINVAL;
836 836
837 if (old_ctx != NULL) { 837 if (old_ctx != NULL) {
838 struct mcontext __user *mctx;
839
840 /*
841 * old_ctx might not be 16-byte aligned, in which
842 * case old_ctx->uc_mcontext won't be either.
843 * Because we have the old_ctx->uc_pad2 field
844 * before old_ctx->uc_mcontext, we need to round down
845 * from &old_ctx->uc_mcontext to a 16-byte boundary.
846 */
847 mctx = (struct mcontext __user *)
848 ((unsigned long) &old_ctx->uc_mcontext & ~0xfUL);
838 if (!access_ok(VERIFY_WRITE, old_ctx, sizeof(*old_ctx)) 849 if (!access_ok(VERIFY_WRITE, old_ctx, sizeof(*old_ctx))
839 || save_user_regs(regs, &old_ctx->uc_mcontext, 0) 850 || save_user_regs(regs, mctx, 0)
840 || put_sigset_t(&old_ctx->uc_sigmask, &current->blocked) 851 || put_sigset_t(&old_ctx->uc_sigmask, &current->blocked)
841 || __put_user(to_user_ptr(&old_ctx->uc_mcontext), 852 || __put_user(to_user_ptr(mctx), &old_ctx->uc_regs))
842 &old_ctx->uc_regs))
843 return -EFAULT; 853 return -EFAULT;
844 } 854 }
845 if (new_ctx == NULL) 855 if (new_ctx == NULL)
diff --git a/arch/powerpc/platforms/Makefile b/arch/powerpc/platforms/Makefile
index 44d95eaf22e6..507d1b98f270 100644
--- a/arch/powerpc/platforms/Makefile
+++ b/arch/powerpc/platforms/Makefile
@@ -5,9 +5,9 @@ ifeq ($(CONFIG_PPC64),y)
5obj-$(CONFIG_PPC_PMAC) += powermac/ 5obj-$(CONFIG_PPC_PMAC) += powermac/
6endif 6endif
7endif 7endif
8obj-$(CONFIG_PPC_MPC52xx) += 52xx/
8obj-$(CONFIG_PPC_CHRP) += chrp/ 9obj-$(CONFIG_PPC_CHRP) += chrp/
9obj-$(CONFIG_4xx) += 4xx/ 10obj-$(CONFIG_4xx) += 4xx/
10obj-$(CONFIG_PPC_MPC52xx) += 52xx/
11obj-$(CONFIG_PPC_83xx) += 83xx/ 11obj-$(CONFIG_PPC_83xx) += 83xx/
12obj-$(CONFIG_PPC_85xx) += 85xx/ 12obj-$(CONFIG_PPC_85xx) += 85xx/
13obj-$(CONFIG_PPC_86xx) += 86xx/ 13obj-$(CONFIG_PPC_86xx) += 86xx/
diff --git a/arch/powerpc/platforms/cell/io-workarounds.c b/arch/powerpc/platforms/cell/io-workarounds.c
index 580d42595912..7c73128305ec 100644
--- a/arch/powerpc/platforms/cell/io-workarounds.c
+++ b/arch/powerpc/platforms/cell/io-workarounds.c
@@ -37,7 +37,7 @@
37 */ 37 */
38#define SPIDER_DISABLE_PREFETCH 38#define SPIDER_DISABLE_PREFETCH
39 39
40#define MAX_SPIDERS 2 40#define MAX_SPIDERS 3
41 41
42static struct spider_pci_bus { 42static struct spider_pci_bus {
43 void __iomem *regs; 43 void __iomem *regs;
diff --git a/arch/powerpc/platforms/cell/spu_priv1_mmio.c b/arch/powerpc/platforms/cell/spu_priv1_mmio.c
index a5de0430c56d..910a926b61a2 100644
--- a/arch/powerpc/platforms/cell/spu_priv1_mmio.c
+++ b/arch/powerpc/platforms/cell/spu_priv1_mmio.c
@@ -37,8 +37,9 @@
37#include "interrupt.h" 37#include "interrupt.h"
38#include "spu_priv1_mmio.h" 38#include "spu_priv1_mmio.h"
39 39
40static DEFINE_MUTEX(add_spumem_mutex);
41
40struct spu_pdata { 42struct spu_pdata {
41 int nid;
42 struct device_node *devnode; 43 struct device_node *devnode;
43 struct spu_priv1 __iomem *priv1; 44 struct spu_priv1 __iomem *priv1;
44}; 45};
@@ -56,20 +57,9 @@ struct device_node *spu_devnode(struct spu *spu)
56 57
57EXPORT_SYMBOL_GPL(spu_devnode); 58EXPORT_SYMBOL_GPL(spu_devnode);
58 59
59static int __init find_spu_node_id(struct device_node *spe)
60{
61 const unsigned int *id;
62 struct device_node *cpu;
63 cpu = spe->parent->parent;
64 id = get_property(cpu, "node-id", NULL);
65 return id ? *id : 0;
66}
67
68static int __init cell_spuprop_present(struct spu *spu, struct device_node *spe, 60static int __init cell_spuprop_present(struct spu *spu, struct device_node *spe,
69 const char *prop) 61 const char *prop)
70{ 62{
71 static DEFINE_MUTEX(add_spumem_mutex);
72
73 const struct address_prop { 63 const struct address_prop {
74 unsigned long address; 64 unsigned long address;
75 unsigned int len; 65 unsigned int len;
@@ -87,7 +77,7 @@ static int __init cell_spuprop_present(struct spu *spu, struct device_node *spe,
87 start_pfn = p->address >> PAGE_SHIFT; 77 start_pfn = p->address >> PAGE_SHIFT;
88 nr_pages = ((unsigned long)p->len + PAGE_SIZE - 1) >> PAGE_SHIFT; 78 nr_pages = ((unsigned long)p->len + PAGE_SIZE - 1) >> PAGE_SHIFT;
89 79
90 pgdata = NODE_DATA(spu_get_pdata(spu)->nid); 80 pgdata = NODE_DATA(spu->node);
91 zone = pgdata->node_zones; 81 zone = pgdata->node_zones;
92 82
93 /* XXX rethink locking here */ 83 /* XXX rethink locking here */
@@ -140,6 +130,7 @@ static int __init spu_map_interrupts_old(struct spu *spu,
140{ 130{
141 unsigned int isrc; 131 unsigned int isrc;
142 const u32 *tmp; 132 const u32 *tmp;
133 int nid;
143 134
144 /* Get the interrupt source unit from the device-tree */ 135 /* Get the interrupt source unit from the device-tree */
145 tmp = get_property(np, "isrc", NULL); 136 tmp = get_property(np, "isrc", NULL);
@@ -147,8 +138,15 @@ static int __init spu_map_interrupts_old(struct spu *spu,
147 return -ENODEV; 138 return -ENODEV;
148 isrc = tmp[0]; 139 isrc = tmp[0];
149 140
141 tmp = get_property(np->parent->parent, "node-id", NULL);
142 if (!tmp) {
143 printk(KERN_WARNING "%s: can't find node-id\n", __FUNCTION__);
144 nid = spu->node;
145 } else
146 nid = tmp[0];
147
150 /* Add the node number */ 148 /* Add the node number */
151 isrc |= spu->node << IIC_IRQ_NODE_SHIFT; 149 isrc |= nid << IIC_IRQ_NODE_SHIFT;
152 150
153 /* Now map interrupts of all 3 classes */ 151 /* Now map interrupts of all 3 classes */
154 spu->irqs[0] = irq_create_mapping(NULL, IIC_IRQ_CLASS_0 | isrc); 152 spu->irqs[0] = irq_create_mapping(NULL, IIC_IRQ_CLASS_0 | isrc);
@@ -237,70 +235,88 @@ err:
237 return ret; 235 return ret;
238} 236}
239 237
240static int spu_map_resource(struct device_node *node, int nr, 238static int spu_map_resource(struct spu *spu, int nr,
241 void __iomem** virt, unsigned long *phys) 239 void __iomem** virt, unsigned long *phys)
242{ 240{
241 struct device_node *np = spu_get_pdata(spu)->devnode;
242 unsigned long start_pfn, nr_pages;
243 struct pglist_data *pgdata;
244 struct zone *zone;
243 struct resource resource = { }; 245 struct resource resource = { };
246 unsigned long len;
244 int ret; 247 int ret;
245 248
246 ret = of_address_to_resource(node, nr, &resource); 249 ret = of_address_to_resource(np, nr, &resource);
247 if (ret) 250 if (ret)
248 goto out; 251 goto out;
249 252
250 if (phys) 253 if (phys)
251 *phys = resource.start; 254 *phys = resource.start;
252 *virt = ioremap(resource.start, resource.end - resource.start); 255 len = resource.end - resource.start + 1;
256 *virt = ioremap(resource.start, len);
253 if (!*virt) 257 if (!*virt)
254 ret = -EINVAL; 258 ret = -EINVAL;
255 259
260 start_pfn = resource.start >> PAGE_SHIFT;
261 nr_pages = (len + PAGE_SIZE - 1) >> PAGE_SHIFT;
262
263 pgdata = NODE_DATA(spu->node);
264 zone = pgdata->node_zones;
265
266 /* XXX rethink locking here */
267 mutex_lock(&add_spumem_mutex);
268 ret = __add_pages(zone, start_pfn, nr_pages);
269 mutex_unlock(&add_spumem_mutex);
270
256out: 271out:
257 return ret; 272 return ret;
258} 273}
259 274
260static int __init spu_map_device(struct spu *spu, struct device_node *node) 275static int __init spu_map_device(struct spu *spu)
261{ 276{
277 struct device_node *np = spu_get_pdata(spu)->devnode;
262 int ret = -ENODEV; 278 int ret = -ENODEV;
263 spu->name = get_property(node, "name", NULL); 279
280 spu->name = get_property(np, "name", NULL);
264 if (!spu->name) 281 if (!spu->name)
265 goto out; 282 goto out;
266 283
267 ret = spu_map_resource(node, 0, (void __iomem**)&spu->local_store, 284 ret = spu_map_resource(spu, 0, (void __iomem**)&spu->local_store,
268 &spu->local_store_phys); 285 &spu->local_store_phys);
269 if (ret) { 286 if (ret) {
270 pr_debug("spu_new: failed to map %s resource 0\n", 287 pr_debug("spu_new: failed to map %s resource 0\n",
271 node->full_name); 288 np->full_name);
272 goto out; 289 goto out;
273 } 290 }
274 ret = spu_map_resource(node, 1, (void __iomem**)&spu->problem, 291 ret = spu_map_resource(spu, 1, (void __iomem**)&spu->problem,
275 &spu->problem_phys); 292 &spu->problem_phys);
276 if (ret) { 293 if (ret) {
277 pr_debug("spu_new: failed to map %s resource 1\n", 294 pr_debug("spu_new: failed to map %s resource 1\n",
278 node->full_name); 295 np->full_name);
279 goto out_unmap; 296 goto out_unmap;
280 } 297 }
281 ret = spu_map_resource(node, 2, (void __iomem**)&spu->priv2, 298 ret = spu_map_resource(spu, 2, (void __iomem**)&spu->priv2, NULL);
282 NULL);
283 if (ret) { 299 if (ret) {
284 pr_debug("spu_new: failed to map %s resource 2\n", 300 pr_debug("spu_new: failed to map %s resource 2\n",
285 node->full_name); 301 np->full_name);
286 goto out_unmap; 302 goto out_unmap;
287 } 303 }
288 if (!firmware_has_feature(FW_FEATURE_LPAR)) 304 if (!firmware_has_feature(FW_FEATURE_LPAR))
289 ret = spu_map_resource(node, 3, 305 ret = spu_map_resource(spu, 3,
290 (void __iomem**)&spu_get_pdata(spu)->priv1, NULL); 306 (void __iomem**)&spu_get_pdata(spu)->priv1, NULL);
291 if (ret) { 307 if (ret) {
292 pr_debug("spu_new: failed to map %s resource 3\n", 308 pr_debug("spu_new: failed to map %s resource 3\n",
293 node->full_name); 309 np->full_name);
294 goto out_unmap; 310 goto out_unmap;
295 } 311 }
296 pr_debug("spu_new: %s maps:\n", node->full_name); 312 pr_debug("spu_new: %s maps:\n", np->full_name);
297 pr_debug(" local store : 0x%016lx -> 0x%p\n", 313 pr_debug(" local store : 0x%016lx -> 0x%p\n",
298 spu->local_store_phys, spu->local_store); 314 spu->local_store_phys, spu->local_store);
299 pr_debug(" problem state : 0x%016lx -> 0x%p\n", 315 pr_debug(" problem state : 0x%016lx -> 0x%p\n",
300 spu->problem_phys, spu->problem); 316 spu->problem_phys, spu->problem);
301 pr_debug(" priv2 : 0x%p\n", spu->priv2); 317 pr_debug(" priv2 : 0x%p\n", spu->priv2);
302 pr_debug(" priv1 : 0x%p\n", 318 pr_debug(" priv1 : 0x%p\n",
303 spu_get_pdata(spu)->priv1); 319 spu_get_pdata(spu)->priv1);
304 320
305 return 0; 321 return 0;
306 322
@@ -340,8 +356,9 @@ static int __init of_create_spu(struct spu *spu, void *data)
340 ret = -ENOMEM; 356 ret = -ENOMEM;
341 goto out; 357 goto out;
342 } 358 }
359 spu_get_pdata(spu)->devnode = of_node_get(spe);
343 360
344 spu->node = find_spu_node_id(spe); 361 spu->node = of_node_to_nid(spe);
345 if (spu->node >= MAX_NUMNODES) { 362 if (spu->node >= MAX_NUMNODES) {
346 printk(KERN_WARNING "SPE %s on node %d ignored," 363 printk(KERN_WARNING "SPE %s on node %d ignored,"
347 " node number too big\n", spe->full_name, spu->node); 364 " node number too big\n", spe->full_name, spu->node);
@@ -350,11 +367,7 @@ static int __init of_create_spu(struct spu *spu, void *data)
350 goto out_free; 367 goto out_free;
351 } 368 }
352 369
353 spu_get_pdata(spu)->nid = of_node_to_nid(spe); 370 ret = spu_map_device(spu);
354 if (spu_get_pdata(spu)->nid == -1)
355 spu_get_pdata(spu)->nid = 0;
356
357 ret = spu_map_device(spu, spe);
358 /* try old method */ 371 /* try old method */
359 if (ret) 372 if (ret)
360 ret = spu_map_device_old(spu, spe); 373 ret = spu_map_device_old(spu, spe);
@@ -367,8 +380,6 @@ static int __init of_create_spu(struct spu *spu, void *data)
367 if (ret) 380 if (ret)
368 goto out_unmap; 381 goto out_unmap;
369 382
370 spu_get_pdata(spu)->devnode = of_node_get(spe);
371
372 pr_debug(KERN_DEBUG "Using SPE %s %p %p %p %p %d\n", spu->name, 383 pr_debug(KERN_DEBUG "Using SPE %s %p %p %p %p %d\n", spu->name,
373 spu->local_store, spu->problem, spu_get_pdata(spu)->priv1, 384 spu->local_store, spu->problem, spu_get_pdata(spu)->priv1,
374 spu->priv2, spu->number); 385 spu->priv2, spu->number);
diff --git a/arch/powerpc/platforms/iseries/Kconfig b/arch/powerpc/platforms/iseries/Kconfig
index 887b68804e6d..54e6b3b6f261 100644
--- a/arch/powerpc/platforms/iseries/Kconfig
+++ b/arch/powerpc/platforms/iseries/Kconfig
@@ -31,5 +31,5 @@ endmenu
31 31
32config VIOPATH 32config VIOPATH
33 bool 33 bool
34 depends on VIOCONS || VIODASD || VIOCD || VIOTAPE || VETH 34 depends on VIOCONS || VIODASD || VIOCD || VIOTAPE || ISERIES_VETH
35 default y 35 default y