diff -Naur linux-2.6.2/drivers/scsi/sg.c linux-2.6.2-cdev_unmap/drivers/scsi/sg.c --- linux-2.6.2/drivers/scsi/sg.c Fri Feb 6 14:12:22 2004 +++ linux-2.6.2-cdev_unmap/drivers/scsi/sg.c Fri Feb 6 14:12:35 2004 @@ -1513,6 +1513,7 @@ if (sdp) { sysfs_remove_link(&scsidp->sdev_gendev.kobj, "generic"); sysfs_remove_link(&sdp->cdev->kobj, "device"); + cdev_unmap(MKDEV(SCSI_GENERIC_MAJOR, sdp->disk->first_minor), 1); cdev_del(sdp->cdev); sdp->cdev = NULL; devfs_remove("%s/generic", scsidp->devfs_name); diff -Naur linux-2.6.2/drivers/scsi/st.c linux-2.6.2-cdev_unmap/drivers/scsi/st.c --- linux-2.6.2/drivers/scsi/st.c Fri Jan 9 00:59:45 2004 +++ linux-2.6.2-cdev_unmap/drivers/scsi/st.c Fri Feb 6 14:18:57 2004 @@ -3964,6 +3964,7 @@ for (j=0; j < 2; j++) { sysfs_remove_link(&tpnt->modes[mode].cdevs[j]->kobj, "device"); + cdev_unmap(MKDEV(SCSI_TAPE_MAJOR, TAPE_MINOR(i, mode, j)), 1); cdev_del(tpnt->modes[mode].cdevs[j]); tpnt->modes[mode].cdevs[j] = NULL; }