"Huang, Ying" <ying.huang at intel.com> writes: > I think it is reasonable to enable jumping back and forth more than one > time. I'm not opposed. I just don't understand the utility yet. > So the following should be possible: > > 1. Jump from A to B (actually jump to purgatory, trigger the boot of B) > 2. Jump from B to A > 3. Jump from A to B again (jump to the kexec_jump_back_entry of B) (And we go through purgatory which remembers the kexec_jump_back_entry of B) > 4. Jump from B to A > ... > > So it should be possible to get the re-entry point of kernel B in > kexec_jump_back_entry of kernel A too. So I think in > kexec_jump_back_entry, the caller's stack should be checked to get > re-entry point of peer. And the stack state is different depend on where > come from, from relocate_new_kernel() or return. Yes. Any conditional logic needs to be in purgatory or a similar trampoline. Eric