drm/bridge: aux-hpd: fix OF node leaks
The two device node references taken during allocation need to be dropped when the auxiliary device is freed. Fixes: 6914968a0b52 ("drm/bridge: properly refcount DT nodes in aux bridge drivers") Cc: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Cc: Neil Armstrong <neil.armstrong@linaro.org> Signed-off-by: Johan Hovold <johan+linaro@kernel.org> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Reviewed-by: Bjorn Andersson <andersson@kernel.org> Link: https://lore.kernel.org/r/20240217150228.5788-2-johan+linaro@kernel.org Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org> Link: https://patchwork.freedesktop.org/patch/msgid/20240217150228.5788-2-johan+linaro@kernel.org
This commit is contained in:
parent
1fa8d07ae1
commit
9ee485bdda
@ -25,6 +25,7 @@ static void drm_aux_hpd_bridge_release(struct device *dev)
|
||||
ida_free(&drm_aux_hpd_bridge_ida, adev->id);
|
||||
|
||||
of_node_put(adev->dev.platform_data);
|
||||
of_node_put(adev->dev.of_node);
|
||||
|
||||
kfree(adev);
|
||||
}
|
||||
@ -74,6 +75,8 @@ struct device *drm_dp_hpd_bridge_register(struct device *parent,
|
||||
|
||||
ret = auxiliary_device_init(adev);
|
||||
if (ret) {
|
||||
of_node_put(adev->dev.platform_data);
|
||||
of_node_put(adev->dev.of_node);
|
||||
ida_free(&drm_aux_hpd_bridge_ida, adev->id);
|
||||
kfree(adev);
|
||||
return ERR_PTR(ret);
|
||||
|
Loading…
x
Reference in New Issue
Block a user