aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64
diff options
context:
space:
mode:
Diffstat (limited to 'arch/ia64')
-rw-r--r--arch/ia64/Kconfig1
-rw-r--r--arch/ia64/ia32/binfmt_elf32.c2
-rw-r--r--arch/ia64/ia32/elfcore32.h1
-rw-r--r--arch/ia64/kernel/machine_kexec.c28
-rw-r--r--arch/ia64/mm/discontig.c2
5 files changed, 31 insertions, 3 deletions
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
index 59b91ac861ac..c60532d93c54 100644
--- a/arch/ia64/Kconfig
+++ b/arch/ia64/Kconfig
@@ -593,7 +593,6 @@ config IRQ_PER_CPU
593source "arch/ia64/hp/sim/Kconfig" 593source "arch/ia64/hp/sim/Kconfig"
594 594
595menu "Instrumentation Support" 595menu "Instrumentation Support"
596 depends on EXPERIMENTAL
597 596
598source "arch/ia64/oprofile/Kconfig" 597source "arch/ia64/oprofile/Kconfig"
599 598
diff --git a/arch/ia64/ia32/binfmt_elf32.c b/arch/ia64/ia32/binfmt_elf32.c
index 1cfab326fb7e..f6ae3ec93810 100644
--- a/arch/ia64/ia32/binfmt_elf32.c
+++ b/arch/ia64/ia32/binfmt_elf32.c
@@ -240,7 +240,7 @@ static int __init check_elf32_binfmt(void)
240{ 240{
241 if (cpu_uses_ia32el()) { 241 if (cpu_uses_ia32el()) {
242 printk("Please use IA-32 EL for executing IA-32 binaries\n"); 242 printk("Please use IA-32 EL for executing IA-32 binaries\n");
243 return unregister_binfmt(&elf_format); 243 unregister_binfmt(&elf_format);
244 } 244 }
245 return 0; 245 return 0;
246} 246}
diff --git a/arch/ia64/ia32/elfcore32.h b/arch/ia64/ia32/elfcore32.h
index a47f63b204fb..446c9aac924d 100644
--- a/arch/ia64/ia32/elfcore32.h
+++ b/arch/ia64/ia32/elfcore32.h
@@ -117,6 +117,7 @@ elf_core_copy_task_fpregs(struct task_struct *tsk, struct pt_regs *regs, elf_fpr
117} 117}
118 118
119#define ELF_CORE_COPY_XFPREGS 1 119#define ELF_CORE_COPY_XFPREGS 1
120#define ELF_CORE_XFPREG_TYPE NT_PRXFPREG
120static inline int 121static inline int
121elf_core_copy_task_xfpregs(struct task_struct *tsk, elf_fpxregset_t *xfpu) 122elf_core_copy_task_xfpregs(struct task_struct *tsk, elf_fpxregset_t *xfpu)
122{ 123{
diff --git a/arch/ia64/kernel/machine_kexec.c b/arch/ia64/kernel/machine_kexec.c
index 58e943a5d95c..0dd3b2394cdd 100644
--- a/arch/ia64/kernel/machine_kexec.c
+++ b/arch/ia64/kernel/machine_kexec.c
@@ -15,10 +15,13 @@
15#include <linux/cpu.h> 15#include <linux/cpu.h>
16#include <linux/irq.h> 16#include <linux/irq.h>
17#include <linux/efi.h> 17#include <linux/efi.h>
18#include <linux/numa.h>
19#include <linux/mmzone.h>
18#include <asm/mmu_context.h> 20#include <asm/mmu_context.h>
19#include <asm/setup.h> 21#include <asm/setup.h>
20#include <asm/delay.h> 22#include <asm/delay.h>
21#include <asm/meminit.h> 23#include <asm/meminit.h>
24#include <asm/processor.h>
22 25
23typedef NORET_TYPE void (*relocate_new_kernel_t)( 26typedef NORET_TYPE void (*relocate_new_kernel_t)(
24 unsigned long indirection_page, 27 unsigned long indirection_page,
@@ -121,3 +124,28 @@ void machine_kexec(struct kimage *image)
121 unw_init_running(ia64_machine_kexec, image); 124 unw_init_running(ia64_machine_kexec, image);
122 for(;;); 125 for(;;);
123} 126}
127
128void arch_crash_save_vmcoreinfo(void)
129{
130#ifdef CONFIG_ARCH_DISCONTIGMEM_ENABLE
131 VMCOREINFO_SYMBOL(pgdat_list);
132 VMCOREINFO_LENGTH(pgdat_list, MAX_NUMNODES);
133
134 VMCOREINFO_SYMBOL(node_memblk);
135 VMCOREINFO_LENGTH(node_memblk, NR_NODE_MEMBLKS);
136 VMCOREINFO_SIZE(node_memblk_s);
137 VMCOREINFO_OFFSET(node_memblk_s, start_paddr);
138 VMCOREINFO_OFFSET(node_memblk_s, size);
139#endif
140#ifdef CONFIG_PGTABLE_3
141 VMCOREINFO_CONFIG(PGTABLE_3);
142#elif CONFIG_PGTABLE_4
143 VMCOREINFO_CONFIG(PGTABLE_4);
144#endif
145}
146
147unsigned long paddr_vmcoreinfo_note(void)
148{
149 return ia64_tpa((unsigned long)(char *)&vmcoreinfo_note);
150}
151
diff --git a/arch/ia64/mm/discontig.c b/arch/ia64/mm/discontig.c
index 5628067a74d2..0b567398f38e 100644
--- a/arch/ia64/mm/discontig.c
+++ b/arch/ia64/mm/discontig.c
@@ -48,7 +48,7 @@ struct early_node_data {
48static struct early_node_data mem_data[MAX_NUMNODES] __initdata; 48static struct early_node_data mem_data[MAX_NUMNODES] __initdata;
49static nodemask_t memory_less_mask __initdata; 49static nodemask_t memory_less_mask __initdata;
50 50
51static pg_data_t *pgdat_list[MAX_NUMNODES]; 51pg_data_t *pgdat_list[MAX_NUMNODES];
52 52
53/* 53/*
54 * To prevent cache aliasing effects, align per-node structures so that they 54 * To prevent cache aliasing effects, align per-node structures so that they