Message ID | 20241018111811.3534385-1-lukasz.luba@arm.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | drm/msm/gpu: Check the status of registration to PM QoS | expand |
On Fri, Oct 18, 2024 at 12:18:11PM +0100, Lukasz Luba wrote: > There is a need to check the returned value of the registration function. Why? > In case of returned error, print that and stop the init process. > > Fixes: 7c0ffcd40b16 ("drm/msm/gpu: Respect PM QoS constraints") > Signed-off-by: Lukasz Luba <lukasz.luba@arm.com> > --- > drivers/gpu/drm/msm/msm_gpu_devfreq.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) >
On 10/18/24 13:02, Dmitry Baryshkov wrote: > On Fri, Oct 18, 2024 at 12:18:11PM +0100, Lukasz Luba wrote: >> There is a need to check the returned value of the registration function. > > Why? The question can be: why this driver doesn't check errors from frameworks during the registration? Is it a generic practice in that code (I hope not)? When you check the API doc you will see that this fwk can fail and return some error and the other functions in driver shouldn't assume blindly that it was OK. All other places in the kernel check that return value from the PM QoS framework. > >> In case of returned error, print that and stop the init process. >> >> Fixes: 7c0ffcd40b16 ("drm/msm/gpu: Respect PM QoS constraints") >> Signed-off-by: Lukasz Luba <lukasz.luba@arm.com> >> --- >> drivers/gpu/drm/msm/msm_gpu_devfreq.c | 9 +++++++-- >> 1 file changed, 7 insertions(+), 2 deletions(-) >> >
diff --git a/drivers/gpu/drm/msm/msm_gpu_devfreq.c b/drivers/gpu/drm/msm/msm_gpu_devfreq.c index ea70c1c32d940..6970b0f7f457c 100644 --- a/drivers/gpu/drm/msm/msm_gpu_devfreq.c +++ b/drivers/gpu/drm/msm/msm_gpu_devfreq.c @@ -140,6 +140,7 @@ void msm_devfreq_init(struct msm_gpu *gpu) { struct msm_gpu_devfreq *df = &gpu->devfreq; struct msm_drm_private *priv = gpu->dev->dev_private; + int ret; /* We need target support to do devfreq */ if (!gpu->funcs->gpu_busy) @@ -156,8 +157,12 @@ 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) { + DRM_DEV_ERROR(&gpu->pdev->dev, "Couldn't initialize QoS\n"); + return; + } msm_devfreq_profile.initial_freq = gpu->fast_rate;
There is a need to check the returned value of the registration function. In case of returned error, print that and stop the init process. Fixes: 7c0ffcd40b16 ("drm/msm/gpu: Respect PM QoS constraints") Signed-off-by: Lukasz Luba <lukasz.luba@arm.com> --- drivers/gpu/drm/msm/msm_gpu_devfreq.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)