From: Zhang Yanfei <zhangyanfei@cn.fujitsu.com>
To: Wang YanQing <udknight@gmail.com>
Cc: jbarnes@sgi.com, tjd21@cl.cam.ac.uk, khalid.aziz@hp.com,
kexec@lists.infradead.org, horms@verge.net.au,
ebiederm@xmission.com, hari@in.ibm.com,
Zhang Yanfei <zhangyanfei.yes@gmail.com>
Subject: Re: [PATCH] i386:kexec-bzImage: Use "\0" as command line instead of empty command line
Date: Mon, 08 Apr 2013 11:35:25 +0800 [thread overview]
Message-ID: <51623AFD.9000605@cn.fujitsu.com> (raw)
In-Reply-To: <20130408010804.GA2241@udknight>
于 2013年04月08日 09:08, Wang YanQing 写道:
> 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,
I tried 3.8.0 kernel. Unfortunately, panicked again. For some reason, I didn't
see the panic message.
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.
Sigh, I tried in a real box and a kvm machine. Both panicked with no root= argument
message. I don't know why.
Anyway, Just from the code, your patch didn't fix all the possible place.
do_bzImage64_load may also call setup_linux_bootloader_parameters_high with
a null commandline. So why not change the check in
setup_linux_bootloader_parameters_high.
--------------------------
diff --git a/kexec/arch/i386/x86-linux-setup.c b/kexec/arch/i386/x86-linux-setup.c
index 454fad6..6eb2e6e 100644
--- a/kexec/arch/i386/x86-linux-setup.c
+++ b/kexec/arch/i386/x86-linux-setup.c
@@ -116,7 +116,8 @@ void setup_linux_bootloader_parameters_high(
/* Fill in the command line */
if (cmdline_len > COMMAND_LINE_SIZE) {
cmdline_len = COMMAND_LINE_SIZE;
- }
+ } else if (cmdline_len == 0)
+ return;
cmdline_ptr = ((char *)real_mode) + cmdline_offset;
memcpy(cmdline_ptr, cmdline, cmdline_len);
cmdline_ptr[cmdline_len - 1] = '\0';
Thanks
Zhang
>
> Thanks
>
>
> _______________________________________________
> kexec mailing list
> kexec@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kexec
>
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
next prev parent reply other threads:[~2013-04-08 3:37 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-03 9:43 [PATCH] i386:kexec-bzImage: Use "\0" as command line instead of empty command line Wang YanQing
2013-04-06 5:52 ` Zhang Yanfei
2013-04-07 1:01 ` Wang YanQing
2013-04-07 5:54 ` Zhang Yanfei
2013-04-07 9:35 ` Wang YanQing
2013-04-08 1:08 ` Wang YanQing
2013-04-08 3:35 ` Zhang Yanfei [this message]
2013-04-08 3:53 ` Wang YanQing
2013-04-08 4:33 ` Zhang Yanfei
2013-04-08 6:07 ` Wang YanQing
2013-04-08 6:43 ` Zhang Yanfei
2013-04-08 4:18 ` Wang YanQing
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=51623AFD.9000605@cn.fujitsu.com \
--to=zhangyanfei@cn.fujitsu.com \
--cc=ebiederm@xmission.com \
--cc=hari@in.ibm.com \
--cc=horms@verge.net.au \
--cc=jbarnes@sgi.com \
--cc=kexec@lists.infradead.org \
--cc=khalid.aziz@hp.com \
--cc=tjd21@cl.cam.ac.uk \
--cc=udknight@gmail.com \
--cc=zhangyanfei.yes@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.