]> git.ipfire.org Git - thirdparty/linux.git/commit
ata: ahci_ceva: fix error paths in ceva_ahci_platform_enable_resources()
authorRadhey Shyam Pandey <radhey.shyam.pandey@amd.com>
Fri, 17 Jul 2026 18:25:26 +0000 (23:55 +0530)
committerDamien Le Moal <dlemoal@kernel.org>
Sat, 18 Jul 2026 01:37:02 +0000 (10:37 +0900)
commit4d99a91574c420decab56cc880fad0dc15b8a7a3
tree0fd8f540b659b49f789393c514e7bbb4355b4f64
parentef19a9cf037957fe3a35df8355c76ff0a63a0436
ata: ahci_ceva: fix error paths in ceva_ahci_platform_enable_resources()

On phy_init() failure the error path fallsthrough to disable_rsts, which
deasserts the controller reset and then enters disable_phys calling
phy_power_off() on PHYs that were never powered on. That corrupts the PHY
power_count and triggers an extra runtime PM put.

Use a separate exit_phys path that unwinds with phy_exit() only and falls
through to disable_clks while the controller remains in reset.  Reserve
phy_power_off() for the phy_power_on() failure path only, and skip
masked-out ports in both unwind loops.

On phy_power_on() failure re-assert the controller reset before disabling
clocks and regulators, matching the teardown order used by
ahci_platform_enable_resources() and ahci_platform_disable_resources().

Fixes: 26c8404e162b ("ata: ahci_ceva: fix error handling for Xilinx GT PHY support")
Signed-off-by: Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
drivers/ata/ahci_ceva.c