forked from Minki/linux
kexec: drop weak attribute from functions
Drop __weak attribute from functions in kexec_core.c: - machine_kexec_post_load() - arch_kexec_protect_crashkres() - arch_kexec_unprotect_crashkres() - crash_free_reserved_phys_range() Link: https://lkml.kernel.org/r/c0f6219e03cb399d166d518ab505095218a902dd.1656659357.git.naveen.n.rao@linux.vnet.ibm.com Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> Suggested-by: Eric Biederman <ebiederm@xmission.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
This commit is contained in:
parent
65d9a9a60f
commit
0738eceb62
@ -84,16 +84,30 @@ static inline void crash_setup_regs(struct pt_regs *newregs,
|
||||
extern bool crash_is_nosave(unsigned long pfn);
|
||||
extern void crash_prepare_suspend(void);
|
||||
extern void crash_post_resume(void);
|
||||
|
||||
void crash_free_reserved_phys_range(unsigned long begin, unsigned long end);
|
||||
#define crash_free_reserved_phys_range crash_free_reserved_phys_range
|
||||
#else
|
||||
static inline bool crash_is_nosave(unsigned long pfn) {return false; }
|
||||
static inline void crash_prepare_suspend(void) {}
|
||||
static inline void crash_post_resume(void) {}
|
||||
#endif
|
||||
|
||||
struct kimage;
|
||||
|
||||
#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);
|
||||
|
||||
int machine_kexec_post_load(struct kimage *image);
|
||||
#define machine_kexec_post_load machine_kexec_post_load
|
||||
|
||||
void arch_kexec_protect_crashkres(void);
|
||||
#define arch_kexec_protect_crashkres arch_kexec_protect_crashkres
|
||||
|
||||
void arch_kexec_unprotect_crashkres(void);
|
||||
#define arch_kexec_unprotect_crashkres arch_kexec_unprotect_crashkres
|
||||
#endif
|
||||
|
||||
#define ARCH_HAS_KIMAGE_ARCH
|
||||
@ -113,8 +127,6 @@ struct kimage_arch {
|
||||
#ifdef CONFIG_KEXEC_FILE
|
||||
extern const struct kexec_file_ops kexec_image_ops;
|
||||
|
||||
struct kimage;
|
||||
|
||||
int arch_kimage_file_post_load_cleanup(struct kimage *image);
|
||||
#define arch_kimage_file_post_load_cleanup arch_kimage_file_post_load_cleanup
|
||||
|
||||
|
@ -98,6 +98,11 @@ void relocate_new_kernel(unsigned long indirection_page, unsigned long reboot_co
|
||||
|
||||
void kexec_copy_flush(struct kimage *image);
|
||||
|
||||
#if defined(CONFIG_CRASH_DUMP) && defined(CONFIG_PPC_RTAS)
|
||||
void crash_free_reserved_phys_range(unsigned long begin, unsigned long end);
|
||||
#define crash_free_reserved_phys_range crash_free_reserved_phys_range
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_KEXEC_FILE
|
||||
extern const struct kexec_file_ops kexec_elf64_ops;
|
||||
|
||||
|
@ -85,6 +85,17 @@ struct kimage_arch {
|
||||
extern const struct kexec_file_ops s390_kexec_image_ops;
|
||||
extern const struct kexec_file_ops s390_kexec_elf_ops;
|
||||
|
||||
#ifdef CONFIG_CRASH_DUMP
|
||||
void crash_free_reserved_phys_range(unsigned long begin, unsigned long end);
|
||||
#define crash_free_reserved_phys_range crash_free_reserved_phys_range
|
||||
|
||||
void arch_kexec_protect_crashkres(void);
|
||||
#define arch_kexec_protect_crashkres arch_kexec_protect_crashkres
|
||||
|
||||
void arch_kexec_unprotect_crashkres(void);
|
||||
#define arch_kexec_unprotect_crashkres arch_kexec_unprotect_crashkres
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_KEXEC_FILE
|
||||
struct purgatory_info;
|
||||
int arch_kexec_apply_relocations_add(struct purgatory_info *pi,
|
||||
|
@ -186,6 +186,12 @@ extern int arch_kexec_post_alloc_pages(void *vaddr, unsigned int pages,
|
||||
extern void arch_kexec_pre_free_pages(void *vaddr, unsigned int pages);
|
||||
#define arch_kexec_pre_free_pages arch_kexec_pre_free_pages
|
||||
|
||||
void arch_kexec_protect_crashkres(void);
|
||||
#define arch_kexec_protect_crashkres arch_kexec_protect_crashkres
|
||||
|
||||
void arch_kexec_unprotect_crashkres(void);
|
||||
#define arch_kexec_unprotect_crashkres arch_kexec_unprotect_crashkres
|
||||
|
||||
#ifdef CONFIG_KEXEC_FILE
|
||||
struct purgatory_info;
|
||||
int arch_kexec_apply_relocations_add(struct purgatory_info *pi,
|
||||
|
@ -390,7 +390,10 @@ extern void machine_kexec_cleanup(struct kimage *image);
|
||||
extern int kernel_kexec(void);
|
||||
extern struct page *kimage_alloc_control_pages(struct kimage *image,
|
||||
unsigned int order);
|
||||
int machine_kexec_post_load(struct kimage *image);
|
||||
|
||||
#ifndef machine_kexec_post_load
|
||||
static inline int machine_kexec_post_load(struct kimage *image) { return 0; }
|
||||
#endif
|
||||
|
||||
extern void __crash_kexec(struct pt_regs *);
|
||||
extern void crash_kexec(struct pt_regs *);
|
||||
@ -423,10 +426,21 @@ extern bool kexec_in_progress;
|
||||
|
||||
int crash_shrink_memory(unsigned long new_size);
|
||||
size_t crash_get_memory_size(void);
|
||||
void crash_free_reserved_phys_range(unsigned long begin, unsigned long end);
|
||||
|
||||
void arch_kexec_protect_crashkres(void);
|
||||
void arch_kexec_unprotect_crashkres(void);
|
||||
#ifndef arch_kexec_protect_crashkres
|
||||
/*
|
||||
* Protection mechanism for crashkernel reserved memory after
|
||||
* the kdump kernel is loaded.
|
||||
*
|
||||
* Provide an empty default implementation here -- architecture
|
||||
* code may override this
|
||||
*/
|
||||
static inline void arch_kexec_protect_crashkres(void) { }
|
||||
#endif
|
||||
|
||||
#ifndef arch_kexec_unprotect_crashkres
|
||||
static inline void arch_kexec_unprotect_crashkres(void) { }
|
||||
#endif
|
||||
|
||||
#ifndef page_to_boot_pfn
|
||||
static inline unsigned long page_to_boot_pfn(struct page *page)
|
||||
@ -456,6 +470,16 @@ static inline phys_addr_t boot_phys_to_phys(unsigned long boot_phys)
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef crash_free_reserved_phys_range
|
||||
static inline void crash_free_reserved_phys_range(unsigned long begin, unsigned long end)
|
||||
{
|
||||
unsigned long addr;
|
||||
|
||||
for (addr = begin; addr < end; addr += PAGE_SIZE)
|
||||
free_reserved_page(boot_pfn_to_page(addr >> PAGE_SHIFT));
|
||||
}
|
||||
#endif
|
||||
|
||||
static inline unsigned long virt_to_boot_phys(void *addr)
|
||||
{
|
||||
return phys_to_boot_phys(__pa((unsigned long)addr));
|
||||
|
@ -591,11 +591,6 @@ static void kimage_free_extra_pages(struct kimage *image)
|
||||
|
||||
}
|
||||
|
||||
int __weak machine_kexec_post_load(struct kimage *image)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
void kimage_terminate(struct kimage *image)
|
||||
{
|
||||
if (*image->entry != 0)
|
||||
@ -1020,15 +1015,6 @@ size_t crash_get_memory_size(void)
|
||||
return size;
|
||||
}
|
||||
|
||||
void __weak crash_free_reserved_phys_range(unsigned long begin,
|
||||
unsigned long end)
|
||||
{
|
||||
unsigned long addr;
|
||||
|
||||
for (addr = begin; addr < end; addr += PAGE_SIZE)
|
||||
free_reserved_page(boot_pfn_to_page(addr >> PAGE_SHIFT));
|
||||
}
|
||||
|
||||
int crash_shrink_memory(unsigned long new_size)
|
||||
{
|
||||
int ret = 0;
|
||||
@ -1225,16 +1211,3 @@ int kernel_kexec(void)
|
||||
mutex_unlock(&kexec_mutex);
|
||||
return error;
|
||||
}
|
||||
|
||||
/*
|
||||
* Protection mechanism for crashkernel reserved memory after
|
||||
* the kdump kernel is loaded.
|
||||
*
|
||||
* Provide an empty default implementation here -- architecture
|
||||
* code may override this
|
||||
*/
|
||||
void __weak arch_kexec_protect_crashkres(void)
|
||||
{}
|
||||
|
||||
void __weak arch_kexec_unprotect_crashkres(void)
|
||||
{}
|
||||
|
Loading…
Reference in New Issue
Block a user