[PATCH] i386:kexec-bzImage: Use "\0" as command line instead of empty command line

Wang YanQing udknight at gmail.com
Sun Apr 7 21:08:04 EDT 2013


On Sun, Apr 07, 2013 at 05:35:40PM +0800, Wang YanQing wrote:
> On Sun, Apr 07, 2013 at 01:54:58PM +0800, Zhang Yanfei wrote:
> > With no commandline, can the new kernel boot?
> > I tried in my box and the new kernel just panicked for it cannot
> > find a root= argument in its commandline.
> I am sure the kernel boot, 
> rootfs_initcall(populate_rootfs) in initramfs.c
> well populate the root fs, and there is a /init
> in initramfs, this /init will mount the really 
> root device, and the system is running.

Your kernel panic, because the below line in init/main.c failed:

if (sys_access((const char __user *) ramdisk_execute_command, 0) != 0)

kernel then run into prepare_namespace, but prepare_namespace failed too,
then the kernel panic.

I don't know why, but if rootfs_initcall(populate_rootfs) works ok,
kernel don't need to call prepare_namespace, because the decompressed 
initramfs will become the root fs and sys_access will success.

Sorry for I forget to mention my test kernel is v3.8.6, but if my memory don't lie me,
I can boot v2.6.32 without a root= parameter, we had use v2.6.32 as product kernel
still more than one year two years ago.

Thanks




More information about the kexec mailing list