diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 88e2dd0..3a7c97e 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c @@ -6403,7 +6403,7 @@ int ata_host_register(struct ata_host *host, struct scsi_host_template *sht) ehi->probe_mask = (1 << ATA_MAX_DEVICES) - 1; ehi->action |= ATA_EH_SOFTRESET; - ehi->flags |= ATA_EHI_NO_AUTOPSY | ATA_EHI_QUIET; + ehi->flags |= ATA_EHI_NO_AUTOPSY/* | ATA_EHI_QUIET*/; ap->pflags &= ~ATA_PFLAG_INITIALIZING; ap->pflags |= ATA_PFLAG_LOADING; diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c index 9aa62a0..c0ce3ce 100644 --- a/drivers/ata/libata-eh.c +++ b/drivers/ata/libata-eh.c @@ -536,6 +536,12 @@ void ata_qc_schedule_eh(struct ata_queued_cmd *qc) * this function completes. */ scsi_req_abort_cmd(qc->scsicmd); + + if (ap->pflags & ATA_PFLAG_LOADING) { + printk("EH scheduled with LOADING set cmd=%02x cdb=%02x emask=%02x\n", + qc->tf.command, qc->cdb[0], qc->err_mask); + dump_stack(); + } } /** @@ -558,6 +564,11 @@ void ata_port_schedule_eh(struct ata_port *ap) ap->pflags |= ATA_PFLAG_EH_PENDING; scsi_schedule_eh(ap->scsi_host); + if (ap->pflags & ATA_PFLAG_LOADING) { + printk("EH scheduled with LOADING set\n"); + dump_stack(); + } + DPRINTK("port EH scheduled\n"); }