mirror of
https://github.com/torvalds/linux.git
synced 2026-09-28 03:52:02 +02:00
drm/nouveau: Fix runtime PM leak in nouveau_connector_detect()
If nvif_outp_edid_get() fails, nouveau_connector_detect() returns
early without dropping the runtime PM reference taken at the start
of the function, keeping the device powered on until the next
successful detect.
Balance the reference on the error path like the other exit paths
do.
Fixes: 0cd7e07181 ("drm/nouveau/disp: add output method to fetch edid")
Cc: stable@vger.kernel.org
Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
Reviewed-by: Lyude Paul <lyude@redhat.com>
Signed-off-by: Lyude Paul <lyude@redhat.com>
Link: https://patch.msgid.link/20260916180342.2090360-1-vulab@iscas.ac.cn
This commit is contained in:
parent
5ea72f7b71
commit
1e04611d37
|
|
@ -600,8 +600,11 @@ nouveau_connector_detect(struct drm_connector *connector, bool force)
|
|||
new_edid = drm_get_edid(connector, nv_encoder->i2c);
|
||||
} else {
|
||||
ret = nvif_outp_edid_get(&nv_encoder->outp, (u8 **)&new_edid);
|
||||
if (ret < 0)
|
||||
if (ret < 0) {
|
||||
pm_runtime_mark_last_busy(dev->dev);
|
||||
pm_runtime_put_autosuspend(dev->dev);
|
||||
return connector_status_disconnected;
|
||||
}
|
||||
}
|
||||
|
||||
nouveau_connector_set_edid(nv_connector, new_edid);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user