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

Zhang Yanfei zhangyanfei at cn.fujitsu.com
Sun Apr 7 01:54:58 EDT 2013

于 2013年04月07日 09:01, Wang YanQing 写道:
> 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. 

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 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';
> Thanks

More information about the kexec mailing list