aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaro Koskinen <aaro.koskinen@nokia.com>2009-12-09 11:26:25 -0500
committerTomi Valkeinen <tomi.valkeinen@nokia.com>2010-02-12 05:46:09 -0500
commit92fe0ff16a9299233104187bd6ceb2101501badc (patch)
tree31d58e8b8b89f7a5e71ac831e03fd62f8d9269f3
parent80b1cc23ac96373bd5ff17f8959f2587d6fc37dd (diff)
OMAP: DSS: Taal: fix error returns in taal_probe()
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>
-rw-r--r--drivers/video/omap2/displays/panel-taal.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/video/omap2/displays/panel-taal.c b/drivers/video/omap2/displays/panel-taal.c
index 1f01dfc5e52e..0aaaa8a8e0f5 100644
--- a/drivers/video/omap2/displays/panel-taal.c
+++ b/drivers/video/omap2/displays/panel-taal.c
@@ -510,7 +510,7 @@ static int taal_probe(struct omap_dss_device *dssdev)
510 if (td->esd_wq == NULL) { 510 if (td->esd_wq == NULL) {
511 dev_err(&dssdev->dev, "can't create ESD workqueue\n"); 511 dev_err(&dssdev->dev, "can't create ESD workqueue\n");
512 r = -ENOMEM; 512 r = -ENOMEM;
513 goto err2; 513 goto err1;
514 } 514 }
515 INIT_DELAYED_WORK_DEFERRABLE(&td->esd_work, taal_esd_work); 515 INIT_DELAYED_WORK_DEFERRABLE(&td->esd_work, taal_esd_work);
516 516
@@ -528,7 +528,7 @@ static int taal_probe(struct omap_dss_device *dssdev)
528 &taal_bl_ops); 528 &taal_bl_ops);
529 if (IS_ERR(bldev)) { 529 if (IS_ERR(bldev)) {
530 r = PTR_ERR(bldev); 530 r = PTR_ERR(bldev);
531 goto err1; 531 goto err2;
532 } 532 }
533 533
534 td->bldev = bldev; 534 td->bldev = bldev;