--- ata-all.c.orig Mon Sep 1 22:22:19 2003 +++ ata-all.c Tue Sep 2 00:16:29 2003 @@ -257,6 +257,13 @@ if ((newdev & (ATA_ATA_SLAVE | ATA_ATAPI_SLAVE)) && ch->device[SLAVE].attach) ch->device[SLAVE].attach(&ch->device[SLAVE]); + } else { + if ((ch->devices & (ATA_ATA_MASTER | ATA_ATAPI_MASTER)) && + ch->device[MASTER].reinit) + ch->device[MASTER].reinit(&ch->device[MASTER]); + if ((ch->devices & (ATA_ATA_SLAVE | ATA_ATAPI_SLAVE)) && + ch->device[SLAVE].reinit) + ch->device[SLAVE].reinit(&ch->device[SLAVE]); } #ifdef DEV_ATAPICAM atapi_cam_reinit_bus(ch);