Re: 2.6.11-rc4-mm1 (VFS: Cannot open root device "301")

From: Matt Mackall
Date: Wed Feb 23 2005 - 21:18:20 EST


On Thu, Feb 24, 2005 at 03:03:33AM +0100, Benoit Boissinot wrote:
> On Wed, 23 Feb 2005 16:41:59 -0800, Matt Mackall <mpm@xxxxxxxxxxx> wrote:
> > On Wed, Feb 23, 2005 at 04:16:53PM -0800, Andrew Morton wrote:
> > > Steven Cole <elenstev@xxxxxxxxxxx> wrote:
> > > >
> > > > > Yes, that worked. 2.6.11-rc4-mm1 now boots OK, but hdb1 seems to be
> > > > > missing.
> > >
> > > Looking at the IDE update in rc4-mm1:
> > >
> > > +void ide_init_disk(struct gendisk *disk, ide_drive_t *drive)
> > > +{
> > > + ide_hwif_t *hwif = drive->hwif;
> > > + unsigned int unit = drive->select.all & (1 << 4);
> > > +
>
> If i grep in the tree, for select.all, it looks like from the initialization
> that you can not recover the unit from select.all (ide.c line 235 and 1882)
> since the function used is not invertible.

They're fine, if a bit ugly. Unit is either 0 or 1. So:

(unit<<4) | 0xa0

is equivalent to unit * 16 as the mask won't mask off any bits.

> > >
> > > Could someone try this?
> > >
> > > - unsigned int unit = drive->select.all & (1 << 4);
> > > + unsigned int unit = (drive->select.all >> 4) & 1;
> >
> > Apparently there's already an 'hdb' sitting in drive->name, perhaps we
> > ought to do disk->disk_name = drive->name for the non-devfs case.
> >
> init_hwif_default initialized it right.
>
> Could something like this work ?

No, because they're arrays and not pointers. I've booted with the
obvious strcpy, works fine.

--
Mathematics is the supreme nostalgia of our time.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/