summaryrefslogtreecommitdiffstats
path: root/drivers/video
diff options
context:
space:
mode:
authorRob Clark <rob@ti.com>2011-12-11 14:02:27 -0600
committerTomi Valkeinen <tomi.valkeinen@ti.com>2012-01-02 08:51:26 +0200
commit00f17e4560da32db454c46faf1e8df4fe35cc226 (patch)
treebe15778a94345ac75130f048abf000163355577b /drivers/video
parentf806f9b6b8ec2c8b6a3297e684bcb80f54e3dc98 (diff)
downloadlinux-00f17e4560da32db454c46faf1e8df4fe35cc226.tar.gz
linux-00f17e4560da32db454c46faf1e8df4fe35cc226.tar.bz2
linux-00f17e4560da32db454c46faf1e8df4fe35cc226.zip
OMAPDSS: fix potential NULL pointer ref in OCP_ERR handling path
The dispc's error handler tries to disable all outputs when OCP_ERR happens. However, the code doesn't check if there actually is a display on each particular output, nor if there's a driver for the display. This may lead to NULL pointer reference. Signed-off-by: Rob Clark <rob@ti.com> [tomi.valkeinen@ti.com: added patch description] Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/omap2/dss/dispc.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/video/omap2/dss/dispc.c b/drivers/video/omap2/dss/dispc.c
index 0f84034928ad..4d684282b201 100644
--- a/drivers/video/omap2/dss/dispc.c
+++ b/drivers/video/omap2/dss/dispc.c
@@ -3201,7 +3201,8 @@ static void dispc_error_worker(struct work_struct *work)
for (i = 0; i < omap_dss_get_num_overlay_managers(); ++i) {
struct omap_overlay_manager *mgr;
mgr = omap_dss_get_overlay_manager(i);
- mgr->device->driver->disable(mgr->device);
+ if (mgr->device && mgr->device->driver)
+ mgr->device->driver->disable(mgr->device);
}
}