On Fri, Apr 1, 2022 at 1:58 PM Xiaomeng Tong <xiam0nd.tong@xxxxxxxxx> wrote: > > Instead of exiting the loop as expected when an entry is found, the > list_for_each_entry() continues until the traversal is complete. To > avoid potential executing 'ret = gma_backlight_init(dev);' repeatly, > break the loop when the entry is found. > > Signed-off-by: Xiaomeng Tong <xiam0nd.tong@xxxxxxxxx> > --- > drivers/gpu/drm/gma500/psb_drv.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/gpu/drm/gma500/psb_drv.c b/drivers/gpu/drm/gma500/psb_drv.c > index 2aff54d505e2..b61a8b0eea38 100644 > --- a/drivers/gpu/drm/gma500/psb_drv.c > +++ b/drivers/gpu/drm/gma500/psb_drv.c > @@ -402,6 +402,9 @@ static int psb_driver_load(struct drm_device *dev, unsigned long flags) > ret = gma_backlight_init(dev); > break; > } > + > + if (!ret) > + break; Hi, We cannot do it like this either. If the first connector isn't LVDS or MIPI we would just break out of the iteration because ret is presumably 0 at start and gma_backlight_init() would never run. -Patrik > } > drm_connector_list_iter_end(&conn_iter); > > -- > 2.17.1 >