[PATCH] gma500: fix an incorrect NULL check on list iterator
Patrik Jakobsson
patrik.r.jakobsson at gmail.com
Tue Mar 29 09:36:15 UTC 2022
On Sun, Mar 27, 2022 at 7:20 AM Xiaomeng Tong <xiam0nd.tong at gmail.com> wrote:
>
> The bug is here:
> return crtc;
>
> The list iterator value 'crtc' will *always* be set and non-NULL by
> list_for_each_entry(), so it is incorrect to assume that the iterator
> value will be NULL if the list is empty or no element is found.
>
> To fix the bug, return 'crtc' when found, otherwise return NULL.
>
> Cc: stable at vger.kernel.org
> fixes: 89c78134cc54d ("gma500: Add Poulsbo support")
> Signed-off-by: Xiaomeng Tong <xiam0nd.tong at gmail.com>
Thanks for the patch
Applied to drm-misc-next
-Patrik
> ---
> drivers/gpu/drm/gma500/psb_intel_display.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/gma500/psb_intel_display.c b/drivers/gpu/drm/gma500/psb_intel_display.c
> index d5f95212934e..42d1a733e124 100644
> --- a/drivers/gpu/drm/gma500/psb_intel_display.c
> +++ b/drivers/gpu/drm/gma500/psb_intel_display.c
> @@ -535,14 +535,15 @@ void psb_intel_crtc_init(struct drm_device *dev, int pipe,
>
> struct drm_crtc *psb_intel_get_crtc_from_pipe(struct drm_device *dev, int pipe)
> {
> - struct drm_crtc *crtc = NULL;
> + struct drm_crtc *crtc;
>
> list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
> struct gma_crtc *gma_crtc = to_gma_crtc(crtc);
> +
> if (gma_crtc->pipe == pipe)
> - break;
> + return crtc;
> }
> - return crtc;
> + return NULL;
> }
>
> int gma_connector_clones(struct drm_device *dev, int type_mask)
> --
> 2.17.1
>
More information about the dri-devel
mailing list