projects
/
platform
/
kernel
/
linux-starfive.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
90caf42
)
drm/bochs: Fix some error handling paths in bochs_pci_probe()
author
Christophe JAILLET
<christophe.jaillet@wanadoo.fr>
Sat, 18 Jun 2022 15:26:08 +0000
(17:26 +0200)
committer
Gerd Hoffmann
<kraxel@redhat.com>
Tue, 19 Jul 2022 12:40:59 +0000
(14:40 +0200)
The remove() function calls bochs_hw_fini() but this function is not called
in the error handling of the probe.
This call releases the resources allocated by bochs_hw_init() used in
bochs_load().
Update the probe and bochs_load() to call bochs_hw_fini() if an error
occurs after a successful bochs_hw_init() call.
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Link:
http://patchwork.freedesktop.org/patch/msgid/0e676e4d56ab5b10fcf22860081414445611dfa7.1655565953.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
drivers/gpu/drm/tiny/bochs.c
patch
|
blob
|
history
diff --git
a/drivers/gpu/drm/tiny/bochs.c
b/drivers/gpu/drm/tiny/bochs.c
index
82364a0
..
08de137
100644
(file)
--- a/
drivers/gpu/drm/tiny/bochs.c
+++ b/
drivers/gpu/drm/tiny/bochs.c
@@
-583,13
+583,17
@@
static int bochs_load(struct drm_device *dev)
ret = drmm_vram_helper_init(dev, bochs->fb_base, bochs->fb_size);
if (ret)
-
return ret
;
+
goto err_hw_fini
;
ret = bochs_kms_init(bochs);
if (ret)
-
return ret
;
+
goto err_hw_fini
;
return 0;
+
+err_hw_fini:
+ bochs_hw_fini(dev);
+ return ret;
}
DEFINE_DRM_GEM_FOPS(bochs_fops);
@@
-664,11
+668,13
@@
static int bochs_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent
ret = drm_dev_register(dev, 0);
if (ret)
- goto err_
free_dev
;
+ goto err_
hw_fini
;
drm_fbdev_generic_setup(dev, 32);
return ret;
+err_hw_fini:
+ bochs_hw_fini(dev);
err_free_dev:
drm_dev_put(dev);
return ret;