aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@g5.osdl.org>2005-12-12 19:48:29 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2005-12-12 19:48:29 -0500
commit0e670506668a43e1355b8f10c33d081a676bd521 (patch)
tree236d238cc234da1e6d375b5c2864cbac836fd71f
parent238523e1a15874b88955ff9c8f63e35597ae2857 (diff)
parentbf7ececa9b68f4720f1ce344f442435660bcdae7 (diff)
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
-rw-r--r--arch/ia64/configs/sn2_defconfig152
-rw-r--r--arch/ia64/configs/tiger_defconfig74
-rw-r--r--arch/ia64/ia32/binfmt_elf32.c2
-rw-r--r--arch/ia64/ia32/ia32priv.h1
-rw-r--r--arch/ia64/kernel/process.c5
-rw-r--r--arch/ia64/kernel/salinfo.c2
-rw-r--r--arch/ia64/mm/discontig.c4
-rw-r--r--arch/ia64/sn/kernel/io_init.c153
-rw-r--r--arch/ia64/sn/kernel/sn2/ptc_deadlock.S8
-rw-r--r--include/asm-ia64/ia32.h2
-rw-r--r--include/asm-ia64/local.h4
-rw-r--r--include/asm-ia64/sn/pcidev.h20
-rw-r--r--include/asm-ia64/spinlock.h12
13 files changed, 336 insertions, 103 deletions
diff --git a/arch/ia64/configs/sn2_defconfig b/arch/ia64/configs/sn2_defconfig
index 87cfd31a4a39..e1924cc9687b 100644
--- a/arch/ia64/configs/sn2_defconfig
+++ b/arch/ia64/configs/sn2_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.13-rc6 3# Linux kernel version: 2.6.15-rc4
4# Tue Aug 16 14:40:41 2005 4# Fri Dec 2 10:33:48 2005
5# 5#
6 6
7# 7#
@@ -16,6 +16,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32
16# General setup 16# General setup
17# 17#
18CONFIG_LOCALVERSION="" 18CONFIG_LOCALVERSION=""
19# CONFIG_LOCALVERSION_AUTO is not set
19CONFIG_SWAP=y 20CONFIG_SWAP=y
20CONFIG_SYSVIPC=y 21CONFIG_SYSVIPC=y
21CONFIG_POSIX_MQUEUE=y 22CONFIG_POSIX_MQUEUE=y
@@ -26,6 +27,7 @@ CONFIG_HOTPLUG=y
26CONFIG_KOBJECT_UEVENT=y 27CONFIG_KOBJECT_UEVENT=y
27# CONFIG_IKCONFIG is not set 28# CONFIG_IKCONFIG is not set
28CONFIG_CPUSETS=y 29CONFIG_CPUSETS=y
30CONFIG_INITRAMFS_SOURCE=""
29# CONFIG_EMBEDDED is not set 31# CONFIG_EMBEDDED is not set
30CONFIG_KALLSYMS=y 32CONFIG_KALLSYMS=y
31CONFIG_KALLSYMS_ALL=y 33CONFIG_KALLSYMS_ALL=y
@@ -56,11 +58,29 @@ CONFIG_KMOD=y
56CONFIG_STOP_MACHINE=y 58CONFIG_STOP_MACHINE=y
57 59
58# 60#
61# Block layer
62#
63
64#
65# IO Schedulers
66#
67CONFIG_IOSCHED_NOOP=y
68CONFIG_IOSCHED_AS=y
69CONFIG_IOSCHED_DEADLINE=y
70CONFIG_IOSCHED_CFQ=y
71CONFIG_DEFAULT_AS=y
72# CONFIG_DEFAULT_DEADLINE is not set
73# CONFIG_DEFAULT_CFQ is not set
74# CONFIG_DEFAULT_NOOP is not set
75CONFIG_DEFAULT_IOSCHED="anticipatory"
76
77#
59# Processor type and features 78# Processor type and features
60# 79#
61CONFIG_IA64=y 80CONFIG_IA64=y
62CONFIG_64BIT=y 81CONFIG_64BIT=y
63CONFIG_MMU=y 82CONFIG_MMU=y
83CONFIG_SWIOTLB=y
64CONFIG_RWSEM_XCHGADD_ALGORITHM=y 84CONFIG_RWSEM_XCHGADD_ALGORITHM=y
65CONFIG_GENERIC_CALIBRATE_DELAY=y 85CONFIG_GENERIC_CALIBRATE_DELAY=y
66CONFIG_TIME_INTERPOLATION=y 86CONFIG_TIME_INTERPOLATION=y
@@ -68,6 +88,7 @@ CONFIG_EFI=y
68CONFIG_GENERIC_IOMAP=y 88CONFIG_GENERIC_IOMAP=y
69CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 89CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
70CONFIG_IA64_UNCACHED_ALLOCATOR=y 90CONFIG_IA64_UNCACHED_ALLOCATOR=y
91CONFIG_ZONE_DMA_IS_DMA32=y
71# CONFIG_IA64_GENERIC is not set 92# CONFIG_IA64_GENERIC is not set
72# CONFIG_IA64_DIG is not set 93# CONFIG_IA64_DIG is not set
73# CONFIG_IA64_HP_ZX1 is not set 94# CONFIG_IA64_HP_ZX1 is not set
@@ -87,14 +108,10 @@ CONFIG_HZ_250=y
87# CONFIG_HZ_1000 is not set 108# CONFIG_HZ_1000 is not set
88CONFIG_HZ=250 109CONFIG_HZ=250
89CONFIG_IA64_L1_CACHE_SHIFT=7 110CONFIG_IA64_L1_CACHE_SHIFT=7
90CONFIG_NUMA=y
91CONFIG_VIRTUAL_MEM_MAP=y
92CONFIG_HOLES_IN_ZONE=y
93CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
94# CONFIG_IA64_CYCLONE is not set 111# CONFIG_IA64_CYCLONE is not set
95CONFIG_IOSAPIC=y 112CONFIG_IOSAPIC=y
96CONFIG_IA64_SGI_SN_XP=m 113CONFIG_IA64_SGI_SN_XP=m
97CONFIG_FORCE_MAX_ZONEORDER=18 114CONFIG_FORCE_MAX_ZONEORDER=17
98CONFIG_SMP=y 115CONFIG_SMP=y
99CONFIG_NR_CPUS=512 116CONFIG_NR_CPUS=512
100# CONFIG_HOTPLUG_CPU is not set 117# CONFIG_HOTPLUG_CPU is not set
@@ -107,7 +124,17 @@ CONFIG_DISCONTIGMEM_MANUAL=y
107CONFIG_DISCONTIGMEM=y 124CONFIG_DISCONTIGMEM=y
108CONFIG_FLAT_NODE_MEM_MAP=y 125CONFIG_FLAT_NODE_MEM_MAP=y
109CONFIG_NEED_MULTIPLE_NODES=y 126CONFIG_NEED_MULTIPLE_NODES=y
110CONFIG_HAVE_DEC_LOCK=y 127# CONFIG_SPARSEMEM_STATIC is not set
128CONFIG_SPLIT_PTLOCK_CPUS=4
129CONFIG_ARCH_SELECT_MEMORY_MODEL=y
130CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
131CONFIG_ARCH_FLATMEM_ENABLE=y
132CONFIG_ARCH_SPARSEMEM_ENABLE=y
133CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y
134CONFIG_NUMA=y
135CONFIG_VIRTUAL_MEM_MAP=y
136CONFIG_HOLES_IN_ZONE=y
137CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y
111CONFIG_IA32_SUPPORT=y 138CONFIG_IA32_SUPPORT=y
112CONFIG_COMPAT=y 139CONFIG_COMPAT=y
113CONFIG_IA64_MCA_RECOVERY=y 140CONFIG_IA64_MCA_RECOVERY=y
@@ -126,28 +153,35 @@ CONFIG_BINFMT_ELF=y
126# Power management and ACPI 153# Power management and ACPI
127# 154#
128CONFIG_PM=y 155CONFIG_PM=y
129CONFIG_ACPI=y 156# CONFIG_PM_LEGACY is not set
157# CONFIG_PM_DEBUG is not set
130 158
131# 159#
132# ACPI (Advanced Configuration and Power Interface) Support 160# ACPI (Advanced Configuration and Power Interface) Support
133# 161#
162CONFIG_ACPI=y
134# CONFIG_ACPI_BUTTON is not set 163# CONFIG_ACPI_BUTTON is not set
135# CONFIG_ACPI_FAN is not set 164# CONFIG_ACPI_FAN is not set
136# CONFIG_ACPI_PROCESSOR is not set 165# CONFIG_ACPI_PROCESSOR is not set
137CONFIG_ACPI_NUMA=y 166CONFIG_ACPI_NUMA=y
167CONFIG_ACPI_BLACKLIST_YEAR=0
138# CONFIG_ACPI_DEBUG is not set 168# CONFIG_ACPI_DEBUG is not set
139CONFIG_ACPI_POWER=y 169CONFIG_ACPI_POWER=y
140CONFIG_ACPI_SYSTEM=y 170CONFIG_ACPI_SYSTEM=y
141# CONFIG_ACPI_CONTAINER is not set 171# CONFIG_ACPI_CONTAINER is not set
142 172
143# 173#
174# CPU Frequency scaling
175#
176# CONFIG_CPU_FREQ is not set
177
178#
144# Bus options (PCI, PCMCIA) 179# Bus options (PCI, PCMCIA)
145# 180#
146CONFIG_PCI=y 181CONFIG_PCI=y
147CONFIG_PCI_DOMAINS=y 182CONFIG_PCI_DOMAINS=y
148# CONFIG_PCI_MSI is not set 183# CONFIG_PCI_MSI is not set
149CONFIG_PCI_LEGACY_PROC=y 184CONFIG_PCI_LEGACY_PROC=y
150CONFIG_PCI_NAMES=y
151# CONFIG_PCI_DEBUG is not set 185# CONFIG_PCI_DEBUG is not set
152 186
153# 187#
@@ -191,8 +225,8 @@ CONFIG_SYN_COOKIES=y
191# CONFIG_INET_ESP is not set 225# CONFIG_INET_ESP is not set
192# CONFIG_INET_IPCOMP is not set 226# CONFIG_INET_IPCOMP is not set
193# CONFIG_INET_TUNNEL is not set 227# CONFIG_INET_TUNNEL is not set
194CONFIG_IP_TCPDIAG=y 228CONFIG_INET_DIAG=m
195# CONFIG_IP_TCPDIAG_IPV6 is not set 229CONFIG_INET_TCP_DIAG=m
196# CONFIG_TCP_CONG_ADVANCED is not set 230# CONFIG_TCP_CONG_ADVANCED is not set
197CONFIG_TCP_CONG_BIC=y 231CONFIG_TCP_CONG_BIC=y
198CONFIG_IPV6=m 232CONFIG_IPV6=m
@@ -205,6 +239,11 @@ CONFIG_IPV6=m
205# CONFIG_NETFILTER is not set 239# CONFIG_NETFILTER is not set
206 240
207# 241#
242# DCCP Configuration (EXPERIMENTAL)
243#
244# CONFIG_IP_DCCP is not set
245
246#
208# SCTP Configuration (EXPERIMENTAL) 247# SCTP Configuration (EXPERIMENTAL)
209# 248#
210# CONFIG_IP_SCTP is not set 249# CONFIG_IP_SCTP is not set
@@ -220,8 +259,11 @@ CONFIG_IPV6=m
220# CONFIG_NET_DIVERT is not set 259# CONFIG_NET_DIVERT is not set
221# CONFIG_ECONET is not set 260# CONFIG_ECONET is not set
222# CONFIG_WAN_ROUTER is not set 261# CONFIG_WAN_ROUTER is not set
262
263#
264# QoS and/or fair queueing
265#
223# CONFIG_NET_SCHED is not set 266# CONFIG_NET_SCHED is not set
224# CONFIG_NET_CLS_ROUTE is not set
225 267
226# 268#
227# Network testing 269# Network testing
@@ -230,6 +272,7 @@ CONFIG_IPV6=m
230# CONFIG_HAMRADIO is not set 272# CONFIG_HAMRADIO is not set
231# CONFIG_IRDA is not set 273# CONFIG_IRDA is not set
232# CONFIG_BT is not set 274# CONFIG_BT is not set
275# CONFIG_IEEE80211 is not set
233 276
234# 277#
235# Device Drivers 278# Device Drivers
@@ -244,6 +287,11 @@ CONFIG_FW_LOADER=y
244# CONFIG_DEBUG_DRIVER is not set 287# CONFIG_DEBUG_DRIVER is not set
245 288
246# 289#
290# Connector - unified userspace <-> kernelspace linker
291#
292# CONFIG_CONNECTOR is not set
293
294#
247# Memory Technology Devices (MTD) 295# Memory Technology Devices (MTD)
248# 296#
249# CONFIG_MTD is not set 297# CONFIG_MTD is not set
@@ -275,16 +323,7 @@ CONFIG_BLK_DEV_RAM=y
275CONFIG_BLK_DEV_RAM_COUNT=16 323CONFIG_BLK_DEV_RAM_COUNT=16
276CONFIG_BLK_DEV_RAM_SIZE=4096 324CONFIG_BLK_DEV_RAM_SIZE=4096
277CONFIG_BLK_DEV_INITRD=y 325CONFIG_BLK_DEV_INITRD=y
278CONFIG_INITRAMFS_SOURCE=""
279# CONFIG_CDROM_PKTCDVD is not set 326# CONFIG_CDROM_PKTCDVD is not set
280
281#
282# IO Schedulers
283#
284CONFIG_IOSCHED_NOOP=y
285CONFIG_IOSCHED_AS=y
286CONFIG_IOSCHED_DEADLINE=y
287CONFIG_IOSCHED_CFQ=y
288CONFIG_ATA_OVER_ETH=m 327CONFIG_ATA_OVER_ETH=m
289 328
290# 329#
@@ -349,6 +388,7 @@ CONFIG_IDEDMA_AUTO=y
349# 388#
350# SCSI device support 389# SCSI device support
351# 390#
391# CONFIG_RAID_ATTRS is not set
352CONFIG_SCSI=y 392CONFIG_SCSI=y
353CONFIG_SCSI_PROC_FS=y 393CONFIG_SCSI_PROC_FS=y
354 394
@@ -375,11 +415,13 @@ CONFIG_SCSI_CONSTANTS=y
375# 415#
376CONFIG_SCSI_SPI_ATTRS=y 416CONFIG_SCSI_SPI_ATTRS=y
377CONFIG_SCSI_FC_ATTRS=y 417CONFIG_SCSI_FC_ATTRS=y
378# CONFIG_SCSI_ISCSI_ATTRS is not set 418CONFIG_SCSI_ISCSI_ATTRS=m
419CONFIG_SCSI_SAS_ATTRS=y
379 420
380# 421#
381# SCSI low-level drivers 422# SCSI low-level drivers
382# 423#
424CONFIG_ISCSI_TCP=m
383# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 425# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
384# CONFIG_SCSI_3W_9XXX is not set 426# CONFIG_SCSI_3W_9XXX is not set
385# CONFIG_SCSI_ACARD is not set 427# CONFIG_SCSI_ACARD is not set
@@ -389,15 +431,19 @@ CONFIG_SCSI_FC_ATTRS=y
389# CONFIG_SCSI_AIC79XX is not set 431# CONFIG_SCSI_AIC79XX is not set
390# CONFIG_MEGARAID_NEWGEN is not set 432# CONFIG_MEGARAID_NEWGEN is not set
391# CONFIG_MEGARAID_LEGACY is not set 433# CONFIG_MEGARAID_LEGACY is not set
434# CONFIG_MEGARAID_SAS is not set
392CONFIG_SCSI_SATA=y 435CONFIG_SCSI_SATA=y
393# CONFIG_SCSI_SATA_AHCI is not set 436# CONFIG_SCSI_SATA_AHCI is not set
394# CONFIG_SCSI_SATA_SVW is not set 437# CONFIG_SCSI_SATA_SVW is not set
395# CONFIG_SCSI_ATA_PIIX is not set 438# CONFIG_SCSI_ATA_PIIX is not set
439# CONFIG_SCSI_SATA_MV is not set
396# CONFIG_SCSI_SATA_NV is not set 440# CONFIG_SCSI_SATA_NV is not set
397# CONFIG_SCSI_SATA_PROMISE is not set 441# CONFIG_SCSI_PDC_ADMA is not set
398# CONFIG_SCSI_SATA_QSTOR is not set 442# CONFIG_SCSI_SATA_QSTOR is not set
443# CONFIG_SCSI_SATA_PROMISE is not set
399# CONFIG_SCSI_SATA_SX4 is not set 444# CONFIG_SCSI_SATA_SX4 is not set
400# CONFIG_SCSI_SATA_SIL is not set 445# CONFIG_SCSI_SATA_SIL is not set
446# CONFIG_SCSI_SATA_SIL24 is not set
401# CONFIG_SCSI_SATA_SIS is not set 447# CONFIG_SCSI_SATA_SIS is not set
402# CONFIG_SCSI_SATA_ULI is not set 448# CONFIG_SCSI_SATA_ULI is not set
403# CONFIG_SCSI_SATA_VIA is not set 449# CONFIG_SCSI_SATA_VIA is not set
@@ -411,7 +457,6 @@ CONFIG_SCSI_SATA_VITESSE=y
411# CONFIG_SCSI_IPR is not set 457# CONFIG_SCSI_IPR is not set
412# CONFIG_SCSI_QLOGIC_FC is not set 458# CONFIG_SCSI_QLOGIC_FC is not set
413CONFIG_SCSI_QLOGIC_1280=y 459CONFIG_SCSI_QLOGIC_1280=y
414# CONFIG_SCSI_QLOGIC_1280_1040 is not set
415CONFIG_SCSI_QLA2XXX=y 460CONFIG_SCSI_QLA2XXX=y
416# CONFIG_SCSI_QLA21XX is not set 461# CONFIG_SCSI_QLA21XX is not set
417CONFIG_SCSI_QLA22XX=y 462CONFIG_SCSI_QLA22XX=y
@@ -451,6 +496,7 @@ CONFIG_DM_MULTIPATH_EMC=m
451CONFIG_FUSION=y 496CONFIG_FUSION=y
452CONFIG_FUSION_SPI=y 497CONFIG_FUSION_SPI=y
453CONFIG_FUSION_FC=y 498CONFIG_FUSION_FC=y
499CONFIG_FUSION_SAS=y
454CONFIG_FUSION_MAX_SGE=128 500CONFIG_FUSION_MAX_SGE=128
455CONFIG_FUSION_CTL=m 501CONFIG_FUSION_CTL=m
456 502
@@ -479,6 +525,10 @@ CONFIG_NETDEVICES=y
479# CONFIG_ARCNET is not set 525# CONFIG_ARCNET is not set
480 526
481# 527#
528# PHY device support
529#
530
531#
482# Ethernet (10 or 100Mbit) 532# Ethernet (10 or 100Mbit)
483# 533#
484# CONFIG_NET_ETHERNET is not set 534# CONFIG_NET_ETHERNET is not set
@@ -493,6 +543,7 @@ CONFIG_NETDEVICES=y
493# CONFIG_HAMACHI is not set 543# CONFIG_HAMACHI is not set
494# CONFIG_YELLOWFIN is not set 544# CONFIG_YELLOWFIN is not set
495# CONFIG_R8169 is not set 545# CONFIG_R8169 is not set
546# CONFIG_SIS190 is not set
496# CONFIG_SKGE is not set 547# CONFIG_SKGE is not set
497# CONFIG_SK98LIN is not set 548# CONFIG_SK98LIN is not set
498CONFIG_TIGON3=y 549CONFIG_TIGON3=y
@@ -501,10 +552,10 @@ CONFIG_TIGON3=y
501# 552#
502# Ethernet (10000 Mbit) 553# Ethernet (10000 Mbit)
503# 554#
555CONFIG_CHELSIO_T1=m
504# CONFIG_IXGB is not set 556# CONFIG_IXGB is not set
505CONFIG_S2IO=m 557CONFIG_S2IO=m
506# CONFIG_S2IO_NAPI is not set 558# CONFIG_S2IO_NAPI is not set
507# CONFIG_2BUFF_MODE is not set
508 559
509# 560#
510# Token Ring devices 561# Token Ring devices
@@ -583,6 +634,7 @@ CONFIG_HW_CONSOLE=y
583CONFIG_SERIAL_NONSTANDARD=y 634CONFIG_SERIAL_NONSTANDARD=y
584# CONFIG_ROCKETPORT is not set 635# CONFIG_ROCKETPORT is not set
585# CONFIG_CYCLADES is not set 636# CONFIG_CYCLADES is not set
637# CONFIG_DIGIEPCA is not set
586# CONFIG_MOXA_SMARTIO is not set 638# CONFIG_MOXA_SMARTIO is not set
587# CONFIG_ISI is not set 639# CONFIG_ISI is not set
588# CONFIG_SYNCLINKMP is not set 640# CONFIG_SYNCLINKMP is not set
@@ -629,7 +681,8 @@ CONFIG_EFI_RTC=y
629# 681#
630# Ftape, the floppy tape device driver 682# Ftape, the floppy tape device driver
631# 683#
632# CONFIG_AGP is not set 684CONFIG_AGP=y
685CONFIG_AGP_SGI_TIOCA=y
633# CONFIG_DRM is not set 686# CONFIG_DRM is not set
634CONFIG_RAW_DRIVER=m 687CONFIG_RAW_DRIVER=m
635# CONFIG_HPET is not set 688# CONFIG_HPET is not set
@@ -641,12 +694,12 @@ CONFIG_MMTIMER=y
641# TPM devices 694# TPM devices
642# 695#
643# CONFIG_TCG_TPM is not set 696# CONFIG_TCG_TPM is not set
697# CONFIG_TELCLOCK is not set
644 698
645# 699#
646# I2C support 700# I2C support
647# 701#
648# CONFIG_I2C is not set 702# CONFIG_I2C is not set
649# CONFIG_I2C_SENSOR is not set
650 703
651# 704#
652# Dallas's 1-wire bus 705# Dallas's 1-wire bus
@@ -657,12 +710,17 @@ CONFIG_MMTIMER=y
657# Hardware Monitoring support 710# Hardware Monitoring support
658# 711#
659# CONFIG_HWMON is not set 712# CONFIG_HWMON is not set
713# CONFIG_HWMON_VID is not set
660 714
661# 715#
662# Misc devices 716# Misc devices
663# 717#
664 718
665# 719#
720# Multimedia Capabilities Port drivers
721#
722
723#
666# Multimedia devices 724# Multimedia devices
667# 725#
668# CONFIG_VIDEO_DEV is not set 726# CONFIG_VIDEO_DEV is not set
@@ -721,12 +779,15 @@ CONFIG_USB_UHCI_HCD=m
721# 779#
722# USB Device Class drivers 780# USB Device Class drivers
723# 781#
724# CONFIG_USB_BLUETOOTH_TTY is not set
725# CONFIG_USB_ACM is not set 782# CONFIG_USB_ACM is not set
726# CONFIG_USB_PRINTER is not set 783# CONFIG_USB_PRINTER is not set
727 784
728# 785#
729# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information 786# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
787#
788
789#
790# may also be needed; see USB_STORAGE Help for more information
730# 791#
731# CONFIG_USB_STORAGE is not set 792# CONFIG_USB_STORAGE is not set
732 793
@@ -751,9 +812,11 @@ CONFIG_USB_HIDINPUT=y
751# CONFIG_USB_MTOUCH is not set 812# CONFIG_USB_MTOUCH is not set
752# CONFIG_USB_ITMTOUCH is not set 813# CONFIG_USB_ITMTOUCH is not set
753# CONFIG_USB_EGALAX is not set 814# CONFIG_USB_EGALAX is not set
815# CONFIG_USB_YEALINK is not set
754# CONFIG_USB_XPAD is not set 816# CONFIG_USB_XPAD is not set
755# CONFIG_USB_ATI_REMOTE is not set 817# CONFIG_USB_ATI_REMOTE is not set
756# CONFIG_USB_KEYSPAN_REMOTE is not set 818# CONFIG_USB_KEYSPAN_REMOTE is not set
819# CONFIG_USB_APPLETOUCH is not set
757 820
758# 821#
759# USB Imaging devices 822# USB Imaging devices
@@ -824,11 +887,13 @@ CONFIG_USB_MON=y
824# InfiniBand support 887# InfiniBand support
825# 888#
826CONFIG_INFINIBAND=m 889CONFIG_INFINIBAND=m
827CONFIG_INFINIBAND_USER_VERBS=m 890# CONFIG_INFINIBAND_USER_MAD is not set
891CONFIG_INFINIBAND_USER_ACCESS=m
828CONFIG_INFINIBAND_MTHCA=m 892CONFIG_INFINIBAND_MTHCA=m
829# CONFIG_INFINIBAND_MTHCA_DEBUG is not set 893# CONFIG_INFINIBAND_MTHCA_DEBUG is not set
830CONFIG_INFINIBAND_IPOIB=m 894CONFIG_INFINIBAND_IPOIB=m
831# CONFIG_INFINIBAND_IPOIB_DEBUG is not set 895# CONFIG_INFINIBAND_IPOIB_DEBUG is not set
896CONFIG_INFINIBAND_SRP=m
832 897
833# 898#
834# SN Devices 899# SN Devices
@@ -858,16 +923,12 @@ CONFIG_REISERFS_FS_POSIX_ACL=y
858CONFIG_REISERFS_FS_SECURITY=y 923CONFIG_REISERFS_FS_SECURITY=y
859# CONFIG_JFS_FS is not set 924# CONFIG_JFS_FS is not set
860CONFIG_FS_POSIX_ACL=y 925CONFIG_FS_POSIX_ACL=y
861
862#
863# XFS support
864#
865CONFIG_XFS_FS=y 926CONFIG_XFS_FS=y
866CONFIG_XFS_EXPORT=y 927CONFIG_XFS_EXPORT=y
867CONFIG_XFS_RT=y
868CONFIG_XFS_QUOTA=y 928CONFIG_XFS_QUOTA=y
869# CONFIG_XFS_SECURITY is not set 929# CONFIG_XFS_SECURITY is not set
870CONFIG_XFS_POSIX_ACL=y 930CONFIG_XFS_POSIX_ACL=y
931CONFIG_XFS_RT=y
871# CONFIG_MINIX_FS is not set 932# CONFIG_MINIX_FS is not set
872# CONFIG_ROMFS_FS is not set 933# CONFIG_ROMFS_FS is not set
873CONFIG_INOTIFY=y 934CONFIG_INOTIFY=y
@@ -878,6 +939,7 @@ CONFIG_QUOTACTL=y
878CONFIG_DNOTIFY=y 939CONFIG_DNOTIFY=y
879CONFIG_AUTOFS_FS=m 940CONFIG_AUTOFS_FS=m
880CONFIG_AUTOFS4_FS=m 941CONFIG_AUTOFS4_FS=m
942CONFIG_FUSE_FS=m
881 943
882# 944#
883# CD-ROM/DVD Filesystems 945# CD-ROM/DVD Filesystems
@@ -904,13 +966,11 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
904CONFIG_PROC_FS=y 966CONFIG_PROC_FS=y
905CONFIG_PROC_KCORE=y 967CONFIG_PROC_KCORE=y
906CONFIG_SYSFS=y 968CONFIG_SYSFS=y
907# CONFIG_DEVPTS_FS_XATTR is not set
908CONFIG_TMPFS=y 969CONFIG_TMPFS=y
909CONFIG_TMPFS_XATTR=y
910CONFIG_TMPFS_SECURITY=y
911CONFIG_HUGETLBFS=y 970CONFIG_HUGETLBFS=y
912CONFIG_HUGETLB_PAGE=y 971CONFIG_HUGETLB_PAGE=y
913CONFIG_RAMFS=y 972CONFIG_RAMFS=y
973CONFIG_RELAYFS_FS=m
914 974
915# 975#
916# Miscellaneous filesystems 976# Miscellaneous filesystems
@@ -959,6 +1019,7 @@ CONFIG_CIFS=m
959# CONFIG_NCP_FS is not set 1019# CONFIG_NCP_FS is not set
960# CONFIG_CODA_FS is not set 1020# CONFIG_CODA_FS is not set
961# CONFIG_AFS_FS is not set 1021# CONFIG_AFS_FS is not set
1022# CONFIG_9P_FS is not set
962 1023
963# 1024#
964# Partition Types 1025# Partition Types
@@ -1028,18 +1089,21 @@ CONFIG_NLS_UTF8=y
1028# Library routines 1089# Library routines
1029# 1090#
1030# CONFIG_CRC_CCITT is not set 1091# CONFIG_CRC_CCITT is not set
1092CONFIG_CRC16=m
1031CONFIG_CRC32=y 1093CONFIG_CRC32=y
1032# CONFIG_LIBCRC32C is not set 1094CONFIG_LIBCRC32C=m
1033CONFIG_ZLIB_INFLATE=m 1095CONFIG_ZLIB_INFLATE=m
1034CONFIG_ZLIB_DEFLATE=m 1096CONFIG_ZLIB_DEFLATE=m
1035CONFIG_GENERIC_ALLOCATOR=y 1097CONFIG_GENERIC_ALLOCATOR=y
1036CONFIG_GENERIC_HARDIRQS=y 1098CONFIG_GENERIC_HARDIRQS=y
1037CONFIG_GENERIC_IRQ_PROBE=y 1099CONFIG_GENERIC_IRQ_PROBE=y
1100CONFIG_GENERIC_PENDING_IRQ=y
1038 1101
1039# 1102#
1040# Profiling support 1103# Instrumentation Support
1041# 1104#
1042# CONFIG_PROFILING is not set 1105# CONFIG_PROFILING is not set
1106# CONFIG_KPROBES is not set
1043 1107
1044# 1108#
1045# Kernel hacking 1109# Kernel hacking
@@ -1048,6 +1112,7 @@ CONFIG_GENERIC_IRQ_PROBE=y
1048CONFIG_DEBUG_KERNEL=y 1112CONFIG_DEBUG_KERNEL=y
1049CONFIG_MAGIC_SYSRQ=y 1113CONFIG_MAGIC_SYSRQ=y
1050CONFIG_LOG_BUF_SHIFT=20 1114CONFIG_LOG_BUF_SHIFT=20
1115CONFIG_DETECT_SOFTLOCKUP=y
1051# CONFIG_SCHEDSTATS is not set 1116# CONFIG_SCHEDSTATS is not set
1052# CONFIG_DEBUG_SLAB is not set 1117# CONFIG_DEBUG_SLAB is not set
1053CONFIG_DEBUG_PREEMPT=y 1118CONFIG_DEBUG_PREEMPT=y
@@ -1056,7 +1121,8 @@ CONFIG_DEBUG_PREEMPT=y
1056# CONFIG_DEBUG_KOBJECT is not set 1121# CONFIG_DEBUG_KOBJECT is not set
1057CONFIG_DEBUG_INFO=y 1122CONFIG_DEBUG_INFO=y
1058# CONFIG_DEBUG_FS is not set 1123# CONFIG_DEBUG_FS is not set
1059# CONFIG_KPROBES is not set 1124# CONFIG_DEBUG_VM is not set
1125# CONFIG_RCU_TORTURE_TEST is not set
1060CONFIG_IA64_GRANULE_16MB=y 1126CONFIG_IA64_GRANULE_16MB=y
1061# CONFIG_IA64_GRANULE_64MB is not set 1127# CONFIG_IA64_GRANULE_64MB is not set
1062# CONFIG_IA64_PRINT_HAZARDS is not set 1128# CONFIG_IA64_PRINT_HAZARDS is not set
@@ -1097,7 +1163,7 @@ CONFIG_CRYPTO_DES=m
1097# CONFIG_CRYPTO_ANUBIS is not set 1163# CONFIG_CRYPTO_ANUBIS is not set
1098CONFIG_CRYPTO_DEFLATE=m 1164CONFIG_CRYPTO_DEFLATE=m
1099# CONFIG_CRYPTO_MICHAEL_MIC is not set 1165# CONFIG_CRYPTO_MICHAEL_MIC is not set
1100# CONFIG_CRYPTO_CRC32C is not set 1166CONFIG_CRYPTO_CRC32C=m
1101# CONFIG_CRYPTO_TEST is not set 1167# CONFIG_CRYPTO_TEST is not set
1102 1168
1103# 1169#
diff --git a/arch/ia64/configs/tiger_defconfig b/arch/ia64/configs/tiger_defconfig
index 9bc8bcafc905..b1e8f09e9fd5 100644
--- a/arch/ia64/configs/tiger_defconfig
+++ b/arch/ia64/configs/tiger_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.14-rc1 3# Linux kernel version: 2.6.15-rc4
4# Wed Sep 14 15:17:57 2005 4# Fri Dec 2 16:06:32 2005
5# 5#
6 6
7# 7#
@@ -59,17 +59,36 @@ CONFIG_KMOD=y
59CONFIG_STOP_MACHINE=y 59CONFIG_STOP_MACHINE=y
60 60
61# 61#
62# Block layer
63#
64
65#
66# IO Schedulers
67#
68CONFIG_IOSCHED_NOOP=y
69CONFIG_IOSCHED_AS=y
70CONFIG_IOSCHED_DEADLINE=y
71CONFIG_IOSCHED_CFQ=y
72CONFIG_DEFAULT_AS=y
73# CONFIG_DEFAULT_DEADLINE is not set
74# CONFIG_DEFAULT_CFQ is not set
75# CONFIG_DEFAULT_NOOP is not set
76CONFIG_DEFAULT_IOSCHED="anticipatory"
77
78#
62# Processor type and features 79# Processor type and features
63# 80#
64CONFIG_IA64=y 81CONFIG_IA64=y
65CONFIG_64BIT=y 82CONFIG_64BIT=y
66CONFIG_MMU=y 83CONFIG_MMU=y
84CONFIG_SWIOTLB=y
67CONFIG_RWSEM_XCHGADD_ALGORITHM=y 85CONFIG_RWSEM_XCHGADD_ALGORITHM=y
68CONFIG_GENERIC_CALIBRATE_DELAY=y 86CONFIG_GENERIC_CALIBRATE_DELAY=y
69CONFIG_TIME_INTERPOLATION=y 87CONFIG_TIME_INTERPOLATION=y
70CONFIG_EFI=y 88CONFIG_EFI=y
71CONFIG_GENERIC_IOMAP=y 89CONFIG_GENERIC_IOMAP=y
72CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 90CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
91CONFIG_ZONE_DMA_IS_DMA32=y
73# CONFIG_IA64_GENERIC is not set 92# CONFIG_IA64_GENERIC is not set
74CONFIG_IA64_DIG=y 93CONFIG_IA64_DIG=y
75# CONFIG_IA64_HP_ZX1 is not set 94# CONFIG_IA64_HP_ZX1 is not set
@@ -82,18 +101,16 @@ CONFIG_MCKINLEY=y
82# CONFIG_IA64_PAGE_SIZE_8KB is not set 101# CONFIG_IA64_PAGE_SIZE_8KB is not set
83CONFIG_IA64_PAGE_SIZE_16KB=y 102CONFIG_IA64_PAGE_SIZE_16KB=y
84# CONFIG_IA64_PAGE_SIZE_64KB is not set 103# CONFIG_IA64_PAGE_SIZE_64KB is not set
104CONFIG_PGTABLE_3=y
105# CONFIG_PGTABLE_4 is not set
85# CONFIG_HZ_100 is not set 106# CONFIG_HZ_100 is not set
86CONFIG_HZ_250=y 107CONFIG_HZ_250=y
87# CONFIG_HZ_1000 is not set 108# CONFIG_HZ_1000 is not set
88CONFIG_HZ=250 109CONFIG_HZ=250
89CONFIG_IA64_L1_CACHE_SHIFT=7 110CONFIG_IA64_L1_CACHE_SHIFT=7
90# CONFIG_NUMA is not set
91CONFIG_VIRTUAL_MEM_MAP=y
92CONFIG_HOLES_IN_ZONE=y
93CONFIG_IA64_CYCLONE=y 111CONFIG_IA64_CYCLONE=y
94CONFIG_IOSAPIC=y 112CONFIG_IOSAPIC=y
95# CONFIG_IA64_SGI_SN_XP is not set 113CONFIG_FORCE_MAX_ZONEORDER=17
96CONFIG_FORCE_MAX_ZONEORDER=18
97CONFIG_SMP=y 114CONFIG_SMP=y
98CONFIG_NR_CPUS=4 115CONFIG_NR_CPUS=4
99CONFIG_HOTPLUG_CPU=y 116CONFIG_HOTPLUG_CPU=y
@@ -106,7 +123,13 @@ CONFIG_FLATMEM_MANUAL=y
106CONFIG_FLATMEM=y 123CONFIG_FLATMEM=y
107CONFIG_FLAT_NODE_MEM_MAP=y 124CONFIG_FLAT_NODE_MEM_MAP=y
108# CONFIG_SPARSEMEM_STATIC is not set 125# CONFIG_SPARSEMEM_STATIC is not set
109CONFIG_HAVE_DEC_LOCK=y 126CONFIG_SPLIT_PTLOCK_CPUS=4
127CONFIG_ARCH_SELECT_MEMORY_MODEL=y
128CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
129CONFIG_ARCH_FLATMEM_ENABLE=y
130CONFIG_ARCH_SPARSEMEM_ENABLE=y
131CONFIG_VIRTUAL_MEM_MAP=y
132CONFIG_HOLES_IN_ZONE=y
110CONFIG_IA32_SUPPORT=y 133CONFIG_IA32_SUPPORT=y
111CONFIG_COMPAT=y 134CONFIG_COMPAT=y
112CONFIG_IA64_MCA_RECOVERY=y 135CONFIG_IA64_MCA_RECOVERY=y
@@ -118,7 +141,6 @@ CONFIG_IA64_PALINFO=y
118# 141#
119CONFIG_EFI_VARS=y 142CONFIG_EFI_VARS=y
120CONFIG_EFI_PCDP=y 143CONFIG_EFI_PCDP=y
121# CONFIG_DELL_RBU is not set
122CONFIG_BINFMT_ELF=y 144CONFIG_BINFMT_ELF=y
123CONFIG_BINFMT_MISC=m 145CONFIG_BINFMT_MISC=m
124 146
@@ -126,6 +148,7 @@ CONFIG_BINFMT_MISC=m
126# Power management and ACPI 148# Power management and ACPI
127# 149#
128CONFIG_PM=y 150CONFIG_PM=y
151CONFIG_PM_LEGACY=y
129# CONFIG_PM_DEBUG is not set 152# CONFIG_PM_DEBUG is not set
130 153
131# 154#
@@ -226,14 +249,16 @@ CONFIG_TCP_CONG_BIC=y
226# CONFIG_NET_DIVERT is not set 249# CONFIG_NET_DIVERT is not set
227# CONFIG_ECONET is not set 250# CONFIG_ECONET is not set
228# CONFIG_WAN_ROUTER is not set 251# CONFIG_WAN_ROUTER is not set
252
253#
254# QoS and/or fair queueing
255#
229# CONFIG_NET_SCHED is not set 256# CONFIG_NET_SCHED is not set
230# CONFIG_NET_CLS_ROUTE is not set
231 257
232# 258#
233# Network testing 259# Network testing
234# 260#
235# CONFIG_NET_PKTGEN is not set 261# CONFIG_NET_PKTGEN is not set
236# CONFIG_NETFILTER_NETLINK is not set
237# CONFIG_HAMRADIO is not set 262# CONFIG_HAMRADIO is not set
238# CONFIG_IRDA is not set 263# CONFIG_IRDA is not set
239# CONFIG_BT is not set 264# CONFIG_BT is not set
@@ -295,14 +320,6 @@ CONFIG_BLK_DEV_RAM_COUNT=16
295CONFIG_BLK_DEV_RAM_SIZE=4096 320CONFIG_BLK_DEV_RAM_SIZE=4096
296CONFIG_BLK_DEV_INITRD=y 321CONFIG_BLK_DEV_INITRD=y
297# CONFIG_CDROM_PKTCDVD is not set 322# CONFIG_CDROM_PKTCDVD is not set
298
299#
300# IO Schedulers
301#
302CONFIG_IOSCHED_NOOP=y
303CONFIG_IOSCHED_AS=y
304CONFIG_IOSCHED_DEADLINE=y
305CONFIG_IOSCHED_CFQ=y
306# CONFIG_ATA_OVER_ETH is not set 323# CONFIG_ATA_OVER_ETH is not set
307 324
308# 325#
@@ -400,6 +417,7 @@ CONFIG_SCSI_FC_ATTRS=y
400# 417#
401# SCSI low-level drivers 418# SCSI low-level drivers
402# 419#
420# CONFIG_ISCSI_TCP is not set
403# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 421# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
404# CONFIG_SCSI_3W_9XXX is not set 422# CONFIG_SCSI_3W_9XXX is not set
405# CONFIG_SCSI_ACARD is not set 423# CONFIG_SCSI_ACARD is not set
@@ -409,6 +427,7 @@ CONFIG_SCSI_FC_ATTRS=y
409# CONFIG_SCSI_AIC79XX is not set 427# CONFIG_SCSI_AIC79XX is not set
410# CONFIG_MEGARAID_NEWGEN is not set 428# CONFIG_MEGARAID_NEWGEN is not set
411# CONFIG_MEGARAID_LEGACY is not set 429# CONFIG_MEGARAID_LEGACY is not set
430# CONFIG_MEGARAID_SAS is not set
412# CONFIG_SCSI_SATA is not set 431# CONFIG_SCSI_SATA is not set
413# CONFIG_SCSI_DMX3191D is not set 432# CONFIG_SCSI_DMX3191D is not set
414# CONFIG_SCSI_FUTURE_DOMAIN is not set 433# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -424,7 +443,6 @@ CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
424CONFIG_SCSI_QLOGIC_FC=y 443CONFIG_SCSI_QLOGIC_FC=y
425# CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set 444# CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set
426CONFIG_SCSI_QLOGIC_1280=y 445CONFIG_SCSI_QLOGIC_1280=y
427# CONFIG_SCSI_QLOGIC_1280_1040 is not set
428CONFIG_SCSI_QLA2XXX=y 446CONFIG_SCSI_QLA2XXX=y
429CONFIG_SCSI_QLA21XX=m 447CONFIG_SCSI_QLA21XX=m
430CONFIG_SCSI_QLA22XX=m 448CONFIG_SCSI_QLA22XX=m
@@ -463,6 +481,7 @@ CONFIG_DM_ZERO=m
463CONFIG_FUSION=y 481CONFIG_FUSION=y
464CONFIG_FUSION_SPI=y 482CONFIG_FUSION_SPI=y
465CONFIG_FUSION_FC=y 483CONFIG_FUSION_FC=y
484# CONFIG_FUSION_SAS is not set
466CONFIG_FUSION_MAX_SGE=128 485CONFIG_FUSION_MAX_SGE=128
467CONFIG_FUSION_CTL=y 486CONFIG_FUSION_CTL=y
468 487
@@ -503,6 +522,7 @@ CONFIG_NET_ETHERNET=y
503CONFIG_MII=m 522CONFIG_MII=m
504# CONFIG_HAPPYMEAL is not set 523# CONFIG_HAPPYMEAL is not set
505# CONFIG_SUNGEM is not set 524# CONFIG_SUNGEM is not set
525# CONFIG_CASSINI is not set
506# CONFIG_NET_VENDOR_3COM is not set 526# CONFIG_NET_VENDOR_3COM is not set
507 527
508# 528#
@@ -727,6 +747,7 @@ CONFIG_MAX_RAW_DEVS=256
727# TPM devices 747# TPM devices
728# 748#
729# CONFIG_TCG_TPM is not set 749# CONFIG_TCG_TPM is not set
750# CONFIG_TELCLOCK is not set
730 751
731# 752#
732# I2C support 753# I2C support
@@ -812,12 +833,15 @@ CONFIG_USB_UHCI_HCD=y
812# 833#
813# USB Device Class drivers 834# USB Device Class drivers
814# 835#
815# CONFIG_USB_BLUETOOTH_TTY is not set
816# CONFIG_USB_ACM is not set 836# CONFIG_USB_ACM is not set
817# CONFIG_USB_PRINTER is not set 837# CONFIG_USB_PRINTER is not set
818 838
819# 839#
820# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information 840# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
841#
842
843#
844# may also be needed; see USB_STORAGE Help for more information
821# 845#
822CONFIG_USB_STORAGE=m 846CONFIG_USB_STORAGE=m
823# CONFIG_USB_STORAGE_DEBUG is not set 847# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1123,9 +1147,10 @@ CONFIG_GENERIC_IRQ_PROBE=y
1123CONFIG_GENERIC_PENDING_IRQ=y 1147CONFIG_GENERIC_PENDING_IRQ=y
1124 1148
1125# 1149#
1126# Profiling support 1150# Instrumentation Support
1127# 1151#
1128# CONFIG_PROFILING is not set 1152# CONFIG_PROFILING is not set
1153# CONFIG_KPROBES is not set
1129 1154
1130# 1155#
1131# Kernel hacking 1156# Kernel hacking
@@ -1142,7 +1167,8 @@ CONFIG_DETECT_SOFTLOCKUP=y
1142# CONFIG_DEBUG_KOBJECT is not set 1167# CONFIG_DEBUG_KOBJECT is not set
1143# CONFIG_DEBUG_INFO is not set 1168# CONFIG_DEBUG_INFO is not set
1144# CONFIG_DEBUG_FS is not set 1169# CONFIG_DEBUG_FS is not set
1145# CONFIG_KPROBES is not set 1170# CONFIG_DEBUG_VM is not set
1171# CONFIG_RCU_TORTURE_TEST is not set
1146CONFIG_IA64_GRANULE_16MB=y 1172CONFIG_IA64_GRANULE_16MB=y
1147# CONFIG_IA64_GRANULE_64MB is not set 1173# CONFIG_IA64_GRANULE_64MB is not set
1148# CONFIG_IA64_PRINT_HAZARDS is not set 1174# CONFIG_IA64_PRINT_HAZARDS is not set
diff --git a/arch/ia64/ia32/binfmt_elf32.c b/arch/ia64/ia32/binfmt_elf32.c
index a7280d9f6c16..4e7a6a1ec6c7 100644
--- a/arch/ia64/ia32/binfmt_elf32.c
+++ b/arch/ia64/ia32/binfmt_elf32.c
@@ -261,8 +261,6 @@ elf32_set_personality (void)
261{ 261{
262 set_personality(PER_LINUX32); 262 set_personality(PER_LINUX32);
263 current->thread.map_base = IA32_PAGE_OFFSET/3; 263 current->thread.map_base = IA32_PAGE_OFFSET/3;
264 current->thread.task_size = IA32_PAGE_OFFSET; /* use what Linux/x86 uses... */
265 set_fs(USER_DS); /* set addr limit for new TASK_SIZE */
266} 264}
267 265
268static unsigned long 266static unsigned long
diff --git a/arch/ia64/ia32/ia32priv.h b/arch/ia64/ia32/ia32priv.h
index e3e9290e3ff2..68ceb4e690c7 100644
--- a/arch/ia64/ia32/ia32priv.h
+++ b/arch/ia64/ia32/ia32priv.h
@@ -305,7 +305,6 @@ struct old_linux32_dirent {
305#define ELF_DATA ELFDATA2LSB 305#define ELF_DATA ELFDATA2LSB
306#define ELF_ARCH EM_386 306#define ELF_ARCH EM_386
307 307
308#define IA32_PAGE_OFFSET 0xc0000000
309#define IA32_STACK_TOP IA32_PAGE_OFFSET 308#define IA32_STACK_TOP IA32_PAGE_OFFSET
310#define IA32_GATE_OFFSET IA32_PAGE_OFFSET 309#define IA32_GATE_OFFSET IA32_PAGE_OFFSET
311#define IA32_GATE_END IA32_PAGE_OFFSET + PAGE_SIZE 310#define IA32_GATE_END IA32_PAGE_OFFSET + PAGE_SIZE
diff --git a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c
index 2e33665d9c18..a4da715a360c 100644
--- a/arch/ia64/kernel/process.c
+++ b/arch/ia64/kernel/process.c
@@ -721,8 +721,11 @@ flush_thread (void)
721 /* drop floating-point and debug-register state if it exists: */ 721 /* drop floating-point and debug-register state if it exists: */
722 current->thread.flags &= ~(IA64_THREAD_FPH_VALID | IA64_THREAD_DBG_VALID); 722 current->thread.flags &= ~(IA64_THREAD_FPH_VALID | IA64_THREAD_DBG_VALID);
723 ia64_drop_fpu(current); 723 ia64_drop_fpu(current);
724 if (IS_IA32_PROCESS(ia64_task_regs(current))) 724 if (IS_IA32_PROCESS(ia64_task_regs(current))) {
725 ia32_drop_partial_page_list(current); 725 ia32_drop_partial_page_list(current);
726 current->thread.task_size = IA32_PAGE_OFFSET;
727 set_fs(USER_DS);
728 }
726} 729}
727 730
728/* 731/*
diff --git a/arch/ia64/kernel/salinfo.c b/arch/ia64/kernel/salinfo.c
index ca68e6e44a72..1461dc660b43 100644
--- a/arch/ia64/kernel/salinfo.c
+++ b/arch/ia64/kernel/salinfo.c
@@ -293,7 +293,7 @@ retry:
293 if (file->f_flags & O_NONBLOCK) 293 if (file->f_flags & O_NONBLOCK)
294 return -EAGAIN; 294 return -EAGAIN;
295 if (down_interruptible(&data->sem)) 295 if (down_interruptible(&data->sem))
296 return -ERESTARTSYS; 296 return -EINTR;
297 } 297 }
298 298
299 n = data->cpu_check; 299 n = data->cpu_check;
diff --git a/arch/ia64/mm/discontig.c b/arch/ia64/mm/discontig.c
index 0f776b032d31..c87d6d1d5813 100644
--- a/arch/ia64/mm/discontig.c
+++ b/arch/ia64/mm/discontig.c
@@ -50,8 +50,10 @@ static nodemask_t memory_less_mask __initdata;
50 * To prevent cache aliasing effects, align per-node structures so that they 50 * To prevent cache aliasing effects, align per-node structures so that they
51 * start at addresses that are strided by node number. 51 * start at addresses that are strided by node number.
52 */ 52 */
53#define MAX_NODE_ALIGN_OFFSET (32 * 1024 * 1024)
53#define NODEDATA_ALIGN(addr, node) \ 54#define NODEDATA_ALIGN(addr, node) \
54 ((((addr) + 1024*1024-1) & ~(1024*1024-1)) + (node)*PERCPU_PAGE_SIZE) 55 ((((addr) + 1024*1024-1) & ~(1024*1024-1)) + \
56 (((node)*PERCPU_PAGE_SIZE) & (MAX_NODE_ALIGN_OFFSET - 1)))
55 57
56/** 58/**
57 * build_node_maps - callback to setup bootmem structs for each node 59 * build_node_maps - callback to setup bootmem structs for each node
diff --git a/arch/ia64/sn/kernel/io_init.c b/arch/ia64/sn/kernel/io_init.c
index 05e4ea889981..318087e35b66 100644
--- a/arch/ia64/sn/kernel/io_init.c
+++ b/arch/ia64/sn/kernel/io_init.c
@@ -3,7 +3,7 @@
3 * License. See the file "COPYING" in the main directory of this archive 3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details. 4 * for more details.
5 * 5 *
6 * Copyright (C) 1992 - 1997, 2000-2004 Silicon Graphics, Inc. All rights reserved. 6 * Copyright (C) 1992 - 1997, 2000-2005 Silicon Graphics, Inc. All rights reserved.
7 */ 7 */
8 8
9#include <linux/bootmem.h> 9#include <linux/bootmem.h>
@@ -147,6 +147,24 @@ sal_get_pcidev_info(u64 segment, u64 bus_number, u64 devfn, u64 pci_dev,
147} 147}
148 148
149/* 149/*
150 * sn_pcidev_info_get() - Retrieve the pcidev_info struct for the specified
151 * device.
152 */
153inline struct pcidev_info *
154sn_pcidev_info_get(struct pci_dev *dev)
155{
156 struct pcidev_info *pcidev;
157
158 list_for_each_entry(pcidev,
159 &(SN_PCI_CONTROLLER(dev)->pcidev_info), pdi_list) {
160 if (pcidev->pdi_linux_pcidev == dev) {
161 return pcidev;
162 }
163 }
164 return NULL;
165}
166
167/*
150 * sn_fixup_ionodes() - This routine initializes the HUB data strcuture for 168 * sn_fixup_ionodes() - This routine initializes the HUB data strcuture for
151 * each node in the system. 169 * each node in the system.
152 */ 170 */
@@ -229,6 +247,50 @@ static void sn_fixup_ionodes(void)
229 247
230} 248}
231 249
250/*
251 * sn_pci_window_fixup() - Create a pci_window for each device resource.
252 * Until ACPI support is added, we need this code
253 * to setup pci_windows for use by
254 * pcibios_bus_to_resource(),
255 * pcibios_resource_to_bus(), etc.
256 */
257static void
258sn_pci_window_fixup(struct pci_dev *dev, unsigned int count,
259 int64_t * pci_addrs)
260{
261 struct pci_controller *controller = PCI_CONTROLLER(dev->bus);
262 unsigned int i;
263 unsigned int idx;
264 unsigned int new_count;
265 struct pci_window *new_window;
266
267 if (count == 0)
268 return;
269 idx = controller->windows;
270 new_count = controller->windows + count;
271 new_window = kcalloc(new_count, sizeof(struct pci_window), GFP_KERNEL);
272 if (new_window == NULL)
273 BUG();
274 if (controller->window) {
275 memcpy(new_window, controller->window,
276 sizeof(struct pci_window) * controller->windows);
277 kfree(controller->window);
278 }
279
280 /* Setup a pci_window for each device resource. */
281 for (i = 0; i <= PCI_ROM_RESOURCE; i++) {
282 if (pci_addrs[i] == -1)
283 continue;
284
285 new_window[idx].offset = dev->resource[i].start - pci_addrs[i];
286 new_window[idx].resource = dev->resource[i];
287 idx++;
288 }
289
290 controller->windows = new_count;
291 controller->window = new_window;
292}
293
232void sn_pci_unfixup_slot(struct pci_dev *dev) 294void sn_pci_unfixup_slot(struct pci_dev *dev)
233{ 295{
234 struct pci_dev *host_pci_dev = SN_PCIDEV_INFO(dev)->host_pci_dev; 296 struct pci_dev *host_pci_dev = SN_PCIDEV_INFO(dev)->host_pci_dev;
@@ -246,21 +308,23 @@ void sn_pci_unfixup_slot(struct pci_dev *dev)
246 */ 308 */
247void sn_pci_fixup_slot(struct pci_dev *dev) 309void sn_pci_fixup_slot(struct pci_dev *dev)
248{ 310{
311 unsigned int count = 0;
249 int idx; 312 int idx;
250 int segment = pci_domain_nr(dev->bus); 313 int segment = pci_domain_nr(dev->bus);
251 int status = 0; 314 int status = 0;
252 struct pcibus_bussoft *bs; 315 struct pcibus_bussoft *bs;
253 struct pci_bus *host_pci_bus; 316 struct pci_bus *host_pci_bus;
254 struct pci_dev *host_pci_dev; 317 struct pci_dev *host_pci_dev;
318 struct pcidev_info *pcidev_info;
319 int64_t pci_addrs[PCI_ROM_RESOURCE + 1];
255 struct sn_irq_info *sn_irq_info; 320 struct sn_irq_info *sn_irq_info;
256 unsigned long size; 321 unsigned long size;
257 unsigned int bus_no, devfn; 322 unsigned int bus_no, devfn;
258 323
259 pci_dev_get(dev); /* for the sysdata pointer */ 324 pci_dev_get(dev); /* for the sysdata pointer */
260 dev->sysdata = kmalloc(sizeof(struct pcidev_info), GFP_KERNEL); 325 pcidev_info = kzalloc(sizeof(struct pcidev_info), GFP_KERNEL);
261 if (SN_PCIDEV_INFO(dev) <= 0) 326 if (pcidev_info <= 0)
262 BUG(); /* Cannot afford to run out of memory */ 327 BUG(); /* Cannot afford to run out of memory */
263 memset(SN_PCIDEV_INFO(dev), 0, sizeof(struct pcidev_info));
264 328
265 sn_irq_info = kmalloc(sizeof(struct sn_irq_info), GFP_KERNEL); 329 sn_irq_info = kmalloc(sizeof(struct sn_irq_info), GFP_KERNEL);
266 if (sn_irq_info <= 0) 330 if (sn_irq_info <= 0)
@@ -270,22 +334,34 @@ void sn_pci_fixup_slot(struct pci_dev *dev)
270 /* Call to retrieve pci device information needed by kernel. */ 334 /* Call to retrieve pci device information needed by kernel. */
271 status = sal_get_pcidev_info((u64) segment, (u64) dev->bus->number, 335 status = sal_get_pcidev_info((u64) segment, (u64) dev->bus->number,
272 dev->devfn, 336 dev->devfn,
273 (u64) __pa(SN_PCIDEV_INFO(dev)), 337 (u64) __pa(pcidev_info),
274 (u64) __pa(sn_irq_info)); 338 (u64) __pa(sn_irq_info));
275 if (status) 339 if (status)
276 BUG(); /* Cannot get platform pci device information */ 340 BUG(); /* Cannot get platform pci device information */
277 341
342 /* Add pcidev_info to list in sn_pci_controller struct */
343 list_add_tail(&pcidev_info->pdi_list,
344 &(SN_PCI_CONTROLLER(dev->bus)->pcidev_info));
345
278 /* Copy over PIO Mapped Addresses */ 346 /* Copy over PIO Mapped Addresses */
279 for (idx = 0; idx <= PCI_ROM_RESOURCE; idx++) { 347 for (idx = 0; idx <= PCI_ROM_RESOURCE; idx++) {
280 unsigned long start, end, addr; 348 unsigned long start, end, addr;
281 349
282 if (!SN_PCIDEV_INFO(dev)->pdi_pio_mapped_addr[idx]) 350 if (!pcidev_info->pdi_pio_mapped_addr[idx]) {
351 pci_addrs[idx] = -1;
283 continue; 352 continue;
353 }
284 354
285 start = dev->resource[idx].start; 355 start = dev->resource[idx].start;
286 end = dev->resource[idx].end; 356 end = dev->resource[idx].end;
287 size = end - start; 357 size = end - start;
288 addr = SN_PCIDEV_INFO(dev)->pdi_pio_mapped_addr[idx]; 358 if (size == 0) {
359 pci_addrs[idx] = -1;
360 continue;
361 }
362 pci_addrs[idx] = start;
363 count++;
364 addr = pcidev_info->pdi_pio_mapped_addr[idx];
289 addr = ((addr << 4) >> 4) | __IA64_UNCACHED_OFFSET; 365 addr = ((addr << 4) >> 4) | __IA64_UNCACHED_OFFSET;
290 dev->resource[idx].start = addr; 366 dev->resource[idx].start = addr;
291 dev->resource[idx].end = addr + size; 367 dev->resource[idx].end = addr + size;
@@ -294,23 +370,27 @@ void sn_pci_fixup_slot(struct pci_dev *dev)
294 else 370 else
295 dev->resource[idx].parent = &iomem_resource; 371 dev->resource[idx].parent = &iomem_resource;
296 } 372 }
373 /* Create a pci_window in the pci_controller struct for
374 * each device resource.
375 */
376 if (count > 0)
377 sn_pci_window_fixup(dev, count, pci_addrs);
297 378
298 /* 379 /*
299 * Using the PROMs values for the PCI host bus, get the Linux 380 * Using the PROMs values for the PCI host bus, get the Linux
300 * PCI host_pci_dev struct and set up host bus linkages 381 * PCI host_pci_dev struct and set up host bus linkages
301 */ 382 */
302 383
303 bus_no = (SN_PCIDEV_INFO(dev)->pdi_slot_host_handle >> 32) & 0xff; 384 bus_no = (pcidev_info->pdi_slot_host_handle >> 32) & 0xff;
304 devfn = SN_PCIDEV_INFO(dev)->pdi_slot_host_handle & 0xffffffff; 385 devfn = pcidev_info->pdi_slot_host_handle & 0xffffffff;
305 host_pci_bus = pci_find_bus(segment, bus_no); 386 host_pci_bus = pci_find_bus(segment, bus_no);
306 host_pci_dev = pci_get_slot(host_pci_bus, devfn); 387 host_pci_dev = pci_get_slot(host_pci_bus, devfn);
307 388
308 SN_PCIDEV_INFO(dev)->host_pci_dev = host_pci_dev; 389 pcidev_info->host_pci_dev = host_pci_dev;
309 SN_PCIDEV_INFO(dev)->pdi_host_pcidev_info = 390 pcidev_info->pdi_linux_pcidev = dev;
310 SN_PCIDEV_INFO(host_pci_dev); 391 pcidev_info->pdi_host_pcidev_info = SN_PCIDEV_INFO(host_pci_dev);
311 SN_PCIDEV_INFO(dev)->pdi_linux_pcidev = dev;
312 bs = SN_PCIBUS_BUSSOFT(dev->bus); 392 bs = SN_PCIBUS_BUSSOFT(dev->bus);
313 SN_PCIDEV_INFO(dev)->pdi_pcibus_info = bs; 393 pcidev_info->pdi_pcibus_info = bs;
314 394
315 if (bs && bs->bs_asic_type < PCIIO_ASIC_MAX_TYPES) { 395 if (bs && bs->bs_asic_type < PCIIO_ASIC_MAX_TYPES) {
316 SN_PCIDEV_BUSPROVIDER(dev) = sn_pci_provider[bs->bs_asic_type]; 396 SN_PCIDEV_BUSPROVIDER(dev) = sn_pci_provider[bs->bs_asic_type];
@@ -320,11 +400,11 @@ void sn_pci_fixup_slot(struct pci_dev *dev)
320 400
321 /* Only set up IRQ stuff if this device has a host bus context */ 401 /* Only set up IRQ stuff if this device has a host bus context */
322 if (bs && sn_irq_info->irq_irq) { 402 if (bs && sn_irq_info->irq_irq) {
323 SN_PCIDEV_INFO(dev)->pdi_sn_irq_info = sn_irq_info; 403 pcidev_info->pdi_sn_irq_info = sn_irq_info;
324 dev->irq = SN_PCIDEV_INFO(dev)->pdi_sn_irq_info->irq_irq; 404 dev->irq = pcidev_info->pdi_sn_irq_info->irq_irq;
325 sn_irq_fixup(dev, sn_irq_info); 405 sn_irq_fixup(dev, sn_irq_info);
326 } else { 406 } else {
327 SN_PCIDEV_INFO(dev)->pdi_sn_irq_info = NULL; 407 pcidev_info->pdi_sn_irq_info = NULL;
328 kfree(sn_irq_info); 408 kfree(sn_irq_info);
329 } 409 }
330} 410}
@@ -338,6 +418,7 @@ void sn_pci_controller_fixup(int segment, int busnum, struct pci_bus *bus)
338 int status = 0; 418 int status = 0;
339 int nasid, cnode; 419 int nasid, cnode;
340 struct pci_controller *controller; 420 struct pci_controller *controller;
421 struct sn_pci_controller *sn_controller;
341 struct pcibus_bussoft *prom_bussoft_ptr; 422 struct pcibus_bussoft *prom_bussoft_ptr;
342 struct hubdev_info *hubdev_info; 423 struct hubdev_info *hubdev_info;
343 void *provider_soft = NULL; 424 void *provider_soft = NULL;
@@ -349,10 +430,15 @@ void sn_pci_controller_fixup(int segment, int busnum, struct pci_bus *bus)
349 return; /*bus # does not exist */ 430 return; /*bus # does not exist */
350 prom_bussoft_ptr = __va(prom_bussoft_ptr); 431 prom_bussoft_ptr = __va(prom_bussoft_ptr);
351 432
352 controller = kzalloc(sizeof(struct pci_controller), GFP_KERNEL); 433 /* Allocate a sn_pci_controller, which has a pci_controller struct
434 * as the first member.
435 */
436 sn_controller = kzalloc(sizeof(struct sn_pci_controller), GFP_KERNEL);
437 if (!sn_controller)
438 BUG();
439 INIT_LIST_HEAD(&sn_controller->pcidev_info);
440 controller = &sn_controller->pci_controller;
353 controller->segment = segment; 441 controller->segment = segment;
354 if (!controller)
355 BUG();
356 442
357 if (bus == NULL) { 443 if (bus == NULL) {
358 bus = pci_scan_bus(busnum, &pci_root_ops, controller); 444 bus = pci_scan_bus(busnum, &pci_root_ops, controller);
@@ -390,6 +476,29 @@ void sn_pci_controller_fixup(int segment, int busnum, struct pci_bus *bus)
390 } 476 }
391 477
392 /* 478 /*
479 * Setup pci_windows for legacy IO and MEM space.
480 * (Temporary until ACPI support is in place.)
481 */
482 controller->window = kcalloc(2, sizeof(struct pci_window), GFP_KERNEL);
483 if (controller->window == NULL)
484 BUG();
485 controller->window[0].offset = prom_bussoft_ptr->bs_legacy_io;
486 controller->window[0].resource.name = "legacy_io";
487 controller->window[0].resource.flags = IORESOURCE_IO;
488 controller->window[0].resource.start = prom_bussoft_ptr->bs_legacy_io;
489 controller->window[0].resource.end =
490 controller->window[0].resource.start + 0xffff;
491 controller->window[0].resource.parent = &ioport_resource;
492 controller->window[1].offset = prom_bussoft_ptr->bs_legacy_mem;
493 controller->window[1].resource.name = "legacy_mem";
494 controller->window[1].resource.flags = IORESOURCE_MEM;
495 controller->window[1].resource.start = prom_bussoft_ptr->bs_legacy_mem;
496 controller->window[1].resource.end =
497 controller->window[1].resource.start + (1024 * 1024) - 1;
498 controller->window[1].resource.parent = &iomem_resource;
499 controller->windows = 2;
500
501 /*
393 * Generic bus fixup goes here. Don't reference prom_bussoft_ptr 502 * Generic bus fixup goes here. Don't reference prom_bussoft_ptr
394 * after this point. 503 * after this point.
395 */ 504 */
@@ -421,7 +530,7 @@ void sn_pci_controller_fixup(int segment, int busnum, struct pci_bus *bus)
421 530
422error_return: 531error_return:
423 532
424 kfree(controller); 533 kfree(sn_controller);
425 return; 534 return;
426} 535}
427 536
@@ -434,7 +543,7 @@ void sn_bus_store_sysdata(struct pci_dev *dev)
434 dev_dbg(dev, "%s: out of memory!\n", __FUNCTION__); 543 dev_dbg(dev, "%s: out of memory!\n", __FUNCTION__);
435 return; 544 return;
436 } 545 }
437 element->sysdata = dev->sysdata; 546 element->sysdata = SN_PCIDEV_INFO(dev);
438 list_add(&element->entry, &sn_sysdata_list); 547 list_add(&element->entry, &sn_sysdata_list);
439} 548}
440 549
diff --git a/arch/ia64/sn/kernel/sn2/ptc_deadlock.S b/arch/ia64/sn/kernel/sn2/ptc_deadlock.S
index 3fa95065a446..bebbcc4f8dd4 100644
--- a/arch/ia64/sn/kernel/sn2/ptc_deadlock.S
+++ b/arch/ia64/sn/kernel/sn2/ptc_deadlock.S
@@ -39,9 +39,13 @@ sn2_ptc_deadlock_recovery_core:
39 mov r8=r0 39 mov r8=r0
40 40
411: 411:
42 cmp.ne p8,p9=r0,ptc1 // Test for shub type (ptc1 non-null on shub1)
43 // p8 = 1 if shub1, p9 = 1 if shub2
44
42 add scr2=ALIAS_OFFSET,piowc // Address of WRITE_STATUS alias register 45 add scr2=ALIAS_OFFSET,piowc // Address of WRITE_STATUS alias register
43 ;; 46 mov scr1=7;; // Clear DEADLOCK, WRITE_ERROR, MULTI_WRITE_ERROR
44 ld8.acq scr1=[scr2];; 47(p8) st8.rel [scr2]=scr1;;
48(p9) ld8.acq scr1=[scr2];;
45 49
465: ld8.acq scr1=[piowc];; // Wait for PIOs to complete. 505: ld8.acq scr1=[piowc];; // Wait for PIOs to complete.
47 hint @pause 51 hint @pause
diff --git a/include/asm-ia64/ia32.h b/include/asm-ia64/ia32.h
index 8e746b2413a6..f8044a1169cd 100644
--- a/include/asm-ia64/ia32.h
+++ b/include/asm-ia64/ia32.h
@@ -13,6 +13,8 @@
13 13
14# ifdef CONFIG_IA32_SUPPORT 14# ifdef CONFIG_IA32_SUPPORT
15 15
16#define IA32_PAGE_OFFSET 0xc0000000
17
16extern void ia32_cpu_init (void); 18extern void ia32_cpu_init (void);
17extern void ia32_mem_init (void); 19extern void ia32_mem_init (void);
18extern void ia32_gdt_init (void); 20extern void ia32_gdt_init (void);
diff --git a/include/asm-ia64/local.h b/include/asm-ia64/local.h
index 1dbd584ad851..dc519092ef4d 100644
--- a/include/asm-ia64/local.h
+++ b/include/asm-ia64/local.h
@@ -17,8 +17,8 @@ typedef struct {
17#define local_set(l, i) atomic64_set(&(l)->val, i) 17#define local_set(l, i) atomic64_set(&(l)->val, i)
18#define local_inc(l) atomic64_inc(&(l)->val) 18#define local_inc(l) atomic64_inc(&(l)->val)
19#define local_dec(l) atomic64_dec(&(l)->val) 19#define local_dec(l) atomic64_dec(&(l)->val)
20#define local_add(l) atomic64_add(&(l)->val) 20#define local_add(i, l) atomic64_add((i), &(l)->val)
21#define local_sub(l) atomic64_sub(&(l)->val) 21#define local_sub(i, l) atomic64_sub((i), &(l)->val)
22 22
23/* Non-atomic variants, i.e., preemption disabled and won't be touched in interrupt, etc. */ 23/* Non-atomic variants, i.e., preemption disabled and won't be touched in interrupt, etc. */
24 24
diff --git a/include/asm-ia64/sn/pcidev.h b/include/asm-ia64/sn/pcidev.h
index 49711d00ad04..f65d222ca5e8 100644
--- a/include/asm-ia64/sn/pcidev.h
+++ b/include/asm-ia64/sn/pcidev.h
@@ -3,15 +3,27 @@
3 * License. See the file "COPYING" in the main directory of this archive 3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details. 4 * for more details.
5 * 5 *
6 * Copyright (C) 1992 - 1997, 2000-2004 Silicon Graphics, Inc. All rights reserved. 6 * Copyright (C) 1992 - 1997, 2000-2005 Silicon Graphics, Inc. All rights reserved.
7 */ 7 */
8#ifndef _ASM_IA64_SN_PCI_PCIDEV_H 8#ifndef _ASM_IA64_SN_PCI_PCIDEV_H
9#define _ASM_IA64_SN_PCI_PCIDEV_H 9#define _ASM_IA64_SN_PCI_PCIDEV_H
10 10
11#include <linux/pci.h> 11#include <linux/pci.h>
12 12
13#define SN_PCIDEV_INFO(pci_dev) \ 13/*
14 ((struct pcidev_info *)(pci_dev)->sysdata) 14 * In ia64, pci_dev->sysdata must be a *pci_controller. To provide access to
15 * the pcidev_info structs for all devices under a controller, we extend the
16 * definition of pci_controller, via sn_pci_controller, to include a list
17 * of pcidev_info.
18 */
19struct sn_pci_controller {
20 struct pci_controller pci_controller;
21 struct list_head pcidev_info;
22};
23
24#define SN_PCI_CONTROLLER(dev) ((struct sn_pci_controller *) dev->sysdata)
25
26#define SN_PCIDEV_INFO(dev) sn_pcidev_info_get(dev)
15 27
16#define SN_PCIBUS_BUSSOFT_INFO(pci_bus) \ 28#define SN_PCIBUS_BUSSOFT_INFO(pci_bus) \
17 (struct pcibus_info *)((struct pcibus_bussoft *)(PCI_CONTROLLER((pci_bus))->platform_data)) 29 (struct pcibus_info *)((struct pcibus_bussoft *)(PCI_CONTROLLER((pci_bus))->platform_data))
@@ -53,11 +65,13 @@ struct pcidev_info {
53 struct sn_irq_info *pdi_sn_irq_info; 65 struct sn_irq_info *pdi_sn_irq_info;
54 struct sn_pcibus_provider *pdi_provider; /* sn pci ops */ 66 struct sn_pcibus_provider *pdi_provider; /* sn pci ops */
55 struct pci_dev *host_pci_dev; /* host bus link */ 67 struct pci_dev *host_pci_dev; /* host bus link */
68 struct list_head pdi_list; /* List of pcidev_info */
56}; 69};
57 70
58extern void sn_irq_fixup(struct pci_dev *pci_dev, 71extern void sn_irq_fixup(struct pci_dev *pci_dev,
59 struct sn_irq_info *sn_irq_info); 72 struct sn_irq_info *sn_irq_info);
60extern void sn_irq_unfixup(struct pci_dev *pci_dev); 73extern void sn_irq_unfixup(struct pci_dev *pci_dev);
74extern struct pcidev_info * sn_pcidev_info_get(struct pci_dev *);
61extern void sn_pci_controller_fixup(int segment, int busnum, 75extern void sn_pci_controller_fixup(int segment, int busnum,
62 struct pci_bus *bus); 76 struct pci_bus *bus);
63extern void sn_bus_store_sysdata(struct pci_dev *dev); 77extern void sn_bus_store_sysdata(struct pci_dev *dev);
diff --git a/include/asm-ia64/spinlock.h b/include/asm-ia64/spinlock.h
index 5b78611411c3..0c91a76c5ea3 100644
--- a/include/asm-ia64/spinlock.h
+++ b/include/asm-ia64/spinlock.h
@@ -201,6 +201,16 @@ static inline void __raw_write_unlock(raw_rwlock_t *x)
201 201
202#endif /* !ASM_SUPPORTED */ 202#endif /* !ASM_SUPPORTED */
203 203
204#define __raw_read_trylock(lock) generic__raw_read_trylock(lock) 204static inline int __raw_read_trylock(raw_rwlock_t *x)
205{
206 union {
207 raw_rwlock_t lock;
208 __u32 word;
209 } old, new;
210 old.lock = new.lock = *x;
211 old.lock.write_lock = new.lock.write_lock = 0;
212 ++new.lock.read_counter;
213 return (u32)ia64_cmpxchg4_acq((__u32 *)(x), new.word, old.word) == old.word;
214}
205 215
206#endif /* _ASM_IA64_SPINLOCK_H */ 216#endif /* _ASM_IA64_SPINLOCK_H */