mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 20:54:03 +02:00
ata: libahci_platform: Fix device reference leak in ahci_platform_get_resources()
of_find_device_by_node() takes a reference on the port platform device,
which is only used to look up its port regulator and is never released,
neither on success nor on the error paths. Drop the reference with
put_device() once the regulator has been obtained, which covers both the
success and error paths.
Fixes: c7d7ddee7e ("ata: libahci: Allow using multiple regulators")
Cc: stable@vger.kernel.org
Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
Link: https://lore.kernel.org/r/20260915065933.1733061-1-vulab@iscas.ac.cn
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Signed-off-by: Niklas Cassel <cassel@kernel.org>
This commit is contained in:
parent
82e4753322
commit
0d1cb83337
|
|
@ -620,10 +620,10 @@ struct ahci_host_priv *ahci_platform_get_resources(struct platform_device *pdev,
|
|||
of_platform_device_create(child, NULL, NULL);
|
||||
|
||||
port_dev = of_find_device_by_node(child);
|
||||
|
||||
if (port_dev) {
|
||||
rc = ahci_platform_get_regulator(hpriv, port,
|
||||
&port_dev->dev);
|
||||
put_device(&port_dev->dev);
|
||||
if (rc == -EPROBE_DEFER)
|
||||
goto err_out;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user