]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/{i915,xe}/panic: move framebuffer allocation where it belongs
authorJani Nikula <jani.nikula@intel.com>
Tue, 2 Sep 2025 17:51:52 +0000 (20:51 +0300)
committerJani Nikula <jani.nikula@intel.com>
Mon, 8 Sep 2025 11:23:46 +0000 (14:23 +0300)
The struct intel_framebuffer allocation naturally belongs in intel_fb.c,
not hidden inside panic implementation. Separate the panic
allocation. Drop the unnecessary struct i915_framebuffer and struct
xe_framebuffer types.

Cc: Jocelyn Falempe <jfalempe@redhat.com>
Cc: Maarten Lankhorst <dev@lankhorst.se>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Jocelyn Falempe <jfalempe@redhat.com>
Link: https://lore.kernel.org/r/d29f63e0118d002fc8edd368caea7e8185418e17.1756835342.git.jani.nikula@intel.com
drivers/gpu/drm/i915/display/intel_fb.c
drivers/gpu/drm/i915/display/intel_panic.c
drivers/gpu/drm/i915/display/intel_panic.h
drivers/gpu/drm/i915/gem/i915_gem_object.h
drivers/gpu/drm/i915/gem/i915_gem_pages.c
drivers/gpu/drm/xe/display/xe_panic.c

index 4b415dfb5a6607c504f84b2c2ca01516bfa53a1e..c55855729628d3ae47da7e0b9d6f5a6b242b871d 100644 (file)
@@ -2343,7 +2343,22 @@ intel_user_framebuffer_create(struct drm_device *dev,
 
 struct intel_framebuffer *intel_framebuffer_alloc(void)
 {
-       return intel_bo_alloc_framebuffer();
+       struct intel_framebuffer *intel_fb;
+       struct intel_panic *panic;
+
+       intel_fb = kzalloc(sizeof(*intel_fb), GFP_KERNEL);
+       if (!intel_fb)
+               return NULL;
+
+       panic = intel_panic_alloc();
+       if (!panic) {
+               kfree(intel_fb);
+               return NULL;
+       }
+
+       intel_fb->panic = panic;
+
+       return intel_fb;
 }
 
 struct drm_framebuffer *
index 20eecb0f168f1709e9b546e3d56cbb871ae1d3f2..5431bd4d3a7dada4c790a9effd8285234b19b697 100644 (file)
@@ -4,9 +4,9 @@
 #include "gem/i915_gem_object.h"
 #include "intel_panic.h"
 
-struct intel_framebuffer *intel_bo_alloc_framebuffer(void)
+struct intel_panic *intel_panic_alloc(void)
 {
-       return i915_gem_object_alloc_framebuffer();
+       return i915_gem_object_alloc_panic();
 }
 
 int intel_panic_setup(struct drm_scanout_buffer *sb)
index 67ce253fcdf54a303d07337443659e0df6f9d940..45ce6104e6fb78b4b4b8c40f55937591d710d2bb 100644 (file)
@@ -6,8 +6,9 @@
 
 struct drm_scanout_buffer;
 struct intel_framebuffer;
+struct intel_panic;
 
-struct intel_framebuffer *intel_bo_alloc_framebuffer(void);
+struct intel_panic *intel_panic_alloc(void);
 int intel_panic_setup(struct drm_scanout_buffer *sb);
 void intel_panic_finish(struct intel_framebuffer *fb);
 
index 565f8fa330db6f1e19670fc5d13d253f16f27f02..9b3f25cb48db318ffcae10423048f670e59f550b 100644 (file)
 #include "i915_gem_ww.h"
 #include "i915_vma_types.h"
 
-struct drm_scanout_buffer;
 enum intel_region_id;
+struct drm_scanout_buffer;
 struct intel_framebuffer;
+struct intel_panic;
 
 #define obj_to_i915(obj__) to_i915((obj__)->base.dev)
 
@@ -693,7 +694,7 @@ i915_gem_object_unpin_pages(struct drm_i915_gem_object *obj)
 int __i915_gem_object_put_pages(struct drm_i915_gem_object *obj);
 int i915_gem_object_truncate(struct drm_i915_gem_object *obj);
 
-struct intel_framebuffer *i915_gem_object_alloc_framebuffer(void);
+struct intel_panic *i915_gem_object_alloc_panic(void);
 int i915_gem_object_panic_setup(struct drm_scanout_buffer *sb);
 void i915_gem_object_panic_finish(struct intel_framebuffer *fb);
 
index e36d60b785b1af123a280eb1fda8ea35ec2acf60..b219474aecc7799272ff5745fbb76910cc302ab8 100644 (file)
@@ -363,11 +363,6 @@ struct intel_panic {
        void *vaddr;
 };
 
-struct i915_framebuffer {
-       struct intel_framebuffer base;
-       struct intel_panic panic;
-};
-
 static void i915_panic_kunmap(struct intel_panic *panic)
 {
        if (panic->vaddr) {
@@ -436,17 +431,13 @@ static void i915_gem_object_panic_page_set_pixel(struct drm_scanout_buffer *sb,
        }
 }
 
-struct intel_framebuffer *i915_gem_object_alloc_framebuffer(void)
+struct intel_panic *i915_gem_object_alloc_panic(void)
 {
-       struct i915_framebuffer *i915_fb;
-
-       i915_fb = kzalloc(sizeof(*i915_fb), GFP_KERNEL);
-       if (!i915_fb)
-               return NULL;
+       struct intel_panic *panic;
 
-       i915_fb->base.panic = &i915_fb->panic;
+       panic = kzalloc(sizeof(*panic), GFP_KERNEL);
 
-       return &i915_fb->base;
+       return panic;
 }
 
 /*
index 3ef23a6795b30383866ab6e40ba56b0206c7df48..b5a7615708a10e1dc8014bfc1b6694ccb060da31 100644 (file)
@@ -15,11 +15,6 @@ struct intel_panic {
        void *vaddr;
 };
 
-struct xe_framebuffer {
-       struct intel_framebuffer base;
-       struct intel_panic panic;
-};
-
 static void xe_panic_kunmap(struct intel_panic *panic)
 {
        if (panic->vaddr) {
@@ -62,17 +57,13 @@ static void xe_panic_page_set_pixel(struct drm_scanout_buffer *sb, unsigned int
        }
 }
 
-struct intel_framebuffer *intel_bo_alloc_framebuffer(void)
+struct intel_panic *intel_panic_alloc(void)
 {
-       struct xe_framebuffer *xe_fb;
-
-       xe_fb = kzalloc(sizeof(*xe_fb), GFP_KERNEL);
-       if (!xe_fb)
-               return NULL;
+       struct intel_panic *panic;
 
-       xe_fb->base.panic = &xe_fb->panic;
+       panic = kzalloc(sizeof(*panic), GFP_KERNEL);
 
-       return &xe_fb->base;
+       return panic;
 }
 
 int intel_panic_setup(struct drm_scanout_buffer *sb)