mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-12 13:55:32 +00:00
video: fbdev: pxafb: handle errors from pxafb_init_fbinfo() correctly
pxafb_init_fbinfo() can not only report errors caused by failed allocations but also when the clock can't be found. To fix this, return an error pointer instead of NULL in case of errors, and up-chain the result. Signed-off-by: Daniel Mack <daniel@zonque.org> Reviewed-by: Robert Jarzmik <robert.jarzmik@free.fr> Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
This commit is contained in:
parent
c8f96304ec
commit
a2f2058e3d
1 changed files with 4 additions and 5 deletions
|
@ -1802,14 +1802,14 @@ static struct pxafb_info *pxafb_init_fbinfo(struct device *dev,
|
|||
fbi = devm_kzalloc(dev, sizeof(struct pxafb_info) + sizeof(u32) * 16,
|
||||
GFP_KERNEL);
|
||||
if (!fbi)
|
||||
return NULL;
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
fbi->dev = dev;
|
||||
fbi->inf = inf;
|
||||
|
||||
fbi->clk = devm_clk_get(dev, NULL);
|
||||
if (IS_ERR(fbi->clk))
|
||||
return NULL;
|
||||
return ERR_CAST(fbi->clk);
|
||||
|
||||
strcpy(fbi->fb.fix.id, PXA_NAME);
|
||||
|
||||
|
@ -2287,10 +2287,9 @@ static int pxafb_probe(struct platform_device *dev)
|
|||
}
|
||||
|
||||
fbi = pxafb_init_fbinfo(&dev->dev, inf);
|
||||
if (!fbi) {
|
||||
/* only reason for pxafb_init_fbinfo to fail is kmalloc */
|
||||
if (IS_ERR(fbi)) {
|
||||
dev_err(&dev->dev, "Failed to initialize framebuffer device\n");
|
||||
ret = -ENOMEM;
|
||||
ret = PTR_ERR(fbi);
|
||||
goto failed;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue