Add check for the return value of alloc_ordered_workqueue() and alloc_workqueue() to catch potential exception.
Fixes: 40053823baad ("drm/i915/display: move modeset probe/remove functions to intel_display_driver.c") Cc: stable@vger.kernel.org Signed-off-by: Haoxiang Li haoxiang_li2024@163.com --- drivers/gpu/drm/i915/display/intel_display_driver.c | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_display_driver.c b/drivers/gpu/drm/i915/display/intel_display_driver.c index 50ec0c3c7588..dfe5b779aefd 100644 --- a/drivers/gpu/drm/i915/display/intel_display_driver.c +++ b/drivers/gpu/drm/i915/display/intel_display_driver.c @@ -245,6 +245,11 @@ int intel_display_driver_probe_noirq(struct intel_display *display) WQ_UNBOUND, WQ_UNBOUND_MAX_ACTIVE); display->wq.cleanup = alloc_workqueue("i915_cleanup", WQ_HIGHPRI, 0);
+ if (!display->wq.modeset || !display->wq.flip || !display->wq.cleanup) { + ret = -ENOMEM; + goto cleanup_vga_client_pw_domain_dmc; + } + intel_mode_config_init(display);
ret = intel_cdclk_init(display);
On Wed, 19 Feb 2025, Haoxiang Li haoxiang_li2024@163.com wrote:
Not really. That's just code movement.
Yes, we should check these, but if some of them succeed and some fail, we'll never destroy the workqueues whose allocation succeeded.
BR, Jani.
linux-stable-mirror@lists.linaro.org