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 bool crash_is_nosave(unsigned long pfn);
|
||||||
extern void crash_prepare_suspend(void);
|
extern void crash_prepare_suspend(void);
|
||||||
extern void crash_post_resume(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
|
#else
|
||||||
static inline bool crash_is_nosave(unsigned long pfn) {return false; }
|
static inline bool crash_is_nosave(unsigned long pfn) {return false; }
|
||||||
static inline void crash_prepare_suspend(void) {}
|
static inline void crash_prepare_suspend(void) {}
|
||||||
static inline void crash_post_resume(void) {}
|
static inline void crash_post_resume(void) {}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
struct kimage;
|
||||||
|
|
||||||
#if defined(CONFIG_KEXEC_CORE)
|
#if defined(CONFIG_KEXEC_CORE)
|
||||||
void cpu_soft_restart(unsigned long el2_switch, unsigned long entry,
|
void cpu_soft_restart(unsigned long el2_switch, unsigned long entry,
|
||||||
unsigned long arg0, unsigned long arg1,
|
unsigned long arg0, unsigned long arg1,
|
||||||
unsigned long arg2);
|
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
|
#endif
|
||||||
|
|
||||||
#define ARCH_HAS_KIMAGE_ARCH
|
#define ARCH_HAS_KIMAGE_ARCH
|
||||||
|
@ -113,8 +127,6 @@ struct kimage_arch {
|
||||||
#ifdef CONFIG_KEXEC_FILE
|
#ifdef CONFIG_KEXEC_FILE
|
||||||
extern const struct kexec_file_ops kexec_image_ops;
|
extern const struct kexec_file_ops kexec_image_ops;
|
||||||
|
|
||||||
struct kimage;
|
|
||||||
|
|
||||||
int arch_kimage_file_post_load_cleanup(struct kimage *image);
|
int arch_kimage_file_post_load_cleanup(struct kimage *image);
|
||||||
#define arch_kimage_file_post_load_cleanup arch_kimage_file_post_load_cleanup
|
#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);
|
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
|
#ifdef CONFIG_KEXEC_FILE
|
||||||
extern const struct kexec_file_ops kexec_elf64_ops;
|
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_image_ops;
|
||||||
extern const struct kexec_file_ops s390_kexec_elf_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
|
#ifdef CONFIG_KEXEC_FILE
|
||||||
struct purgatory_info;
|
struct purgatory_info;
|
||||||
int arch_kexec_apply_relocations_add(struct purgatory_info *pi,
|
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);
|
extern void arch_kexec_pre_free_pages(void *vaddr, unsigned int pages);
|
||||||
#define arch_kexec_pre_free_pages arch_kexec_pre_free_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
|
#ifdef CONFIG_KEXEC_FILE
|
||||||
struct purgatory_info;
|
struct purgatory_info;
|
||||||
int arch_kexec_apply_relocations_add(struct purgatory_info *pi,
|
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 int kernel_kexec(void);
|
||||||
extern struct page *kimage_alloc_control_pages(struct kimage *image,
|
extern struct page *kimage_alloc_control_pages(struct kimage *image,
|
||||||
unsigned int order);
|
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 *);
|
||||||
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);
|
int crash_shrink_memory(unsigned long new_size);
|
||||||
size_t crash_get_memory_size(void);
|
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);
|
#ifndef arch_kexec_protect_crashkres
|
||||||
void arch_kexec_unprotect_crashkres(void);
|
/*
|
||||||
|
* 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
|
#ifndef page_to_boot_pfn
|
||||||
static inline unsigned long page_to_boot_pfn(struct page *page)
|
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
|
#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)
|
static inline unsigned long virt_to_boot_phys(void *addr)
|
||||||
{
|
{
|
||||||
return phys_to_boot_phys(__pa((unsigned long)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)
|
void kimage_terminate(struct kimage *image)
|
||||||
{
|
{
|
||||||
if (*image->entry != 0)
|
if (*image->entry != 0)
|
||||||
|
@ -1020,15 +1015,6 @@ size_t crash_get_memory_size(void)
|
||||||
return size;
|
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 crash_shrink_memory(unsigned long new_size)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
@ -1225,16 +1211,3 @@ int kernel_kexec(void)
|
||||||
mutex_unlock(&kexec_mutex);
|
mutex_unlock(&kexec_mutex);
|
||||||
return error;
|
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