Bug 12841 - initrd module parameter problem with braces
Summary: initrd module parameter problem with braces
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: sash
Version: 7.0
Hardware: i386
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Preston Brown
QA Contact:
URL:
Whiteboard:
Keywords:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2000-06-23 08:23 UTC by William Hester
Modified: 2008-05-01 15:37 UTC (History)
0 users

(edit)
Clone Of:
(edit)
Last Closed: 2001-01-19 23:02:22 UTC


Attachments (Terms of Use)

Description William Hester 2000-06-23 08:23:54 UTC
When the aic7xxx module loads in my initrd image during boot with the
parameter "aic7xxx=tag_info:{{0}}" (to turn on tagged command queuing for
my scsi hd), insmod never loads the module (it says "Loading aic7xxx
module", but just skips to next part of the boot process).  I think the
problem is with sash and the {}'s in the module parameter.  I can only
reproduce the problem during boot with an initrd image.  If i change the
paramter to something like "aic7xxx=verbose" (or use no parameter), the
module loads fine.  I have tried quoting the parameter with single quotes,
double quotes, and tried escaping the {}'s with \'s with no success.  At
the bash prompt, I can insmod the module (with the parameter) just fine
using single quotes around the parameter.

rpm -q mkinitrd:  mkinitrd-2.4.1-2
rpm -q sash:  sash-3.4-2
rpm -q kernel:  kernel-2.2.16-3

My conf.module line looks like:  options aic7xxx aic7xxx=tag_info:{{0}}

My mkinitrd command looks like:  mkinitrd -v -f /boot/initrd-2.2.16-3.img
2.2.16-3

My lilo.conf lines look like:
image=/boot/vmlinuz
  label=linux
  initrd=/boot/initrd-2.2.16-3.img

And I was sure to run lilo before every reboot while I was working on this.

To reproduce:
Make an initrd image that loads a module with a parameter than contains
{}'s.
Boot a kernel using the initrd image.
Initrd will say it's loading the module, but it will not (insmod fails to
actually try to load it).
Try again without the {}'s and watch work.

Comment 1 William Hester 2000-11-13 07:31:40 UTC
Upgraded to RedHat 7.0

Problem still exists.

This looks like either a problem with sash or modutils (insmod.static), as
mkinitrd actually makes the initrd image just fine.

Comment 2 Michael K. Johnson 2001-01-19 22:36:36 UTC
{} characters are special to the shell.  If mkinitrd is not escaping those
characters one way or another, it's a mkinitrd bug, not a sash bug.

Comment 3 Michael K. Johnson 2001-01-19 23:02:17 UTC
Another comment from Doug:
>I could understand sash not passing the stuff inside
>the {} when this happens, but it doesn't.  It simply doesn't execute the
>command line at all (and it fails the line silently so you have *no* clue
>what's going on until you start disecting the linuxrc script).


Comment 4 Preston Brown 2001-02-02 23:05:01 UTC
sash, as well as all shells, considers { and } special. mkinitrd now properly
escapes these characters.  Additionally, we don't use sash to boot in our next
release, so this will not be a problem.


Note You need to log in before you can comment on or make changes to this bug.