Messages in this thread | | | Date | Wed, 23 Feb 2005 18:08:49 -0800 | From | Matt Mackall <> | Subject | Re: 2.6.11-rc4-mm1 (VFS: Cannot open root device "301") |
| |
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@selenic.com> wrote: > > On Wed, Feb 23, 2005 at 04:16:53PM -0800, Andrew Morton wrote: > > > Steven Cole <elenstev@mesatop.com> 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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |