--- ./drivers/scsi/libata-core.c.orig Sat Aug 14 21:20:28 2004 +++ ./drivers/scsi/libata-core.c Sat Aug 14 21:22:08 2004 @@ -3377,7 +3377,7 @@ struct ata_port *ap; unsigned int i; Scsi_Host_Template *sht; - int rc; + //int rc; /* FIXME: this unregisters all ports attached to the * Scsi_Host_Template given. We _might_ have multiple @@ -3385,14 +3385,15 @@ */ ap = host_set->ports[0]; sht = ap->host->hostt; - rc = scsi_unregister_module(MODULE_SCSI_HA, sht); + // Andrew Chew says it's already done in all drivers + //rc = scsi_unregister_module(MODULE_SCSI_HA, sht); /* FIXME: handle 'rc' failure? */ free_irq(host_set->irq, host_set); - if (host_set->ops->host_stop) - host_set->ops->host_stop(host_set); if (host_set->mmio_base) iounmap(host_set->mmio_base); + if (host_set->ops->host_stop) + host_set->ops->host_stop(host_set); pci_release_regions(pdev);