diff options
author | Aaro Koskinen <aaro.koskinen@nokia.com> | 2009-12-09 11:26:25 -0500 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@nokia.com> | 2010-02-12 05:46:09 -0500 |
commit | 92fe0ff16a9299233104187bd6ceb2101501badc (patch) | |
tree | 31d58e8b8b89f7a5e71ac831e03fd62f8d9269f3 /drivers/video | |
parent | 80b1cc23ac96373bd5ff17f8959f2587d6fc37dd (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>
Diffstat (limited to 'drivers/video')
-rw-r--r-- | drivers/video/omap2/displays/panel-taal.c | 4 |
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; |