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

Wang YanQing udknight at gmail.com
Sat Apr 6 21:01:03 EDT 2013

On Sat, Apr 06, 2013 at 01:52:09PM +0800, Zhang Yanfei wrote:
> 于 2013年04月03日 17:43, Wang YanQing 写道:
> > I get garbage output of /proc/cmdline and in dmesg when I
> > use kexec to load new kernel bzImage without append command
> > line like below:
> > 
> > kexec -l bzImage --initrd=initramfs.
> Hello Wang
> I tried this:
> ./build/sbin/kexec -l /boot/vmlinuz-2.6.32-279.el6.i686 --initrd=/boot/initramfs-2.6.32-279.el6.i686.img 
> But nothing happened and it seemed the command loaded the kernel successfully.
> Can you describe your situation more concretely, please?
Yes, it will load the kernel successfully, but when you use kexec -e to run into
the loaded kernel, in the new kernel context, you will get garbage output when 
execute `cat /proc/cmdline`, and you also can see the garbage in "Kernel command
line" from dmesg. 

I am sure you will see this issue, because when user pass no cmdline, and cmdline_len
will because zero, so the line below in setup_linux_bootloader_parameters_high will
not work:
cmdline_ptr[cmdline_len - 1] = '\0';


More information about the kexec mailing list