diff options
author | Damien Le Moal <dlemoal@kernel.org> | 2023-08-31 15:23:37 +0900 |
---|---|---|
committer | Damien Le Moal <dlemoal@kernel.org> | 2023-10-03 09:39:49 +0900 |
commit | 3a94af2488bfe7dfe70fd9277d4548f971b06ec8 (patch) | |
tree | 8c7942e24da7c2395a43fdf2633fd230ed659e69 /drivers/ata | |
parent | 09b055cfb0e9a337938f7a47681b2203bd7b85d2 (diff) |
ata: libata-core: Do not poweroff runtime suspended ports
When powering off, there is no need to suspend a port that has already
been runtime suspended. Skip the EH PM request in ata_port_pm_poweroff()
in this case.
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>
Diffstat (limited to 'drivers/ata')
-rw-r--r-- | drivers/ata/libata-core.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index c249016a5998..c9db2da582b7 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c @@ -5215,7 +5215,8 @@ static int ata_port_pm_freeze(struct device *dev) static int ata_port_pm_poweroff(struct device *dev) { - ata_port_suspend(to_ata_port(dev), PMSG_HIBERNATE, false); + if (!pm_runtime_suspended(dev)) + ata_port_suspend(to_ata_port(dev), PMSG_HIBERNATE, false); return 0; } |