mirror of
https://github.com/torvalds/linux.git
synced 2024-11-27 22:51:35 +00:00
ata: libata-eh: Reduce "disable device" message verbosity
There is no point in warning about a device being disabled when we expect it to be, that is, on suspend, shutdown or when detaching the device. Suppress the message "disable device" for these cases by introducing the EH static function ata_eh_dev_disable() and by using it in ata_eh_unload() and ata_eh_detach_dev(). ata_dev_disable() code is modified to call this new function after printing the "disable device" message. Signed-off-by: Damien Le Moal <dlemoal@kernel.org> Reviewed-by: Hannes Reinecke <hare@suse.de> Tested-by: Chia-Lin Kao (AceLan) <acelan.kao@canonical.com> Tested-by: Geert Uytterhoeven <geert+renesas@glider.be> Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
7f95731c74
commit
0fecb50891
@ -494,6 +494,18 @@ void ata_eh_release(struct ata_port *ap)
|
|||||||
mutex_unlock(&ap->host->eh_mutex);
|
mutex_unlock(&ap->host->eh_mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void ata_eh_dev_disable(struct ata_device *dev)
|
||||||
|
{
|
||||||
|
ata_acpi_on_disable(dev);
|
||||||
|
ata_down_xfermask_limit(dev, ATA_DNXFER_FORCE_PIO0 | ATA_DNXFER_QUIET);
|
||||||
|
dev->class++;
|
||||||
|
|
||||||
|
/* From now till the next successful probe, ering is used to
|
||||||
|
* track probe failures. Clear accumulated device error info.
|
||||||
|
*/
|
||||||
|
ata_ering_clear(&dev->ering);
|
||||||
|
}
|
||||||
|
|
||||||
static void ata_eh_unload(struct ata_port *ap)
|
static void ata_eh_unload(struct ata_port *ap)
|
||||||
{
|
{
|
||||||
struct ata_link *link;
|
struct ata_link *link;
|
||||||
@ -517,8 +529,8 @@ static void ata_eh_unload(struct ata_port *ap)
|
|||||||
*/
|
*/
|
||||||
ata_for_each_link(link, ap, PMP_FIRST) {
|
ata_for_each_link(link, ap, PMP_FIRST) {
|
||||||
sata_scr_write(link, SCR_CONTROL, link->saved_scontrol & 0xff0);
|
sata_scr_write(link, SCR_CONTROL, link->saved_scontrol & 0xff0);
|
||||||
ata_for_each_dev(dev, link, ALL)
|
ata_for_each_dev(dev, link, ENABLED)
|
||||||
ata_dev_disable(dev);
|
ata_eh_dev_disable(dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* freeze and set UNLOADED */
|
/* freeze and set UNLOADED */
|
||||||
@ -1211,14 +1223,8 @@ void ata_dev_disable(struct ata_device *dev)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
ata_dev_warn(dev, "disable device\n");
|
ata_dev_warn(dev, "disable device\n");
|
||||||
ata_acpi_on_disable(dev);
|
|
||||||
ata_down_xfermask_limit(dev, ATA_DNXFER_FORCE_PIO0 | ATA_DNXFER_QUIET);
|
|
||||||
dev->class++;
|
|
||||||
|
|
||||||
/* From now till the next successful probe, ering is used to
|
ata_eh_dev_disable(dev);
|
||||||
* track probe failures. Clear accumulated device error info.
|
|
||||||
*/
|
|
||||||
ata_ering_clear(&dev->ering);
|
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(ata_dev_disable);
|
EXPORT_SYMBOL_GPL(ata_dev_disable);
|
||||||
|
|
||||||
@ -1240,12 +1246,12 @@ void ata_eh_detach_dev(struct ata_device *dev)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* If the device is still enabled, transition it to standby power mode
|
* If the device is still enabled, transition it to standby power mode
|
||||||
* (i.e. spin down HDDs).
|
* (i.e. spin down HDDs) and disable it.
|
||||||
*/
|
*/
|
||||||
if (ata_dev_enabled(dev))
|
if (ata_dev_enabled(dev)) {
|
||||||
ata_dev_power_set_standby(dev);
|
ata_dev_power_set_standby(dev);
|
||||||
|
ata_eh_dev_disable(dev);
|
||||||
ata_dev_disable(dev);
|
}
|
||||||
|
|
||||||
spin_lock_irqsave(ap->lock, flags);
|
spin_lock_irqsave(ap->lock, flags);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user