From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Yongjun Subject: [PATCH] x86: fix to parse multiboot command line passed by latest grub Date: Mon, 07 Dec 2009 16:26:46 +0800 Message-ID: <4B1CBC46.6040004@cn.fujitsu.com> References: <4B1CBB98.3050408@cn.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset=GB2312 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <4B1CBB98.3050408@cn.fujitsu.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Keir Fraser , xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org latest grub had changed to "don't pass filename in multiboot command line". The old cmdline format is: "module-name options..." The new cmdline format is: "options..." So xen + grub2 always loss the first option, because xen will skip the first option. Usually, the module-name is not start with char [a-zA-Z], such as /boot/vmlinuz, (hd0,1)/boot/vmlinuz, so this patch added isalpha() test of the first char of modulename/option to function cmdline_cook(), try to handle both the old and new cmdline format. Signed-off-by: Wei Yongjun diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c --- a/xen/arch/x86/setup.c +++ b/xen/arch/x86/setup.c @@ -423,6 +423,8 @@ p = p ? : ""; while ( *p == ' ' ) p++; + if (isalpha(*p)) + return p; while ( (*p != ' ') && (*p != '\0') ) p++; while ( *p == ' ' )