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, goto outside the loop when the entry is found. Signed-off-by: Xiaomeng Tong <xiam0nd.tong@xxxxxxxxx> --- changes since v1: - goto outside the loop (Xiaomeng Tong) v1: https://lore.kernel.org/lkml/20220401115811.9656-1-xiam0nd.tong@xxxxxxxxx/ --- drivers/gpu/drm/gma500/psb_drv.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/gma500/psb_drv.c b/drivers/gpu/drm/gma500/psb_drv.c index 2aff54d505e2..929fd47548b4 100644 --- a/drivers/gpu/drm/gma500/psb_drv.c +++ b/drivers/gpu/drm/gma500/psb_drv.c @@ -400,9 +400,10 @@ static int psb_driver_load(struct drm_device *dev, unsigned long flags) case INTEL_OUTPUT_LVDS: case INTEL_OUTPUT_MIPI: ret = gma_backlight_init(dev); - break; + goto out; } } +out: drm_connector_list_iter_end(&conn_iter); if (ret) -- 2.17.1