linux/drivers/gpu/drm/exynos
Arnd Bergmann 55c4b906aa drm/exynos: fix error handling in exynos_drm_subdrv_open
gcc-6 warns about a pointless loop in exynos_drm_subdrv_open:

drivers/gpu/drm/exynos/exynos_drm_core.c: In function 'exynos_drm_subdrv_open':
drivers/gpu/drm/exynos/exynos_drm_core.c:104:199: error: self-comparison always evaluates to false [-Werror=tautological-compare]
  list_for_each_entry_reverse(subdrv, &subdrv->list, list) {

Here, the list_for_each_entry_reverse immediately terminates because
the subdrv pointer is compared to itself as the loop end condition.

If we were to take the current subdrv pointer as the start of the
list (as we would do if list_for_each_entry_reverse() was not a macro),
we would iterate backwards over the &exynos_drm_subdrv_list anchor,
which would be even worse.

Instead, we need to use list_for_each_entry_continue_reverse()
to go back over each subdrv that was successfully opened until
the first entry.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
2016-04-12 22:50:48 +09:00
..
exynos7_drm_decon.c drm/exynos: remove struct exynos_drm_panel_info 2016-03-01 23:37:22 +09:00
exynos5433_drm_decon.c drm/exynos/decon: make irq handler static 2016-03-01 23:37:20 +09:00
exynos_dp_core.c drm/exynos: remove struct exynos_drm_panel_info 2016-03-01 23:37:22 +09:00
exynos_dp_core.h drm/exynos: remove struct exynos_drm_panel_info 2016-03-01 23:37:22 +09:00
exynos_dp_reg.c drm/exynos: Fix checkpatch warning in exynos_dp_reg.c 2014-06-02 02:07:12 +09:00
exynos_dp_reg.h drm/exynos: Move dp driver from video/ to drm/ 2014-03-24 00:36:34 +09:00
exynos_drm_core.c drm/exynos: fix error handling in exynos_drm_subdrv_open 2016-04-12 22:50:48 +09:00
exynos_drm_crtc.c drm/exynos: fix kernel panic issue at drm releasing 2016-01-13 00:16:39 +09:00
exynos_drm_crtc.h drm/exynos: fix kernel panic issue at drm releasing 2016-01-13 00:16:39 +09:00
exynos_drm_dpi.c drm/exynos: removed optional dummy encoder mode_fixup function. 2016-02-16 15:30:36 +01:00
exynos_drm_drv.c drm/exynos: add DRM_EXYNOS_GEM_MAP ioctl 2016-03-13 14:54:03 +09:00
exynos_drm_drv.h drm/exynos: use real device for DMA-mapping operations 2016-03-01 23:53:47 +09:00
exynos_drm_dsi.c drm/exynos/dsi: use core helper to create DSI packet 2016-03-02 00:21:37 +09:00
exynos_drm_fb.c drm/exynos: crtc: do not wait for the scanout completion 2016-01-13 00:16:38 +09:00
exynos_drm_fb.h Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2016-01-17 13:40:25 -08:00
exynos_drm_fbdev.c drm/exynos: use real device for DMA-mapping operations 2016-03-01 23:53:47 +09:00
exynos_drm_fbdev.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_fimc.c drm/exynos/fimc: remove unused camera interface polarization code 2016-03-01 23:37:23 +09:00
exynos_drm_fimc.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_fimd.c drm/exynos: remove struct exynos_drm_panel_info 2016-03-01 23:37:22 +09:00
exynos_drm_g2d.c drm/exynos: use real device for DMA-mapping operations 2016-03-01 23:53:47 +09:00
exynos_drm_g2d.h drm/exynos: add G2D driver 2012-05-17 20:14:48 +09:00
exynos_drm_gem.c drm/exynos: add DRM_EXYNOS_GEM_MAP ioctl 2016-03-13 14:54:03 +09:00
exynos_drm_gem.h drm/exynos: add DRM_EXYNOS_GEM_MAP ioctl 2016-03-13 14:54:03 +09:00
exynos_drm_gsc.c drm/exynos: ipp: fix incorrect format specifiers in debug messages 2016-03-01 23:37:08 +09:00
exynos_drm_gsc.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_iommu.c drm/exynos: use real device for DMA-mapping operations 2016-03-01 23:53:47 +09:00
exynos_drm_iommu.h drm/exynos: use real device for DMA-mapping operations 2016-03-01 23:53:47 +09:00
exynos_drm_ipp.c drm/exynos: ipp: fix incorrect format specifiers in debug messages 2016-03-01 23:37:08 +09:00
exynos_drm_ipp.h drm/exynos/ipp: remove unused field in command node 2014-09-20 00:56:10 +09:00
exynos_drm_mic.c drm/exynos: mic: make all functions static 2016-03-01 23:37:12 +09:00
exynos_drm_plane.c drm/exynos: make zpos property configurable 2016-01-13 00:16:34 +09:00
exynos_drm_plane.h drm/exynos: rename zpos to index 2016-01-13 00:16:33 +09:00
exynos_drm_rotator.c drm/exynos: remove incorrect ccflags from Makefile 2016-03-01 23:37:20 +09:00
exynos_drm_rotator.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_drm_vidi.c drm/exynos: fix types for compilation on 64bit architectures 2016-03-01 23:37:09 +09:00
exynos_drm_vidi.h drm/exynos: change file license to GPL 2013-01-04 15:54:32 +09:00
exynos_hdmi.c drm/exynos/hdmi: remove unused variable 2016-03-01 23:37:20 +09:00
exynos_mixer.c drm/exynos: fix building without CONFIG_PM_SLEEP 2016-02-01 13:09:36 +09:00
Kconfig drm/exynos: depend on ARCH_EXYNOS for DRM_EXYNOS 2016-03-01 23:37:08 +09:00
Makefile drm/exynos: remove incorrect ccflags from Makefile 2016-03-01 23:37:20 +09:00
regs-fimc.h drm/exynos: add device tree support for fimc ipp driver 2013-04-29 14:35:32 +09:00
regs-gsc.h drm/exynos: gsc: add device tree support and remove usage of static mappings 2015-12-13 22:22:53 +09:00
regs-hdmi.h drm/exynos/hdmi: improve HDMI/ACR related code 2015-10-26 15:10:04 +09:00
regs-mixer.h drm/exynos: mixer: refactor layer setup 2016-01-13 00:16:36 +09:00
regs-rotator.h drm/exynos: add rotator ipp driver 2012-12-15 02:39:41 +09:00
regs-vp.h