diff options
-rw-r--r-- | arch/ia64/Kconfig | 2 | ||||
-rw-r--r-- | arch/ia64/configs/sn2_defconfig | 76 | ||||
-rw-r--r-- | arch/ia64/ia32/binfmt_elf32.c | 3 | ||||
-rw-r--r-- | arch/ia64/ia32/ia32_entry.S | 2 | ||||
-rw-r--r-- | arch/ia64/kernel/mca_drv.c | 54 | ||||
-rw-r--r-- | arch/ia64/kernel/topology.c | 7 | ||||
-rw-r--r-- | arch/ia64/pci/pci.c | 3 | ||||
-rw-r--r-- | arch/ia64/sn/kernel/sn2/sn_hwperf.c | 8 | ||||
-rw-r--r-- | arch/ia64/sn/kernel/xpc_partition.c | 8 | ||||
-rw-r--r-- | arch/ia64/sn/pci/tioce_provider.c | 6 | ||||
-rw-r--r-- | drivers/Kconfig | 2 | ||||
-rw-r--r-- | include/asm-ia64/acpi.h | 5 | ||||
-rw-r--r-- | include/asm-ia64/machvec.h | 2 | ||||
-rw-r--r-- | include/asm-ia64/sn/sn2/sn_hwperf.h | 6 | ||||
-rw-r--r-- | include/asm-ia64/sn/sn_sal.h | 17 | ||||
-rw-r--r-- | include/asm-ia64/thread_info.h | 2 | ||||
-rw-r--r-- | include/asm-ia64/topology.h | 5 |
17 files changed, 128 insertions, 80 deletions
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index 9f40eeff0b5c..0f3076a820c3 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig | |||
@@ -413,6 +413,8 @@ config IA64_PALINFO | |||
413 | config SGI_SN | 413 | config SGI_SN |
414 | def_bool y if (IA64_SGI_SN2 || IA64_GENERIC) | 414 | def_bool y if (IA64_SGI_SN2 || IA64_GENERIC) |
415 | 415 | ||
416 | source "drivers/sn/Kconfig" | ||
417 | |||
416 | source "drivers/firmware/Kconfig" | 418 | source "drivers/firmware/Kconfig" |
417 | 419 | ||
418 | source "fs/Kconfig.binfmt" | 420 | source "fs/Kconfig.binfmt" |
diff --git a/arch/ia64/configs/sn2_defconfig b/arch/ia64/configs/sn2_defconfig index a718034d68d0..f6a8853cd1b4 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.16-rc5 | 3 | # Linux kernel version: 2.6.17-rc3 |
4 | # Mon Feb 27 16:06:38 2006 | 4 | # Thu Apr 27 11:48:23 2006 |
5 | # | 5 | # |
6 | 6 | ||
7 | # | 7 | # |
@@ -24,6 +24,7 @@ CONFIG_SYSCTL=y | |||
24 | # CONFIG_AUDIT is not set | 24 | # CONFIG_AUDIT is not set |
25 | # CONFIG_IKCONFIG is not set | 25 | # CONFIG_IKCONFIG is not set |
26 | CONFIG_CPUSETS=y | 26 | CONFIG_CPUSETS=y |
27 | CONFIG_RELAY=y | ||
27 | CONFIG_INITRAMFS_SOURCE="" | 28 | CONFIG_INITRAMFS_SOURCE="" |
28 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 29 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
29 | # CONFIG_EMBEDDED is not set | 30 | # CONFIG_EMBEDDED is not set |
@@ -38,10 +39,6 @@ CONFIG_BASE_FULL=y | |||
38 | CONFIG_FUTEX=y | 39 | CONFIG_FUTEX=y |
39 | CONFIG_EPOLL=y | 40 | CONFIG_EPOLL=y |
40 | CONFIG_SHMEM=y | 41 | CONFIG_SHMEM=y |
41 | CONFIG_CC_ALIGN_FUNCTIONS=0 | ||
42 | CONFIG_CC_ALIGN_LABELS=0 | ||
43 | CONFIG_CC_ALIGN_LOOPS=0 | ||
44 | CONFIG_CC_ALIGN_JUMPS=0 | ||
45 | CONFIG_SLAB=y | 42 | CONFIG_SLAB=y |
46 | # CONFIG_TINY_SHMEM is not set | 43 | # CONFIG_TINY_SHMEM is not set |
47 | CONFIG_BASE_SMALL=0 | 44 | CONFIG_BASE_SMALL=0 |
@@ -53,7 +50,6 @@ CONFIG_BASE_SMALL=0 | |||
53 | CONFIG_MODULES=y | 50 | CONFIG_MODULES=y |
54 | CONFIG_MODULE_UNLOAD=y | 51 | CONFIG_MODULE_UNLOAD=y |
55 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 52 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
56 | CONFIG_OBSOLETE_MODPARM=y | ||
57 | # CONFIG_MODVERSIONS is not set | 53 | # CONFIG_MODVERSIONS is not set |
58 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 54 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
59 | CONFIG_KMOD=y | 55 | CONFIG_KMOD=y |
@@ -62,6 +58,7 @@ CONFIG_STOP_MACHINE=y | |||
62 | # | 58 | # |
63 | # Block layer | 59 | # Block layer |
64 | # | 60 | # |
61 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
65 | 62 | ||
66 | # | 63 | # |
67 | # IO Schedulers | 64 | # IO Schedulers |
@@ -84,8 +81,10 @@ CONFIG_64BIT=y | |||
84 | CONFIG_MMU=y | 81 | CONFIG_MMU=y |
85 | CONFIG_SWIOTLB=y | 82 | CONFIG_SWIOTLB=y |
86 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 83 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
84 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
87 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 85 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
88 | CONFIG_TIME_INTERPOLATION=y | 86 | CONFIG_TIME_INTERPOLATION=y |
87 | CONFIG_DMI=y | ||
89 | CONFIG_EFI=y | 88 | CONFIG_EFI=y |
90 | CONFIG_GENERIC_IOMAP=y | 89 | CONFIG_GENERIC_IOMAP=y |
91 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | 90 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y |
@@ -116,7 +115,6 @@ CONFIG_IA64_SGI_SN_XP=m | |||
116 | CONFIG_FORCE_MAX_ZONEORDER=17 | 115 | CONFIG_FORCE_MAX_ZONEORDER=17 |
117 | CONFIG_SMP=y | 116 | CONFIG_SMP=y |
118 | CONFIG_NR_CPUS=1024 | 117 | CONFIG_NR_CPUS=1024 |
119 | CONFIG_IA64_NR_NODES=256 | ||
120 | # CONFIG_HOTPLUG_CPU is not set | 118 | # CONFIG_HOTPLUG_CPU is not set |
121 | CONFIG_SCHED_SMT=y | 119 | CONFIG_SCHED_SMT=y |
122 | CONFIG_PREEMPT=y | 120 | CONFIG_PREEMPT=y |
@@ -136,6 +134,7 @@ CONFIG_ARCH_FLATMEM_ENABLE=y | |||
136 | CONFIG_ARCH_SPARSEMEM_ENABLE=y | 134 | CONFIG_ARCH_SPARSEMEM_ENABLE=y |
137 | CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y | 135 | CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y |
138 | CONFIG_NUMA=y | 136 | CONFIG_NUMA=y |
137 | CONFIG_NODES_SHIFT=8 | ||
139 | CONFIG_VIRTUAL_MEM_MAP=y | 138 | CONFIG_VIRTUAL_MEM_MAP=y |
140 | CONFIG_HOLES_IN_ZONE=y | 139 | CONFIG_HOLES_IN_ZONE=y |
141 | CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y | 140 | CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y |
@@ -187,7 +186,6 @@ CONFIG_ACPI_SYSTEM=y | |||
187 | CONFIG_PCI=y | 186 | CONFIG_PCI=y |
188 | CONFIG_PCI_DOMAINS=y | 187 | CONFIG_PCI_DOMAINS=y |
189 | # CONFIG_PCI_MSI is not set | 188 | # CONFIG_PCI_MSI is not set |
190 | CONFIG_PCI_LEGACY_PROC=y | ||
191 | # CONFIG_PCI_DEBUG is not set | 189 | # CONFIG_PCI_DEBUG is not set |
192 | 190 | ||
193 | # | 191 | # |
@@ -231,6 +229,7 @@ CONFIG_SYN_COOKIES=y | |||
231 | # CONFIG_INET_AH is not set | 229 | # CONFIG_INET_AH is not set |
232 | # CONFIG_INET_ESP is not set | 230 | # CONFIG_INET_ESP is not set |
233 | # CONFIG_INET_IPCOMP is not set | 231 | # CONFIG_INET_IPCOMP is not set |
232 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
234 | # CONFIG_INET_TUNNEL is not set | 233 | # CONFIG_INET_TUNNEL is not set |
235 | CONFIG_INET_DIAG=m | 234 | CONFIG_INET_DIAG=m |
236 | CONFIG_INET_TCP_DIAG=m | 235 | CONFIG_INET_TCP_DIAG=m |
@@ -238,9 +237,11 @@ CONFIG_INET_TCP_DIAG=m | |||
238 | CONFIG_TCP_CONG_BIC=y | 237 | CONFIG_TCP_CONG_BIC=y |
239 | CONFIG_IPV6=m | 238 | CONFIG_IPV6=m |
240 | # CONFIG_IPV6_PRIVACY is not set | 239 | # CONFIG_IPV6_PRIVACY is not set |
240 | # CONFIG_IPV6_ROUTER_PREF is not set | ||
241 | # CONFIG_INET6_AH is not set | 241 | # CONFIG_INET6_AH is not set |
242 | # CONFIG_INET6_ESP is not set | 242 | # CONFIG_INET6_ESP is not set |
243 | # CONFIG_INET6_IPCOMP is not set | 243 | # CONFIG_INET6_IPCOMP is not set |
244 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
244 | # CONFIG_INET6_TUNNEL is not set | 245 | # CONFIG_INET6_TUNNEL is not set |
245 | # CONFIG_IPV6_TUNNEL is not set | 246 | # CONFIG_IPV6_TUNNEL is not set |
246 | # CONFIG_NETFILTER is not set | 247 | # CONFIG_NETFILTER is not set |
@@ -468,9 +469,14 @@ CONFIG_SCSI_SATA_VITESSE=y | |||
468 | # CONFIG_SCSI_INIA100 is not set | 469 | # CONFIG_SCSI_INIA100 is not set |
469 | # CONFIG_SCSI_SYM53C8XX_2 is not set | 470 | # CONFIG_SCSI_SYM53C8XX_2 is not set |
470 | # CONFIG_SCSI_IPR is not set | 471 | # CONFIG_SCSI_IPR is not set |
471 | # CONFIG_SCSI_QLOGIC_FC is not set | ||
472 | CONFIG_SCSI_QLOGIC_1280=y | 472 | CONFIG_SCSI_QLOGIC_1280=y |
473 | # CONFIG_SCSI_QLA_FC is not set | 473 | CONFIG_SCSI_QLA_FC=y |
474 | CONFIG_SCSI_QLA2XXX_EMBEDDED_FIRMWARE=y | ||
475 | # CONFIG_SCSI_QLA21XX is not set | ||
476 | CONFIG_SCSI_QLA22XX=y | ||
477 | CONFIG_SCSI_QLA2300=y | ||
478 | CONFIG_SCSI_QLA2322=y | ||
479 | # CONFIG_SCSI_QLA24XX is not set | ||
474 | # CONFIG_SCSI_LPFC is not set | 480 | # CONFIG_SCSI_LPFC is not set |
475 | # CONFIG_SCSI_DC395x is not set | 481 | # CONFIG_SCSI_DC395x is not set |
476 | # CONFIG_SCSI_DC390T is not set | 482 | # CONFIG_SCSI_DC390T is not set |
@@ -486,6 +492,7 @@ CONFIG_MD_RAID0=y | |||
486 | CONFIG_MD_RAID1=y | 492 | CONFIG_MD_RAID1=y |
487 | # CONFIG_MD_RAID10 is not set | 493 | # CONFIG_MD_RAID10 is not set |
488 | CONFIG_MD_RAID5=y | 494 | CONFIG_MD_RAID5=y |
495 | # CONFIG_MD_RAID5_RESHAPE is not set | ||
489 | # CONFIG_MD_RAID6 is not set | 496 | # CONFIG_MD_RAID6 is not set |
490 | CONFIG_MD_MULTIPATH=y | 497 | CONFIG_MD_MULTIPATH=y |
491 | # CONFIG_MD_FAULTY is not set | 498 | # CONFIG_MD_FAULTY is not set |
@@ -694,6 +701,7 @@ CONFIG_EFI_RTC=y | |||
694 | # Ftape, the floppy tape device driver | 701 | # Ftape, the floppy tape device driver |
695 | # | 702 | # |
696 | CONFIG_AGP=y | 703 | CONFIG_AGP=y |
704 | # CONFIG_AGP_VIA is not set | ||
697 | CONFIG_AGP_SGI_TIOCA=y | 705 | CONFIG_AGP_SGI_TIOCA=y |
698 | # CONFIG_DRM is not set | 706 | # CONFIG_DRM is not set |
699 | CONFIG_RAW_DRIVER=m | 707 | CONFIG_RAW_DRIVER=m |
@@ -735,10 +743,6 @@ CONFIG_MMTIMER=y | |||
735 | # | 743 | # |
736 | 744 | ||
737 | # | 745 | # |
738 | # Multimedia Capabilities Port drivers | ||
739 | # | ||
740 | |||
741 | # | ||
742 | # Multimedia devices | 746 | # Multimedia devices |
743 | # | 747 | # |
744 | # CONFIG_VIDEO_DEV is not set | 748 | # CONFIG_VIDEO_DEV is not set |
@@ -747,6 +751,7 @@ CONFIG_MMTIMER=y | |||
747 | # Digital Video Broadcasting Devices | 751 | # Digital Video Broadcasting Devices |
748 | # | 752 | # |
749 | # CONFIG_DVB is not set | 753 | # CONFIG_DVB is not set |
754 | # CONFIG_USB_DABUSB is not set | ||
750 | 755 | ||
751 | # | 756 | # |
752 | # Graphics support | 757 | # Graphics support |
@@ -757,6 +762,7 @@ CONFIG_MMTIMER=y | |||
757 | # Console display driver support | 762 | # Console display driver support |
758 | # | 763 | # |
759 | CONFIG_VGA_CONSOLE=y | 764 | CONFIG_VGA_CONSOLE=y |
765 | # CONFIG_VGACON_SOFT_SCROLLBACK is not set | ||
760 | CONFIG_DUMMY_CONSOLE=y | 766 | CONFIG_DUMMY_CONSOLE=y |
761 | 767 | ||
762 | # | 768 | # |
@@ -769,6 +775,7 @@ CONFIG_DUMMY_CONSOLE=y | |||
769 | # | 775 | # |
770 | CONFIG_USB_ARCH_HAS_HCD=y | 776 | CONFIG_USB_ARCH_HAS_HCD=y |
771 | CONFIG_USB_ARCH_HAS_OHCI=y | 777 | CONFIG_USB_ARCH_HAS_OHCI=y |
778 | CONFIG_USB_ARCH_HAS_EHCI=y | ||
772 | CONFIG_USB=m | 779 | CONFIG_USB=m |
773 | # CONFIG_USB_DEBUG is not set | 780 | # CONFIG_USB_DEBUG is not set |
774 | 781 | ||
@@ -829,9 +836,7 @@ CONFIG_USB_HIDINPUT=y | |||
829 | # CONFIG_USB_ACECAD is not set | 836 | # CONFIG_USB_ACECAD is not set |
830 | # CONFIG_USB_KBTAB is not set | 837 | # CONFIG_USB_KBTAB is not set |
831 | # CONFIG_USB_POWERMATE is not set | 838 | # CONFIG_USB_POWERMATE is not set |
832 | # CONFIG_USB_MTOUCH is not set | 839 | # CONFIG_USB_TOUCHSCREEN is not set |
833 | # CONFIG_USB_ITMTOUCH is not set | ||
834 | # CONFIG_USB_EGALAX is not set | ||
835 | # CONFIG_USB_YEALINK is not set | 840 | # CONFIG_USB_YEALINK is not set |
836 | # CONFIG_USB_XPAD is not set | 841 | # CONFIG_USB_XPAD is not set |
837 | # CONFIG_USB_ATI_REMOTE is not set | 842 | # CONFIG_USB_ATI_REMOTE is not set |
@@ -846,15 +851,6 @@ CONFIG_USB_HIDINPUT=y | |||
846 | # CONFIG_USB_MICROTEK is not set | 851 | # CONFIG_USB_MICROTEK is not set |
847 | 852 | ||
848 | # | 853 | # |
849 | # USB Multimedia devices | ||
850 | # | ||
851 | # CONFIG_USB_DABUSB is not set | ||
852 | |||
853 | # | ||
854 | # Video4Linux support is needed for USB Multimedia device support | ||
855 | # | ||
856 | |||
857 | # | ||
858 | # USB Network Adapters | 854 | # USB Network Adapters |
859 | # | 855 | # |
860 | # CONFIG_USB_CATC is not set | 856 | # CONFIG_USB_CATC is not set |
@@ -905,15 +901,29 @@ CONFIG_USB_MON=y | |||
905 | # CONFIG_MMC is not set | 901 | # CONFIG_MMC is not set |
906 | 902 | ||
907 | # | 903 | # |
904 | # LED devices | ||
905 | # | ||
906 | # CONFIG_NEW_LEDS is not set | ||
907 | |||
908 | # | ||
909 | # LED drivers | ||
910 | # | ||
911 | |||
912 | # | ||
913 | # LED Triggers | ||
914 | # | ||
915 | |||
916 | # | ||
908 | # InfiniBand support | 917 | # InfiniBand support |
909 | # | 918 | # |
910 | CONFIG_INFINIBAND=m | 919 | CONFIG_INFINIBAND=m |
911 | # CONFIG_INFINIBAND_USER_MAD is not set | 920 | # CONFIG_INFINIBAND_USER_MAD is not set |
912 | CONFIG_INFINIBAND_USER_ACCESS=m | 921 | CONFIG_INFINIBAND_USER_ACCESS=m |
913 | CONFIG_INFINIBAND_MTHCA=m | 922 | CONFIG_INFINIBAND_MTHCA=m |
914 | # CONFIG_INFINIBAND_MTHCA_DEBUG is not set | 923 | CONFIG_INFINIBAND_MTHCA_DEBUG=y |
915 | CONFIG_INFINIBAND_IPOIB=m | 924 | CONFIG_INFINIBAND_IPOIB=m |
916 | # CONFIG_INFINIBAND_IPOIB_DEBUG is not set | 925 | CONFIG_INFINIBAND_IPOIB_DEBUG=y |
926 | # CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set | ||
917 | CONFIG_INFINIBAND_SRP=m | 927 | CONFIG_INFINIBAND_SRP=m |
918 | 928 | ||
919 | # | 929 | # |
@@ -923,8 +933,13 @@ CONFIG_SGI_IOC4=y | |||
923 | CONFIG_SGI_IOC3=y | 933 | CONFIG_SGI_IOC3=y |
924 | 934 | ||
925 | # | 935 | # |
926 | # EDAC - error detection and reporting (RAS) | 936 | # EDAC - error detection and reporting (RAS) (EXPERIMENTAL) |
937 | # | ||
938 | |||
939 | # | ||
940 | # Real Time Clock | ||
927 | # | 941 | # |
942 | # CONFIG_RTC_CLASS is not set | ||
928 | 943 | ||
929 | # | 944 | # |
930 | # File systems | 945 | # File systems |
@@ -997,7 +1012,6 @@ CONFIG_TMPFS=y | |||
997 | CONFIG_HUGETLBFS=y | 1012 | CONFIG_HUGETLBFS=y |
998 | CONFIG_HUGETLB_PAGE=y | 1013 | CONFIG_HUGETLB_PAGE=y |
999 | CONFIG_RAMFS=y | 1014 | CONFIG_RAMFS=y |
1000 | CONFIG_RELAYFS_FS=m | ||
1001 | # CONFIG_CONFIGFS_FS is not set | 1015 | # CONFIG_CONFIGFS_FS is not set |
1002 | 1016 | ||
1003 | # | 1017 | # |
diff --git a/arch/ia64/ia32/binfmt_elf32.c b/arch/ia64/ia32/binfmt_elf32.c index 4e7a6a1ec6c7..da03c06744f1 100644 --- a/arch/ia64/ia32/binfmt_elf32.c +++ b/arch/ia64/ia32/binfmt_elf32.c | |||
@@ -35,6 +35,9 @@ extern void ia64_elf32_init (struct pt_regs *regs); | |||
35 | 35 | ||
36 | static void elf32_set_personality (void); | 36 | static void elf32_set_personality (void); |
37 | 37 | ||
38 | static unsigned long __attribute ((unused)) | ||
39 | randomize_stack_top(unsigned long stack_top); | ||
40 | |||
38 | #define setup_arg_pages(bprm,tos,exec) ia32_setup_arg_pages(bprm,exec) | 41 | #define setup_arg_pages(bprm,tos,exec) ia32_setup_arg_pages(bprm,exec) |
39 | #define elf_map elf32_map | 42 | #define elf_map elf32_map |
40 | 43 | ||
diff --git a/arch/ia64/ia32/ia32_entry.S b/arch/ia64/ia32/ia32_entry.S index 95fe04400f6b..a32cd59b81ed 100644 --- a/arch/ia64/ia32/ia32_entry.S +++ b/arch/ia64/ia32/ia32_entry.S | |||
@@ -334,7 +334,7 @@ ia32_syscall_table: | |||
334 | data8 sys_setdomainname | 334 | data8 sys_setdomainname |
335 | data8 sys32_newuname | 335 | data8 sys32_newuname |
336 | data8 sys32_modify_ldt | 336 | data8 sys32_modify_ldt |
337 | data8 sys_ni_syscall /* adjtimex */ | 337 | data8 compat_sys_adjtimex |
338 | data8 sys32_mprotect /* 125 */ | 338 | data8 sys32_mprotect /* 125 */ |
339 | data8 compat_sys_sigprocmask | 339 | data8 compat_sys_sigprocmask |
340 | data8 sys_ni_syscall /* create_module */ | 340 | data8 sys_ni_syscall /* create_module */ |
diff --git a/arch/ia64/kernel/mca_drv.c b/arch/ia64/kernel/mca_drv.c index 37c88eb55873..ca6666b51ccb 100644 --- a/arch/ia64/kernel/mca_drv.c +++ b/arch/ia64/kernel/mca_drv.c | |||
@@ -62,6 +62,11 @@ typedef enum { | |||
62 | ISOLATE_NONE | 62 | ISOLATE_NONE |
63 | } isolate_status_t; | 63 | } isolate_status_t; |
64 | 64 | ||
65 | typedef enum { | ||
66 | MCA_NOT_RECOVERED = 0, | ||
67 | MCA_RECOVERED = 1 | ||
68 | } recovery_status_t; | ||
69 | |||
65 | /* | 70 | /* |
66 | * This pool keeps pointers to the section part of SAL error record | 71 | * This pool keeps pointers to the section part of SAL error record |
67 | */ | 72 | */ |
@@ -71,6 +76,18 @@ static struct { | |||
71 | int max_idx; /* Maximum index of section pointer list pool */ | 76 | int max_idx; /* Maximum index of section pointer list pool */ |
72 | } slidx_pool; | 77 | } slidx_pool; |
73 | 78 | ||
79 | static int | ||
80 | fatal_mca(const char *fmt, ...) | ||
81 | { | ||
82 | va_list args; | ||
83 | |||
84 | va_start(args, fmt); | ||
85 | vprintk(fmt, args); | ||
86 | va_end(args); | ||
87 | |||
88 | return MCA_NOT_RECOVERED; | ||
89 | } | ||
90 | |||
74 | /** | 91 | /** |
75 | * mca_page_isolate - isolate a poisoned page in order not to use it later | 92 | * mca_page_isolate - isolate a poisoned page in order not to use it later |
76 | * @paddr: poisoned memory location | 93 | * @paddr: poisoned memory location |
@@ -424,7 +441,7 @@ recover_from_read_error(slidx_table_t *slidx, | |||
424 | 441 | ||
425 | /* Is target address valid? */ | 442 | /* Is target address valid? */ |
426 | if (!pbci->tv) | 443 | if (!pbci->tv) |
427 | return 0; | 444 | return fatal_mca(KERN_ALERT "MCA: target address not valid\n"); |
428 | 445 | ||
429 | /* | 446 | /* |
430 | * cpu read or memory-mapped io read | 447 | * cpu read or memory-mapped io read |
@@ -442,7 +459,7 @@ recover_from_read_error(slidx_table_t *slidx, | |||
442 | 459 | ||
443 | /* Is minstate valid? */ | 460 | /* Is minstate valid? */ |
444 | if (!peidx_bottom(peidx) || !(peidx_bottom(peidx)->valid.minstate)) | 461 | if (!peidx_bottom(peidx) || !(peidx_bottom(peidx)->valid.minstate)) |
445 | return 0; | 462 | return fatal_mca(KERN_ALERT "MCA: minstate not valid\n"); |
446 | psr1 =(struct ia64_psr *)&(peidx_minstate_area(peidx)->pmsa_ipsr); | 463 | psr1 =(struct ia64_psr *)&(peidx_minstate_area(peidx)->pmsa_ipsr); |
447 | psr2 =(struct ia64_psr *)&(peidx_minstate_area(peidx)->pmsa_xpsr); | 464 | psr2 =(struct ia64_psr *)&(peidx_minstate_area(peidx)->pmsa_xpsr); |
448 | 465 | ||
@@ -476,12 +493,13 @@ recover_from_read_error(slidx_table_t *slidx, | |||
476 | psr2->bn = 1; | 493 | psr2->bn = 1; |
477 | psr2->i = 0; | 494 | psr2->i = 0; |
478 | 495 | ||
479 | return 1; | 496 | return MCA_RECOVERED; |
480 | } | 497 | } |
481 | 498 | ||
482 | } | 499 | } |
483 | 500 | ||
484 | return 0; | 501 | return fatal_mca(KERN_ALERT "MCA: kernel context not recovered," |
502 | " iip 0x%lx\n", pmsa->pmsa_iip); | ||
485 | } | 503 | } |
486 | 504 | ||
487 | /** | 505 | /** |
@@ -567,13 +585,13 @@ recover_from_processor_error(int platform, slidx_table_t *slidx, | |||
567 | * The machine check is corrected. | 585 | * The machine check is corrected. |
568 | */ | 586 | */ |
569 | if (psp->cm == 1) | 587 | if (psp->cm == 1) |
570 | return 1; | 588 | return MCA_RECOVERED; |
571 | 589 | ||
572 | /* | 590 | /* |
573 | * The error was not contained. Software must be reset. | 591 | * The error was not contained. Software must be reset. |
574 | */ | 592 | */ |
575 | if (psp->us || psp->ci == 0) | 593 | if (psp->us || psp->ci == 0) |
576 | return 0; | 594 | return fatal_mca(KERN_ALERT "MCA: error not contained\n"); |
577 | 595 | ||
578 | /* | 596 | /* |
579 | * The cache check and bus check bits have four possible states | 597 | * The cache check and bus check bits have four possible states |
@@ -584,20 +602,22 @@ recover_from_processor_error(int platform, slidx_table_t *slidx, | |||
584 | * 1 1 Memory error, attempt recovery | 602 | * 1 1 Memory error, attempt recovery |
585 | */ | 603 | */ |
586 | if (psp->bc == 0 || pbci == NULL) | 604 | if (psp->bc == 0 || pbci == NULL) |
587 | return 0; | 605 | return fatal_mca(KERN_ALERT "MCA: No bus check\n"); |
588 | 606 | ||
589 | /* | 607 | /* |
590 | * Sorry, we cannot handle so many. | 608 | * Sorry, we cannot handle so many. |
591 | */ | 609 | */ |
592 | if (peidx_bus_check_num(peidx) > 1) | 610 | if (peidx_bus_check_num(peidx) > 1) |
593 | return 0; | 611 | return fatal_mca(KERN_ALERT "MCA: Too many bus checks\n"); |
594 | /* | 612 | /* |
595 | * Well, here is only one bus error. | 613 | * Well, here is only one bus error. |
596 | */ | 614 | */ |
597 | if (pbci->ib || pbci->cc) | 615 | if (pbci->ib) |
598 | return 0; | 616 | return fatal_mca(KERN_ALERT "MCA: Internal Bus error\n"); |
617 | if (pbci->cc) | ||
618 | return fatal_mca(KERN_ALERT "MCA: Cache-cache error\n"); | ||
599 | if (pbci->eb && pbci->bsi > 0) | 619 | if (pbci->eb && pbci->bsi > 0) |
600 | return 0; | 620 | return fatal_mca(KERN_ALERT "MCA: External bus check fatal status\n"); |
601 | 621 | ||
602 | /* | 622 | /* |
603 | * This is a local MCA and estimated as recoverble external bus error. | 623 | * This is a local MCA and estimated as recoverble external bus error. |
@@ -609,7 +629,7 @@ recover_from_processor_error(int platform, slidx_table_t *slidx, | |||
609 | /* | 629 | /* |
610 | * On account of strange SAL error record, we cannot recover. | 630 | * On account of strange SAL error record, we cannot recover. |
611 | */ | 631 | */ |
612 | return 0; | 632 | return fatal_mca(KERN_ALERT "MCA: Strange SAL record\n"); |
613 | } | 633 | } |
614 | 634 | ||
615 | /** | 635 | /** |
@@ -638,12 +658,10 @@ mca_try_to_recover(void *rec, struct ia64_sal_os_state *sos) | |||
638 | 658 | ||
639 | /* Now, OS can recover when there is one processor error section */ | 659 | /* Now, OS can recover when there is one processor error section */ |
640 | if (n_proc_err > 1) | 660 | if (n_proc_err > 1) |
641 | return 0; | 661 | return fatal_mca(KERN_ALERT "MCA: Too Many Errors\n"); |
642 | else if (n_proc_err == 0) { | 662 | else if (n_proc_err == 0) |
643 | /* Weird SAL record ... We need not to recover */ | 663 | /* Weird SAL record ... We need not to recover */ |
644 | 664 | return fatal_mca(KERN_ALERT "MCA: Weird SAL record\n"); | |
645 | return 1; | ||
646 | } | ||
647 | 665 | ||
648 | /* Make index of processor error section */ | 666 | /* Make index of processor error section */ |
649 | mca_make_peidx((sal_log_processor_info_t*) | 667 | mca_make_peidx((sal_log_processor_info_t*) |
@@ -654,7 +672,7 @@ mca_try_to_recover(void *rec, struct ia64_sal_os_state *sos) | |||
654 | 672 | ||
655 | /* Check whether MCA is global or not */ | 673 | /* Check whether MCA is global or not */ |
656 | if (is_mca_global(&peidx, &pbci, sos)) | 674 | if (is_mca_global(&peidx, &pbci, sos)) |
657 | return 0; | 675 | return fatal_mca(KERN_ALERT "MCA: global MCA\n"); |
658 | 676 | ||
659 | /* Try to recover a processor error */ | 677 | /* Try to recover a processor error */ |
660 | return recover_from_processor_error(platform_err, &slidx, &peidx, | 678 | return recover_from_processor_error(platform_err, &slidx, &peidx, |
diff --git a/arch/ia64/kernel/topology.c b/arch/ia64/kernel/topology.c index 7da4739f536e..4f3a16b37f8f 100644 --- a/arch/ia64/kernel/topology.c +++ b/arch/ia64/kernel/topology.c | |||
@@ -305,13 +305,10 @@ static struct kobj_type cache_ktype_percpu_entry = { | |||
305 | 305 | ||
306 | static void __cpuinit cpu_cache_sysfs_exit(unsigned int cpu) | 306 | static void __cpuinit cpu_cache_sysfs_exit(unsigned int cpu) |
307 | { | 307 | { |
308 | if (all_cpu_cache_info[cpu].cache_leaves) { | 308 | kfree(all_cpu_cache_info[cpu].cache_leaves); |
309 | kfree(all_cpu_cache_info[cpu].cache_leaves); | 309 | all_cpu_cache_info[cpu].cache_leaves = NULL; |
310 | all_cpu_cache_info[cpu].cache_leaves = NULL; | ||
311 | } | ||
312 | all_cpu_cache_info[cpu].num_cache_leaves = 0; | 310 | all_cpu_cache_info[cpu].num_cache_leaves = 0; |
313 | memset(&all_cpu_cache_info[cpu].kobj, 0, sizeof(struct kobject)); | 311 | memset(&all_cpu_cache_info[cpu].kobj, 0, sizeof(struct kobject)); |
314 | |||
315 | return; | 312 | return; |
316 | } | 313 | } |
317 | 314 | ||
diff --git a/arch/ia64/pci/pci.c b/arch/ia64/pci/pci.c index 9ba32b2d96d0..ab829a22f8a4 100644 --- a/arch/ia64/pci/pci.c +++ b/arch/ia64/pci/pci.c | |||
@@ -31,7 +31,6 @@ | |||
31 | #include <asm/irq.h> | 31 | #include <asm/irq.h> |
32 | #include <asm/hw_irq.h> | 32 | #include <asm/hw_irq.h> |
33 | 33 | ||
34 | |||
35 | /* | 34 | /* |
36 | * Low-level SAL-based PCI configuration access functions. Note that SAL | 35 | * Low-level SAL-based PCI configuration access functions. Note that SAL |
37 | * calls are already serialized (via sal_lock), so we don't need another | 36 | * calls are already serialized (via sal_lock), so we don't need another |
@@ -707,7 +706,7 @@ int ia64_pci_legacy_read(struct pci_bus *bus, u16 port, u32 *val, u8 size) | |||
707 | * | 706 | * |
708 | * Simply writes @size bytes of @val to @port. | 707 | * Simply writes @size bytes of @val to @port. |
709 | */ | 708 | */ |
710 | int ia64_pci_legacy_write(struct pci_dev *bus, u16 port, u32 val, u8 size) | 709 | int ia64_pci_legacy_write(struct pci_bus *bus, u16 port, u32 val, u8 size) |
711 | { | 710 | { |
712 | int ret = size; | 711 | int ret = size; |
713 | 712 | ||
diff --git a/arch/ia64/sn/kernel/sn2/sn_hwperf.c b/arch/ia64/sn/kernel/sn2/sn_hwperf.c index d917afa30b27..739c948dc504 100644 --- a/arch/ia64/sn/kernel/sn2/sn_hwperf.c +++ b/arch/ia64/sn/kernel/sn2/sn_hwperf.c | |||
@@ -284,6 +284,8 @@ static int sn_hwperf_get_nearest_node_objdata(struct sn_hwperf_object_info *objb | |||
284 | /* find nearest node with cpus and nearest memory */ | 284 | /* find nearest node with cpus and nearest memory */ |
285 | for (router=NULL, j=0; j < op->ports; j++) { | 285 | for (router=NULL, j=0; j < op->ports; j++) { |
286 | dest = sn_hwperf_findobj_id(objbuf, nobj, ptdata[j].conn_id); | 286 | dest = sn_hwperf_findobj_id(objbuf, nobj, ptdata[j].conn_id); |
287 | if (dest && SN_HWPERF_IS_ROUTER(dest)) | ||
288 | router = dest; | ||
287 | if (!dest || SN_HWPERF_FOREIGN(dest) || | 289 | if (!dest || SN_HWPERF_FOREIGN(dest) || |
288 | !SN_HWPERF_IS_NODE(dest) || SN_HWPERF_IS_IONODE(dest)) { | 290 | !SN_HWPERF_IS_NODE(dest) || SN_HWPERF_IS_IONODE(dest)) { |
289 | continue; | 291 | continue; |
@@ -299,8 +301,6 @@ static int sn_hwperf_get_nearest_node_objdata(struct sn_hwperf_object_info *objb | |||
299 | *near_mem_node = c; | 301 | *near_mem_node = c; |
300 | found_mem++; | 302 | found_mem++; |
301 | } | 303 | } |
302 | if (SN_HWPERF_IS_ROUTER(dest)) | ||
303 | router = dest; | ||
304 | } | 304 | } |
305 | 305 | ||
306 | if (router && (!found_cpu || !found_mem)) { | 306 | if (router && (!found_cpu || !found_mem)) { |
@@ -493,7 +493,7 @@ static int sn_topology_show(struct seq_file *s, void *d) | |||
493 | * numalink ports | 493 | * numalink ports |
494 | */ | 494 | */ |
495 | sz = obj->ports * sizeof(struct sn_hwperf_port_info); | 495 | sz = obj->ports * sizeof(struct sn_hwperf_port_info); |
496 | if ((ptdata = vmalloc(sz)) == NULL) | 496 | if ((ptdata = kmalloc(sz, GFP_KERNEL)) == NULL) |
497 | return -ENOMEM; | 497 | return -ENOMEM; |
498 | e = ia64_sn_hwperf_op(sn_hwperf_master_nasid, | 498 | e = ia64_sn_hwperf_op(sn_hwperf_master_nasid, |
499 | SN_HWPERF_ENUM_PORTS, obj->id, sz, | 499 | SN_HWPERF_ENUM_PORTS, obj->id, sz, |
@@ -541,7 +541,7 @@ static int sn_topology_show(struct seq_file *s, void *d) | |||
541 | (SN_HWPERF_IS_NL3ROUTER(obj) || | 541 | (SN_HWPERF_IS_NL3ROUTER(obj) || |
542 | SN_HWPERF_IS_NL3ROUTER(p)) ? "LLP3" : "LLP4"); | 542 | SN_HWPERF_IS_NL3ROUTER(p)) ? "LLP3" : "LLP4"); |
543 | } | 543 | } |
544 | vfree(ptdata); | 544 | kfree(ptdata); |
545 | } | 545 | } |
546 | 546 | ||
547 | return 0; | 547 | return 0; |
diff --git a/arch/ia64/sn/kernel/xpc_partition.c b/arch/ia64/sn/kernel/xpc_partition.c index 94211429fd0c..2a89cfce4954 100644 --- a/arch/ia64/sn/kernel/xpc_partition.c +++ b/arch/ia64/sn/kernel/xpc_partition.c | |||
@@ -136,9 +136,7 @@ xpc_get_rsvd_page_pa(int nasid) | |||
136 | } | 136 | } |
137 | 137 | ||
138 | if (L1_CACHE_ALIGN(len) > buf_len) { | 138 | if (L1_CACHE_ALIGN(len) > buf_len) { |
139 | if (buf_base != NULL) { | 139 | kfree(buf_base); |
140 | kfree(buf_base); | ||
141 | } | ||
142 | buf_len = L1_CACHE_ALIGN(len); | 140 | buf_len = L1_CACHE_ALIGN(len); |
143 | buf = (u64) xpc_kmalloc_cacheline_aligned(buf_len, | 141 | buf = (u64) xpc_kmalloc_cacheline_aligned(buf_len, |
144 | GFP_KERNEL, &buf_base); | 142 | GFP_KERNEL, &buf_base); |
@@ -159,9 +157,7 @@ xpc_get_rsvd_page_pa(int nasid) | |||
159 | } | 157 | } |
160 | } | 158 | } |
161 | 159 | ||
162 | if (buf_base != NULL) { | 160 | kfree(buf_base); |
163 | kfree(buf_base); | ||
164 | } | ||
165 | 161 | ||
166 | if (status != SALRET_OK) { | 162 | if (status != SALRET_OK) { |
167 | rp_pa = 0; | 163 | rp_pa = 0; |
diff --git a/arch/ia64/sn/pci/tioce_provider.c b/arch/ia64/sn/pci/tioce_provider.c index fa073cc4b565..833295624e5d 100644 --- a/arch/ia64/sn/pci/tioce_provider.c +++ b/arch/ia64/sn/pci/tioce_provider.c | |||
@@ -682,9 +682,6 @@ tioce_reserve_m32(struct tioce_kernel *ce_kern, u64 base, u64 limit) | |||
682 | int ate_index, last_ate, ps; | 682 | int ate_index, last_ate, ps; |
683 | struct tioce *ce_mmr; | 683 | struct tioce *ce_mmr; |
684 | 684 | ||
685 | if (!TIOCE_M32_ADDR(base)) | ||
686 | return; | ||
687 | |||
688 | ce_mmr = (struct tioce *)ce_kern->ce_common->ce_pcibus.bs_base; | 685 | ce_mmr = (struct tioce *)ce_kern->ce_common->ce_pcibus.bs_base; |
689 | ps = ce_kern->ce_ate3240_pagesize; | 686 | ps = ce_kern->ce_ate3240_pagesize; |
690 | ate_index = ATE_PAGE(base, ps); | 687 | ate_index = ATE_PAGE(base, ps); |
@@ -693,6 +690,9 @@ tioce_reserve_m32(struct tioce_kernel *ce_kern, u64 base, u64 limit) | |||
693 | if (ate_index < 64) | 690 | if (ate_index < 64) |
694 | ate_index = 64; | 691 | ate_index = 64; |
695 | 692 | ||
693 | if (last_ate >= TIOCE_NUM_M3240_ATES) | ||
694 | last_ate = TIOCE_NUM_M3240_ATES - 1; | ||
695 | |||
696 | while (ate_index <= last_ate) { | 696 | while (ate_index <= last_ate) { |
697 | u64 ate; | 697 | u64 ate; |
698 | 698 | ||
diff --git a/drivers/Kconfig b/drivers/Kconfig index 5c91d6afb117..aeb5ab2391e4 100644 --- a/drivers/Kconfig +++ b/drivers/Kconfig | |||
@@ -68,8 +68,6 @@ source "drivers/leds/Kconfig" | |||
68 | 68 | ||
69 | source "drivers/infiniband/Kconfig" | 69 | source "drivers/infiniband/Kconfig" |
70 | 70 | ||
71 | source "drivers/sn/Kconfig" | ||
72 | |||
73 | source "drivers/edac/Kconfig" | 71 | source "drivers/edac/Kconfig" |
74 | 72 | ||
75 | source "drivers/rtc/Kconfig" | 73 | source "drivers/rtc/Kconfig" |
diff --git a/include/asm-ia64/acpi.h b/include/asm-ia64/acpi.h index d734585a23cf..09a5dd0e44a8 100644 --- a/include/asm-ia64/acpi.h +++ b/include/asm-ia64/acpi.h | |||
@@ -110,9 +110,8 @@ extern void prefill_possible_map(void); | |||
110 | extern int additional_cpus; | 110 | extern int additional_cpus; |
111 | 111 | ||
112 | #ifdef CONFIG_ACPI_NUMA | 112 | #ifdef CONFIG_ACPI_NUMA |
113 | /* Proximity bitmap length; _PXM is at most 255 (8 bit)*/ | 113 | #if MAX_NUMNODES > 256 |
114 | #ifdef CONFIG_IA64_NR_NODES | 114 | #define MAX_PXM_DOMAINS MAX_NUMNODES |
115 | #define MAX_PXM_DOMAINS CONFIG_IA64_NR_NODES | ||
116 | #else | 115 | #else |
117 | #define MAX_PXM_DOMAINS (256) | 116 | #define MAX_PXM_DOMAINS (256) |
118 | #endif | 117 | #endif |
diff --git a/include/asm-ia64/machvec.h b/include/asm-ia64/machvec.h index c3e4ed8a3e17..a9c995a86c21 100644 --- a/include/asm-ia64/machvec.h +++ b/include/asm-ia64/machvec.h | |||
@@ -347,9 +347,11 @@ extern ia64_mv_dma_supported swiotlb_dma_supported; | |||
347 | #endif | 347 | #endif |
348 | #ifndef platform_pci_legacy_read | 348 | #ifndef platform_pci_legacy_read |
349 | # define platform_pci_legacy_read ia64_pci_legacy_read | 349 | # define platform_pci_legacy_read ia64_pci_legacy_read |
350 | extern int ia64_pci_legacy_read(struct pci_bus *bus, u16 port, u32 *val, u8 size); | ||
350 | #endif | 351 | #endif |
351 | #ifndef platform_pci_legacy_write | 352 | #ifndef platform_pci_legacy_write |
352 | # define platform_pci_legacy_write ia64_pci_legacy_write | 353 | # define platform_pci_legacy_write ia64_pci_legacy_write |
354 | extern int ia64_pci_legacy_write(struct pci_bus *bus, u16 port, u32 val, u8 size); | ||
353 | #endif | 355 | #endif |
354 | #ifndef platform_inb | 356 | #ifndef platform_inb |
355 | # define platform_inb __ia64_inb | 357 | # define platform_inb __ia64_inb |
diff --git a/include/asm-ia64/sn/sn2/sn_hwperf.h b/include/asm-ia64/sn/sn2/sn_hwperf.h index 291ef3d69da2..e61ebac38cdd 100644 --- a/include/asm-ia64/sn/sn2/sn_hwperf.h +++ b/include/asm-ia64/sn/sn2/sn_hwperf.h | |||
@@ -45,8 +45,12 @@ struct sn_hwperf_object_info { | |||
45 | #define SN_HWPERF_IS_NODE(x) ((x) && strstr((x)->name, "SHub")) | 45 | #define SN_HWPERF_IS_NODE(x) ((x) && strstr((x)->name, "SHub")) |
46 | #define SN_HWPERF_IS_NODE_SHUB2(x) ((x) && strstr((x)->name, "SHub 2.")) | 46 | #define SN_HWPERF_IS_NODE_SHUB2(x) ((x) && strstr((x)->name, "SHub 2.")) |
47 | #define SN_HWPERF_IS_IONODE(x) ((x) && strstr((x)->name, "TIO")) | 47 | #define SN_HWPERF_IS_IONODE(x) ((x) && strstr((x)->name, "TIO")) |
48 | #define SN_HWPERF_IS_ROUTER(x) ((x) && strstr((x)->name, "Router")) | ||
49 | #define SN_HWPERF_IS_NL3ROUTER(x) ((x) && strstr((x)->name, "NL3Router")) | 48 | #define SN_HWPERF_IS_NL3ROUTER(x) ((x) && strstr((x)->name, "NL3Router")) |
49 | #define SN_HWPERF_IS_NL4ROUTER(x) ((x) && strstr((x)->name, "NL4Router")) | ||
50 | #define SN_HWPERF_IS_OLDROUTER(x) ((x) && strstr((x)->name, "Router")) | ||
51 | #define SN_HWPERF_IS_ROUTER(x) (SN_HWPERF_IS_NL3ROUTER(x) || \ | ||
52 | SN_HWPERF_IS_NL4ROUTER(x) || \ | ||
53 | SN_HWPERF_IS_OLDROUTER(x)) | ||
50 | #define SN_HWPERF_FOREIGN(x) ((x) && !(x)->sn_hwp_this_part && !(x)->sn_hwp_is_shared) | 54 | #define SN_HWPERF_FOREIGN(x) ((x) && !(x)->sn_hwp_this_part && !(x)->sn_hwp_is_shared) |
51 | #define SN_HWPERF_SAME_OBJTYPE(x,y) ((SN_HWPERF_IS_NODE(x) && SN_HWPERF_IS_NODE(y)) ||\ | 55 | #define SN_HWPERF_SAME_OBJTYPE(x,y) ((SN_HWPERF_IS_NODE(x) && SN_HWPERF_IS_NODE(y)) ||\ |
52 | (SN_HWPERF_IS_IONODE(x) && SN_HWPERF_IS_IONODE(y)) ||\ | 56 | (SN_HWPERF_IS_IONODE(x) && SN_HWPERF_IS_IONODE(y)) ||\ |
diff --git a/include/asm-ia64/sn/sn_sal.h b/include/asm-ia64/sn/sn_sal.h index bf4cc867a698..51aca022cf39 100644 --- a/include/asm-ia64/sn/sn_sal.h +++ b/include/asm-ia64/sn/sn_sal.h | |||
@@ -8,7 +8,7 @@ | |||
8 | * License. See the file "COPYING" in the main directory of this archive | 8 | * License. See the file "COPYING" in the main directory of this archive |
9 | * for more details. | 9 | * for more details. |
10 | * | 10 | * |
11 | * Copyright (c) 2000-2005 Silicon Graphics, Inc. All rights reserved. | 11 | * Copyright (c) 2000-2006 Silicon Graphics, Inc. All rights reserved. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | 14 | ||
@@ -85,6 +85,7 @@ | |||
85 | 85 | ||
86 | #define SN_SAL_GET_PROM_FEATURE_SET 0x02000065 | 86 | #define SN_SAL_GET_PROM_FEATURE_SET 0x02000065 |
87 | #define SN_SAL_SET_OS_FEATURE_SET 0x02000066 | 87 | #define SN_SAL_SET_OS_FEATURE_SET 0x02000066 |
88 | #define SN_SAL_INJECT_ERROR 0x02000067 | ||
88 | 89 | ||
89 | /* | 90 | /* |
90 | * Service-specific constants | 91 | * Service-specific constants |
@@ -705,10 +706,8 @@ static inline int | |||
705 | sn_change_memprotect(u64 paddr, u64 len, u64 perms, u64 *nasid_array) | 706 | sn_change_memprotect(u64 paddr, u64 len, u64 perms, u64 *nasid_array) |
706 | { | 707 | { |
707 | struct ia64_sal_retval ret_stuff; | 708 | struct ia64_sal_retval ret_stuff; |
708 | int cnodeid; | ||
709 | unsigned long irq_flags; | 709 | unsigned long irq_flags; |
710 | 710 | ||
711 | cnodeid = nasid_to_cnodeid(get_node_number(paddr)); | ||
712 | local_irq_save(irq_flags); | 711 | local_irq_save(irq_flags); |
713 | ia64_sal_oemcall_nolock(&ret_stuff, SN_SAL_MEMPROTECT, paddr, len, | 712 | ia64_sal_oemcall_nolock(&ret_stuff, SN_SAL_MEMPROTECT, paddr, len, |
714 | (u64)nasid_array, perms, 0, 0, 0); | 713 | (u64)nasid_array, perms, 0, 0, 0); |
@@ -1140,4 +1139,16 @@ ia64_sn_set_os_feature(int feature) | |||
1140 | return rv.status; | 1139 | return rv.status; |
1141 | } | 1140 | } |
1142 | 1141 | ||
1142 | static inline int | ||
1143 | sn_inject_error(u64 paddr, u64 *data, u64 *ecc) | ||
1144 | { | ||
1145 | struct ia64_sal_retval ret_stuff; | ||
1146 | unsigned long irq_flags; | ||
1147 | |||
1148 | local_irq_save(irq_flags); | ||
1149 | ia64_sal_oemcall_nolock(&ret_stuff, SN_SAL_INJECT_ERROR, paddr, (u64)data, | ||
1150 | (u64)ecc, 0, 0, 0, 0); | ||
1151 | local_irq_restore(irq_flags); | ||
1152 | return ret_stuff.status; | ||
1153 | } | ||
1143 | #endif /* _ASM_IA64_SN_SN_SAL_H */ | 1154 | #endif /* _ASM_IA64_SN_SN_SAL_H */ |
diff --git a/include/asm-ia64/thread_info.h b/include/asm-ia64/thread_info.h index 56394a2c7055..e5392c4d30c6 100644 --- a/include/asm-ia64/thread_info.h +++ b/include/asm-ia64/thread_info.h | |||
@@ -67,7 +67,7 @@ struct thread_info { | |||
67 | #define end_of_stack(p) (unsigned long *)((void *)(p) + IA64_RBS_OFFSET) | 67 | #define end_of_stack(p) (unsigned long *)((void *)(p) + IA64_RBS_OFFSET) |
68 | 68 | ||
69 | #define __HAVE_ARCH_TASK_STRUCT_ALLOCATOR | 69 | #define __HAVE_ARCH_TASK_STRUCT_ALLOCATOR |
70 | #define alloc_task_struct() ((task_t *)__get_free_pages(GFP_KERNEL, KERNEL_STACK_SIZE_ORDER)) | 70 | #define alloc_task_struct() ((task_t *)__get_free_pages(GFP_KERNEL | __GFP_COMP, KERNEL_STACK_SIZE_ORDER)) |
71 | #define free_task_struct(tsk) free_pages((unsigned long) (tsk), KERNEL_STACK_SIZE_ORDER) | 71 | #define free_task_struct(tsk) free_pages((unsigned long) (tsk), KERNEL_STACK_SIZE_ORDER) |
72 | 72 | ||
73 | #endif /* !__ASSEMBLY */ | 73 | #endif /* !__ASSEMBLY */ |
diff --git a/include/asm-ia64/topology.h b/include/asm-ia64/topology.h index 3ee19dfa46df..616b5ed2aa72 100644 --- a/include/asm-ia64/topology.h +++ b/include/asm-ia64/topology.h | |||
@@ -23,6 +23,11 @@ | |||
23 | #define PENALTY_FOR_NODE_WITH_CPUS 255 | 23 | #define PENALTY_FOR_NODE_WITH_CPUS 255 |
24 | 24 | ||
25 | /* | 25 | /* |
26 | * Distance above which we begin to use zone reclaim | ||
27 | */ | ||
28 | #define RECLAIM_DISTANCE 15 | ||
29 | |||
30 | /* | ||
26 | * Returns the number of the node containing CPU 'cpu' | 31 | * Returns the number of the node containing CPU 'cpu' |
27 | */ | 32 | */ |
28 | #define cpu_to_node(cpu) (int)(cpu_to_node_map[cpu]) | 33 | #define cpu_to_node(cpu) (int)(cpu_to_node_map[cpu]) |