[PATCH v5 07/20] x86/kexec: Invoke copy of relocate_kernel() instead of the original

Josh Poimboeuf jpoimboe at kernel.org
Thu Dec 19 14:28:21 PST 2024


On Thu, Dec 19, 2024 at 11:02:55AM +0100, David Woodhouse wrote:
> On Wed, 2024-12-18 at 16:20 -0800, Josh Poimboeuf wrote:
> > Anyway, what I think you're looking for is UNWIND_HINT_UNDEFINED.  In
> > fact all the unwind annotations in that file should be UNDEFINED since
> > the hints are all referring to the wrong addresses (because copied code)
> > and the ORC unwinder isn't reachable for most of that code anyway.
> > 
> > Also, it's fine to make relocate_kernel() a proper function with
> > SYM_FUNC_END, you'd just need to add the following line afterwards:
> > 
> >   STACK_FRAME_NON_STANDARD relocate_kernel
> > 
> 
> Thanks, I'll take a look. The next thing objtool is actually
> complaining about is that relocate_kernel() itself is not reachable
> (since it's never invoked in its original location):
> 
> vmlinux.o: warning: objtool: relocate_kernel+0x0: unreachable instruction

Right, I think UNWIND_HINT_UNDEFINED should fix that.

-- 
Josh



More information about the kexec mailing list