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). -- tejun - : 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