Bug 12841 - initrd module parameter problem with braces
initrd module parameter problem with braces
Status: CLOSED NOTABUG
Product: Red Hat Linux
Classification: Retired
Component: sash (Show other bugs)
7.0
i386 Linux
medium Severity medium
: ---
: ---
Assigned To: Preston Brown
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2000-06-23 04:23 EDT by William Hester
Modified: 2008-05-01 11:37 EDT (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2001-01-19 18:02:22 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description William Hester 2000-06-23 04:23:54 EDT
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 02:31:40 EST
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 17:36:36 EST
{} 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 18:02:17 EST
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 18:05:01 EST
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.