1
0
This repository has been archived on 2024-11-10. You can view files and clone it, but cannot push or open issues or pull requests.
Lakka-rk322x/projects/Rockchip/devices/RK322x/patches/linux/default/linux-9007-lima-fix-null-pointer-dereference.patch
Moretz 698ae89d26 upd
upd
2024-11-08 17:39:59 -03:00

48 lines
1.2 KiB
Diff

diff -ruPN linux/drivers/gpu/drm/lima/lima_gem.c linux-new/drivers/gpu/drm/lima/lima_gem.c
--- linux/drivers/gpu/drm/lima/lima_gem.c 2022-10-17 17:26:07.000000000 +0200
+++ linux-new/drivers/gpu/drm/lima/lima_gem.c 2022-10-25 16:11:31.169938161 +0200
@@ -99,6 +99,16 @@
return 0;
}
+static void lima_gem_free_object(struct drm_gem_object *obj)
+{
+ struct lima_bo *bo = to_lima_bo(obj);
+
+ if (!list_empty(&bo->va))
+ dev_err(obj->dev->dev, "lima gem free bo still has va\n");
+
+ drm_gem_shmem_free_object(obj);
+}
+
int lima_gem_create_handle(struct drm_device *dev, struct drm_file *file,
u32 size, u32 flags, u32 *handle)
{
@@ -139,21 +149,15 @@
out:
/* drop reference from allocate - handle holds it now */
- drm_gem_object_put(obj);
+ if (!err) {
+ drm_gem_object_put(obj);
+ } else {
+ lima_gem_free_object(obj);
+ }
return err;
}
-static void lima_gem_free_object(struct drm_gem_object *obj)
-{
- struct lima_bo *bo = to_lima_bo(obj);
-
- if (!list_empty(&bo->va))
- dev_err(obj->dev->dev, "lima gem free bo still has va\n");
-
- drm_gem_shmem_free_object(obj);
-}
-
static int lima_gem_object_open(struct drm_gem_object *obj, struct drm_file *file)
{
struct lima_bo *bo = to_lima_bo(obj);