On Sat, 1 Oct 2022 at 07:05, Heinrich Schuchardt <[email protected]> wrote: > > If longjmp(jmp_buf env, int val) is called with val = 0, the setjmp() > macro must return 1. > > Signed-off-by: Heinrich Schuchardt <[email protected]> > --- > arch/x86/cpu/i386/setjmp.S | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/arch/x86/cpu/i386/setjmp.S b/arch/x86/cpu/i386/setjmp.S > index 40b10dc8df..eceeafa7c8 100644 > --- a/arch/x86/cpu/i386/setjmp.S > +++ b/arch/x86/cpu/i386/setjmp.S > @@ -49,12 +49,17 @@ longjmp: > xchgl %eax, %edx > #else > movl 4(%esp), %edx /* jmp_ptr address */ > + movl 8(%esp), %eax /* Return value */ > #endif > movl (%edx), %ebx > movl 4(%edx), %esp > movl 8(%edx), %ebp > movl 12(%edx), %esi > movl 16(%edx), %edi > + test %eax, %eax > + jnz nz > + inc %eax > +nz: > jmp *20(%edx) > > .size longjmp, .-longjmp > -- > 2.37.2 >
Reviewed-by: Simon Glass <[email protected]>

