Tejun Heo wrote: > zhao, forrest wrote: >> On Tue, 2006-04-11 at 23:14 +0900, Tejun Heo wrote: >> >>> Warm unplug/plug comes at almost no cost for LLDDs implementing new EH >>> - adding a call to ata_eh_hotplug() at the end of ->error_handler is >>> enough (even this is unnecessary if it's using bmdma error_handler). >>> e.g. ata_piix isn't changed by hotplug patchsets at all but still >>> supports warm plugging (even PATA warm plugging works although it's >>> electronically unsafe). >>> >>> To support full hot unplug/plug, all a LLDD has to do are enabling PHY >>> status changed interrupt and, when PHY RDY status changes, call >>> ata_schedule_probe() and schedule EH. ahci, sata_sil and sata_sil24 >>> are converted this way and hotplugging works perfectly for those >>> drivers. >>> >> In order to make ata_eh_hotplug() called, LLDD have to schedule EH >> in its interrupt handler(i.e. invoke scsi_eh_schedule_host() directly >> or indirectly), but I didn't find such code in your patch set. >> Did I miss anything? >> > > The last three patches do that. All hotplug interrupts end up invoking > EH by calling ata_eh_schedule_port(ap, ATA_EH_FREEZE). It's certainly nicer and more readable, if the LLDD calls a function like ata_eh_hotplug(). Jeff - : send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html