[syslinux] regression: relocatable kernels on a chromebook

Scot Doyle lkml14 at scotdoyle.com
Thu Feb 5 19:18:27 PST 2015


A Toshiba CB35 Chromebook running Google's stock SeaBIOS reboots after 
selecting a relocatable kernel from extlinux 6.03.

This is a regression caused by commit 8f470e7b
    movebits: Add syslinux_memmap_find()

which factors syslinux_memmap_find() out of bios_boot_linux(). Prior to 
the refactoring, prot_mode_size was passed as the length in the first call 
to syslinux_memmap_type(). After the refactoring, hdr.init_size was 
passed. Now, with commit ef81a3ad, one or the other is passed according to 
whether the kernel is relocatable.

bios_boot_linux() reaches syslinux_shuffle_boot_rm(), rebooting if the 
kernel is relocatable and successfully starting the kernel if not.

If I modify syslinux_memmap_find() to pass prot_mode_size as the length to 
syslinux_memmap_type(), extlinux 6.03 is able to start both types of 
kernel.

Possibly related to
https://bugzilla.redhat.com/show_bug.cgi?id=1135793
https://bugs.archlinux.org/task/40637

I'd be happy to submit a patch or test one. Thoughts?



More information about the Syslinux mailing list