diff options
author | Pavel Shved <shved@ispras.ru> | 2011-06-17 16:25:12 +0000 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2011-06-24 17:00:39 +0900 |
commit | 291600193e5c0c3f0a9af1f23a8076dd7417c02a (patch) | |
tree | 94d64fc90e5bd5de69ce4b9e0df0b169db82b544 /drivers/video/hecubafb.c | |
parent | 9845afc8fa32de145d56c8e69b7900e10371255d (diff) | |
download | op-kernel-dev-291600193e5c0c3f0a9af1f23a8076dd7417c02a.zip op-kernel-dev-291600193e5c0c3f0a9af1f23a8076dd7417c02a.tar.gz |
hecubafb: add module_put on error path in hecubafb_probe()
In hecubafb_probe(), after a successful try_module_get, vzalloc may
fail and make the hecubafb_probe return, but the module is not put on
this error path.
This patch adds an exit point that calls module_put in such situation.
Found by Linux Driver Verification project (linuxtesting.org).
Signed-off-by: Pavel Shved <shved@ispras.ru>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'drivers/video/hecubafb.c')
-rw-r--r-- | drivers/video/hecubafb.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/video/hecubafb.c b/drivers/video/hecubafb.c index fbef15f..614251a 100644 --- a/drivers/video/hecubafb.c +++ b/drivers/video/hecubafb.c @@ -233,7 +233,7 @@ static int __devinit hecubafb_probe(struct platform_device *dev) videomemory = vzalloc(videomemorysize); if (!videomemory) - return retval; + goto err_videomem_alloc; info = framebuffer_alloc(sizeof(struct hecubafb_par), &dev->dev); if (!info) @@ -275,6 +275,7 @@ err_fbreg: framebuffer_release(info); err_fballoc: vfree(videomemory); +err_videomem_alloc: module_put(board->owner); return retval; } |