[Xen-devel] [3.0.4 PATCH] fix kernel cmdline compatibility

John Levon
2007-01-04T19:18:19Z

# HG changeset patch
# User john.levon@sun.com
# Date 1167936545 28800
# Node ID acda3f65d9797126035cc8cae65d8804415c6036
# Parent  97a82d6d6cf4fa55a9c6a14a50a786dbff6134c0
Xen 3.0.3 pre-pended all configuration prior to the user-specified
args in the boot cmdline. Restore this behaviour to fix incompatabilities with
fragile parsers in some domU kernels.

Signed-off-by: John Levon <john.levon@sun.com>

diff --git a/tools/python/xen/xend/XendConfig.py
b/tools/python/xen/xend/XendConfig.py
--- a/tools/python/xen/xend/XendConfig.py
+++ b/tools/python/xen/xend/XendConfig.py
@@ -1104,15 +1104,20 @@ class XendConfig(dict):

         self[''PV_kernel''] = sxp.child_value(image_sxp,
''kernel'','''')
         self[''PV_ramdisk''] = sxp.child_value(image_sxp,
''ramdisk'','''')
-        kernel_args = sxp.child_value(image_sxp, ''args'',
'''')
+        kernel_args = ""

         # attempt to extract extra arguments from SXP config
         arg_ip = sxp.child_value(image_sxp, ''ip'')
         if arg_ip and not re.search(r''ip=[^ ]+'',
kernel_args):
-            kernel_args += '' ip=%s'' % arg_ip
+            kernel_args += ''ip=%s'' % arg_ip
         arg_root = sxp.child_value(image_sxp, ''root'')
         if arg_root and not re.search(r''root='', kernel_args):
             kernel_args += '' root=%s'' % arg_root
+
+        # user-specified args must come last: previous releases did this and
+        # some domU kernels rely upon the ordering.
+        kernel_args += " %s" % sxp.child_value(image_sxp,
''args'', '''')
+
         self[''PV_args''] = kernel_args

         # Store image SXP in python dictionary format

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com