Message ID | 20241026093738.523882-1-ruanjinjie@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/msm/gpu: Fix missing error check for dev_pm_qos_add_request() | expand |
On Sat, Oct 26, 2024 at 05:37:38PM +0800, Jinjie Ruan wrote: > dev_pm_qos_add_request() can fail, and it returns -EINVAL in case of > wrong parameters, return -ENOMEM if there's not enough memory to allocate > for data structures, and return -ENODEV if the device has just been > removed from the system. If it fails in msm_devfreq_init(), there is > no point in going on, also call dev_pm_qos_remove_request() in the next > error path is also meaningless > > Fixes: 7c0ffcd40b16 ("drm/msm/gpu: Respect PM QoS constraints") > Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com> > --- > drivers/gpu/drm/msm/msm_gpu_devfreq.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > I'm sorry, a similar patch has already been sent: https://patchwork.freedesktop.org/series/140162/
diff --git a/drivers/gpu/drm/msm/msm_gpu_devfreq.c b/drivers/gpu/drm/msm/msm_gpu_devfreq.c index ea70c1c32d94..9a7a18d4335b 100644 --- a/drivers/gpu/drm/msm/msm_gpu_devfreq.c +++ b/drivers/gpu/drm/msm/msm_gpu_devfreq.c @@ -138,8 +138,9 @@ static bool has_devfreq(struct msm_gpu *gpu) void msm_devfreq_init(struct msm_gpu *gpu) { - struct msm_gpu_devfreq *df = &gpu->devfreq; struct msm_drm_private *priv = gpu->dev->dev_private; + struct msm_gpu_devfreq *df = &gpu->devfreq; + int ret; /* We need target support to do devfreq */ if (!gpu->funcs->gpu_busy) @@ -156,8 +157,10 @@ void msm_devfreq_init(struct msm_gpu *gpu) mutex_init(&df->lock); - dev_pm_qos_add_request(&gpu->pdev->dev, &df->boost_freq, - DEV_PM_QOS_MIN_FREQUENCY, 0); + ret = dev_pm_qos_add_request(&gpu->pdev->dev, &df->boost_freq, + DEV_PM_QOS_MIN_FREQUENCY, 0); + if (ret < 0) + return; msm_devfreq_profile.initial_freq = gpu->fast_rate;
dev_pm_qos_add_request() can fail, and it returns -EINVAL in case of wrong parameters, return -ENOMEM if there's not enough memory to allocate for data structures, and return -ENODEV if the device has just been removed from the system. If it fails in msm_devfreq_init(), there is no point in going on, also call dev_pm_qos_remove_request() in the next error path is also meaningless Fixes: 7c0ffcd40b16 ("drm/msm/gpu: Respect PM QoS constraints") Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com> --- drivers/gpu/drm/msm/msm_gpu_devfreq.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)