This patch adds a check for the vgem_device before handling it.
Signed-off-by: Melissa Wen melissa.srw@gmail.com --- drivers/gpu/drm/vgem/vgem_drv.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/vgem/vgem_drv.c b/drivers/gpu/drm/vgem/vgem_drv.c index cb884c890065..119ca887cb8a 100644 --- a/drivers/gpu/drm/vgem/vgem_drv.c +++ b/drivers/gpu/drm/vgem/vgem_drv.c @@ -472,7 +472,14 @@ static int __init vgem_init(void)
static void __exit vgem_exit(void) { - struct platform_device *pdev = vgem_device->platform; + struct platform_device *pdev; + + if (!vgem_device) { + DRM_INFO("vgem_device is NULL\n"); + return; + } + + pdev = vgem_device->platform;
drm_dev_unregister(&vgem_device->drm); devres_release_group(&pdev->dev, NULL);
On Thu, Sep 17, 2020 at 4:21 PM Melissa Wen melissa.srw@gmail.com wrote:
This patch adds a check for the vgem_device before handling it.
Signed-off-by: Melissa Wen melissa.srw@gmail.com
Seems reasonable. Reviewed-by: Daniel Vetter daniel.vetter@ffwll.ch
drivers/gpu/drm/vgem/vgem_drv.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/vgem/vgem_drv.c b/drivers/gpu/drm/vgem/vgem_drv.c index cb884c890065..119ca887cb8a 100644 --- a/drivers/gpu/drm/vgem/vgem_drv.c +++ b/drivers/gpu/drm/vgem/vgem_drv.c @@ -472,7 +472,14 @@ static int __init vgem_init(void)
static void __exit vgem_exit(void) {
struct platform_device *pdev = vgem_device->platform;
struct platform_device *pdev;
if (!vgem_device) {
DRM_INFO("vgem_device is NULL\n");
return;
}
pdev = vgem_device->platform; drm_dev_unregister(&vgem_device->drm); devres_release_group(&pdev->dev, NULL);
-- 2.28.0
-----Original Message----- From: dri-devel dri-devel-bounces@lists.freedesktop.org On Behalf Of Melissa Wen Sent: Thursday, September 17, 2020 10:22 AM To: Daniel Vetter daniel@ffwll.ch; David Airlie airlied@linux.ie Cc: dri-devel@lists.freedesktop.org Subject: [PATCH] drm/vgem: validate vgem_device before exit operations
This patch adds a check for the vgem_device before handling it.
Signed-off-by: Melissa Wen melissa.srw@gmail.com
drivers/gpu/drm/vgem/vgem_drv.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/vgem/vgem_drv.c b/drivers/gpu/drm/vgem/vgem_drv.c index cb884c890065..119ca887cb8a 100644 --- a/drivers/gpu/drm/vgem/vgem_drv.c +++ b/drivers/gpu/drm/vgem/vgem_drv.c @@ -472,7 +472,14 @@ static int __init vgem_init(void)
static void __exit vgem_exit(void) {
- struct platform_device *pdev = vgem_device->platform;
- struct platform_device *pdev;
- if (!vgem_device) {
DRM_INFO("vgem_device is NULL\n");
return;
- }
This only gets called on module_exit.
If module_init fails, (which is where this is allocated), will the exit ever be called?
M
pdev = vgem_device->platform;
drm_dev_unregister(&vgem_device->drm); devres_release_group(&pdev->dev, NULL);
-- 2.28.0
dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
dri-devel@lists.freedesktop.org