When looking for what needs to be changed to support zImages, I realized that the current structure of phase2.c makes it quite easy to introduce bugs.
This patch set first puts the body of the ~300 lines loop of bootloader_second_phase into a new function try_this_kernel and then breaks this function down into smaller pieces. There's a little bit of other cleanup as well. Andy, there are quite a number of whitespace inconsistencies or deviations from K&R style, e.g., space between asterisk and pointer name or absence of space after cast. If you'd like me to clean them up, I'd be happy to send a patch. There may also be a bug in how block device initialization failures are handled. See patch 7/8. I did some light testing and it seems that I haven't screwed up completely :) - Werner --
