Commit afd30ace authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'drm-intel-fixes-2025-07-03' of...

Merge tag 'drm-intel-fixes-2025-07-03' of https://gitlab.freedesktop.org/drm/i915/kernel

 into drm-fixes

- Make mei interrupt top half irq disabled to fix RT builds
- Fix timeline left held on VMA alloc error
- Fix NULL pointer deref in vlv_dphy_param_init()
- Fix selftest mock_request() to avoid NULL deref

Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
From: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: https://lore.kernel.org/r/aGYVPAA4KvsZqDFx@jlahtine-mobl
parents b91e11ec 8cadce97
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1589,8 +1589,8 @@ static void vlv_dsi_add_properties(struct intel_connector *connector)

static void vlv_dphy_param_init(struct intel_dsi *intel_dsi)
{
	struct intel_display *display = to_intel_display(&intel_dsi->base);
	struct intel_connector *connector = intel_dsi->attached_connector;
	struct intel_display *display = to_intel_display(connector);
	struct mipi_config *mipi_config = connector->panel.vbt.dsi.config;
	u32 tlpx_ns, extra_byte_count, tlpx_ui;
	u32 ui_num, ui_den;
+1 −1
Original line number Diff line number Diff line
@@ -284,7 +284,7 @@ static void gsc_irq_handler(struct intel_gt *gt, unsigned int intf_id)
	if (gt->gsc.intf[intf_id].irq < 0)
		return;

	ret = generic_handle_irq(gt->gsc.intf[intf_id].irq);
	ret = generic_handle_irq_safe(gt->gsc.intf[intf_id].irq);
	if (ret)
		gt_err_ratelimited(gt, "error handling GSC irq: %d\n", ret);
}
+2 −1
Original line number Diff line number Diff line
@@ -610,7 +610,6 @@ static int ring_context_alloc(struct intel_context *ce)
	/* One ringbuffer to rule them all */
	GEM_BUG_ON(!engine->legacy.ring);
	ce->ring = engine->legacy.ring;
	ce->timeline = intel_timeline_get(engine->legacy.timeline);

	GEM_BUG_ON(ce->state);
	if (engine->context_size) {
@@ -623,6 +622,8 @@ static int ring_context_alloc(struct intel_context *ce)
		ce->state = vma;
	}

	ce->timeline = intel_timeline_get(engine->legacy.timeline);

	return 0;
}

+10 −10
Original line number Diff line number Diff line
@@ -73,8 +73,8 @@ static int igt_add_request(void *arg)
	/* Basic preliminary test to create a request and let it loose! */

	request = mock_request(rcs0(i915)->kernel_context, HZ / 10);
	if (!request)
		return -ENOMEM;
	if (IS_ERR(request))
		return PTR_ERR(request);

	i915_request_add(request);

@@ -91,8 +91,8 @@ static int igt_wait_request(void *arg)
	/* Submit a request, then wait upon it */

	request = mock_request(rcs0(i915)->kernel_context, T);
	if (!request)
		return -ENOMEM;
	if (IS_ERR(request))
		return PTR_ERR(request);

	i915_request_get(request);

@@ -160,8 +160,8 @@ static int igt_fence_wait(void *arg)
	/* Submit a request, treat it as a fence and wait upon it */

	request = mock_request(rcs0(i915)->kernel_context, T);
	if (!request)
		return -ENOMEM;
	if (IS_ERR(request))
		return PTR_ERR(request);

	if (dma_fence_wait_timeout(&request->fence, false, T) != -ETIME) {
		pr_err("fence wait success before submit (expected timeout)!\n");
@@ -219,8 +219,8 @@ static int igt_request_rewind(void *arg)
	GEM_BUG_ON(IS_ERR(ce));
	request = mock_request(ce, 2 * HZ);
	intel_context_put(ce);
	if (!request) {
		err = -ENOMEM;
	if (IS_ERR(request)) {
		err = PTR_ERR(request);
		goto err_context_0;
	}

@@ -237,8 +237,8 @@ static int igt_request_rewind(void *arg)
	GEM_BUG_ON(IS_ERR(ce));
	vip = mock_request(ce, 0);
	intel_context_put(ce);
	if (!vip) {
		err = -ENOMEM;
	if (IS_ERR(vip)) {
		err = PTR_ERR(vip);
		goto err_context_1;
	}

+1 −1
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@ mock_request(struct intel_context *ce, unsigned long delay)
	/* NB the i915->requests slab cache is enlarged to fit mock_request */
	request = intel_context_create_request(ce);
	if (IS_ERR(request))
		return NULL;
		return request;

	request->mock.delay = delay;
	return request;