2002-08-02 20:46:53

by Cameron, Steve

[permalink] [raw]
Subject: 2.5.30 breaks cciss driver?


I just saw this problem with 2.5.30.

I can't mount my 2nd volume on a cciss controller (SmartArray 5i)

< /dev/cciss/c0d1p1 /u1
No such device or address

The first volume, /dev/cciss/c0d0p1, works fine
(I'm booted from it.)

Reboot 2.5.29, both volumes work fine.

I don't have time to look into this right now,
but I thought I'd mention it in case someone else
does have time. Looks like there was some partition
code and/or devfs changes...

-- steve


2002-08-02 22:26:24

by Greg KH

[permalink] [raw]
Subject: Re: 2.5.30 breaks cciss driver?

On Fri, Aug 02, 2002 at 03:47:51PM -0500, Stephen Cameron wrote:
>
> I just saw this problem with 2.5.30.
>
> I can't mount my 2nd volume on a cciss controller (SmartArray 5i)
>
> < /dev/cciss/c0d1p1 /u1
> No such device or address
>
> The first volume, /dev/cciss/c0d0p1, works fine
> (I'm booted from it.)
>
> Reboot 2.5.29, both volumes work fine.
>
> I don't have time to look into this right now,
> but I thought I'd mention it in case someone else
> does have time. Looks like there was some partition
> code and/or devfs changes...

Are you running in "devfs=only" mode? If so, the changes I made
probably are the cause of this.

thanks,

greg k-h

2002-08-13 15:05:52

by Cameron, Steve

[permalink] [raw]
Subject: Re: 2.5.30 breaks cciss driver?

Message 2 in thread
Greg KH ([email protected]) wrote:
> On Fri, Aug 02, 2002 at 03:47:51PM -0500, Stephen Cameron wrote:
> >
> > I just saw this problem with 2.5.30.
> >
> > I can't mount my 2nd volume on a cciss controller (SmartArray 5i)
> >
> > < /dev/cciss/c0d1p1
> > No such device or address
> >
> > The first volume, /dev/cciss/c0d0p1, works fine
> > (I'm booted from it.)
> >
> > Reboot 2.5.29, both volumes work fine.
> >
> > I don't have time to look into this right now,
> > but I thought I'd mention it in case someone else
> > does have time. Looks like there was some partition
> > code and/or devfs changes...
>
> Are you running in "devfs=only" mode? If so, the changes I made
> probably are the cause of this.
>

No. The changes that broke it are to do with the sizes[]
being gone, I think. That yours?

/dev/cciss/c0d1 shows up in /proc/partitions, but not
/dev/cciss/c0d1p1 or /dev/cciss/c0d1p7

All the partitions of /dev/cciss/c0d0 show up.

(still broken in 2.5.31, of course)

I'm having some trouble with instability of 2.5.3[01],
don't know if it's just life with 2.5, or maybe my userland
is too old for my kernel...(redhat 7.1) Anyway, it's
slowing me down, running fsck constantly after puking. :-(

-- steve



-

2002-08-13 17:16:12

by Greg KH

[permalink] [raw]
Subject: Re: 2.5.30 breaks cciss driver?

On Tue, Aug 13, 2002 at 10:09:32AM -0500, Cameron, Steve wrote:
> Message 2 in thread
> Greg KH ([email protected]) wrote:
> >
> > Are you running in "devfs=only" mode? If so, the changes I made
> > probably are the cause of this.
> >
>
> No. The changes that broke it are to do with the sizes[]
> being gone, I think. That yours?

Nope, thankfully :)

Sorry, but I have no idea of what could be wrong.

greg k-h

2002-08-13 18:54:39

by Cameron, Steve

[permalink] [raw]
Subject: Re: 2.5.30 breaks cciss driver?


Hmmm, It appears that now we need a gendisk per disk, rather
than per controller, as this snippet from patch-2.5.30 implies?
And we need to set the gendisk's first_minor to be the minor
number of the first partition for each disk, is that about right?

- hd_gendisk.nr_real = NR_HD;
-
- for(drive=0; drive < NR_HD; drive++)
- register_disk(&hd_gendisk, mk_kdev(MAJOR_NR,drive<<6), 1<<6,
+ for(drive=0; drive < NR_HD; drive++) {
+ hd_gendisk[i].nr_real = 1;
+ add_gendisk(hd_gendisk + drive);
+ register_disk(hd_gendisk + drive,
+ mk_kdev(MAJOR_NR,drive<<6), 1<<6,
&hd_fops, hd_info[drive].head * hd_info[drive].sect *
hd_info[drive].cyl)

I think this is why cciss is broken, we have just one gendisk
per controller. (please pardon my ignorance, I haven't ever
had to look at this partition related code before.)

-- steve