Commit 7a2512fa authored by Pasha Tatashin's avatar Pasha Tatashin Committed by Will Deacon
Browse files

arm64: kexec: remove cpu-reset.h



This header contains only cpu_soft_restart() which is never used directly
anymore. So, remove this header, and rename the helper to be
cpu_soft_restart().

Suggested-by: default avatarJames Morse <james.morse@arm.com>
Signed-off-by: default avatarPasha Tatashin <pasha.tatashin@soleen.com>
Acked-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
Link: https://lore.kernel.org/r/20210930143113.1502553-15-pasha.tatashin@soleen.com


Signed-off-by: default avatarWill Deacon <will@kernel.org>
parent 939f1b95
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -90,6 +90,12 @@ static inline void crash_prepare_suspend(void) {}
static inline void crash_post_resume(void) {}
#endif

#if defined(CONFIG_KEXEC_CORE)
void cpu_soft_restart(unsigned long el2_switch, unsigned long entry,
		      unsigned long arg0, unsigned long arg1,
		      unsigned long arg2);
#endif

#define ARCH_HAS_KIMAGE_ARCH

struct kimage_arch {
+3 −4
Original line number Diff line number Diff line
@@ -16,8 +16,7 @@
.pushsection    .idmap.text, "awx"

/*
 * __cpu_soft_restart(el2_switch, entry, arg0, arg1, arg2) - Helper for
 * cpu_soft_restart.
 * cpu_soft_restart(el2_switch, entry, arg0, arg1, arg2)
 *
 * @el2_switch: Flag to indicate a switch to EL2 is needed.
 * @entry: Location to jump to for soft reset.
@@ -29,7 +28,7 @@
 * branch to what would be the reset vector. It must be executed with the
 * flat identity mapping.
 */
SYM_CODE_START(__cpu_soft_restart)
SYM_CODE_START(cpu_soft_restart)
	mov_q	x12, INIT_SCTLR_EL1_MMU_OFF
	pre_disable_mmu_workaround
	/*
@@ -48,6 +47,6 @@ SYM_CODE_START(__cpu_soft_restart)
	mov	x1, x3				// arg1
	mov	x2, x4				// arg2
	br	x8
SYM_CODE_END(__cpu_soft_restart)
SYM_CODE_END(cpu_soft_restart)

.popsection

arch/arm64/kernel/cpu-reset.h

deleted100644 → 0
+0 −30
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * CPU reset routines
 *
 * Copyright (C) 2015 Huawei Futurewei Technologies.
 */

#ifndef _ARM64_CPU_RESET_H
#define _ARM64_CPU_RESET_H

#include <asm/virt.h>

void __cpu_soft_restart(unsigned long el2_switch, unsigned long entry,
	unsigned long arg0, unsigned long arg1, unsigned long arg2);

static inline void __noreturn __nocfi cpu_soft_restart(unsigned long entry,
						       unsigned long arg0,
						       unsigned long arg1,
						       unsigned long arg2)
{
	typeof(__cpu_soft_restart) *restart;

	restart = (void *)__pa_symbol(function_nocfi(__cpu_soft_restart));

	cpu_install_idmap();
	restart(0, entry, arg0, arg1, arg2);
	unreachable();
}

#endif
+2 −4
Original line number Diff line number Diff line
@@ -24,8 +24,6 @@
#include <asm/sections.h>
#include <asm/trans_pgd.h>

#include "cpu-reset.h"

/**
 * kexec_image_info - For debugging output.
 */
@@ -201,10 +199,10 @@ void machine_kexec(struct kimage *kimage)
	 * In kexec_file case, the kernel starts directly without purgatory.
	 */
	if (kimage->head & IND_DONE) {
		typeof(__cpu_soft_restart) *restart;
		typeof(cpu_soft_restart) *restart;

		cpu_install_idmap();
		restart = (void *)__pa_symbol(function_nocfi(__cpu_soft_restart));
		restart = (void *)__pa_symbol(function_nocfi(cpu_soft_restart));
		restart(is_hyp_nvhe(), kimage->start, kimage->arch.dtb_mem,
			0, 0);
	} else {