It's been a few months (and a couple of kernel releases) since I mentioned this
before and it doesn't look like it's made it in, and I haven't seen any more
comments on it in the list archives, so I'm bringing it up again in case it
just got forgotten about somewhere along the line..

As I remember, Andre Hedrick had asked for clarification on my original post,
and I sent a followup message in response, but now I can't seem to find it
anywhere in the archives, so I don't know whether it never made it out of my
mailer or..

In any case, attached is a patch (against 2.4.0pre11) which fixes the bug which
causes disk detection issues on I-Opener (and possibly other unusual) hardware.

The problem is that the code assumes that a flash-disk will always be the
primary disk on an interface, but on the I-Opener this is not always the case.
If a traditional disk is primary, and a flashdisk is secondary, the detection
code (wrongly) disables the primary disk that it had already previously
detected.

I would like to see this make it into the official source as it's a very small
change that fixes some obviously wrong behavior..

-alex
--- drivers/ide/ide-probe.c.orig        Mon Dec 11 14:59:08 2000
+++ drivers/ide/ide-probe.c     Mon Dec 11 15:00:13 2000
@@ -161,8 +161,8 @@
         * Prevent long system lockup probing later for non-existant
         * slave drive if the hwif is actually a flash memory card of some variety:
         */
-       if (drive_is_flashcard(drive)) {
-               ide_drive_t *mate = &HWIF(drive)->drives[1^drive->select.b.unit];
+       if (!drive->select.b.unit && drive_is_flashcard(drive)) {
+               ide_drive_t *mate = &HWIF(drive)->drives[1];
                if (!mate->ata_flash) {
                        mate->present = 0;
                        mate->noprobe = 1;

Reply via email to