2021-02-19 19:53:24

by Pasha Tatashin

[permalink] [raw]
Subject: [PATCH v2] kexec: move machine_kexec_post_load() to public interface

machine_kexec_post_load() is called after kexec load is finished. It must
declared in public header not in kexec_internal.h

Fixes the following compiler warning:

arch/arm64/kernel/machine_kexec.c:62:5: warning: no previous prototype for
function 'machine_kexec_post_load' [-Wmissing-prototypes]
int machine_kexec_post_load(struct kimage *kimage)

Reported-by: kernel test robot <[email protected]>
Link: https://lore.kernel.org/linux-arm-kernel/[email protected]
Signed-off-by: Pavel Tatashin <[email protected]>
---
include/linux/kexec.h | 2 ++
kernel/kexec_internal.h | 2 --
2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/linux/kexec.h b/include/linux/kexec.h
index 9e93bef52968..3671b845cf28 100644
--- a/include/linux/kexec.h
+++ b/include/linux/kexec.h
@@ -309,6 +309,8 @@ 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);
+
extern void __crash_kexec(struct pt_regs *);
extern void crash_kexec(struct pt_regs *);
int kexec_should_crash(struct task_struct *);
diff --git a/kernel/kexec_internal.h b/kernel/kexec_internal.h
index 39d30ccf8d87..48aaf2ac0d0d 100644
--- a/kernel/kexec_internal.h
+++ b/kernel/kexec_internal.h
@@ -13,8 +13,6 @@ void kimage_terminate(struct kimage *image);
int kimage_is_destination_range(struct kimage *image,
unsigned long start, unsigned long end);

-int machine_kexec_post_load(struct kimage *image);
-
extern struct mutex kexec_mutex;

#ifdef CONFIG_KEXEC_FILE
--
2.25.1


2021-02-22 14:34:33

by Will Deacon

[permalink] [raw]
Subject: Re: [PATCH v2] kexec: move machine_kexec_post_load() to public interface

On Fri, 19 Feb 2021 14:51:42 -0500, Pavel Tatashin wrote:
> machine_kexec_post_load() is called after kexec load is finished. It must
> declared in public header not in kexec_internal.h
>
> Fixes the following compiler warning:
>
> arch/arm64/kernel/machine_kexec.c:62:5: warning: no previous prototype for
> function 'machine_kexec_post_load' [-Wmissing-prototypes]
> int machine_kexec_post_load(struct kimage *kimage)

Applied to arm64 (for-next/fixes), thanks!

[1/1] kexec: move machine_kexec_post_load() to public interface
https://git.kernel.org/arm64/c/2596b6ae412b

Cheers,
--
Will

https://fixes.arm64.dev
https://next.arm64.dev
https://will.arm64.dev

2021-02-23 05:27:13

by Eric W. Biederman

[permalink] [raw]
Subject: Re: [PATCH v2] kexec: move machine_kexec_post_load() to public interface

Will Deacon <[email protected]> writes:

> On Fri, 19 Feb 2021 14:51:42 -0500, Pavel Tatashin wrote:
>> machine_kexec_post_load() is called after kexec load is finished. It must
>> declared in public header not in kexec_internal.h
>>
>> Fixes the following compiler warning:
>>
>> arch/arm64/kernel/machine_kexec.c:62:5: warning: no previous prototype for
>> function 'machine_kexec_post_load' [-Wmissing-prototypes]
>> int machine_kexec_post_load(struct kimage *kimage)
>
> Applied to arm64 (for-next/fixes), thanks!
>
> [1/1] kexec: move machine_kexec_post_load() to public interface
> https://git.kernel.org/arm64/c/2596b6ae412b

As you have already applied this it seems a bit late,
but I will mention that change could legitimately have the following
tag.

Fixes: de68e4daea90 ("kexec: add machine_kexec_post_load()")

So far arm64 is the only implementation of that hook.

Eric

2021-02-23 09:56:17

by Will Deacon

[permalink] [raw]
Subject: Re: [PATCH v2] kexec: move machine_kexec_post_load() to public interface

On Mon, Feb 22, 2021 at 11:16:38PM -0600, Eric W. Biederman wrote:
> Will Deacon <[email protected]> writes:
>
> > On Fri, 19 Feb 2021 14:51:42 -0500, Pavel Tatashin wrote:
> >> machine_kexec_post_load() is called after kexec load is finished. It must
> >> declared in public header not in kexec_internal.h
> >>
> >> Fixes the following compiler warning:
> >>
> >> arch/arm64/kernel/machine_kexec.c:62:5: warning: no previous prototype for
> >> function 'machine_kexec_post_load' [-Wmissing-prototypes]
> >> int machine_kexec_post_load(struct kimage *kimage)
> >
> > Applied to arm64 (for-next/fixes), thanks!
> >
> > [1/1] kexec: move machine_kexec_post_load() to public interface
> > https://git.kernel.org/arm64/c/2596b6ae412b
>
> As you have already applied this it seems a bit late,
> but I will mention that change could legitimately have the following
> tag.
>
> Fixes: de68e4daea90 ("kexec: add machine_kexec_post_load()")
>
> So far arm64 is the only implementation of that hook.

I added 'Fixes: 4c3c31230c91 ("arm64: kexec: move relocation function
setup")' when I applied the patch, so at least it's clearly marked as a
fix.

Will