public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
* [PATCH v1] i915/i915_driver: move intel_gvt_init() level higher
@ 2026-01-28 18:09 Michał Grzelak
  2026-01-28 19:09 ` ✗ i915.CI.BAT: failure for " Patchwork
  2026-01-28 19:21 ` [PATCH v1] " Jani Nikula
  0 siblings, 2 replies; 4+ messages in thread
From: Michał Grzelak @ 2026-01-28 18:09 UTC (permalink / raw)
  To: intel-gfx, intel-xe
  Cc: Jani Nikula, Andi Shyti, Krzysztof Karas, Sebastian Brzezinka,
	Krzysztof Niemiec, Janusz Krzysztofik, Michał Grzelak

i915_driver_probe() cannot currently handle error of intel_gvt_init()
because it is called from i915_driver_hw_probe(). Nevertheless, it's
error path is done in i915_driver_probe(). Fault of
i915_driver_hw_probe() thus causes list corruption, since
intel_gvt_driver_remove() was called twice.

Move intel_gvt_init() up to i915_driver_probe(). Adjust error path of
i915_driver_hw_probe() so that intel_gvt_driver_remove() is called
always once.

Signed-off-by: Michał Grzelak <michal.grzelak@intel.com>
---
 drivers/gpu/drm/i915/i915_driver.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
index 1e087dfe03d0..0f507b8ae2f1 100644
--- a/drivers/gpu/drm/i915/i915_driver.c
+++ b/drivers/gpu/drm/i915/i915_driver.c
@@ -557,10 +557,6 @@ static int i915_driver_hw_probe(struct drm_i915_private *dev_priv)
 			drm_dbg(&dev_priv->drm, "can't enable MSI");
 	}
 
-	ret = intel_gvt_init(dev_priv);
-	if (ret)
-		goto err_msi;
-
 	intel_opregion_setup(display);
 
 	ret = i915_pcode_init(dev_priv);
@@ -581,9 +577,6 @@ static int i915_driver_hw_probe(struct drm_i915_private *dev_priv)
 
 err_opregion:
 	intel_opregion_cleanup(display);
-err_msi:
-	if (pdev->msi_enabled)
-		pci_disable_msi(pdev);
 err_mem_regions:
 	intel_memory_regions_driver_release(dev_priv);
 err_ggtt:
@@ -870,9 +863,13 @@ int i915_driver_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	if (ret < 0)
 		goto out_cleanup_mmio;
 
+	ret = intel_gvt_init(i915);
+	if (ret)
+		goto out_cleanup_hw;
+
 	ret = intel_display_driver_probe_noirq(display);
 	if (ret < 0)
-		goto out_cleanup_hw;
+		goto out_cleanup_gvt;
 
 	ret = intel_irq_install(i915);
 	if (ret)
@@ -921,6 +918,10 @@ int i915_driver_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	intel_irq_uninstall(i915);
 out_cleanup_modeset:
 	intel_display_driver_remove_nogem(display);
+out_cleanup_gvt:
+	if (pdev->msi_enabled)
+		pci_disable_msi(pdev);
+	intel_gvt_driver_remove(i915);
 out_cleanup_hw:
 	i915_driver_hw_remove(i915);
 	intel_memory_regions_driver_release(i915);
@@ -928,7 +929,6 @@ int i915_driver_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	i915_gem_drain_freed_objects(i915);
 	i915_ggtt_driver_late_release(i915);
 out_cleanup_mmio:
-	intel_gvt_driver_remove(i915);
 	i915_driver_mmio_release(i915);
 out_runtime_pm_put:
 	enable_rpm_wakeref_asserts(&i915->runtime_pm);
-- 
2.45.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* ✗ i915.CI.BAT: failure for i915/i915_driver: move intel_gvt_init() level higher
  2026-01-28 18:09 [PATCH v1] i915/i915_driver: move intel_gvt_init() level higher Michał Grzelak
@ 2026-01-28 19:09 ` Patchwork
  2026-01-28 19:21 ` [PATCH v1] " Jani Nikula
  1 sibling, 0 replies; 4+ messages in thread
From: Patchwork @ 2026-01-28 19:09 UTC (permalink / raw)
  To: Michał Grzelak; +Cc: intel-gfx

[-- Attachment #1: Type: text/plain, Size: 6039 bytes --]

== Series Details ==

Series: i915/i915_driver: move intel_gvt_init() level higher
URL   : https://patchwork.freedesktop.org/series/160788/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_17900 -> Patchwork_160788v1
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_160788v1 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_160788v1, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_160788v1/index.html

Participating hosts (42 -> 41)
------------------------------

  Additional (1): bat-adls-6 
  Missing    (2): bat-dg2-13 fi-snb-2520m 

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in Patchwork_160788v1:

### IGT changes ###

#### Possible regressions ####

  * igt@i915_pm_rpm@module-reload:
    - bat-adlp-6:         [PASS][1] -> [DMESG-WARN][2] +78 other tests dmesg-warn
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17900/bat-adlp-6/igt@i915_pm_rpm@module-reload.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_160788v1/bat-adlp-6/igt@i915_pm_rpm@module-reload.html

  
Known issues
------------

  Here are the changes found in Patchwork_160788v1 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_lmem_swapping@parallel-random-engines:
    - bat-adls-6:         NOTRUN -> [SKIP][3] ([i915#4613]) +3 other tests skip
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_160788v1/bat-adls-6/igt@gem_lmem_swapping@parallel-random-engines.html

  * igt@gem_tiled_pread_basic:
    - bat-adls-6:         NOTRUN -> [SKIP][4] ([i915#3282])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_160788v1/bat-adls-6/igt@gem_tiled_pread_basic.html

  * igt@intel_hwmon@hwmon-read:
    - bat-adls-6:         NOTRUN -> [SKIP][5] ([i915#7707]) +1 other test skip
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_160788v1/bat-adls-6/igt@intel_hwmon@hwmon-read.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
    - bat-adls-6:         NOTRUN -> [SKIP][6] ([i915#4103]) +1 other test skip
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_160788v1/bat-adls-6/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html

  * igt@kms_dsc@dsc-basic:
    - bat-adls-6:         NOTRUN -> [SKIP][7] ([i915#3555] / [i915#3840])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_160788v1/bat-adls-6/igt@kms_dsc@dsc-basic.html

  * igt@kms_force_connector_basic@force-load-detect:
    - bat-adls-6:         NOTRUN -> [SKIP][8]
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_160788v1/bat-adls-6/igt@kms_force_connector_basic@force-load-detect.html

  * igt@kms_pm_backlight@basic-brightness:
    - bat-adls-6:         NOTRUN -> [SKIP][9] ([i915#5354])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_160788v1/bat-adls-6/igt@kms_pm_backlight@basic-brightness.html

  * igt@kms_psr@psr-primary-mmap-gtt:
    - bat-adls-6:         NOTRUN -> [SKIP][10] ([i915#1072] / [i915#9732]) +3 other tests skip
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_160788v1/bat-adls-6/igt@kms_psr@psr-primary-mmap-gtt.html

  * igt@kms_setmode@basic-clone-single-crtc:
    - bat-adls-6:         NOTRUN -> [SKIP][11] ([i915#3555])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_160788v1/bat-adls-6/igt@kms_setmode@basic-clone-single-crtc.html

  * igt@prime_vgem@basic-fence-read:
    - bat-adls-6:         NOTRUN -> [SKIP][12] ([i915#3291]) +2 other tests skip
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_160788v1/bat-adls-6/igt@prime_vgem@basic-fence-read.html

  
#### Possible fixes ####

  * igt@i915_selftest@live:
    - bat-mtlp-8:         [DMESG-FAIL][13] ([i915#12061]) -> [PASS][14] +1 other test pass
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17900/bat-mtlp-8/igt@i915_selftest@live.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_160788v1/bat-mtlp-8/igt@i915_selftest@live.html

  * igt@i915_selftest@live@workarounds:
    - bat-mtlp-9:         [DMESG-FAIL][15] ([i915#12061]) -> [PASS][16] +1 other test pass
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_17900/bat-mtlp-9/igt@i915_selftest@live@workarounds.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_160788v1/bat-mtlp-9/igt@i915_selftest@live@workarounds.html

  
  [i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
  [i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
  [i915#3282]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3282
  [i915#3291]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3291
  [i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
  [i915#3840]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3840
  [i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103
  [i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
  [i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354
  [i915#7707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7707
  [i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732


Build changes
-------------

  * Linux: CI_DRM_17900 -> Patchwork_160788v1

  CI-20190529: 20190529
  CI_DRM_17900: 8059f097e25f736bb3da09af6a9b283079abfd4f @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_8721: 3707bb4267de22a18d61b232c4ab5fbaf61db90c @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_160788v1: 8059f097e25f736bb3da09af6a9b283079abfd4f @ git://anongit.freedesktop.org/gfx-ci/linux

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_160788v1/index.html

[-- Attachment #2: Type: text/html, Size: 7131 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v1] i915/i915_driver: move intel_gvt_init() level higher
  2026-01-28 18:09 [PATCH v1] i915/i915_driver: move intel_gvt_init() level higher Michał Grzelak
  2026-01-28 19:09 ` ✗ i915.CI.BAT: failure for " Patchwork
@ 2026-01-28 19:21 ` Jani Nikula
  2026-01-28 23:11   ` Michał Grzelak
  1 sibling, 1 reply; 4+ messages in thread
From: Jani Nikula @ 2026-01-28 19:21 UTC (permalink / raw)
  To: Michał Grzelak, intel-gfx, intel-xe
  Cc: Andi Shyti, Krzysztof Karas, Sebastian Brzezinka,
	Krzysztof Niemiec, Janusz Krzysztofik, Michał Grzelak

On Wed, 28 Jan 2026, Michał Grzelak <michal.grzelak@intel.com> wrote:
> i915_driver_probe() cannot currently handle error of intel_gvt_init()
> because it is called from i915_driver_hw_probe(). Nevertheless, it's
> error path is done in i915_driver_probe(). Fault of
> i915_driver_hw_probe() thus causes list corruption, since
> intel_gvt_driver_remove() was called twice.
>
> Move intel_gvt_init() up to i915_driver_probe(). Adjust error path of
> i915_driver_hw_probe() so that intel_gvt_driver_remove() is called
> always once.
>
> Signed-off-by: Michał Grzelak <michal.grzelak@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_driver.c | 18 +++++++++---------
>  1 file changed, 9 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
> index 1e087dfe03d0..0f507b8ae2f1 100644
> --- a/drivers/gpu/drm/i915/i915_driver.c
> +++ b/drivers/gpu/drm/i915/i915_driver.c
> @@ -557,10 +557,6 @@ static int i915_driver_hw_probe(struct drm_i915_private *dev_priv)
>  			drm_dbg(&dev_priv->drm, "can't enable MSI");
>  	}
>  
> -	ret = intel_gvt_init(dev_priv);
> -	if (ret)
> -		goto err_msi;
> -
>  	intel_opregion_setup(display);
>  
>  	ret = i915_pcode_init(dev_priv);
> @@ -581,9 +577,6 @@ static int i915_driver_hw_probe(struct drm_i915_private *dev_priv)
>  
>  err_opregion:
>  	intel_opregion_cleanup(display);
> -err_msi:
> -	if (pdev->msi_enabled)
> -		pci_disable_msi(pdev);

Why's this being moved?

BR,
Jani.

>  err_mem_regions:
>  	intel_memory_regions_driver_release(dev_priv);
>  err_ggtt:
> @@ -870,9 +863,13 @@ int i915_driver_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
>  	if (ret < 0)
>  		goto out_cleanup_mmio;
>  
> +	ret = intel_gvt_init(i915);
> +	if (ret)
> +		goto out_cleanup_hw;
> +
>  	ret = intel_display_driver_probe_noirq(display);
>  	if (ret < 0)
> -		goto out_cleanup_hw;
> +		goto out_cleanup_gvt;
>  
>  	ret = intel_irq_install(i915);
>  	if (ret)
> @@ -921,6 +918,10 @@ int i915_driver_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
>  	intel_irq_uninstall(i915);
>  out_cleanup_modeset:
>  	intel_display_driver_remove_nogem(display);
> +out_cleanup_gvt:
> +	if (pdev->msi_enabled)
> +		pci_disable_msi(pdev);
> +	intel_gvt_driver_remove(i915);
>  out_cleanup_hw:
>  	i915_driver_hw_remove(i915);
>  	intel_memory_regions_driver_release(i915);
> @@ -928,7 +929,6 @@ int i915_driver_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
>  	i915_gem_drain_freed_objects(i915);
>  	i915_ggtt_driver_late_release(i915);
>  out_cleanup_mmio:
> -	intel_gvt_driver_remove(i915);
>  	i915_driver_mmio_release(i915);
>  out_runtime_pm_put:
>  	enable_rpm_wakeref_asserts(&i915->runtime_pm);

-- 
Jani Nikula, Intel

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v1] i915/i915_driver: move intel_gvt_init() level higher
  2026-01-28 19:21 ` [PATCH v1] " Jani Nikula
@ 2026-01-28 23:11   ` Michał Grzelak
  0 siblings, 0 replies; 4+ messages in thread
From: Michał Grzelak @ 2026-01-28 23:11 UTC (permalink / raw)
  To: Jani Nikula
  Cc: Michał Grzelak, intel-gfx, intel-xe, Andi Shyti,
	Krzysztof Karas, Sebastian Brzezinka, Krzysztof Niemiec,
	Janusz Krzysztofik

[-- Attachment #1: Type: text/plain, Size: 2955 bytes --]

On Wed, 28 Jan 2026, Jani Nikula wrote:
> On Wed, 28 Jan 2026, Michał Grzelak <michal.grzelak@intel.com> wrote:
>> i915_driver_probe() cannot currently handle error of intel_gvt_init()
>> because it is called from i915_driver_hw_probe(). Nevertheless, it's
>> error path is done in i915_driver_probe(). Fault of
>> i915_driver_hw_probe() thus causes list corruption, since
>> intel_gvt_driver_remove() was called twice.
>>
>> Move intel_gvt_init() up to i915_driver_probe(). Adjust error path of
>> i915_driver_hw_probe() so that intel_gvt_driver_remove() is called
>> always once.
>>
>> Signed-off-by: Michał Grzelak <michal.grzelak@intel.com>
>> ---
>>  drivers/gpu/drm/i915/i915_driver.c | 18 +++++++++---------
>>  1 file changed, 9 insertions(+), 9 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_driver.c b/drivers/gpu/drm/i915/i915_driver.c
>> index 1e087dfe03d0..0f507b8ae2f1 100644
>> --- a/drivers/gpu/drm/i915/i915_driver.c
>> +++ b/drivers/gpu/drm/i915/i915_driver.c
>> @@ -557,10 +557,6 @@ static int i915_driver_hw_probe(struct drm_i915_private *dev_priv)
>>  			drm_dbg(&dev_priv->drm, "can't enable MSI");
>>  	}
>>
>> -	ret = intel_gvt_init(dev_priv);
>> -	if (ret)
>> -		goto err_msi;
>> -
>>  	intel_opregion_setup(display);
>>
>>  	ret = i915_pcode_init(dev_priv);
>> @@ -581,9 +577,6 @@ static int i915_driver_hw_probe(struct drm_i915_private *dev_priv)
>>
>>  err_opregion:
>>  	intel_opregion_cleanup(display);
>> -err_msi:
>> -	if (pdev->msi_enabled)
>> -		pci_disable_msi(pdev);
>
> Why's this being moved?
>

No sane reason, it's me overlooking err_opregion error path.
Will fix it in next version.

BR,
Michał

>>  err_mem_regions:
>>  	intel_memory_regions_driver_release(dev_priv);
>>  err_ggtt:
>> @@ -870,9 +863,13 @@ int i915_driver_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
>>  	if (ret < 0)
>>  		goto out_cleanup_mmio;
>>
>> +	ret = intel_gvt_init(i915);
>> +	if (ret)
>> +		goto out_cleanup_hw;
>> +
>>  	ret = intel_display_driver_probe_noirq(display);
>>  	if (ret < 0)
>> -		goto out_cleanup_hw;
>> +		goto out_cleanup_gvt;
>>
>>  	ret = intel_irq_install(i915);
>>  	if (ret)
>> @@ -921,6 +918,10 @@ int i915_driver_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
>>  	intel_irq_uninstall(i915);
>>  out_cleanup_modeset:
>>  	intel_display_driver_remove_nogem(display);
>> +out_cleanup_gvt:
>> +	if (pdev->msi_enabled)
>> +		pci_disable_msi(pdev);
>> +	intel_gvt_driver_remove(i915);
>>  out_cleanup_hw:
>>  	i915_driver_hw_remove(i915);
>>  	intel_memory_regions_driver_release(i915);
>> @@ -928,7 +929,6 @@ int i915_driver_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
>>  	i915_gem_drain_freed_objects(i915);
>>  	i915_ggtt_driver_late_release(i915);
>>  out_cleanup_mmio:
>> -	intel_gvt_driver_remove(i915);
>>  	i915_driver_mmio_release(i915);
>>  out_runtime_pm_put:
>>  	enable_rpm_wakeref_asserts(&i915->runtime_pm);
>
> -- 
> Jani Nikula, Intel
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-01-28 23:11 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-28 18:09 [PATCH v1] i915/i915_driver: move intel_gvt_init() level higher Michał Grzelak
2026-01-28 19:09 ` ✗ i915.CI.BAT: failure for " Patchwork
2026-01-28 19:21 ` [PATCH v1] " Jani Nikula
2026-01-28 23:11   ` Michał Grzelak

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox