OMAP: DSS: Taal: fix error returns in taal_probe()
authorAaro Koskinen <aaro.koskinen@nokia.com>
Wed, 9 Dec 2009 16:26:25 +0000 (17:26 +0100)
committerTomi Valkeinen <tomi.valkeinen@nokia.com>
Fri, 12 Feb 2010 10:46:09 +0000 (12:46 +0200)
The workqueue creation error branch attempted to destroy a NULL wq,
and, in turn, a failed registration does not destroy the newly created
workqueue.

The problem was reported by a static analysis tool.

Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
drivers/video/omap2/displays/panel-taal.c

index 1f01dfc5e52e6d6d50f1c1459e87b2fd46f0df9b..0aaaa8a8e0f579af64ae813b6090d5bb5fa5cebf 100644 (file)
@@ -510,7 +510,7 @@ static int taal_probe(struct omap_dss_device *dssdev)
        if (td->esd_wq == NULL) {
                dev_err(&dssdev->dev, "can't create ESD workqueue\n");
                r = -ENOMEM;
-               goto err2;
+               goto err1;
        }
        INIT_DELAYED_WORK_DEFERRABLE(&td->esd_work, taal_esd_work);
 
@@ -528,7 +528,7 @@ static int taal_probe(struct omap_dss_device *dssdev)
                        &taal_bl_ops);
        if (IS_ERR(bldev)) {
                r = PTR_ERR(bldev);
-               goto err1;
+               goto err2;
        }
 
        td->bldev = bldev;