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