diff options
author | Christophe JAILLET <christophe.jaillet@wanadoo.fr> | 2022-12-10 12:35:23 +0100 |
---|---|---|
committer | Helge Deller <deller@gmx.de> | 2022-12-14 20:01:51 +0100 |
commit | f2ff0c430fed8c6a6d64d11a41f0582bf8bba6f7 (patch) | |
tree | 23281b3a2d0201e5fe7a84787251331822525076 /drivers/video/fbdev/uvesafb.c | |
parent | fbdev: uvesafb: Fixes an error handling path in uvesafb_probe() (diff) | |
download | linux-f2ff0c430fed8c6a6d64d11a41f0582bf8bba6f7.tar.xz linux-f2ff0c430fed8c6a6d64d11a41f0582bf8bba6f7.zip |
fbdev: uvesafb: Simplify uvesafb_remove()
When the remove() function is called, we know that the probe() function has
successfully been executed. So 'info' is known to be not NULL.
Simplify the code accordingly.
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Helge Deller <deller@gmx.de>
Diffstat (limited to '')
-rw-r--r-- | drivers/video/fbdev/uvesafb.c | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/drivers/video/fbdev/uvesafb.c b/drivers/video/fbdev/uvesafb.c index 0e3cabbec4b4..2bb95c35ab2a 100644 --- a/drivers/video/fbdev/uvesafb.c +++ b/drivers/video/fbdev/uvesafb.c @@ -1777,25 +1777,23 @@ out: static int uvesafb_remove(struct platform_device *dev) { struct fb_info *info = platform_get_drvdata(dev); + struct uvesafb_par *par = info->par; - if (info) { - struct uvesafb_par *par = info->par; + sysfs_remove_group(&dev->dev.kobj, &uvesafb_dev_attgrp); + unregister_framebuffer(info); + release_region(0x3c0, 32); + iounmap(info->screen_base); + arch_phys_wc_del(par->mtrr_handle); + release_mem_region(info->fix.smem_start, info->fix.smem_len); + fb_destroy_modedb(info->monspecs.modedb); + fb_dealloc_cmap(&info->cmap); - sysfs_remove_group(&dev->dev.kobj, &uvesafb_dev_attgrp); - unregister_framebuffer(info); - release_region(0x3c0, 32); - iounmap(info->screen_base); - arch_phys_wc_del(par->mtrr_handle); - release_mem_region(info->fix.smem_start, info->fix.smem_len); - fb_destroy_modedb(info->monspecs.modedb); - fb_dealloc_cmap(&info->cmap); + kfree(par->vbe_modes); + kfree(par->vbe_state_orig); + kfree(par->vbe_state_saved); - kfree(par->vbe_modes); - kfree(par->vbe_state_orig); - kfree(par->vbe_state_saved); + framebuffer_release(info); - framebuffer_release(info); - } return 0; } |