[syslinux] [PATCH] efi: leaving long mode in kernel_jump routine

Celelibi
Mon, 31 Aug 2015 19:38:31 -0000

2015-08-23 20:09 UTC+02:00, Gene Cumm via Syslinux <syslinux at
zytor.com>:
> On Tue, Aug 4, 2015 at 2:55 AM, Thomas Letan via Syslinux
> <syslinux at zytor.com> wrote:
>> Syslinux 6.03 (efi64) fails to boot a 32-bit kernel. The way Syslinux
>> leaves long mode in kernel_jump assembly routine does not follow AMD64
>> specifications. More precisely:
>> 1. After setting a new GADT, `cs` has to be refresh by doing a long
>> jump, but it is not
>> 2. Other segments have to be updated, but they are not
>> 3. Disabling paging has to be done before disabling long mode, but the
>> implementation does the opposite
>>
>> In most cases, a computer that tries to execute the kernel_jump routine
>> reboot (it can also hangs). This patch fixes the kernel_jump routine.
>>
>> Signed-off-by: Thomas Letan <thomas.letan at ssi.gouv.fr>
>
> Thomas, I noticed you created bug ID 62 (
> http://bugzilla.syslinux.org/show_bug.cgi?id=62 ) which appears to be
> a duplicate of bug 38 (
> http://bugzilla.syslinux.org/show_bug.cgi?id=38 ).
>
> Is there any reason this isn't a duplicate?

I don't know if there is a reason beyond "I didn't see".
Anyway, this
patch fixes bug #38 for me. So both could be closed at the same time.


Celelibi