diff options
Diffstat (limited to 'arch/s390/kernel/smp.c')
-rw-r--r-- | arch/s390/kernel/smp.c | 11 |
1 files changed, 1 insertions, 10 deletions
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c index cca6cf6abacc..739313db71e5 100644 --- a/arch/s390/kernel/smp.c +++ b/arch/s390/kernel/smp.c | |||
@@ -533,9 +533,6 @@ EXPORT_SYMBOL(smp_ctl_clear_bit); | |||
533 | 533 | ||
534 | #if defined(CONFIG_ZFCPDUMP) || defined(CONFIG_CRASH_DUMP) | 534 | #if defined(CONFIG_ZFCPDUMP) || defined(CONFIG_CRASH_DUMP) |
535 | 535 | ||
536 | struct save_area *zfcpdump_save_areas[NR_CPUS + 1]; | ||
537 | EXPORT_SYMBOL_GPL(zfcpdump_save_areas); | ||
538 | |||
539 | static void __init smp_get_save_area(int cpu, u16 address) | 536 | static void __init smp_get_save_area(int cpu, u16 address) |
540 | { | 537 | { |
541 | void *lc = pcpu_devices[0].lowcore; | 538 | void *lc = pcpu_devices[0].lowcore; |
@@ -546,15 +543,9 @@ static void __init smp_get_save_area(int cpu, u16 address) | |||
546 | if (!OLDMEM_BASE && (address == boot_cpu_address || | 543 | if (!OLDMEM_BASE && (address == boot_cpu_address || |
547 | ipl_info.type != IPL_TYPE_FCP_DUMP)) | 544 | ipl_info.type != IPL_TYPE_FCP_DUMP)) |
548 | return; | 545 | return; |
549 | if (cpu >= NR_CPUS) { | 546 | save_area = dump_save_area_create(cpu); |
550 | pr_warning("CPU %i exceeds the maximum %i and is excluded " | ||
551 | "from the dump\n", cpu, NR_CPUS - 1); | ||
552 | return; | ||
553 | } | ||
554 | save_area = kmalloc(sizeof(struct save_area), GFP_KERNEL); | ||
555 | if (!save_area) | 547 | if (!save_area) |
556 | panic("could not allocate memory for save area\n"); | 548 | panic("could not allocate memory for save area\n"); |
557 | zfcpdump_save_areas[cpu] = save_area; | ||
558 | #ifdef CONFIG_CRASH_DUMP | 549 | #ifdef CONFIG_CRASH_DUMP |
559 | if (address == boot_cpu_address) { | 550 | if (address == boot_cpu_address) { |
560 | /* Copy the registers of the boot cpu. */ | 551 | /* Copy the registers of the boot cpu. */ |