powerpc: Change places using CONFIG_KEXEC to use CONFIG_KEXEC_CORE instead.
Commit 2965faa5e0
("kexec: split kexec_load syscall from kexec core
code") introduced CONFIG_KEXEC_CORE so that CONFIG_KEXEC means whether
the kexec_load system call should be compiled-in and CONFIG_KEXEC_FILE
means whether the kexec_file_load system call should be compiled-in.
These options can be set independently from each other.
Since until now powerpc only supported kexec_load, CONFIG_KEXEC and
CONFIG_KEXEC_CORE were synonyms. That is not the case anymore, so we
need to make a distinction. Almost all places where CONFIG_KEXEC was
being used should be using CONFIG_KEXEC_CORE instead, since
kexec_file_load also needs that code compiled in.
Signed-off-by: Thiago Jung Bauermann <bauerman@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
hifive-unleashed-5.1
parent
e2e806f9e4
commit
da6658859b
|
@ -508,7 +508,7 @@ config CRASH_DUMP
|
||||||
|
|
||||||
config FA_DUMP
|
config FA_DUMP
|
||||||
bool "Firmware-assisted dump"
|
bool "Firmware-assisted dump"
|
||||||
depends on PPC64 && PPC_RTAS && CRASH_DUMP && KEXEC
|
depends on PPC64 && PPC_RTAS && CRASH_DUMP && KEXEC_CORE
|
||||||
help
|
help
|
||||||
A robust mechanism to get reliable kernel crash dump with
|
A robust mechanism to get reliable kernel crash dump with
|
||||||
assistance from firmware. This approach does not use kexec,
|
assistance from firmware. This approach does not use kexec,
|
||||||
|
|
|
@ -10,7 +10,7 @@ struct pt_regs;
|
||||||
|
|
||||||
extern struct dentry *powerpc_debugfs_root;
|
extern struct dentry *powerpc_debugfs_root;
|
||||||
|
|
||||||
#if defined(CONFIG_DEBUGGER) || defined(CONFIG_KEXEC)
|
#if defined(CONFIG_DEBUGGER) || defined(CONFIG_KEXEC_CORE)
|
||||||
|
|
||||||
extern int (*__debugger)(struct pt_regs *regs);
|
extern int (*__debugger)(struct pt_regs *regs);
|
||||||
extern int (*__debugger_ipi)(struct pt_regs *regs);
|
extern int (*__debugger_ipi)(struct pt_regs *regs);
|
||||||
|
|
|
@ -53,7 +53,7 @@
|
||||||
|
|
||||||
typedef void (*crash_shutdown_t)(void);
|
typedef void (*crash_shutdown_t)(void);
|
||||||
|
|
||||||
#ifdef CONFIG_KEXEC
|
#ifdef CONFIG_KEXEC_CORE
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This function is responsible for capturing register states if coming
|
* This function is responsible for capturing register states if coming
|
||||||
|
@ -91,7 +91,7 @@ static inline bool kdump_in_progress(void)
|
||||||
return crashing_cpu >= 0;
|
return crashing_cpu >= 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#else /* !CONFIG_KEXEC */
|
#else /* !CONFIG_KEXEC_CORE */
|
||||||
static inline void crash_kexec_secondary(struct pt_regs *regs) { }
|
static inline void crash_kexec_secondary(struct pt_regs *regs) { }
|
||||||
|
|
||||||
static inline int overlaps_crashkernel(unsigned long start, unsigned long size)
|
static inline int overlaps_crashkernel(unsigned long start, unsigned long size)
|
||||||
|
@ -116,7 +116,7 @@ static inline bool kdump_in_progress(void)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* CONFIG_KEXEC */
|
#endif /* CONFIG_KEXEC_CORE */
|
||||||
#endif /* ! __ASSEMBLY__ */
|
#endif /* ! __ASSEMBLY__ */
|
||||||
#endif /* __KERNEL__ */
|
#endif /* __KERNEL__ */
|
||||||
#endif /* _ASM_POWERPC_KEXEC_H */
|
#endif /* _ASM_POWERPC_KEXEC_H */
|
||||||
|
|
|
@ -183,7 +183,7 @@ struct machdep_calls {
|
||||||
*/
|
*/
|
||||||
void (*machine_shutdown)(void);
|
void (*machine_shutdown)(void);
|
||||||
|
|
||||||
#ifdef CONFIG_KEXEC
|
#ifdef CONFIG_KEXEC_CORE
|
||||||
void (*kexec_cpu_down)(int crash_shutdown, int secondary);
|
void (*kexec_cpu_down)(int crash_shutdown, int secondary);
|
||||||
|
|
||||||
/* Called to do what every setup is needed on image and the
|
/* Called to do what every setup is needed on image and the
|
||||||
|
@ -198,7 +198,7 @@ struct machdep_calls {
|
||||||
* no return.
|
* no return.
|
||||||
*/
|
*/
|
||||||
void (*machine_kexec)(struct kimage *image);
|
void (*machine_kexec)(struct kimage *image);
|
||||||
#endif /* CONFIG_KEXEC */
|
#endif /* CONFIG_KEXEC_CORE */
|
||||||
|
|
||||||
#ifdef CONFIG_SUSPEND
|
#ifdef CONFIG_SUSPEND
|
||||||
/* These are called to disable and enable, respectively, IRQs when
|
/* These are called to disable and enable, respectively, IRQs when
|
||||||
|
|
|
@ -176,7 +176,7 @@ static inline void set_hard_smp_processor_id(int cpu, int phys)
|
||||||
#endif /* !CONFIG_SMP */
|
#endif /* !CONFIG_SMP */
|
||||||
#endif /* !CONFIG_PPC64 */
|
#endif /* !CONFIG_PPC64 */
|
||||||
|
|
||||||
#if defined(CONFIG_PPC64) && (defined(CONFIG_SMP) || defined(CONFIG_KEXEC))
|
#if defined(CONFIG_PPC64) && (defined(CONFIG_SMP) || defined(CONFIG_KEXEC_CORE))
|
||||||
extern void smp_release_cpus(void);
|
extern void smp_release_cpus(void);
|
||||||
#else
|
#else
|
||||||
static inline void smp_release_cpus(void) { };
|
static inline void smp_release_cpus(void) { };
|
||||||
|
|
|
@ -109,7 +109,7 @@ pci64-$(CONFIG_PPC64) += pci_dn.o pci-hotplug.o isa-bridge.o
|
||||||
obj-$(CONFIG_PCI) += pci_$(BITS).o $(pci64-y) \
|
obj-$(CONFIG_PCI) += pci_$(BITS).o $(pci64-y) \
|
||||||
pci-common.o pci_of_scan.o
|
pci-common.o pci_of_scan.o
|
||||||
obj-$(CONFIG_PCI_MSI) += msi.o
|
obj-$(CONFIG_PCI_MSI) += msi.o
|
||||||
obj-$(CONFIG_KEXEC) += machine_kexec.o crash.o \
|
obj-$(CONFIG_KEXEC_CORE) += machine_kexec.o crash.o \
|
||||||
machine_kexec_$(BITS).o
|
machine_kexec_$(BITS).o
|
||||||
obj-$(CONFIG_AUDIT) += audit.o
|
obj-$(CONFIG_AUDIT) += audit.o
|
||||||
obj64-$(CONFIG_AUDIT) += compat_audit.o
|
obj64-$(CONFIG_AUDIT) += compat_audit.o
|
||||||
|
@ -130,7 +130,7 @@ obj64-$(CONFIG_PPC_TRANSACTIONAL_MEM) += tm.o
|
||||||
obj-$(CONFIG_PPC64) += $(obj64-y)
|
obj-$(CONFIG_PPC64) += $(obj64-y)
|
||||||
obj-$(CONFIG_PPC32) += $(obj32-y)
|
obj-$(CONFIG_PPC32) += $(obj32-y)
|
||||||
|
|
||||||
ifneq ($(CONFIG_XMON)$(CONFIG_KEXEC),)
|
ifneq ($(CONFIG_XMON)$(CONFIG_KEXEC_CORE),)
|
||||||
obj-y += ppc_save_regs.o
|
obj-y += ppc_save_regs.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
|
@ -160,7 +160,7 @@ __secondary_hold:
|
||||||
cmpdi 0,r12,0
|
cmpdi 0,r12,0
|
||||||
beq 100b
|
beq 100b
|
||||||
|
|
||||||
#if defined(CONFIG_SMP) || defined(CONFIG_KEXEC)
|
#if defined(CONFIG_SMP) || defined(CONFIG_KEXEC_CORE)
|
||||||
#ifdef CONFIG_PPC_BOOK3E
|
#ifdef CONFIG_PPC_BOOK3E
|
||||||
tovirt(r12,r12)
|
tovirt(r12,r12)
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -614,7 +614,7 @@ _GLOBAL(start_secondary_resume)
|
||||||
_GLOBAL(__main)
|
_GLOBAL(__main)
|
||||||
blr
|
blr
|
||||||
|
|
||||||
#ifdef CONFIG_KEXEC
|
#ifdef CONFIG_KEXEC_CORE
|
||||||
/*
|
/*
|
||||||
* Must be relocatable PIC code callable as a C function.
|
* Must be relocatable PIC code callable as a C function.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -478,7 +478,7 @@ _GLOBAL(kexec_wait)
|
||||||
addi r5,r5,kexec_flag-1b
|
addi r5,r5,kexec_flag-1b
|
||||||
|
|
||||||
99: HMT_LOW
|
99: HMT_LOW
|
||||||
#ifdef CONFIG_KEXEC /* use no memory without kexec */
|
#ifdef CONFIG_KEXEC_CORE /* use no memory without kexec */
|
||||||
lwz r4,0(r5)
|
lwz r4,0(r5)
|
||||||
cmpwi 0,r4,0
|
cmpwi 0,r4,0
|
||||||
beq 99b
|
beq 99b
|
||||||
|
@ -503,7 +503,7 @@ kexec_flag:
|
||||||
.long 0
|
.long 0
|
||||||
|
|
||||||
|
|
||||||
#ifdef CONFIG_KEXEC
|
#ifdef CONFIG_KEXEC_CORE
|
||||||
#ifdef CONFIG_PPC_BOOK3E
|
#ifdef CONFIG_PPC_BOOK3E
|
||||||
/*
|
/*
|
||||||
* BOOK3E has no real MMU mode, so we have to setup the initial TLB
|
* BOOK3E has no real MMU mode, so we have to setup the initial TLB
|
||||||
|
@ -716,4 +716,4 @@ _GLOBAL(kexec_sequence)
|
||||||
mtlr 4
|
mtlr 4
|
||||||
li r5,0
|
li r5,0
|
||||||
blr /* image->start(physid, image->start, 0); */
|
blr /* image->start(physid, image->start, 0); */
|
||||||
#endif /* CONFIG_KEXEC */
|
#endif /* CONFIG_KEXEC_CORE */
|
||||||
|
|
|
@ -428,7 +428,7 @@ static int __init early_init_dt_scan_chosen_ppc(unsigned long node,
|
||||||
tce_alloc_end = *lprop;
|
tce_alloc_end = *lprop;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_KEXEC
|
#ifdef CONFIG_KEXEC_CORE
|
||||||
lprop = of_get_flat_dt_prop(node, "linux,crashkernel-base", NULL);
|
lprop = of_get_flat_dt_prop(node, "linux,crashkernel-base", NULL);
|
||||||
if (lprop)
|
if (lprop)
|
||||||
crashk_res.start = *lprop;
|
crashk_res.start = *lprop;
|
||||||
|
|
|
@ -346,7 +346,7 @@ void early_setup_secondary(void)
|
||||||
|
|
||||||
#endif /* CONFIG_SMP */
|
#endif /* CONFIG_SMP */
|
||||||
|
|
||||||
#if defined(CONFIG_SMP) || defined(CONFIG_KEXEC)
|
#if defined(CONFIG_SMP) || defined(CONFIG_KEXEC_CORE)
|
||||||
static bool use_spinloop(void)
|
static bool use_spinloop(void)
|
||||||
{
|
{
|
||||||
if (!IS_ENABLED(CONFIG_PPC_BOOK3E))
|
if (!IS_ENABLED(CONFIG_PPC_BOOK3E))
|
||||||
|
@ -391,7 +391,7 @@ void smp_release_cpus(void)
|
||||||
|
|
||||||
DBG(" <- smp_release_cpus()\n");
|
DBG(" <- smp_release_cpus()\n");
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_SMP || CONFIG_KEXEC */
|
#endif /* CONFIG_SMP || CONFIG_KEXEC_CORE */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Initialize some remaining members of the ppc64_caches and systemcfg
|
* Initialize some remaining members of the ppc64_caches and systemcfg
|
||||||
|
|
|
@ -193,7 +193,7 @@ int smp_request_message_ipi(int virq, int msg)
|
||||||
if (msg < 0 || msg > PPC_MSG_DEBUGGER_BREAK) {
|
if (msg < 0 || msg > PPC_MSG_DEBUGGER_BREAK) {
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
#if !defined(CONFIG_DEBUGGER) && !defined(CONFIG_KEXEC)
|
#if !defined(CONFIG_DEBUGGER) && !defined(CONFIG_KEXEC_CORE)
|
||||||
if (msg == PPC_MSG_DEBUGGER_BREAK) {
|
if (msg == PPC_MSG_DEBUGGER_BREAK) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -325,7 +325,7 @@ void tick_broadcast(const struct cpumask *mask)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(CONFIG_DEBUGGER) || defined(CONFIG_KEXEC)
|
#if defined(CONFIG_DEBUGGER) || defined(CONFIG_KEXEC_CORE)
|
||||||
void smp_send_debugger_break(void)
|
void smp_send_debugger_break(void)
|
||||||
{
|
{
|
||||||
int cpu;
|
int cpu;
|
||||||
|
@ -340,7 +340,7 @@ void smp_send_debugger_break(void)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_KEXEC
|
#ifdef CONFIG_KEXEC_CORE
|
||||||
void crash_send_ipi(void (*crash_ipi_callback)(struct pt_regs *))
|
void crash_send_ipi(void (*crash_ipi_callback)(struct pt_regs *))
|
||||||
{
|
{
|
||||||
crash_ipi_function_ptr = crash_ipi_callback;
|
crash_ipi_function_ptr = crash_ipi_callback;
|
||||||
|
|
|
@ -66,7 +66,7 @@
|
||||||
#include <sysdev/fsl_pci.h>
|
#include <sysdev/fsl_pci.h>
|
||||||
#include <asm/kprobes.h>
|
#include <asm/kprobes.h>
|
||||||
|
|
||||||
#if defined(CONFIG_DEBUGGER) || defined(CONFIG_KEXEC)
|
#if defined(CONFIG_DEBUGGER) || defined(CONFIG_KEXEC_CORE)
|
||||||
int (*__debugger)(struct pt_regs *regs) __read_mostly;
|
int (*__debugger)(struct pt_regs *regs) __read_mostly;
|
||||||
int (*__debugger_ipi)(struct pt_regs *regs) __read_mostly;
|
int (*__debugger_ipi)(struct pt_regs *regs) __read_mostly;
|
||||||
int (*__debugger_bpt)(struct pt_regs *regs) __read_mostly;
|
int (*__debugger_bpt)(struct pt_regs *regs) __read_mostly;
|
||||||
|
|
|
@ -220,7 +220,7 @@ define_machine(corenet_generic) {
|
||||||
*
|
*
|
||||||
* Likewise, problems have been seen with kexec when coreint is enabled.
|
* Likewise, problems have been seen with kexec when coreint is enabled.
|
||||||
*/
|
*/
|
||||||
#if defined(CONFIG_HOTPLUG_CPU) || defined(CONFIG_KEXEC)
|
#if defined(CONFIG_HOTPLUG_CPU) || defined(CONFIG_KEXEC_CORE)
|
||||||
.get_irq = mpic_get_irq,
|
.get_irq = mpic_get_irq,
|
||||||
#else
|
#else
|
||||||
.get_irq = mpic_get_coreint_irq,
|
.get_irq = mpic_get_coreint_irq,
|
||||||
|
|
|
@ -349,13 +349,13 @@ struct smp_ops_t smp_85xx_ops = {
|
||||||
.cpu_disable = generic_cpu_disable,
|
.cpu_disable = generic_cpu_disable,
|
||||||
.cpu_die = generic_cpu_die,
|
.cpu_die = generic_cpu_die,
|
||||||
#endif
|
#endif
|
||||||
#if defined(CONFIG_KEXEC) && !defined(CONFIG_PPC64)
|
#if defined(CONFIG_KEXEC_CORE) && !defined(CONFIG_PPC64)
|
||||||
.give_timebase = smp_generic_give_timebase,
|
.give_timebase = smp_generic_give_timebase,
|
||||||
.take_timebase = smp_generic_take_timebase,
|
.take_timebase = smp_generic_take_timebase,
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef CONFIG_KEXEC
|
#ifdef CONFIG_KEXEC_CORE
|
||||||
#ifdef CONFIG_PPC32
|
#ifdef CONFIG_PPC32
|
||||||
atomic_t kexec_down_cpus = ATOMIC_INIT(0);
|
atomic_t kexec_down_cpus = ATOMIC_INIT(0);
|
||||||
|
|
||||||
|
@ -458,7 +458,7 @@ static void mpc85xx_smp_machine_kexec(struct kimage *image)
|
||||||
|
|
||||||
default_machine_kexec(image);
|
default_machine_kexec(image);
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_KEXEC */
|
#endif /* CONFIG_KEXEC_CORE */
|
||||||
|
|
||||||
static void smp_85xx_basic_setup(int cpu_nr)
|
static void smp_85xx_basic_setup(int cpu_nr)
|
||||||
{
|
{
|
||||||
|
@ -512,7 +512,7 @@ void __init mpc85xx_smp_init(void)
|
||||||
#endif
|
#endif
|
||||||
smp_ops = &smp_85xx_ops;
|
smp_ops = &smp_85xx_ops;
|
||||||
|
|
||||||
#ifdef CONFIG_KEXEC
|
#ifdef CONFIG_KEXEC_CORE
|
||||||
ppc_md.kexec_cpu_down = mpc85xx_smp_kexec_cpu_down;
|
ppc_md.kexec_cpu_down = mpc85xx_smp_kexec_cpu_down;
|
||||||
ppc_md.machine_kexec = mpc85xx_smp_machine_kexec;
|
ppc_md.machine_kexec = mpc85xx_smp_machine_kexec;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -676,7 +676,7 @@ static ssize_t spu_stat_show(struct device *dev,
|
||||||
|
|
||||||
static DEVICE_ATTR(stat, 0444, spu_stat_show, NULL);
|
static DEVICE_ATTR(stat, 0444, spu_stat_show, NULL);
|
||||||
|
|
||||||
#ifdef CONFIG_KEXEC
|
#ifdef CONFIG_KEXEC_CORE
|
||||||
|
|
||||||
struct crash_spu_info {
|
struct crash_spu_info {
|
||||||
struct spu *spu;
|
struct spu *spu;
|
||||||
|
|
|
@ -174,7 +174,7 @@ static void pnv_shutdown(void)
|
||||||
opal_shutdown();
|
opal_shutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_KEXEC
|
#ifdef CONFIG_KEXEC_CORE
|
||||||
static void pnv_kexec_wait_secondaries_down(void)
|
static void pnv_kexec_wait_secondaries_down(void)
|
||||||
{
|
{
|
||||||
int my_cpu, i, notified = -1;
|
int my_cpu, i, notified = -1;
|
||||||
|
@ -245,7 +245,7 @@ static void pnv_kexec_cpu_down(int crash_shutdown, int secondary)
|
||||||
opal_reinit_cpus(OPAL_REINIT_CPUS_HILE_BE);
|
opal_reinit_cpus(OPAL_REINIT_CPUS_HILE_BE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_KEXEC */
|
#endif /* CONFIG_KEXEC_CORE */
|
||||||
|
|
||||||
#ifdef CONFIG_MEMORY_HOTPLUG_SPARSE
|
#ifdef CONFIG_MEMORY_HOTPLUG_SPARSE
|
||||||
static unsigned long pnv_memory_block_size(void)
|
static unsigned long pnv_memory_block_size(void)
|
||||||
|
@ -311,7 +311,7 @@ define_machine(powernv) {
|
||||||
.machine_shutdown = pnv_shutdown,
|
.machine_shutdown = pnv_shutdown,
|
||||||
.power_save = NULL,
|
.power_save = NULL,
|
||||||
.calibrate_decr = generic_calibrate_decr,
|
.calibrate_decr = generic_calibrate_decr,
|
||||||
#ifdef CONFIG_KEXEC
|
#ifdef CONFIG_KEXEC_CORE
|
||||||
.kexec_cpu_down = pnv_kexec_cpu_down,
|
.kexec_cpu_down = pnv_kexec_cpu_down,
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_MEMORY_HOTPLUG_SPARSE
|
#ifdef CONFIG_MEMORY_HOTPLUG_SPARSE
|
||||||
|
|
|
@ -250,7 +250,7 @@ static int __init ps3_probe(void)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(CONFIG_KEXEC)
|
#if defined(CONFIG_KEXEC_CORE)
|
||||||
static void ps3_kexec_cpu_down(int crash_shutdown, int secondary)
|
static void ps3_kexec_cpu_down(int crash_shutdown, int secondary)
|
||||||
{
|
{
|
||||||
int cpu = smp_processor_id();
|
int cpu = smp_processor_id();
|
||||||
|
@ -276,7 +276,7 @@ define_machine(ps3) {
|
||||||
.progress = ps3_progress,
|
.progress = ps3_progress,
|
||||||
.restart = ps3_restart,
|
.restart = ps3_restart,
|
||||||
.halt = ps3_halt,
|
.halt = ps3_halt,
|
||||||
#if defined(CONFIG_KEXEC)
|
#if defined(CONFIG_KEXEC_CORE)
|
||||||
.kexec_cpu_down = ps3_kexec_cpu_down,
|
.kexec_cpu_down = ps3_kexec_cpu_down,
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
|
@ -8,7 +8,7 @@ obj-y := lpar.o hvCall.o nvram.o reconfig.o \
|
||||||
pci.o pci_dlpar.o eeh_pseries.o msi.o
|
pci.o pci_dlpar.o eeh_pseries.o msi.o
|
||||||
obj-$(CONFIG_SMP) += smp.o
|
obj-$(CONFIG_SMP) += smp.o
|
||||||
obj-$(CONFIG_SCANLOG) += scanlog.o
|
obj-$(CONFIG_SCANLOG) += scanlog.o
|
||||||
obj-$(CONFIG_KEXEC) += kexec.o
|
obj-$(CONFIG_KEXEC_CORE) += kexec.o
|
||||||
obj-$(CONFIG_PSERIES_ENERGY) += pseries_energy.o
|
obj-$(CONFIG_PSERIES_ENERGY) += pseries_energy.o
|
||||||
|
|
||||||
obj-$(CONFIG_HOTPLUG_CPU) += hotplug-cpu.o
|
obj-$(CONFIG_HOTPLUG_CPU) += hotplug-cpu.o
|
||||||
|
|
|
@ -367,7 +367,7 @@ void pseries_disable_reloc_on_exc(void)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(pseries_disable_reloc_on_exc);
|
EXPORT_SYMBOL(pseries_disable_reloc_on_exc);
|
||||||
|
|
||||||
#ifdef CONFIG_KEXEC
|
#ifdef CONFIG_KEXEC_CORE
|
||||||
static void pSeries_machine_kexec(struct kimage *image)
|
static void pSeries_machine_kexec(struct kimage *image)
|
||||||
{
|
{
|
||||||
if (firmware_has_feature(FW_FEATURE_SET_MODE))
|
if (firmware_has_feature(FW_FEATURE_SET_MODE))
|
||||||
|
@ -725,7 +725,7 @@ define_machine(pseries) {
|
||||||
.progress = rtas_progress,
|
.progress = rtas_progress,
|
||||||
.system_reset_exception = pSeries_system_reset_exception,
|
.system_reset_exception = pSeries_system_reset_exception,
|
||||||
.machine_check_exception = pSeries_machine_check_exception,
|
.machine_check_exception = pSeries_machine_check_exception,
|
||||||
#ifdef CONFIG_KEXEC
|
#ifdef CONFIG_KEXEC_CORE
|
||||||
.machine_kexec = pSeries_machine_kexec,
|
.machine_kexec = pSeries_machine_kexec,
|
||||||
.kexec_cpu_down = pseries_kexec_cpu_down,
|
.kexec_cpu_down = pseries_kexec_cpu_down,
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue