public inbox for linux-mtd@lists.infradead.org
 help / color / mirror / Atom feed
From: Ville Herva <vherva@vianova.fi>
To: "Artem B. Bityutskiy" <dedekind@infradead.org>
Cc: linux-mtd@lists.infradead.org
Subject: Re: kernel command line arguments for block2mtd do not work
Date: Wed, 5 Jul 2006 10:13:40 +0300	[thread overview]
Message-ID: <20060705071340.GN6240@vianova.fi> (raw)
In-Reply-To: <20060705070509.GB15078@vianova.fi>

On Wed, Jul 05, 2006 at 10:05:10AM +0300, you [Ville Herva] wrote:
> On Wed, Jul 05, 2006 at 10:52:15AM +0400, you [Artem B. Bityutskiy] wrote:
> > On Tue, 2006-07-04 at 17:38 +0300, Ville Herva wrote:
> > > For the rough idea, see 
> > >         http://iki.fi/v/tmp/block2mtd.c                      
> > > (Sorry for the ugliness - it's just a workaround hack.)
> > 
> > Hello,
> > 
> > I'd suggest you to just send a patch. See "Patch submission" at
> > http://www.linux-mtd.infradead.org/source.html
> 
> I don't think any of the ideas I listed to "fix" the problem are
> satisfactory. They all run into the same dead-end of not having access to
> the rootfs when parsing the arguments, and hence, not being able to open the
> underlying blockdev. 
> 
> These days the kernel afaik does not have builtin
> device name -> device number mapping (I think it used to - for rootfs
> device mounting - but isn't that gone?). The device we are mounting might be
> the rootfs, so /dev is not present. Hence, 
> 	open_bdev_excl(devname, O_RDWR, NULL); 
> can't succeed.
> 
> What I _was_ able to do (see http://iki.fi/v/tmp/block2mtd.c) is to move the
> argument parsing later in boot process - it doesn't fail anymore, but that
> doesn't help much, since the device can't be opened. This means the error
> message is much more helpful (and it won't crash), but is it worth it?

Wait a minute, should I use init/do_mounts.c::name_to_dev_t() ?

	/*      Convert a name into device number.  We accept the following
	 *      variants:
	 *
	 *      1) device number in hexadecimal represents itself
	 *      2) /dev/nfs represents Root_NFS (0xff)
	 *      3) /dev/<disk_name> represents the device number of disk
	 *      4) /dev/<disk_name><decimal> represents the device number
	 *         of partition - device number of disk plus the partition number
	 *      5) /dev/<disk_name>p<decimal> - same as the above, that form is
	 *         used when disk name of partitioned disk ends on a digit.
	*/
	dev_t name_to_dev_t(char *name)

That might work... Even if you can't pass a normal device name in, you could
specify device number.

So something like

block2mtd.c::add_device()

        bdev = open_bdev_excl(devname, O_RDWR, NULL);
	if (!bdev) {
		dev_t dev = name_to_dev_t(devname);
		if (dev != 0) {
                	bdev = open_by_devnum(dev, FMODE_WRITE | FMODE_READ);
		}
	}

? 

What do you think?




-- v -- 

v@iki.fi

  reply	other threads:[~2006-07-05  7:13 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-07-04 14:38 kernel command line arguments for block2mtd do not work Ville Herva
2006-07-05  6:52 ` Artem B. Bityutskiy
2006-07-05  7:05   ` Ville Herva
2006-07-05  7:13     ` Ville Herva [this message]
2006-07-05  7:21       ` Artem B. Bityutskiy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20060705071340.GN6240@vianova.fi \
    --to=vherva@vianova.fi \
    --cc=dedekind@infradead.org \
    --cc=linux-mtd@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox