mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-19 12:24:34 +08:00
fbdev: da8xx-fb: go to proper label on error handling paths in probe
fb_probe() can successfully allocate a new frame buffer, but then fail to perform some operations with regulator. In these cases fb_probe() goes to label err_pm_runtime_disable where the frame buffer is not released. The patch makes fb_probe() to go to label err_release_fb on corresponding error handling paths. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Evgeny Novikov <novikov@ispras.ru> Cc: Sekhar Nori <nsekhar@ti.com> Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Cc: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Link: https://patchwork.freedesktop.org/patch/msgid/20200702160540.24546-1-novikov@ispras.ru
This commit is contained in:
parent
9907797a09
commit
80a00e90de
@ -1402,14 +1402,14 @@ static int fb_probe(struct platform_device *device)
|
||||
if (IS_ERR(par->lcd_supply)) {
|
||||
if (PTR_ERR(par->lcd_supply) == -EPROBE_DEFER) {
|
||||
ret = -EPROBE_DEFER;
|
||||
goto err_pm_runtime_disable;
|
||||
goto err_release_fb;
|
||||
}
|
||||
|
||||
par->lcd_supply = NULL;
|
||||
} else {
|
||||
ret = regulator_enable(par->lcd_supply);
|
||||
if (ret)
|
||||
goto err_pm_runtime_disable;
|
||||
goto err_release_fb;
|
||||
}
|
||||
|
||||
fb_videomode_to_var(&da8xx_fb_var, lcdc_info);
|
||||
|
Loading…
Reference in New Issue
Block a user