--- 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);
