All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915/hwmon: Fix potential UAF on driver unbind
@ 2024-03-22 18:54 Janusz Krzysztofik
  2024-03-22 20:43 ` Ville Syrjälä
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Janusz Krzysztofik @ 2024-03-22 18:54 UTC (permalink / raw)
  To: intel-gfx
  Cc: dri-devel, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi,
	Tvrtko Ursulin, Ashutosh Dixit, Dale B Stimson, Anshuman Gupta,
	Riana Tauro, Andi Shyti, Janusz Krzysztofik

Hwmon is registered as a managed resource of i915.  Its functionality
depends of availability of i915 uncore.

On i915 unbind, we now block i915 access to hwmon, but leave i915 uncore
still available to hwmon.  Since uncore structures may be freed before
hwmon is actually unregistered, that may lead to UAF if someone is still
using hwmon sysfs interface:

<7> [469.045388] i915 0000:03:00.0: [drm] intel_gt_set_wedged called from intel_gt_set_wedged_on_fini+0xd/0x30 [i915]
<7> [469.120600] i915 0000:03:00.0: [drm:drm_client_release] drm_fb_helper
<4> [469.188183] general protection fault, probably for non-canonical address 0x6b6b6b6b6b6b6dbf: 0000 [#1] PREEMPT SMP NOPTI
<4> [469.198970] CPU: 4 PID: 451 Comm: prometheus-node Tainted: G     U             6.8.0-CI_DRM_14465-g198e9d7559f7+ #1
<4> [469.209321] Hardware name: Intel Corporation Raptor Lake Client Platform/RPL-S ADP-S DDR5 UDIMM CRB, BIOS RPLSFWI1.R00.4221.A00.2305271351 05/27/2023
<4> [469.222589] RIP: 0010:hwm_energy+0x2b/0x100 [i915]
<4> [469.227527] Code: 48 89 e5 41 57 41 56 41 55 41 54 53 48 89 fb 48 83 e4 f0 48 83 ec 10 4c 8b 77 08 4c 8b 2f 8b 7f 34 48 89 74 24 08 85 ff 78 2b <45> 8b bd 54 02 00 00 49 8b 7e 18 e8 35 df ea ff 49 89 c4 48 85 c0
<4> [469.246119] RSP: 0018:ffffc90007aa7d00 EFLAGS: 00010202
<4> [469.251314] RAX: 0000000000000000 RBX: ffff88812b4b5828 RCX: 0000000000000000
<4> [469.258396] RDX: 0000000000000001 RSI: ffffc90007aa7da0 RDI: 000000006b6b6b6b
<4> [469.265478] RBP: ffffc90007aa7d40 R08: ffffc90007aa7da0 R09: 0000000000000001
<4> [469.272559] R10: 0000000000000001 R11: ffff88811889d340 R12: ffff88810e088810
<4> [469.279641] R13: 6b6b6b6b6b6b6b6b R14: 6b6b6b6b6b6b6b6b R15: ffff88812b4b5828
<4> [469.286722] FS:  00007f7b9c800700(0000) GS:ffff88888d000000(0000) knlGS:0000000000000000
<4> [469.294749] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
<4> [469.300454] CR2: 0000561a5fb45d88 CR3: 0000000111ff0000 CR4: 0000000000f50ef0
<4> [469.307535] PKRU: 55555554
<4> [469.310237] Call Trace:
<4> [469.312678]  <TASK>
<4> [469.335396]  hwm_read+0x9a/0x310 [i915]
<4> [469.339342]  hwmon_attr_show+0x36/0x120
<4> [469.343163]  dev_attr_show+0x15/0x60
<4> [469.346723]  sysfs_kf_seq_show+0xb5/0x100

Reset pointers to uncore in hwmon when unregistering i915, and teach hwmon
sysfs accessors to start with checking validity of those pointers and fail
immediately if no longer valid.

Suggested-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Fixes: b3b088e28183 ("drm/i915/hwmon: Add HWMON infrastructure")
Closes: https://gitlab.freedesktop.org/drm/intel/issues/10366
Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
Cc: Dale B Stimson <dale.b.stimson@intel.com>
Cc: Anshuman Gupta <anshuman.gupta@intel.com>
Cc: Riana Tauro <riana.tauro@intel.com>
Cc: <stable@vger.kernel.org> # v6.2+
---
 drivers/gpu/drm/i915/i915_hwmon.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_hwmon.c b/drivers/gpu/drm/i915/i915_hwmon.c
index b758fd110c204..f5c1d04dae054 100644
--- a/drivers/gpu/drm/i915/i915_hwmon.c
+++ b/drivers/gpu/drm/i915/i915_hwmon.c
@@ -619,6 +619,9 @@ hwm_is_visible(const void *drvdata, enum hwmon_sensor_types type,
 {
 	struct hwm_drvdata *ddat = (struct hwm_drvdata *)drvdata;
 
+	if (!ddat->uncore)
+		return 0;
+
 	switch (type) {
 	case hwmon_in:
 		return hwm_in_is_visible(ddat, attr);
@@ -639,6 +642,9 @@ hwm_read(struct device *dev, enum hwmon_sensor_types type, u32 attr,
 {
 	struct hwm_drvdata *ddat = dev_get_drvdata(dev);
 
+	if (!ddat->uncore)
+		return -ENXIO;
+
 	switch (type) {
 	case hwmon_in:
 		return hwm_in_read(ddat, attr, val);
@@ -659,6 +665,9 @@ hwm_write(struct device *dev, enum hwmon_sensor_types type, u32 attr,
 {
 	struct hwm_drvdata *ddat = dev_get_drvdata(dev);
 
+	if (!ddat->uncore)
+		return -ENXIO;
+
 	switch (type) {
 	case hwmon_power:
 		return hwm_power_write(ddat, attr, channel, val);
@@ -686,6 +695,9 @@ hwm_gt_is_visible(const void *drvdata, enum hwmon_sensor_types type,
 {
 	struct hwm_drvdata *ddat = (struct hwm_drvdata *)drvdata;
 
+	if (!ddat->uncore)
+		return 0;
+
 	switch (type) {
 	case hwmon_energy:
 		return hwm_energy_is_visible(ddat, attr);
@@ -700,6 +712,9 @@ hwm_gt_read(struct device *dev, enum hwmon_sensor_types type, u32 attr,
 {
 	struct hwm_drvdata *ddat = dev_get_drvdata(dev);
 
+	if (!ddat->uncore)
+		return -ENXIO;
+
 	switch (type) {
 	case hwmon_energy:
 		return hwm_energy_read(ddat, attr, val);
@@ -850,5 +865,14 @@ void i915_hwmon_register(struct drm_i915_private *i915)
 
 void i915_hwmon_unregister(struct drm_i915_private *i915)
 {
+	struct i915_hwmon *hwmon = i915->hwmon;
+	struct intel_gt *gt;
+	int i;
+
+	for_each_gt(gt, i915, i)
+		fetch_and_zero(&hwmon->ddat_gt[i].uncore);
+
+	fetch_and_zero(&hwmon->ddat.uncore);
+
 	fetch_and_zero(&i915->hwmon);
 }
-- 
2.43.0


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

* Re: [PATCH] drm/i915/hwmon: Fix potential UAF on driver unbind
  2024-03-22 18:54 [PATCH] drm/i915/hwmon: Fix potential UAF on driver unbind Janusz Krzysztofik
@ 2024-03-22 20:43 ` Ville Syrjälä
  2024-03-25  9:59   ` Jani Nikula
  2024-03-23  2:11 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
  2024-03-23  2:25 ` ✗ Fi.CI.BAT: failure " Patchwork
  2 siblings, 1 reply; 5+ messages in thread
From: Ville Syrjälä @ 2024-03-22 20:43 UTC (permalink / raw)
  To: Janusz Krzysztofik
  Cc: intel-gfx, dri-devel, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi,
	Tvrtko Ursulin, Ashutosh Dixit, Dale B Stimson, Anshuman Gupta,
	Riana Tauro, Andi Shyti

On Fri, Mar 22, 2024 at 07:54:03PM +0100, Janusz Krzysztofik wrote:
> Hwmon is registered as a managed resource of i915.  Its functionality
> depends of availability of i915 uncore.

Instead of polluting all code with this junk I think
either fixing the devm stuff, or just getting rid of it
if it's unfixable would be preferable.

> 
> On i915 unbind, we now block i915 access to hwmon, but leave i915 uncore
> still available to hwmon.  Since uncore structures may be freed before
> hwmon is actually unregistered, that may lead to UAF if someone is still
> using hwmon sysfs interface:
> 
> <7> [469.045388] i915 0000:03:00.0: [drm] intel_gt_set_wedged called from intel_gt_set_wedged_on_fini+0xd/0x30 [i915]
> <7> [469.120600] i915 0000:03:00.0: [drm:drm_client_release] drm_fb_helper
> <4> [469.188183] general protection fault, probably for non-canonical address 0x6b6b6b6b6b6b6dbf: 0000 [#1] PREEMPT SMP NOPTI
> <4> [469.198970] CPU: 4 PID: 451 Comm: prometheus-node Tainted: G     U             6.8.0-CI_DRM_14465-g198e9d7559f7+ #1
> <4> [469.209321] Hardware name: Intel Corporation Raptor Lake Client Platform/RPL-S ADP-S DDR5 UDIMM CRB, BIOS RPLSFWI1.R00.4221.A00.2305271351 05/27/2023
> <4> [469.222589] RIP: 0010:hwm_energy+0x2b/0x100 [i915]
> <4> [469.227527] Code: 48 89 e5 41 57 41 56 41 55 41 54 53 48 89 fb 48 83 e4 f0 48 83 ec 10 4c 8b 77 08 4c 8b 2f 8b 7f 34 48 89 74 24 08 85 ff 78 2b <45> 8b bd 54 02 00 00 49 8b 7e 18 e8 35 df ea ff 49 89 c4 48 85 c0
> <4> [469.246119] RSP: 0018:ffffc90007aa7d00 EFLAGS: 00010202
> <4> [469.251314] RAX: 0000000000000000 RBX: ffff88812b4b5828 RCX: 0000000000000000
> <4> [469.258396] RDX: 0000000000000001 RSI: ffffc90007aa7da0 RDI: 000000006b6b6b6b
> <4> [469.265478] RBP: ffffc90007aa7d40 R08: ffffc90007aa7da0 R09: 0000000000000001
> <4> [469.272559] R10: 0000000000000001 R11: ffff88811889d340 R12: ffff88810e088810
> <4> [469.279641] R13: 6b6b6b6b6b6b6b6b R14: 6b6b6b6b6b6b6b6b R15: ffff88812b4b5828
> <4> [469.286722] FS:  00007f7b9c800700(0000) GS:ffff88888d000000(0000) knlGS:0000000000000000
> <4> [469.294749] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> <4> [469.300454] CR2: 0000561a5fb45d88 CR3: 0000000111ff0000 CR4: 0000000000f50ef0
> <4> [469.307535] PKRU: 55555554
> <4> [469.310237] Call Trace:
> <4> [469.312678]  <TASK>
> <4> [469.335396]  hwm_read+0x9a/0x310 [i915]
> <4> [469.339342]  hwmon_attr_show+0x36/0x120
> <4> [469.343163]  dev_attr_show+0x15/0x60
> <4> [469.346723]  sysfs_kf_seq_show+0xb5/0x100
> 
> Reset pointers to uncore in hwmon when unregistering i915, and teach hwmon
> sysfs accessors to start with checking validity of those pointers and fail
> immediately if no longer valid.
> 
> Suggested-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
> Fixes: b3b088e28183 ("drm/i915/hwmon: Add HWMON infrastructure")
> Closes: https://gitlab.freedesktop.org/drm/intel/issues/10366
> Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
> Cc: Dale B Stimson <dale.b.stimson@intel.com>
> Cc: Anshuman Gupta <anshuman.gupta@intel.com>
> Cc: Riana Tauro <riana.tauro@intel.com>
> Cc: <stable@vger.kernel.org> # v6.2+
> ---
>  drivers/gpu/drm/i915/i915_hwmon.c | 24 ++++++++++++++++++++++++
>  1 file changed, 24 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/i915_hwmon.c b/drivers/gpu/drm/i915/i915_hwmon.c
> index b758fd110c204..f5c1d04dae054 100644
> --- a/drivers/gpu/drm/i915/i915_hwmon.c
> +++ b/drivers/gpu/drm/i915/i915_hwmon.c
> @@ -619,6 +619,9 @@ hwm_is_visible(const void *drvdata, enum hwmon_sensor_types type,
>  {
>  	struct hwm_drvdata *ddat = (struct hwm_drvdata *)drvdata;
>  
> +	if (!ddat->uncore)
> +		return 0;
> +
>  	switch (type) {
>  	case hwmon_in:
>  		return hwm_in_is_visible(ddat, attr);
> @@ -639,6 +642,9 @@ hwm_read(struct device *dev, enum hwmon_sensor_types type, u32 attr,
>  {
>  	struct hwm_drvdata *ddat = dev_get_drvdata(dev);
>  
> +	if (!ddat->uncore)
> +		return -ENXIO;
> +
>  	switch (type) {
>  	case hwmon_in:
>  		return hwm_in_read(ddat, attr, val);
> @@ -659,6 +665,9 @@ hwm_write(struct device *dev, enum hwmon_sensor_types type, u32 attr,
>  {
>  	struct hwm_drvdata *ddat = dev_get_drvdata(dev);
>  
> +	if (!ddat->uncore)
> +		return -ENXIO;
> +
>  	switch (type) {
>  	case hwmon_power:
>  		return hwm_power_write(ddat, attr, channel, val);
> @@ -686,6 +695,9 @@ hwm_gt_is_visible(const void *drvdata, enum hwmon_sensor_types type,
>  {
>  	struct hwm_drvdata *ddat = (struct hwm_drvdata *)drvdata;
>  
> +	if (!ddat->uncore)
> +		return 0;
> +
>  	switch (type) {
>  	case hwmon_energy:
>  		return hwm_energy_is_visible(ddat, attr);
> @@ -700,6 +712,9 @@ hwm_gt_read(struct device *dev, enum hwmon_sensor_types type, u32 attr,
>  {
>  	struct hwm_drvdata *ddat = dev_get_drvdata(dev);
>  
> +	if (!ddat->uncore)
> +		return -ENXIO;
> +
>  	switch (type) {
>  	case hwmon_energy:
>  		return hwm_energy_read(ddat, attr, val);
> @@ -850,5 +865,14 @@ void i915_hwmon_register(struct drm_i915_private *i915)
>  
>  void i915_hwmon_unregister(struct drm_i915_private *i915)
>  {
> +	struct i915_hwmon *hwmon = i915->hwmon;
> +	struct intel_gt *gt;
> +	int i;
> +
> +	for_each_gt(gt, i915, i)
> +		fetch_and_zero(&hwmon->ddat_gt[i].uncore);
> +
> +	fetch_and_zero(&hwmon->ddat.uncore);
> +
>  	fetch_and_zero(&i915->hwmon);
>  }
> -- 
> 2.43.0

-- 
Ville Syrjälä
Intel

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

* ✗ Fi.CI.CHECKPATCH: warning for drm/i915/hwmon: Fix potential UAF on driver unbind
  2024-03-22 18:54 [PATCH] drm/i915/hwmon: Fix potential UAF on driver unbind Janusz Krzysztofik
  2024-03-22 20:43 ` Ville Syrjälä
@ 2024-03-23  2:11 ` Patchwork
  2024-03-23  2:25 ` ✗ Fi.CI.BAT: failure " Patchwork
  2 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2024-03-23  2:11 UTC (permalink / raw)
  To: Janusz Krzysztofik; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/hwmon: Fix potential UAF on driver unbind
URL   : https://patchwork.freedesktop.org/series/131510/
State : warning

== Summary ==

Error: dim checkpatch failed
e9dc7c7ce3c7 drm/i915/hwmon: Fix potential UAF on driver unbind
-:14: WARNING:COMMIT_LOG_LONG_LINE: Prefer a maximum 75 chars per line (possible unwrapped commit description?)
#14: 
<7> [469.045388] i915 0000:03:00.0: [drm] intel_gt_set_wedged called from intel_gt_set_wedged_on_fini+0xd/0x30 [i915]

total: 0 errors, 1 warnings, 0 checks, 59 lines checked



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

* ✗ Fi.CI.BAT: failure for drm/i915/hwmon: Fix potential UAF on driver unbind
  2024-03-22 18:54 [PATCH] drm/i915/hwmon: Fix potential UAF on driver unbind Janusz Krzysztofik
  2024-03-22 20:43 ` Ville Syrjälä
  2024-03-23  2:11 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
@ 2024-03-23  2:25 ` Patchwork
  2 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2024-03-23  2:25 UTC (permalink / raw)
  To: Janusz Krzysztofik; +Cc: intel-gfx

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

== Series Details ==

Series: drm/i915/hwmon: Fix potential UAF on driver unbind
URL   : https://patchwork.freedesktop.org/series/131510/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_14474 -> Patchwork_131510v1
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_131510v1 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_131510v1, 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_131510v1/index.html

Participating hosts (39 -> 36)
------------------------------

  Missing    (3): fi-glk-j4005 fi-snb-2520m fi-kbl-8809g 

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@core_hotunplug@unbind-rebind:
    - bat-arls-1:         [PASS][1] -> [ABORT][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14474/bat-arls-1/igt@core_hotunplug@unbind-rebind.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-arls-1/igt@core_hotunplug@unbind-rebind.html
    - bat-arls-3:         NOTRUN -> [ABORT][3]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-arls-3/igt@core_hotunplug@unbind-rebind.html
    - bat-rpls-3:         [PASS][4] -> [ABORT][5]
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14474/bat-rpls-3/igt@core_hotunplug@unbind-rebind.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-rpls-3/igt@core_hotunplug@unbind-rebind.html
    - bat-adls-6:         [PASS][6] -> [ABORT][7]
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14474/bat-adls-6/igt@core_hotunplug@unbind-rebind.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-adls-6/igt@core_hotunplug@unbind-rebind.html
    - fi-pnv-d510:        [PASS][8] -> [ABORT][9]
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14474/fi-pnv-d510/igt@core_hotunplug@unbind-rebind.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/fi-pnv-d510/igt@core_hotunplug@unbind-rebind.html
    - bat-jsl-3:          [PASS][10] -> [ABORT][11]
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14474/bat-jsl-3/igt@core_hotunplug@unbind-rebind.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-jsl-3/igt@core_hotunplug@unbind-rebind.html
    - fi-kbl-7567u:       [PASS][12] -> [ABORT][13]
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14474/fi-kbl-7567u/igt@core_hotunplug@unbind-rebind.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/fi-kbl-7567u/igt@core_hotunplug@unbind-rebind.html
    - bat-adln-1:         [PASS][14] -> [ABORT][15]
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14474/bat-adln-1/igt@core_hotunplug@unbind-rebind.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-adln-1/igt@core_hotunplug@unbind-rebind.html
    - fi-ivb-3770:        [PASS][16] -> [ABORT][17]
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14474/fi-ivb-3770/igt@core_hotunplug@unbind-rebind.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/fi-ivb-3770/igt@core_hotunplug@unbind-rebind.html
    - fi-elk-e7500:       [PASS][18] -> [ABORT][19]
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14474/fi-elk-e7500/igt@core_hotunplug@unbind-rebind.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/fi-elk-e7500/igt@core_hotunplug@unbind-rebind.html
    - fi-bsw-nick:        [PASS][20] -> [ABORT][21]
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14474/fi-bsw-nick/igt@core_hotunplug@unbind-rebind.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/fi-bsw-nick/igt@core_hotunplug@unbind-rebind.html
    - fi-kbl-guc:         [PASS][22] -> [ABORT][23]
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14474/fi-kbl-guc/igt@core_hotunplug@unbind-rebind.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/fi-kbl-guc/igt@core_hotunplug@unbind-rebind.html
    - bat-adlm-1:         [PASS][24] -> [ABORT][25]
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14474/bat-adlm-1/igt@core_hotunplug@unbind-rebind.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-adlm-1/igt@core_hotunplug@unbind-rebind.html
    - bat-rplp-1:         [PASS][26] -> [ABORT][27]
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14474/bat-rplp-1/igt@core_hotunplug@unbind-rebind.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-rplp-1/igt@core_hotunplug@unbind-rebind.html
    - fi-ilk-650:         [PASS][28] -> [ABORT][29]
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14474/fi-ilk-650/igt@core_hotunplug@unbind-rebind.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/fi-ilk-650/igt@core_hotunplug@unbind-rebind.html

  * igt@i915_selftest@live@gt_engines:
    - bat-dg2-14:         [PASS][30] -> [INCOMPLETE][31]
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14474/bat-dg2-14/igt@i915_selftest@live@gt_engines.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-dg2-14/igt@i915_selftest@live@gt_engines.html

  * igt@i915_selftest@live@gt_timelines:
    - bat-dg2-11:         NOTRUN -> [ABORT][32]
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-dg2-11/igt@i915_selftest@live@gt_timelines.html

  * igt@i915_selftest@live@requests:
    - bat-atsm-1:         [PASS][33] -> [INCOMPLETE][34]
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14474/bat-atsm-1/igt@i915_selftest@live@requests.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-atsm-1/igt@i915_selftest@live@requests.html

  * igt@i915_selftest@live@uncore:
    - bat-dg2-8:          NOTRUN -> [INCOMPLETE][35]
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-dg2-8/igt@i915_selftest@live@uncore.html

  
#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@core_hotunplug@unbind-rebind:
    - {bat-arls-4}:       [PASS][36] -> [ABORT][37]
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14474/bat-arls-4/igt@core_hotunplug@unbind-rebind.html
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-arls-4/igt@core_hotunplug@unbind-rebind.html

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

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

### CI changes ###

#### Issues hit ####

  * boot:
    - bat-jsl-1:          [PASS][38] -> [FAIL][39] ([i915#8293])
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14474/bat-jsl-1/boot.html
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-jsl-1/boot.html
    - fi-cfl-8109u:       [PASS][40] -> [FAIL][41] ([i915#8293])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14474/fi-cfl-8109u/boot.html
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/fi-cfl-8109u/boot.html

  
#### Possible fixes ####

  * boot:
    - bat-arls-3:         [FAIL][42] ([i915#10234]) -> [PASS][43]
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14474/bat-arls-3/boot.html
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-arls-3/boot.html
    - bat-dg2-11:         [FAIL][44] ([i915#10491]) -> [PASS][45]
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14474/bat-dg2-11/boot.html
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-dg2-11/boot.html

  

### IGT changes ###

#### Issues hit ####

  * igt@core_hotunplug@unbind-rebind:
    - fi-cfl-guc:         [PASS][46] -> [ABORT][47] ([i915#8213])
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14474/fi-cfl-guc/igt@core_hotunplug@unbind-rebind.html
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/fi-cfl-guc/igt@core_hotunplug@unbind-rebind.html
    - bat-mtlp-6:         NOTRUN -> [ABORT][48] ([i915#8213])
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-mtlp-6/igt@core_hotunplug@unbind-rebind.html
    - fi-kbl-x1275:       [PASS][49] -> [ABORT][50] ([i915#8213])
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14474/fi-kbl-x1275/igt@core_hotunplug@unbind-rebind.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/fi-kbl-x1275/igt@core_hotunplug@unbind-rebind.html
    - bat-adlp-11:        [PASS][51] -> [ABORT][52] ([i915#8213])
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14474/bat-adlp-11/igt@core_hotunplug@unbind-rebind.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-adlp-11/igt@core_hotunplug@unbind-rebind.html
    - bat-mtlp-8:         [PASS][53] -> [ABORT][54] ([i915#8213])
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14474/bat-mtlp-8/igt@core_hotunplug@unbind-rebind.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-mtlp-8/igt@core_hotunplug@unbind-rebind.html
    - fi-cfl-8700k:       [PASS][55] -> [ABORT][56] ([i915#8213])
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14474/fi-cfl-8700k/igt@core_hotunplug@unbind-rebind.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/fi-cfl-8700k/igt@core_hotunplug@unbind-rebind.html
    - bat-adlp-6:         [PASS][57] -> [ABORT][58] ([i915#8213])
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14474/bat-adlp-6/igt@core_hotunplug@unbind-rebind.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-adlp-6/igt@core_hotunplug@unbind-rebind.html
    - fi-rkl-11600:       [PASS][59] -> [ABORT][60] ([i915#8213])
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14474/fi-rkl-11600/igt@core_hotunplug@unbind-rebind.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/fi-rkl-11600/igt@core_hotunplug@unbind-rebind.html
    - bat-adlp-9:         [PASS][61] -> [ABORT][62] ([i915#8213])
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14474/bat-adlp-9/igt@core_hotunplug@unbind-rebind.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-adlp-9/igt@core_hotunplug@unbind-rebind.html
    - fi-tgl-1115g4:      [PASS][63] -> [ABORT][64] ([i915#8213])
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14474/fi-tgl-1115g4/igt@core_hotunplug@unbind-rebind.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/fi-tgl-1115g4/igt@core_hotunplug@unbind-rebind.html

  * igt@debugfs_test@basic-hwmon:
    - bat-arls-3:         NOTRUN -> [SKIP][65] ([i915#9318])
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-arls-3/igt@debugfs_test@basic-hwmon.html

  * igt@gem_mmap@basic:
    - bat-dg2-11:         NOTRUN -> [SKIP][66] ([i915#4083])
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-dg2-11/igt@gem_mmap@basic.html
    - bat-arls-3:         NOTRUN -> [SKIP][67] ([i915#4083])
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-arls-3/igt@gem_mmap@basic.html

  * igt@gem_render_tiled_blits@basic:
    - bat-arls-3:         NOTRUN -> [SKIP][68] ([i915#10197] / [i915#10211] / [i915#4079])
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-arls-3/igt@gem_render_tiled_blits@basic.html

  * igt@gem_tiled_blits@basic:
    - bat-arls-3:         NOTRUN -> [SKIP][69] ([i915#10196] / [i915#4077]) +2 other tests skip
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-arls-3/igt@gem_tiled_blits@basic.html

  * igt@gem_tiled_fence_blits@basic:
    - bat-dg2-11:         NOTRUN -> [SKIP][70] ([i915#4077]) +2 other tests skip
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-dg2-11/igt@gem_tiled_fence_blits@basic.html

  * igt@gem_tiled_pread_basic:
    - bat-dg2-11:         NOTRUN -> [SKIP][71] ([i915#4079]) +1 other test skip
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-dg2-11/igt@gem_tiled_pread_basic.html
    - bat-arls-3:         NOTRUN -> [SKIP][72] ([i915#10206] / [i915#4079])
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-arls-3/igt@gem_tiled_pread_basic.html

  * igt@i915_pm_rps@basic-api:
    - bat-dg2-11:         NOTRUN -> [SKIP][73] ([i915#6621])
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-dg2-11/igt@i915_pm_rps@basic-api.html
    - bat-dg2-8:          NOTRUN -> [SKIP][74] ([i915#6621])
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-dg2-8/igt@i915_pm_rps@basic-api.html
    - bat-arls-3:         NOTRUN -> [SKIP][75] ([i915#10209])
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-arls-3/igt@i915_pm_rps@basic-api.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][76] ([i915#6621])
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-mtlp-6/igt@i915_pm_rps@basic-api.html

  * igt@kms_addfb_basic@addfb25-x-tiled-legacy:
    - bat-arls-3:         NOTRUN -> [SKIP][77] ([i915#10200]) +9 other tests skip
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-arls-3/igt@kms_addfb_basic@addfb25-x-tiled-legacy.html

  * igt@kms_addfb_basic@addfb25-x-tiled-mismatch-legacy:
    - bat-dg2-11:         NOTRUN -> [SKIP][78] ([i915#4212]) +7 other tests skip
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-dg2-11/igt@kms_addfb_basic@addfb25-x-tiled-mismatch-legacy.html

  * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
    - bat-dg2-11:         NOTRUN -> [SKIP][79] ([i915#5190])
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-dg2-11/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html

  * igt@kms_addfb_basic@basic-y-tiled-legacy:
    - bat-dg2-11:         NOTRUN -> [SKIP][80] ([i915#4215] / [i915#5190])
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-dg2-11/igt@kms_addfb_basic@basic-y-tiled-legacy.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - bat-dg2-11:         NOTRUN -> [SKIP][81] ([i915#4103] / [i915#4213]) +1 other test skip
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-dg2-11/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
    - bat-arls-3:         NOTRUN -> [SKIP][82] ([i915#10202]) +1 other test skip
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-arls-3/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_dsc@dsc-basic:
    - bat-dg2-11:         NOTRUN -> [SKIP][83] ([i915#3555] / [i915#3840])
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-dg2-11/igt@kms_dsc@dsc-basic.html
    - bat-arls-3:         NOTRUN -> [SKIP][84] ([i915#9886])
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-arls-3/igt@kms_dsc@dsc-basic.html

  * igt@kms_force_connector_basic@force-load-detect:
    - bat-arls-3:         NOTRUN -> [SKIP][85] ([i915#10207])
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-arls-3/igt@kms_force_connector_basic@force-load-detect.html
    - bat-dg2-8:          NOTRUN -> [SKIP][86]
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-dg2-8/igt@kms_force_connector_basic@force-load-detect.html
    - bat-dg2-11:         NOTRUN -> [SKIP][87]
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-dg2-11/igt@kms_force_connector_basic@force-load-detect.html

  * igt@kms_force_connector_basic@prune-stale-modes:
    - bat-dg2-11:         NOTRUN -> [SKIP][88] ([i915#5274])
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-dg2-11/igt@kms_force_connector_basic@prune-stale-modes.html
    - bat-dg2-8:          NOTRUN -> [SKIP][89] ([i915#5274])
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-dg2-8/igt@kms_force_connector_basic@prune-stale-modes.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][90] ([i915#5274] / [i915#9792])
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-mtlp-6/igt@kms_force_connector_basic@prune-stale-modes.html

  * igt@kms_frontbuffer_tracking@basic:
    - bat-dg2-8:          NOTRUN -> [SKIP][91] ([i915#5354]) +1 other test skip
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-dg2-8/igt@kms_frontbuffer_tracking@basic.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][92] ([i915#4342] / [i915#5354] / [i915#9792])
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-mtlp-6/igt@kms_frontbuffer_tracking@basic.html

  * igt@kms_pipe_crc_basic@hang-read-crc:
    - bat-mtlp-6:         NOTRUN -> [SKIP][93] ([i915#9792]) +7 other tests skip
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-mtlp-6/igt@kms_pipe_crc_basic@hang-read-crc.html

  * igt@kms_pipe_crc_basic@read-crc:
    - bat-dg2-8:          NOTRUN -> [SKIP][94] ([i915#9197]) +6 other tests skip
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-dg2-8/igt@kms_pipe_crc_basic@read-crc.html

  * igt@kms_pm_backlight@basic-brightness:
    - bat-dg2-11:         NOTRUN -> [SKIP][95] ([i915#5354])
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-dg2-11/igt@kms_pm_backlight@basic-brightness.html
    - bat-arls-3:         NOTRUN -> [SKIP][96] ([i915#9812])
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-arls-3/igt@kms_pm_backlight@basic-brightness.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][97] ([i915#5354] / [i915#9792])
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-mtlp-6/igt@kms_pm_backlight@basic-brightness.html

  * igt@kms_psr@psr-cursor-plane-move:
    - bat-mtlp-6:         NOTRUN -> [SKIP][98] ([i915#9673] / [i915#9732] / [i915#9792]) +3 other tests skip
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-mtlp-6/igt@kms_psr@psr-cursor-plane-move.html

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

  * igt@kms_psr@psr-sprite-plane-onoff:
    - bat-dg2-11:         NOTRUN -> [SKIP][100] ([i915#9732]) +3 other tests skip
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-dg2-11/igt@kms_psr@psr-sprite-plane-onoff.html
    - bat-dg2-8:          NOTRUN -> [SKIP][101] ([i915#9673] / [i915#9732]) +3 other tests skip
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-dg2-8/igt@kms_psr@psr-sprite-plane-onoff.html

  * igt@kms_setmode@basic-clone-single-crtc:
    - bat-dg2-11:         NOTRUN -> [SKIP][102] ([i915#3555])
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-dg2-11/igt@kms_setmode@basic-clone-single-crtc.html
    - bat-dg2-8:          NOTRUN -> [SKIP][103] ([i915#3555])
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-dg2-8/igt@kms_setmode@basic-clone-single-crtc.html
    - bat-arls-3:         NOTRUN -> [SKIP][104] ([i915#10208] / [i915#8809])
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-arls-3/igt@kms_setmode@basic-clone-single-crtc.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][105] ([i915#3555] / [i915#8809] / [i915#9792])
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-mtlp-6/igt@kms_setmode@basic-clone-single-crtc.html

  * igt@prime_vgem@basic-fence-flip:
    - bat-dg2-11:         NOTRUN -> [SKIP][106] ([i915#3708])
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-dg2-11/igt@prime_vgem@basic-fence-flip.html
    - bat-dg2-8:          NOTRUN -> [SKIP][107] ([i915#3708] / [i915#9197])
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-dg2-8/igt@prime_vgem@basic-fence-flip.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][108] ([i915#3708] / [i915#9792])
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-mtlp-6/igt@prime_vgem@basic-fence-flip.html

  * igt@prime_vgem@basic-fence-mmap:
    - bat-dg2-11:         NOTRUN -> [SKIP][109] ([i915#3708] / [i915#4077]) +1 other test skip
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-dg2-11/igt@prime_vgem@basic-fence-mmap.html
    - bat-dg2-8:          NOTRUN -> [SKIP][110] ([i915#3708] / [i915#4077]) +1 other test skip
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-dg2-8/igt@prime_vgem@basic-fence-mmap.html
    - bat-arls-3:         NOTRUN -> [SKIP][111] ([i915#10196] / [i915#3708] / [i915#4077]) +1 other test skip
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-arls-3/igt@prime_vgem@basic-fence-mmap.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][112] ([i915#3708] / [i915#4077]) +1 other test skip
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-mtlp-6/igt@prime_vgem@basic-fence-mmap.html

  * igt@prime_vgem@basic-fence-read:
    - bat-arls-3:         NOTRUN -> [SKIP][113] ([i915#10212] / [i915#3708])
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-arls-3/igt@prime_vgem@basic-fence-read.html

  * igt@prime_vgem@basic-read:
    - bat-dg2-11:         NOTRUN -> [SKIP][114] ([i915#3291] / [i915#3708]) +2 other tests skip
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-dg2-11/igt@prime_vgem@basic-read.html
    - bat-arls-3:         NOTRUN -> [SKIP][115] ([i915#10214] / [i915#3708])
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-arls-3/igt@prime_vgem@basic-read.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][116] ([i915#3708]) +1 other test skip
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-mtlp-6/igt@prime_vgem@basic-read.html

  * igt@prime_vgem@basic-write:
    - bat-dg2-8:          NOTRUN -> [SKIP][117] ([i915#3291] / [i915#3708]) +2 other tests skip
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-dg2-8/igt@prime_vgem@basic-write.html
    - bat-arls-3:         NOTRUN -> [SKIP][118] ([i915#10216] / [i915#3708])
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-arls-3/igt@prime_vgem@basic-write.html
    - bat-mtlp-6:         NOTRUN -> [SKIP][119] ([i915#10216] / [i915#3708])
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-mtlp-6/igt@prime_vgem@basic-write.html

  
#### Possible fixes ####

  * igt@kms_force_connector_basic@force-edid:
    - bat-dg2-8:          [INCOMPLETE][120] ([i915#10419]) -> [PASS][121]
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14474/bat-dg2-8/igt@kms_force_connector_basic@force-edid.html
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_131510v1/bat-dg2-8/igt@kms_force_connector_basic@force-edid.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [i915#10196]: https://gitlab.freedesktop.org/drm/intel/issues/10196
  [i915#10197]: https://gitlab.freedesktop.org/drm/intel/issues/10197
  [i915#10200]: https://gitlab.freedesktop.org/drm/intel/issues/10200
  [i915#10202]: https://gitlab.freedesktop.org/drm/intel/issues/10202
  [i915#10206]: https://gitlab.freedesktop.org/drm/intel/issues/10206
  [i915#10207]: https://gitlab.freedesktop.org/drm/intel/issues/10207
  [i915#10208]: https://gitlab.freedesktop.org/drm/intel/issues/10208
  [i915#10209]: https://gitlab.freedesktop.org/drm/intel/issues/10209
  [i915#10211]: https://gitlab.freedesktop.org/drm/intel/issues/10211
  [i915#10212]: https://gitlab.freedesktop.org/drm/intel/issues/10212
  [i915#10214]: https://gitlab.freedesktop.org/drm/intel/issues/10214
  [i915#10216]: https://gitlab.freedesktop.org/drm/intel/issues/10216
  [i915#10234]: https://gitlab.freedesktop.org/drm/intel/issues/10234
  [i915#10419]: https://gitlab.freedesktop.org/drm/intel/issues/10419
  [i915#10491]: https://gitlab.freedesktop.org/drm/intel/issues/10491
  [i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
  [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
  [i915#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215
  [i915#4342]: https://gitlab.freedesktop.org/drm/intel/issues/4342
  [i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190
  [i915#5274]: https://gitlab.freedesktop.org/drm/intel/issues/5274
  [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
  [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
  [i915#8213]: https://gitlab.freedesktop.org/drm/intel/issues/8213
  [i915#8293]: https://gitlab.freedesktop.org/drm/intel/issues/8293
  [i915#8809]: https://gitlab.freedesktop.org/drm/intel/issues/8809
  [i915#9197]: https://gitlab.freedesktop.org/drm/intel/issues/9197
  [i915#9318]: https://gitlab.freedesktop.org/drm/intel/issues/9318
  [i915#9673]: https://gitlab.freedesktop.org/drm/intel/issues/9673
  [i915#9732]: https://gitlab.freedesktop.org/drm/intel/issues/9732
  [i915#9792]: https://gitlab.freedesktop.org/drm/intel/issues/9792
  [i915#9812]: https://gitlab.freedesktop.org/drm/intel/issues/9812
  [i915#9886]: https://gitlab.freedesktop.org/drm/intel/issues/9886


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

  * Linux: CI_DRM_14474 -> Patchwork_131510v1

  CI-20190529: 20190529
  CI_DRM_14474: 657dd8fcd2f1d1205c6f98fdb8b60915228991d1 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_7778: 0f63f0cf1fefbf7933ca33441c7a89966e85d8c8 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_131510v1: 657dd8fcd2f1d1205c6f98fdb8b60915228991d1 @ git://anongit.freedesktop.org/gfx-ci/linux


### Linux commits

b59f8b9cb207 drm/i915/hwmon: Fix potential UAF on driver unbind

== Logs ==

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

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

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

* Re: [PATCH] drm/i915/hwmon: Fix potential UAF on driver unbind
  2024-03-22 20:43 ` Ville Syrjälä
@ 2024-03-25  9:59   ` Jani Nikula
  0 siblings, 0 replies; 5+ messages in thread
From: Jani Nikula @ 2024-03-25  9:59 UTC (permalink / raw)
  To: Ville Syrjälä, Janusz Krzysztofik
  Cc: intel-gfx, dri-devel, Joonas Lahtinen, Rodrigo Vivi,
	Tvrtko Ursulin, Ashutosh Dixit, Dale B Stimson, Anshuman Gupta,
	Riana Tauro, Andi Shyti

On Fri, 22 Mar 2024, Ville Syrjälä <ville.syrjala@linux.intel.com> wrote:
> On Fri, Mar 22, 2024 at 07:54:03PM +0100, Janusz Krzysztofik wrote:
>> Hwmon is registered as a managed resource of i915.  Its functionality
>> depends of availability of i915 uncore.
>
> Instead of polluting all code with this junk I think
> either fixing the devm stuff, or just getting rid of it
> if it's unfixable would be preferable.

Yeah, ugh.

The worst part about sprinkling the checks around is actually that
people *will* cargo cult copy-paste them elsewhere, because they have no
confidence about the lifetimes of objects, and do this just to be
sure. And then we'll have these checks all over the place for no reason.

BR,
Jani.




>
>> 
>> On i915 unbind, we now block i915 access to hwmon, but leave i915 uncore
>> still available to hwmon.  Since uncore structures may be freed before
>> hwmon is actually unregistered, that may lead to UAF if someone is still
>> using hwmon sysfs interface:
>> 
>> <7> [469.045388] i915 0000:03:00.0: [drm] intel_gt_set_wedged called from intel_gt_set_wedged_on_fini+0xd/0x30 [i915]
>> <7> [469.120600] i915 0000:03:00.0: [drm:drm_client_release] drm_fb_helper
>> <4> [469.188183] general protection fault, probably for non-canonical address 0x6b6b6b6b6b6b6dbf: 0000 [#1] PREEMPT SMP NOPTI
>> <4> [469.198970] CPU: 4 PID: 451 Comm: prometheus-node Tainted: G     U             6.8.0-CI_DRM_14465-g198e9d7559f7+ #1
>> <4> [469.209321] Hardware name: Intel Corporation Raptor Lake Client Platform/RPL-S ADP-S DDR5 UDIMM CRB, BIOS RPLSFWI1.R00.4221.A00.2305271351 05/27/2023
>> <4> [469.222589] RIP: 0010:hwm_energy+0x2b/0x100 [i915]
>> <4> [469.227527] Code: 48 89 e5 41 57 41 56 41 55 41 54 53 48 89 fb 48 83 e4 f0 48 83 ec 10 4c 8b 77 08 4c 8b 2f 8b 7f 34 48 89 74 24 08 85 ff 78 2b <45> 8b bd 54 02 00 00 49 8b 7e 18 e8 35 df ea ff 49 89 c4 48 85 c0
>> <4> [469.246119] RSP: 0018:ffffc90007aa7d00 EFLAGS: 00010202
>> <4> [469.251314] RAX: 0000000000000000 RBX: ffff88812b4b5828 RCX: 0000000000000000
>> <4> [469.258396] RDX: 0000000000000001 RSI: ffffc90007aa7da0 RDI: 000000006b6b6b6b
>> <4> [469.265478] RBP: ffffc90007aa7d40 R08: ffffc90007aa7da0 R09: 0000000000000001
>> <4> [469.272559] R10: 0000000000000001 R11: ffff88811889d340 R12: ffff88810e088810
>> <4> [469.279641] R13: 6b6b6b6b6b6b6b6b R14: 6b6b6b6b6b6b6b6b R15: ffff88812b4b5828
>> <4> [469.286722] FS:  00007f7b9c800700(0000) GS:ffff88888d000000(0000) knlGS:0000000000000000
>> <4> [469.294749] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
>> <4> [469.300454] CR2: 0000561a5fb45d88 CR3: 0000000111ff0000 CR4: 0000000000f50ef0
>> <4> [469.307535] PKRU: 55555554
>> <4> [469.310237] Call Trace:
>> <4> [469.312678]  <TASK>
>> <4> [469.335396]  hwm_read+0x9a/0x310 [i915]
>> <4> [469.339342]  hwmon_attr_show+0x36/0x120
>> <4> [469.343163]  dev_attr_show+0x15/0x60
>> <4> [469.346723]  sysfs_kf_seq_show+0xb5/0x100
>> 
>> Reset pointers to uncore in hwmon when unregistering i915, and teach hwmon
>> sysfs accessors to start with checking validity of those pointers and fail
>> immediately if no longer valid.
>> 
>> Suggested-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
>> Fixes: b3b088e28183 ("drm/i915/hwmon: Add HWMON infrastructure")
>> Closes: https://gitlab.freedesktop.org/drm/intel/issues/10366
>> Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
>> Cc: Dale B Stimson <dale.b.stimson@intel.com>
>> Cc: Anshuman Gupta <anshuman.gupta@intel.com>
>> Cc: Riana Tauro <riana.tauro@intel.com>
>> Cc: <stable@vger.kernel.org> # v6.2+
>> ---
>>  drivers/gpu/drm/i915/i915_hwmon.c | 24 ++++++++++++++++++++++++
>>  1 file changed, 24 insertions(+)
>> 
>> diff --git a/drivers/gpu/drm/i915/i915_hwmon.c b/drivers/gpu/drm/i915/i915_hwmon.c
>> index b758fd110c204..f5c1d04dae054 100644
>> --- a/drivers/gpu/drm/i915/i915_hwmon.c
>> +++ b/drivers/gpu/drm/i915/i915_hwmon.c
>> @@ -619,6 +619,9 @@ hwm_is_visible(const void *drvdata, enum hwmon_sensor_types type,
>>  {
>>  	struct hwm_drvdata *ddat = (struct hwm_drvdata *)drvdata;
>>  
>> +	if (!ddat->uncore)
>> +		return 0;
>> +
>>  	switch (type) {
>>  	case hwmon_in:
>>  		return hwm_in_is_visible(ddat, attr);
>> @@ -639,6 +642,9 @@ hwm_read(struct device *dev, enum hwmon_sensor_types type, u32 attr,
>>  {
>>  	struct hwm_drvdata *ddat = dev_get_drvdata(dev);
>>  
>> +	if (!ddat->uncore)
>> +		return -ENXIO;
>> +
>>  	switch (type) {
>>  	case hwmon_in:
>>  		return hwm_in_read(ddat, attr, val);
>> @@ -659,6 +665,9 @@ hwm_write(struct device *dev, enum hwmon_sensor_types type, u32 attr,
>>  {
>>  	struct hwm_drvdata *ddat = dev_get_drvdata(dev);
>>  
>> +	if (!ddat->uncore)
>> +		return -ENXIO;
>> +
>>  	switch (type) {
>>  	case hwmon_power:
>>  		return hwm_power_write(ddat, attr, channel, val);
>> @@ -686,6 +695,9 @@ hwm_gt_is_visible(const void *drvdata, enum hwmon_sensor_types type,
>>  {
>>  	struct hwm_drvdata *ddat = (struct hwm_drvdata *)drvdata;
>>  
>> +	if (!ddat->uncore)
>> +		return 0;
>> +
>>  	switch (type) {
>>  	case hwmon_energy:
>>  		return hwm_energy_is_visible(ddat, attr);
>> @@ -700,6 +712,9 @@ hwm_gt_read(struct device *dev, enum hwmon_sensor_types type, u32 attr,
>>  {
>>  	struct hwm_drvdata *ddat = dev_get_drvdata(dev);
>>  
>> +	if (!ddat->uncore)
>> +		return -ENXIO;
>> +
>>  	switch (type) {
>>  	case hwmon_energy:
>>  		return hwm_energy_read(ddat, attr, val);
>> @@ -850,5 +865,14 @@ void i915_hwmon_register(struct drm_i915_private *i915)
>>  
>>  void i915_hwmon_unregister(struct drm_i915_private *i915)
>>  {
>> +	struct i915_hwmon *hwmon = i915->hwmon;
>> +	struct intel_gt *gt;
>> +	int i;
>> +
>> +	for_each_gt(gt, i915, i)
>> +		fetch_and_zero(&hwmon->ddat_gt[i].uncore);
>> +
>> +	fetch_and_zero(&hwmon->ddat.uncore);
>> +
>>  	fetch_and_zero(&i915->hwmon);
>>  }
>> -- 
>> 2.43.0

-- 
Jani Nikula, Intel

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

end of thread, other threads:[~2024-03-25  9:59 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-22 18:54 [PATCH] drm/i915/hwmon: Fix potential UAF on driver unbind Janusz Krzysztofik
2024-03-22 20:43 ` Ville Syrjälä
2024-03-25  9:59   ` Jani Nikula
2024-03-23  2:11 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
2024-03-23  2:25 ` ✗ Fi.CI.BAT: failure " Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.