when args = None in kernel.mkinitrd() then the string 'None' gets leaked
into the platform mkinitrd command. On Ubuntu systems, the resultant
command string looks like:
/usr/sbin/mkinitramfs None /boot/initrd-autotest 2.6.24-rc1-autotest
This results in an initrd which includes modules not from the specified
version (2.6.24-rc1-autotest) but rather modules from the currently
booted kernel. This is beacuse mkinitramfs is reading 'None' as the
kernel version, not finding /lib/modules/None and falling back on the
current kernel version directory.
This problem is solved by settings args to an empty string if
self.job.config_get('kernel.mkinitrd_extra_args') returns None.
From: Ryan Harper <ryanh@us.ibm.com>
git-svn-id: http://test.kernel.org/svn/autotest/trunk@933 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/client/bin/kernel.py b/client/bin/kernel.py
index bca6b00..d9d818a 100755
--- a/client/bin/kernel.py
+++ b/client/bin/kernel.py
@@ -307,6 +307,10 @@
args = self.job.config_get('kernel.mkinitrd_extra_args')
+ # don't leak 'None' into mkinitrd command
+ if not args:
+ args = ''
+
if vendor in ['Red Hat', 'Fedora Core']:
system('mkinitrd %s %s %s' % (args, initrd, version))
elif vendor in ['SUSE']: