On Sun, Mar 27, 2022 at 7:20 AM Xiaomeng Tong <xiam0nd.tong@xxxxxxxxx> 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@xxxxxxxxxxxxxxx > fixes: 89c78134cc54d ("gma500: Add Poulsbo support") > Signed-off-by: Xiaomeng Tong <xiam0nd.tong@xxxxxxxxx> 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 >