[syslinux:master] fix for boot crash of syslinux-4.xx

syslinux-bot for Jan Safrata jsafrata at centrum.cz
Thu Jul 19 07:21:06 PDT 2012


Commit-ID:  2f5eb8f3a7df4f273c099d213f317abbce16163f
Gitweb:     http://www.syslinux.org/commit/2f5eb8f3a7df4f273c099d213f317abbce16163f
Author:     Jan Safrata <jsafrata at centrum.cz>
AuthorDate: Mon, 9 Jul 2012 08:44:34 +0200
Committer:  Matt Fleming <matt.fleming at intel.com>
CommitDate: Mon, 9 Jul 2012 12:28:57 +0100

fix for boot crash of syslinux-4.xx

All syslinux 4.xx versions (tested up to 4.04) seems to contain a bug, that
causes a crash in early phase of syslinux boot from an usb stick.
This is always possible to reproduce, but only on certain hw (atom based
embedded board).
Version 3.86 of syslinux always works with that hw.

When syslinux 4.xx is used to setup bootable usb stick (which works on general
desktop pc), that usb stick does not work with embedded atom based board.
Screen is garbaged, flickering and the system hangs, instead of loading the
image to be booted.

Dissecting syslinux source code reveals, that the problem is within
core/fs/cache.c
function cache_init(), where seems to be an invalid pointer used to store an
initial value - following patch fixes the problem by removing the
offending line, that seems not to be needed anyway.

Signed-off-by: Jan Safrata <jsafrata at centrum.cz>
Signed-off-by: Matt Fleming <matt.fleming at intel.com>

---
 core/fs/cache.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/core/fs/cache.c b/core/fs/cache.c
index 0d7891b..7c68c98 100644
--- a/core/fs/cache.c
+++ b/core/fs/cache.c
@@ -40,7 +40,6 @@ void cache_init(struct device *dev, int block_size_shift)
     cache = dev->cache_head + 1; /* First cache descriptor */
 
     head->prev  = &cache[dev->cache_entries-1];
-    head->next->prev = dev->cache_head;
     head->block = -1;
     head->data  = NULL;
 


More information about the Syslinux-commits mailing list