* [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