All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] drm/xe/ras: Fix and clean up xe_drm_ras
@ 2026-04-07 22:59 Shuicheng Lin
  2026-04-07 22:59 ` [PATCH 1/2] drm/xe/ras: Fix error handling in register_nodes() Shuicheng Lin
                   ` (7 more replies)
  0 siblings, 8 replies; 21+ messages in thread
From: Shuicheng Lin @ 2026-04-07 22:59 UTC (permalink / raw)
  To: intel-xe; +Cc: Shuicheng Lin

Patch 1 fixes error handling in register_nodes(): missing cleanup of
previously registered nodes on mid-loop failure, and an invalid kfree()
of an ERR_PTR when allocate_and_copy_counters() fails.

Patch 2 follows up with pure coding style cleanups.

Both patches apply to xe_drm_ras.c introduced by commit b40db12b542f
("drm/xe/xe_drm_ras: Add support for XE DRM RAS").

Shuicheng Lin (2):
  drm/xe/ras: Fix error handling in register_nodes()
  drm/xe/ras: Clean up coding style in xe_drm_ras

 drivers/gpu/drm/xe/xe_drm_ras.c | 50 ++++++++++++++++++++-------------
 1 file changed, 30 insertions(+), 20 deletions(-)

-- 
2.43.0


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

* [PATCH 1/2] drm/xe/ras: Fix error handling in register_nodes()
  2026-04-07 22:59 [PATCH 0/2] drm/xe/ras: Fix and clean up xe_drm_ras Shuicheng Lin
@ 2026-04-07 22:59 ` Shuicheng Lin
  2026-04-11  4:46   ` Nguyen, Brian3
  2026-04-11  7:56   ` Raag Jadav
  2026-04-07 22:59 ` [PATCH 2/2] drm/xe/ras: Clean up coding style in xe_drm_ras Shuicheng Lin
                   ` (6 subsequent siblings)
  7 siblings, 2 replies; 21+ messages in thread
From: Shuicheng Lin @ 2026-04-07 22:59 UTC (permalink / raw)
  To: intel-xe; +Cc: Shuicheng Lin, Riana Tauro

Fix two issues in register_nodes():

1. When the loop fails mid-way, previously registered nodes are not
   cleaned up. Add goto-based error unwinding that walks backwards
   through completed iterations.

2. When allocate_and_copy_counters() fails, assign_node_params()
   leaves ras->info[severity] as an ERR_PTR and returns. The caller
   then passes that ERR_PTR to kfree() via cleanup_node_param(),
   causing an invalid free. Fix by making assign_node_params()
   self-contained on error: NULL out the stale ERR_PTR and free
   device_name before returning.

Fixes: b40db12b542f ("drm/xe/xe_drm_ras: Add support for XE DRM RAS")
Cc: Riana Tauro <riana.tauro@intel.com>
Assisted-by: Claude:claude-opus-4.6
Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
---
 drivers/gpu/drm/xe/xe_drm_ras.c | 31 ++++++++++++++++++++++---------
 1 file changed, 22 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_drm_ras.c b/drivers/gpu/drm/xe/xe_drm_ras.c
index e07dc23a155e..802e4bcb731c 100644
--- a/drivers/gpu/drm/xe/xe_drm_ras.c
+++ b/drivers/gpu/drm/xe/xe_drm_ras.c
@@ -73,6 +73,7 @@ static int assign_node_params(struct xe_device *xe, struct drm_ras_node *node,
 	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
 	struct xe_drm_ras *ras = &xe->ras;
 	const char *device_name;
+	int ret;
 
 	device_name = kasprintf(GFP_KERNEL, "%04x:%02x:%02x.%d",
 				pci_domain_nr(pdev->bus), pdev->bus->number,
@@ -89,8 +90,11 @@ static int assign_node_params(struct xe_device *xe, struct drm_ras_node *node,
 	node->priv = xe;
 
 	ras->info[severity] = allocate_and_copy_counters(xe);
-	if (IS_ERR(ras->info[severity]))
-		return PTR_ERR(ras->info[severity]);
+	if (IS_ERR(ras->info[severity])) {
+		ret = PTR_ERR(ras->info[severity]);
+		ras->info[severity] = NULL;
+		goto err_free_name;
+	}
 
 	if (severity == DRM_XE_RAS_ERR_SEV_CORRECTABLE)
 		node->query_error_counter = query_correctable_error_counter;
@@ -98,6 +102,11 @@ static int assign_node_params(struct xe_device *xe, struct drm_ras_node *node,
 		node->query_error_counter = query_uncorrectable_error_counter;
 
 	return 0;
+
+err_free_name:
+	kfree(device_name);
+	node->device_name = NULL;
+	return ret;
 }
 
 static void cleanup_node_param(struct xe_drm_ras *ras, const enum drm_xe_ras_error_severity severity)
@@ -114,26 +123,30 @@ static void cleanup_node_param(struct xe_drm_ras *ras, const enum drm_xe_ras_err
 static int register_nodes(struct xe_device *xe)
 {
 	struct xe_drm_ras *ras = &xe->ras;
-	int i;
+	int i, ret;
 
 	for_each_error_severity(i) {
 		struct drm_ras_node *node = &ras->node[i];
-		int ret;
 
 		ret = assign_node_params(xe, node, i);
-		if (ret) {
-			cleanup_node_param(ras, i);
-			return ret;
-		}
+		if (ret)
+			goto err_unwind;
 
 		ret = drm_ras_node_register(node);
 		if (ret) {
 			cleanup_node_param(ras, i);
-			return ret;
+			goto err_unwind;
 		}
 	}
 
 	return 0;
+
+err_unwind:
+	while (i--) {
+		drm_ras_node_unregister(&ras->node[i]);
+		cleanup_node_param(ras, i);
+	}
+	return ret;
 }
 
 static void xe_drm_ras_unregister_nodes(struct drm_device *device, void *arg)
-- 
2.43.0


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

* [PATCH 2/2] drm/xe/ras: Clean up coding style in xe_drm_ras
  2026-04-07 22:59 [PATCH 0/2] drm/xe/ras: Fix and clean up xe_drm_ras Shuicheng Lin
  2026-04-07 22:59 ` [PATCH 1/2] drm/xe/ras: Fix error handling in register_nodes() Shuicheng Lin
@ 2026-04-07 22:59 ` Shuicheng Lin
  2026-04-11  4:54   ` Nguyen, Brian3
  2026-04-11  7:58   ` Raag Jadav
  2026-04-07 23:09 ` ✗ CI.checkpatch: warning for drm/xe/ras: Fix and clean up xe_drm_ras Patchwork
                   ` (5 subsequent siblings)
  7 siblings, 2 replies; 21+ messages in thread
From: Shuicheng Lin @ 2026-04-07 22:59 UTC (permalink / raw)
  To: intel-xe; +Cc: Shuicheng Lin, Riana Tauro

- Fix long line in cleanup_node_param() signature.
- Drop unnecessary const on pass-by-value enum parameters.
- Simplify xe_drm_ras_init() by removing redundant local variable
  and redundant error path.

No functional change.

Cc: Riana Tauro <riana.tauro@intel.com>
Assisted-by: Claude:claude-opus-4.6
Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
---
 drivers/gpu/drm/xe/xe_drm_ras.c | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_drm_ras.c b/drivers/gpu/drm/xe/xe_drm_ras.c
index 802e4bcb731c..9cddad2be549 100644
--- a/drivers/gpu/drm/xe/xe_drm_ras.c
+++ b/drivers/gpu/drm/xe/xe_drm_ras.c
@@ -68,7 +68,7 @@ static struct xe_drm_ras_counter *allocate_and_copy_counters(struct xe_device *x
 }
 
 static int assign_node_params(struct xe_device *xe, struct drm_ras_node *node,
-			      const enum drm_xe_ras_error_severity severity)
+			      enum drm_xe_ras_error_severity severity)
 {
 	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
 	struct xe_drm_ras *ras = &xe->ras;
@@ -109,7 +109,8 @@ static int assign_node_params(struct xe_device *xe, struct drm_ras_node *node,
 	return ret;
 }
 
-static void cleanup_node_param(struct xe_drm_ras *ras, const enum drm_xe_ras_error_severity severity)
+static void cleanup_node_param(struct xe_drm_ras *ras,
+			       enum drm_xe_ras_error_severity severity)
 {
 	struct drm_ras_node *node = &ras->node[severity];
 
@@ -174,15 +175,13 @@ static void xe_drm_ras_unregister_nodes(struct drm_device *device, void *arg)
 int xe_drm_ras_init(struct xe_device *xe)
 {
 	struct xe_drm_ras *ras = &xe->ras;
-	struct drm_ras_node *node;
 	int err;
 
-	node = drmm_kcalloc(&xe->drm, DRM_XE_RAS_ERR_SEV_MAX, sizeof(*node), GFP_KERNEL);
-	if (!node)
+	ras->node = drmm_kcalloc(&xe->drm, DRM_XE_RAS_ERR_SEV_MAX,
+				 sizeof(*ras->node), GFP_KERNEL);
+	if (!ras->node)
 		return -ENOMEM;
 
-	ras->node = node;
-
 	err = register_nodes(xe);
 	if (err) {
 		drm_err(&xe->drm, "Failed to register DRM RAS nodes (%pe)\n", ERR_PTR(err));
@@ -190,10 +189,8 @@ int xe_drm_ras_init(struct xe_device *xe)
 	}
 
 	err = drmm_add_action_or_reset(&xe->drm, xe_drm_ras_unregister_nodes, xe);
-	if (err) {
+	if (err)
 		drm_err(&xe->drm, "Failed to add action for Xe DRM RAS (%pe)\n", ERR_PTR(err));
-		return err;
-	}
 
-	return 0;
+	return err;
 }
-- 
2.43.0


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

* ✗ CI.checkpatch: warning for drm/xe/ras: Fix and clean up xe_drm_ras
  2026-04-07 22:59 [PATCH 0/2] drm/xe/ras: Fix and clean up xe_drm_ras Shuicheng Lin
  2026-04-07 22:59 ` [PATCH 1/2] drm/xe/ras: Fix error handling in register_nodes() Shuicheng Lin
  2026-04-07 22:59 ` [PATCH 2/2] drm/xe/ras: Clean up coding style in xe_drm_ras Shuicheng Lin
@ 2026-04-07 23:09 ` Patchwork
  2026-04-07 23:10 ` ✗ CI.KUnit: failure " Patchwork
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 21+ messages in thread
From: Patchwork @ 2026-04-07 23:09 UTC (permalink / raw)
  To: Shuicheng Lin; +Cc: intel-xe

== Series Details ==

Series: drm/xe/ras: Fix and clean up xe_drm_ras
URL   : https://patchwork.freedesktop.org/series/164479/
State : warning

== Summary ==

+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt
Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master
1f57ba1afceae32108bd24770069f764d940a0e4
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit f1dcc7bc30479b79397020dd2081c6e614bffde4
Author: Shuicheng Lin <shuicheng.lin@intel.com>
Date:   Tue Apr 7 22:59:13 2026 +0000

    drm/xe/ras: Clean up coding style in xe_drm_ras
    
    - Fix long line in cleanup_node_param() signature.
    - Drop unnecessary const on pass-by-value enum parameters.
    - Simplify xe_drm_ras_init() by removing redundant local variable
      and redundant error path.
    
    No functional change.
    
    Cc: Riana Tauro <riana.tauro@intel.com>
    Assisted-by: Claude:claude-opus-4.6
    Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
+ /mt/dim checkpatch 2dc939ed1bd66b5eac479a95968188a87de9cf81 drm-intel
c2333d583bbb drm/xe/ras: Fix error handling in register_nodes()
-:21: WARNING:BAD_SIGN_OFF: Non-standard signature: Assisted-by:
#21: 
Assisted-by: Claude:claude-opus-4.6

-:21: ERROR:BAD_SIGN_OFF: Unrecognized email address: 'Claude:claude-opus-4.6'
#21: 
Assisted-by: Claude:claude-opus-4.6

total: 1 errors, 1 warnings, 0 checks, 68 lines checked
f1dcc7bc3047 drm/xe/ras: Clean up coding style in xe_drm_ras
-:14: WARNING:BAD_SIGN_OFF: Non-standard signature: Assisted-by:
#14: 
Assisted-by: Claude:claude-opus-4.6

-:14: ERROR:BAD_SIGN_OFF: Unrecognized email address: 'Claude:claude-opus-4.6'
#14: 
Assisted-by: Claude:claude-opus-4.6

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



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

* ✗ CI.KUnit: failure for drm/xe/ras: Fix and clean up xe_drm_ras
  2026-04-07 22:59 [PATCH 0/2] drm/xe/ras: Fix and clean up xe_drm_ras Shuicheng Lin
                   ` (2 preceding siblings ...)
  2026-04-07 23:09 ` ✗ CI.checkpatch: warning for drm/xe/ras: Fix and clean up xe_drm_ras Patchwork
@ 2026-04-07 23:10 ` Patchwork
  2026-04-10  3:55 ` ✗ CI.checkpatch: warning for drm/xe/ras: Fix and clean up xe_drm_ras (rev2) Patchwork
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 21+ messages in thread
From: Patchwork @ 2026-04-07 23:10 UTC (permalink / raw)
  To: Shuicheng Lin; +Cc: intel-xe

== Series Details ==

Series: drm/xe/ras: Fix and clean up xe_drm_ras
URL   : https://patchwork.freedesktop.org/series/164479/
State : failure

== Summary ==

+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[23:09:10] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[23:09:14] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[23:09:45] Starting KUnit Kernel (1/1)...
[23:09:45] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[23:09:46] ================== guc_buf (11 subtests) ===================
[23:09:46] [PASSED] test_smallest
[23:09:46] [PASSED] test_largest
[23:09:46] [PASSED] test_granular
[23:09:46] [PASSED] test_unique
[23:09:46] [PASSED] test_overlap
[23:09:46] [PASSED] test_reusable
[23:09:46] [PASSED] test_too_big
[23:09:46] [PASSED] test_flush
[23:09:46] [PASSED] test_lookup
[23:09:46] [PASSED] test_data
[23:09:46] [PASSED] test_class
[23:09:46] ===================== [PASSED] guc_buf =====================
[23:09:46] =================== guc_dbm (7 subtests) ===================
[23:09:46] [PASSED] test_empty
[23:09:46] [PASSED] test_default
[23:09:46] ======================== test_size  ========================
[23:09:46] [PASSED] 4
[23:09:46] [PASSED] 8
[23:09:46] [PASSED] 32
[23:09:46] [PASSED] 256
[23:09:46] ==================== [PASSED] test_size ====================
[23:09:46] ======================= test_reuse  ========================
[23:09:46] [PASSED] 4
[23:09:46] [PASSED] 8
[23:09:46] [PASSED] 32
[23:09:46] [PASSED] 256
[23:09:46] =================== [PASSED] test_reuse ====================
[23:09:46] =================== test_range_overlap  ====================
[23:09:46] [PASSED] 4
[23:09:46] [PASSED] 8
[23:09:46] [PASSED] 32
[23:09:46] [PASSED] 256
[23:09:46] =============== [PASSED] test_range_overlap ================
[23:09:46] =================== test_range_compact  ====================
[23:09:46] [PASSED] 4
[23:09:46] [PASSED] 8
[23:09:46] [PASSED] 32
[23:09:46] [PASSED] 256
[23:09:46] =============== [PASSED] test_range_compact ================
[23:09:46] ==================== test_range_spare  =====================
[23:09:46] [PASSED] 4
[23:09:46] [PASSED] 8
[23:09:46] [PASSED] 32
[23:09:46] [PASSED] 256
[23:09:46] ================ [PASSED] test_range_spare =================
[23:09:46] ===================== [PASSED] guc_dbm =====================
[23:09:46] =================== guc_idm (6 subtests) ===================
[23:09:46] [PASSED] bad_init
[23:09:46] [PASSED] no_init
[23:09:46] [PASSED] init_fini
[23:09:46] [PASSED] check_used
[23:09:46] [PASSED] check_quota
[23:09:46] [PASSED] check_all
[23:09:46] ===================== [PASSED] guc_idm =====================
[23:09:46] ================== no_relay (3 subtests) ===================
[23:09:46] [PASSED] xe_drops_guc2pf_if_not_ready
[23:09:46] [PASSED] xe_drops_guc2vf_if_not_ready
[23:09:46] [PASSED] xe_rejects_send_if_not_ready
[23:09:46] ==================== [PASSED] no_relay =====================
[23:09:46] ================== pf_relay (14 subtests) ==================
[23:09:46] [PASSED] pf_rejects_guc2pf_too_short
[23:09:46] [PASSED] pf_rejects_guc2pf_too_long
[23:09:46] [PASSED] pf_rejects_guc2pf_no_payload
[23:09:46] [PASSED] pf_fails_no_payload
[23:09:46] [PASSED] pf_fails_bad_origin
[23:09:46] [PASSED] pf_fails_bad_type
[23:09:46] [PASSED] pf_txn_reports_error
[23:09:46] [PASSED] pf_txn_sends_pf2guc
[23:09:46] [PASSED] pf_sends_pf2guc
[23:09:46] [SKIPPED] pf_loopback_nop
[23:09:46] [SKIPPED] pf_loopback_echo
[23:09:46] [SKIPPED] pf_loopback_fail
[23:09:46] [SKIPPED] pf_loopback_busy
[23:09:46] [SKIPPED] pf_loopback_retry
[23:09:46] ==================== [PASSED] pf_relay =====================
[23:09:46] ================== vf_relay (3 subtests) ===================
[23:09:46] [PASSED] vf_rejects_guc2vf_too_short
[23:09:46] [PASSED] vf_rejects_guc2vf_too_long
[23:09:46] [PASSED] vf_rejects_guc2vf_no_payload
[23:09:46] ==================== [PASSED] vf_relay =====================
[23:09:46] ================ pf_gt_config (9 subtests) =================
[23:09:46] [PASSED] fair_contexts_1vf
[23:09:46] [PASSED] fair_doorbells_1vf
[23:09:46] [PASSED] fair_ggtt_1vf
[23:09:46] ====================== fair_vram_1vf  ======================
[23:09:46] [PASSED] 3.50 GiB
[23:09:46] [PASSED] 11.5 GiB
[23:09:46] [PASSED] 15.5 GiB
[23:09:46] [PASSED] 31.5 GiB
[23:09:46] [PASSED] 63.5 GiB
[23:09:46] [PASSED] 1.91 GiB
[23:09:46] ================== [PASSED] fair_vram_1vf ==================
[23:09:46] ================ fair_vram_1vf_admin_only  =================
[23:09:46] [PASSED] 3.50 GiB
[23:09:46] [PASSED] 11.5 GiB
[23:09:46] [PASSED] 15.5 GiB
[23:09:46] [PASSED] 31.5 GiB
[23:09:46] [PASSED] 63.5 GiB
[23:09:46] [PASSED] 1.91 GiB
[23:09:46] ============ [PASSED] fair_vram_1vf_admin_only =============
[23:09:46] ====================== fair_contexts  ======================
[23:09:46] [PASSED] 1 VF
[23:09:46] [PASSED] 2 VFs
[23:09:46] [PASSED] 3 VFs
[23:09:46] [PASSED] 4 VFs
[23:09:46] [PASSED] 5 VFs
[23:09:46] [PASSED] 6 VFs
[23:09:46] [PASSED] 7 VFs
[23:09:46] [PASSED] 8 VFs
[23:09:46] [PASSED] 9 VFs
[23:09:46] [PASSED] 10 VFs
[23:09:46] [PASSED] 11 VFs
[23:09:46] [PASSED] 12 VFs
[23:09:46] [PASSED] 13 VFs
[23:09:46] [PASSED] 14 VFs
[23:09:46] [PASSED] 15 VFs
[23:09:46] [PASSED] 16 VFs
[23:09:46] [PASSED] 17 VFs
[23:09:46] [PASSED] 18 VFs
[23:09:46] [PASSED] 19 VFs
[23:09:46] [PASSED] 20 VFs
[23:09:46] [PASSED] 21 VFs
[23:09:46] [PASSED] 22 VFs
[23:09:46] [PASSED] 23 VFs
[23:09:46] [PASSED] 24 VFs
[23:09:46] [PASSED] 25 VFs
[23:09:46] [PASSED] 26 VFs
[23:09:46] [PASSED] 27 VFs
[23:09:46] [PASSED] 28 VFs
[23:09:46] [PASSED] 29 VFs
[23:09:46] [PASSED] 30 VFs
[23:09:46] [PASSED] 31 VFs
[23:09:46] [PASSED] 32 VFs
[23:09:46] [PASSED] 33 VFs
[23:09:46] [PASSED] 34 VFs
[23:09:46] [PASSED] 35 VFs
[23:09:46] [PASSED] 36 VFs
[23:09:46] [PASSED] 37 VFs
[23:09:46] [PASSED] 38 VFs
[23:09:46] [PASSED] 39 VFs
[23:09:46] [PASSED] 40 VFs
[23:09:46] [PASSED] 41 VFs
[23:09:46] [PASSED] 42 VFs
[23:09:46] [PASSED] 43 VFs
[23:09:46] [PASSED] 44 VFs
[23:09:46] [PASSED] 45 VFs
[23:09:46] [PASSED] 46 VFs
[23:09:46] [PASSED] 47 VFs
[23:09:46] [PASSED] 48 VFs
[23:09:46] [PASSED] 49 VFs
[23:09:46] [PASSED] 50 VFs
[23:09:46] [PASSED] 51 VFs
[23:09:46] [PASSED] 52 VFs
[23:09:46] [PASSED] 53 VFs
[23:09:46] [PASSED] 54 VFs
[23:09:46] [PASSED] 55 VFs
[23:09:46] [PASSED] 56 VFs
[23:09:46] [PASSED] 57 VFs
[23:09:46] [PASSED] 58 VFs
[23:09:46] [PASSED] 59 VFs
[23:09:46] [PASSED] 60 VFs
[23:09:46] [PASSED] 61 VFs
[23:09:46] [PASSED] 62 VFs
[23:09:46] [PASSED] 63 VFs
[23:09:46] ================== [PASSED] fair_contexts ==================
[23:09:46] ===================== fair_doorbells  ======================
[23:09:46] [PASSED] 1 VF
[23:09:46] [PASSED] 2 VFs
[23:09:46] [PASSED] 3 VFs
[23:09:46] [PASSED] 4 VFs
[23:09:46] [PASSED] 5 VFs
[23:09:46] [PASSED] 6 VFs
[23:09:46] [PASSED] 7 VFs
[23:09:46] [PASSED] 8 VFs
[23:09:46] [PASSED] 9 VFs
[23:09:46] [PASSED] 10 VFs
[23:09:46] [PASSED] 11 VFs
[23:09:46] [PASSED] 12 VFs
[23:09:46] [PASSED] 13 VFs
[23:09:46] [PASSED] 14 VFs
[23:09:46] [PASSED] 15 VFs
[23:09:46] [PASSED] 16 VFs
[23:09:46] [PASSED] 17 VFs
[23:09:46] [PASSED] 18 VFs
[23:09:46] [PASSED] 19 VFs
[23:09:46] [PASSED] 20 VFs
[23:09:46] [PASSED] 21 VFs
[23:09:46] [PASSED] 22 VFs
[23:09:46] [PASSED] 23 VFs
[23:09:46] [PASSED] 24 VFs
[23:09:46] [PASSED] 25 VFs
[23:09:46] [PASSED] 26 VFs
[23:09:46] [PASSED] 27 VFs
[23:09:46] [PASSED] 28 VFs
[23:09:46] [PASSED] 29 VFs
[23:09:46] [PASSED] 30 VFs
[23:09:46] [PASSED] 31 VFs
[23:09:46] [PASSED] 32 VFs
[23:09:46] [PASSED] 33 VFs
[23:09:46] [PASSED] 34 VFs
[23:09:46] [PASSED] 35 VFs
[23:09:46] [PASSED] 36 VFs
[23:09:46] [PASSED] 37 VFs
[23:09:46] [PASSED] 38 VFs
[23:09:46] [PASSED] 39 VFs
[23:09:46] [PASSED] 40 VFs
[23:09:46] [PASSED] 41 VFs
[23:09:46] [PASSED] 42 VFs
[23:09:46] [PASSED] 43 VFs
[23:09:46] [PASSED] 44 VFs
[23:09:46] [PASSED] 45 VFs
[23:09:46] [PASSED] 46 VFs
[23:09:46] [PASSED] 47 VFs
[23:09:46] [PASSED] 48 VFs
[23:09:46] [PASSED] 49 VFs
[23:09:46] [PASSED] 50 VFs
[23:09:46] [PASSED] 51 VFs
[23:09:46] [PASSED] 52 VFs
[23:09:46] [PASSED] 53 VFs
[23:09:46] [PASSED] 54 VFs
[23:09:46] [PASSED] 55 VFs
[23:09:46] [PASSED] 56 VFs
[23:09:46] [PASSED] 57 VFs
[23:09:46] [PASSED] 58 VFs
[23:09:46] [PASSED] 59 VFs
[23:09:46] [PASSED] 60 VFs
[23:09:46] [PASSED] 61 VFs
[23:09:46] [PASSED] 62 VFs
[23:09:46] [PASSED] 63 VFs
[23:09:46] ================= [PASSED] fair_doorbells ==================
[23:09:46] ======================== fair_ggtt  ========================
[23:09:46] [PASSED] 1 VF
[23:09:46] [PASSED] 2 VFs
[23:09:46] [PASSED] 3 VFs
[23:09:46] [PASSED] 4 VFs
[23:09:46] [PASSED] 5 VFs
[23:09:46] [PASSED] 6 VFs
[23:09:46] [PASSED] 7 VFs
[23:09:46] [PASSED] 8 VFs
[23:09:46] [PASSED] 9 VFs
[23:09:46] [PASSED] 10 VFs
[23:09:46] [PASSED] 11 VFs
[23:09:46] [PASSED] 12 VFs
[23:09:46] [PASSED] 13 VFs
[23:09:46] [PASSED] 14 VFs
[23:09:46] [PASSED] 15 VFs
[23:09:46] [PASSED] 16 VFs
[23:09:46] [PASSED] 17 VFs
[23:09:46] [PASSED] 18 VFs
[23:09:46] [PASSED] 19 VFs
[23:09:46] [PASSED] 20 VFs
[23:09:46] [PASSED] 21 VFs
[23:09:46] [PASSED] 22 VFs
[23:09:46] [PASSED] 23 VFs
[23:09:46] [PASSED] 24 VFs
[23:09:46] [PASSED] 25 VFs
[23:09:46] [PASSED] 26 VFs
[23:09:46] [PASSED] 27 VFs
[23:09:46] [PASSED] 28 VFs
[23:09:46] [PASSED] 29 VFs
[23:09:46] [PASSED] 30 VFs
[23:09:46] [PASSED] 31 VFs
[23:09:46] [PASSED] 32 VFs
[23:09:46] [PASSED] 33 VFs
[23:09:46] [PASSED] 34 VFs
[23:09:46] [PASSED] 35 VFs
[23:09:46] [PASSED] 36 VFs
[23:09:46] [PASSED] 37 VFs
[23:09:46] [PASSED] 38 VFs
[23:09:46] [PASSED] 39 VFs
[23:09:46] [PASSED] 40 VFs
[23:09:46] [PASSED] 41 VFs
[23:09:46] [PASSED] 42 VFs
[23:09:46] [PASSED] 43 VFs
[23:09:46] [PASSED] 44 VFs
[23:09:46] [PASSED] 45 VFs
[23:09:46] [PASSED] 46 VFs
[23:09:46] [PASSED] 47 VFs
[23:09:46] [PASSED] 48 VFs
[23:09:46] [PASSED] 49 VFs
[23:09:46] [PASSED] 50 VFs
[23:09:46] [PASSED] 51 VFs
[23:09:46] [PASSED] 52 VFs
[23:09:46] [PASSED] 53 VFs
[23:09:46] [PASSED] 54 VFs
[23:09:46] [PASSED] 55 VFs
[23:09:46] [PASSED] 56 VFs
[23:09:46] [PASSED] 57 VFs
[23:09:46] [PASSED] 58 VFs
[23:09:46] [PASSED] 59 VFs
[23:09:46] [PASSED] 60 VFs
[23:09:46] [PASSED] 61 VFs
[23:09:46] [PASSED] 62 VFs
[23:09:46] [PASSED] 63 VFs
[23:09:46] ==================== [PASSED] fair_ggtt ====================
[23:09:46] ======================== fair_vram  ========================
[23:09:46] [PASSED] 1 VF
[23:09:46] [PASSED] 2 VFs
[23:09:46] [PASSED] 3 VFs
[23:09:46] [PASSED] 4 VFs
[23:09:46] [PASSED] 5 VFs
[23:09:46] [PASSED] 6 VFs
[23:09:46] [PASSED] 7 VFs
[23:09:46] [PASSED] 8 VFs
[23:09:46] [PASSED] 9 VFs
[23:09:46] [PASSED] 10 VFs
[23:09:46] [PASSED] 11 VFs
[23:09:46] [PASSED] 12 VFs
[23:09:46] [PASSED] 13 VFs
[23:09:46] [PASSED] 14 VFs
[23:09:46] [PASSED] 15 VFs
[23:09:46] [PASSED] 16 VFs
[23:09:46] [PASSED] 17 VFs
[23:09:46] [PASSED] 18 VFs
[23:09:46] [PASSED] 19 VFs
[23:09:46] [PASSED] 20 VFs
[23:09:46] [PASSED] 21 VFs
[23:09:46] [PASSED] 22 VFs
[23:09:46] [PASSED] 23 VFs
[23:09:46] [PASSED] 24 VFs
[23:09:46] [PASSED] 25 VFs
[23:09:46] [PASSED] 26 VFs
[23:09:46] [PASSED] 27 VFs
[23:09:46] [PASSED] 28 VFs
[23:09:46] [PASSED] 29 VFs
[23:09:46] [PASSED] 30 VFs
[23:09:46] [PASSED] 31 VFs
[23:09:46] [PASSED] 32 VFs
[23:09:46] [PASSED] 33 VFs
[23:09:46] [PASSED] 34 VFs
[23:09:46] [PASSED] 35 VFs
[23:09:46] [PASSED] 36 VFs
[23:09:46] [PASSED] 37 VFs
[23:09:46] [PASSED] 38 VFs
[23:09:46] [PASSED] 39 VFs
[23:09:46] [PASSED] 40 VFs
[23:09:46] [PASSED] 41 VFs
[23:09:46] [PASSED] 42 VFs
[23:09:46] [PASSED] 43 VFs
[23:09:46] [PASSED] 44 VFs
[23:09:46] [PASSED] 45 VFs
[23:09:46] [PASSED] 46 VFs
[23:09:46] [PASSED] 47 VFs
[23:09:46] [PASSED] 48 VFs
[23:09:46] [PASSED] 49 VFs
[23:09:46] [PASSED] 50 VFs
[23:09:46] [PASSED] 51 VFs
[23:09:46] [PASSED] 52 VFs
[23:09:46] [PASSED] 53 VFs
[23:09:46] [PASSED] 54 VFs
[23:09:46] [PASSED] 55 VFs
[23:09:46] [PASSED] 56 VFs
[23:09:46] [PASSED] 57 VFs
[23:09:46] [PASSED] 58 VFs
[23:09:46] [PASSED] 59 VFs
[23:09:46] [PASSED] 60 VFs
[23:09:46] [PASSED] 61 VFs
[23:09:46] [PASSED] 62 VFs
[23:09:46] [PASSED] 63 VFs
[23:09:46] ==================== [PASSED] fair_vram ====================
[23:09:46] ================== [PASSED] pf_gt_config ===================
[23:09:46] ===================== lmtt (1 subtest) =====================
[23:09:46] ======================== test_ops  =========================
[23:09:46] [PASSED] 2-level
[23:09:46] [PASSED] multi-level
[23:09:46] ==================== [PASSED] test_ops =====================
[23:09:46] ====================== [PASSED] lmtt =======================
[23:09:46] ================= pf_service (11 subtests) =================
[23:09:46] [PASSED] pf_negotiate_any
[23:09:46] [PASSED] pf_negotiate_base_match
[23:09:46] [PASSED] pf_negotiate_base_newer
[23:09:46] [PASSED] pf_negotiate_base_next
[23:09:46] [SKIPPED] pf_negotiate_base_older
[23:09:46] [PASSED] pf_negotiate_base_prev
[23:09:46] [PASSED] pf_negotiate_latest_match
[23:09:46] [PASSED] pf_negotiate_latest_newer
[23:09:46] [PASSED] pf_negotiate_latest_next
[23:09:46] [SKIPPED] pf_negotiate_latest_older
[23:09:46] [SKIPPED] pf_negotiate_latest_prev
[23:09:46] =================== [PASSED] pf_service ====================
[23:09:46] ================= xe_guc_g2g (2 subtests) ==================
[23:09:46] ============== xe_live_guc_g2g_kunit_default  ==============
[23:09:46] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[23:09:46] ============== xe_live_guc_g2g_kunit_allmem  ===============
[23:09:46] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[23:09:46] =================== [SKIPPED] xe_guc_g2g ===================
[23:09:46] =================== xe_mocs (2 subtests) ===================
[23:09:46] ================ xe_live_mocs_kernel_kunit  ================
[23:09:46] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[23:09:46] ================ xe_live_mocs_reset_kunit  =================
[23:09:46] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[23:09:46] ==================== [SKIPPED] xe_mocs =====================
[23:09:46] ================= xe_migrate (2 subtests) ==================
[23:09:46] ================= xe_migrate_sanity_kunit  =================
[23:09:46] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[23:09:46] ================== xe_validate_ccs_kunit  ==================
[23:09:46] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[23:09:46] =================== [SKIPPED] xe_migrate ===================
[23:09:46] ================== xe_dma_buf (1 subtest) ==================
[23:09:46] ==================== xe_dma_buf_kunit  =====================
[23:09:46] ================ [SKIPPED] xe_dma_buf_kunit ================
[23:09:46] =================== [SKIPPED] xe_dma_buf ===================
[23:09:46] ================= xe_bo_shrink (1 subtest) =================
[23:09:46] =================== xe_bo_shrink_kunit  ====================
[23:09:46] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[23:09:46] ================== [SKIPPED] xe_bo_shrink ==================
[23:09:46] ==================== xe_bo (2 subtests) ====================
[23:09:46] ================== xe_ccs_migrate_kunit  ===================
[23:09:46] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[23:09:46] ==================== xe_bo_evict_kunit  ====================
[23:09:46] =============== [SKIPPED] xe_bo_evict_kunit ================
[23:09:46] ===================== [SKIPPED] xe_bo ======================
[23:09:46] ==================== args (13 subtests) ====================
[23:09:46] [PASSED] count_args_test
[23:09:46] [PASSED] call_args_example
[23:09:46] [PASSED] call_args_test
[23:09:46] [PASSED] drop_first_arg_example
[23:09:46] [PASSED] drop_first_arg_test
[23:09:46] [PASSED] first_arg_example
[23:09:46] [PASSED] first_arg_test
[23:09:46] [PASSED] last_arg_example
[23:09:46] [PASSED] last_arg_test
[23:09:46] [PASSED] pick_arg_example
[23:09:46] [PASSED] if_args_example
[23:09:46] [PASSED] if_args_test
[23:09:46] [PASSED] sep_comma_example
[23:09:46] ====================== [PASSED] args =======================
[23:09:46] =================== xe_pci (3 subtests) ====================
[23:09:46] ==================== check_graphics_ip  ====================
[23:09:46] [PASSED] 12.00 Xe_LP
[23:09:46] [PASSED] 12.10 Xe_LP+
[23:09:46] [PASSED] 12.55 Xe_HPG
[23:09:46] [PASSED] 12.60 Xe_HPC
[23:09:46] [PASSED] 12.70 Xe_LPG
[23:09:46] [PASSED] 12.71 Xe_LPG
[23:09:46] [PASSED] 12.74 Xe_LPG+
[23:09:46] [PASSED] 20.01 Xe2_HPG
[23:09:46] [PASSED] 20.02 Xe2_HPG
[23:09:46] [PASSED] 20.04 Xe2_LPG
[23:09:46] [PASSED] 30.00 Xe3_LPG
[23:09:46] [PASSED] 30.01 Xe3_LPG
[23:09:46] [PASSED] 30.03 Xe3_LPG
[23:09:46] [PASSED] 30.04 Xe3_LPG
[23:09:46] [PASSED] 30.05 Xe3_LPG
[23:09:46] [PASSED] 35.10 Xe3p_LPG
[23:09:46] [PASSED] 35.11 Xe3p_XPC
[23:09:46] ================ [PASSED] check_graphics_ip ================
[23:09:46] ===================== check_media_ip  ======================
[23:09:46] [PASSED] 12.00 Xe_M
[23:09:46] [PASSED] 12.55 Xe_HPM
[23:09:46] [PASSED] 13.00 Xe_LPM+
[23:09:46] [PASSED] 13.01 Xe2_HPM
[23:09:46] [PASSED] 20.00 Xe2_LPM
[23:09:46] [PASSED] 30.00 Xe3_LPM
[23:09:46] [PASSED] 30.02 Xe3_LPM
[23:09:46] [PASSED] 35.00 Xe3p_LPM
[23:09:46] [PASSED] 35.03 Xe3p_HPM
[23:09:46] ================= [PASSED] check_media_ip ==================
[23:09:46] =================== check_platform_desc  ===================
[23:09:46] [PASSED] 0x9A60 (TIGERLAKE)
[23:09:46] [PASSED] 0x9A68 (TIGERLAKE)
[23:09:46] [PASSED] 0x9A70 (TIGERLAKE)
[23:09:46] [PASSED] 0x9A40 (TIGERLAKE)
[23:09:46] [PASSED] 0x9A49 (TIGERLAKE)
[23:09:46] [PASSED] 0x9A59 (TIGERLAKE)
[23:09:46] [PASSED] 0x9A78 (TIGERLAKE)
[23:09:46] [PASSED] 0x9AC0 (TIGERLAKE)
[23:09:46] [PASSED] 0x9AC9 (TIGERLAKE)
[23:09:46] [PASSED] 0x9AD9 (TIGERLAKE)
[23:09:46] [PASSED] 0x9AF8 (TIGERLAKE)
[23:09:46] [PASSED] 0x4C80 (ROCKETLAKE)
[23:09:46] [PASSED] 0x4C8A (ROCKETLAKE)
[23:09:46] [PASSED] 0x4C8B (ROCKETLAKE)
[23:09:46] [PASSED] 0x4C8C (ROCKETLAKE)
[23:09:46] [PASSED] 0x4C90 (ROCKETLAKE)
[23:09:46] [PASSED] 0x4C9A (ROCKETLAKE)
[23:09:46] [PASSED] 0x4680 (ALDERLAKE_S)
[23:09:46] [PASSED] 0x4682 (ALDERLAKE_S)
[23:09:46] [PASSED] 0x4688 (ALDERLAKE_S)
[23:09:46] [PASSED] 0x468A (ALDERLAKE_S)
[23:09:46] [PASSED] 0x468B (ALDERLAKE_S)
[23:09:46] [PASSED] 0x4690 (ALDERLAKE_S)
[23:09:46] [PASSED] 0x4692 (ALDERLAKE_S)
[23:09:46] [PASSED] 0x4693 (ALDERLAKE_S)
[23:09:46] [PASSED] 0x46A0 (ALDERLAKE_P)
[23:09:46] [PASSED] 0x46A1 (ALDERLAKE_P)
[23:09:46] [PASSED] 0x46A2 (ALDERLAKE_P)
[23:09:46] [PASSED] 0x46A3 (ALDERLAKE_P)
[23:09:46] [PASSED] 0x46A6 (ALDERLAKE_P)
[23:09:46] [PASSED] 0x46A8 (ALDERLAKE_P)
[23:09:46] [PASSED] 0x46AA (ALDERLAKE_P)
[23:09:46] [PASSED] 0x462A (ALDERLAKE_P)
[23:09:46] [PASSED] 0x4626 (ALDERLAKE_P)
[23:09:46] [PASSED] 0x4628 (ALDERLAKE_P)
[23:09:46] [PASSED] 0x46B0 (ALDERLAKE_P)
[23:09:46] [PASSED] 0x46B1 (ALDERLAKE_P)
[23:09:46] [PASSED] 0x46B2 (ALDERLAKE_P)
[23:09:46] [PASSED] 0x46B3 (ALDERLAKE_P)
[23:09:46] [PASSED] 0x46C0 (ALDERLAKE_P)
[23:09:46] [PASSED] 0x46C1 (ALDERLAKE_P)
[23:09:46] [PASSED] 0x46C2 (ALDERLAKE_P)
[23:09:46] [PASSED] 0x46C3 (ALDERLAKE_P)
[23:09:46] [PASSED] 0x46D0 (ALDERLAKE_N)
[23:09:46] [PASSED] 0x46D1 (ALDERLAKE_N)
[23:09:46] [PASSED] 0x46D2 (ALDERLAKE_N)
[23:09:46] [PASSED] 0x46D3 (ALDERLAKE_N)
[23:09:46] [PASSED] 0x46D4 (ALDERLAKE_N)
[23:09:46] [PASSED] 0xA721 (ALDERLAKE_P)
[23:09:46] [PASSED] 0xA7A1 (ALDERLAKE_P)
[23:09:46] [PASSED] 0xA7A9 (ALDERLAKE_P)
[23:09:46] [PASSED] 0xA7AC (ALDERLAKE_P)
[23:09:46] [PASSED] 0xA7AD (ALDERLAKE_P)
[23:09:46] [PASSED] 0xA720 (ALDERLAKE_P)
[23:09:46] [PASSED] 0xA7A0 (ALDERLAKE_P)
[23:09:46] [PASSED] 0xA7A8 (ALDERLAKE_P)
[23:09:46] [PASSED] 0xA7AA (ALDERLAKE_P)
[23:09:46] [PASSED] 0xA7AB (ALDERLAKE_P)
[23:09:46] [PASSED] 0xA780 (ALDERLAKE_S)
[23:09:46] [PASSED] 0xA781 (ALDERLAKE_S)
[23:09:46] [PASSED] 0xA782 (ALDERLAKE_S)
[23:09:46] [PASSED] 0xA783 (ALDERLAKE_S)
[23:09:46] [PASSED] 0xA788 (ALDERLAKE_S)
[23:09:46] [PASSED] 0xA789 (ALDERLAKE_S)
[23:09:46] [PASSED] 0xA78A (ALDERLAKE_S)
[23:09:46] [PASSED] 0xA78B (ALDERLAKE_S)
[23:09:46] [PASSED] 0x4905 (DG1)
[23:09:46] [PASSED] 0x4906 (DG1)
[23:09:46] [PASSED] 0x4907 (DG1)
[23:09:46] [PASSED] 0x4908 (DG1)
[23:09:46] [PASSED] 0x4909 (DG1)
[23:09:46] [PASSED] 0x56C0 (DG2)
[23:09:46] [PASSED] 0x56C2 (DG2)
[23:09:46] [PASSED] 0x56C1 (DG2)
[23:09:46] [PASSED] 0x7D51 (METEORLAKE)
[23:09:46] [PASSED] 0x7DD1 (METEORLAKE)
[23:09:46] [PASSED] 0x7D41 (METEORLAKE)
[23:09:46] [PASSED] 0x7D67 (METEORLAKE)
[23:09:46] [PASSED] 0xB640 (METEORLAKE)
[23:09:46] [PASSED] 0x56A0 (DG2)
[23:09:46] [PASSED] 0x56A1 (DG2)
[23:09:46] [PASSED] 0x56A2 (DG2)
[23:09:46] [PASSED] 0x56BE (DG2)
[23:09:46] [PASSED] 0x56BF (DG2)
[23:09:46] [PASSED] 0x5690 (DG2)
[23:09:46] [PASSED] 0x5691 (DG2)
[23:09:46] [PASSED] 0x5692 (DG2)
[23:09:46] [PASSED] 0x56A5 (DG2)
[23:09:46] [PASSED] 0x56A6 (DG2)
[23:09:46] [PASSED] 0x56B0 (DG2)
[23:09:46] [PASSED] 0x56B1 (DG2)
[23:09:46] [PASSED] 0x56BA (DG2)
[23:09:46] [PASSED] 0x56BB (DG2)
[23:09:46] [PASSED] 0x56BC (DG2)
[23:09:46] [PASSED] 0x56BD (DG2)
[23:09:46] [PASSED] 0x5693 (DG2)
[23:09:46] [PASSED] 0x5694 (DG2)
[23:09:46] [PASSED] 0x5695 (DG2)
[23:09:46] [PASSED] 0x56A3 (DG2)
[23:09:46] [PASSED] 0x56A4 (DG2)
[23:09:46] [PASSED] 0x56B2 (DG2)
[23:09:46] [PASSED] 0x56B3 (DG2)
[23:09:46] [PASSED] 0x5696 (DG2)
[23:09:46] [PASSED] 0x5697 (DG2)
[23:09:46] [PASSED] 0xB69 (PVC)
[23:09:46] [PASSED] 0xB6E (PVC)
[23:09:46] [PASSED] 0xBD4 (PVC)
[23:09:46] [PASSED] 0xBD5 (PVC)
[23:09:46] [PASSED] 0xBD6 (PVC)
[23:09:46] [PASSED] 0xBD7 (PVC)
[23:09:46] [PASSED] 0xBD8 (PVC)
[23:09:46] [PASSED] 0xBD9 (PVC)
[23:09:46] [PASSED] 0xBDA (PVC)
[23:09:46] [PASSED] 0xBDB (PVC)
[23:09:46] [PASSED] 0xBE0 (PVC)
[23:09:46] [PASSED] 0xBE1 (PVC)
[23:09:46] [PASSED] 0xBE5 (PVC)
[23:09:46] [PASSED] 0x7D40 (METEORLAKE)
[23:09:46] [PASSED] 0x7D45 (METEORLAKE)
[23:09:46] [PASSED] 0x7D55 (METEORLAKE)
[23:09:46] [PASSED] 0x7D60 (METEORLAKE)
[23:09:46] [PASSED] 0x7DD5 (METEORLAKE)
[23:09:46] [PASSED] 0x6420 (LUNARLAKE)
[23:09:46] [PASSED] 0x64A0 (LUNARLAKE)
[23:09:46] [PASSED] 0x64B0 (LUNARLAKE)
[23:09:46] [PASSED] 0xE202 (BATTLEMAGE)
[23:09:46] [PASSED] 0xE209 (BATTLEMAGE)
[23:09:46] [PASSED] 0xE20B (BATTLEMAGE)
[23:09:46] [PASSED] 0xE20C (BATTLEMAGE)
[23:09:46] [PASSED] 0xE20D (BATTLEMAGE)
[23:09:46] [PASSED] 0xE210 (BATTLEMAGE)
[23:09:46] [PASSED] 0xE211 (BATTLEMAGE)
[23:09:46] [PASSED] 0xE212 (BATTLEMAGE)
[23:09:46] [PASSED] 0xE216 (BATTLEMAGE)
[23:09:46] [PASSED] 0xE220 (BATTLEMAGE)
[23:09:46] [PASSED] 0xE221 (BATTLEMAGE)
[23:09:46] [PASSED] 0xE222 (BATTLEMAGE)
[23:09:46] [PASSED] 0xE223 (BATTLEMAGE)
[23:09:46] [PASSED] 0xB080 (PANTHERLAKE)
[23:09:46] [PASSED] 0xB081 (PANTHERLAKE)
[23:09:46] [PASSED] 0xB082 (PANTHERLAKE)
[23:09:46] [PASSED] 0xB083 (PANTHERLAKE)
[23:09:46] [PASSED] 0xB084 (PANTHERLAKE)
[23:09:46] [PASSED] 0xB085 (PANTHERLAKE)
[23:09:46] [PASSED] 0xB086 (PANTHERLAKE)
[23:09:46] [PASSED] 0xB087 (PANTHERLAKE)
[23:09:46] [PASSED] 0xB08F (PANTHERLAKE)
[23:09:46] [PASSED] 0xB090 (PANTHERLAKE)
[23:09:46] [PASSED] 0xB0A0 (PANTHERLAKE)
[23:09:46] [PASSED] 0xB0B0 (PANTHERLAKE)
[23:09:46] [PASSED] 0xFD80 (PANTHERLAKE)
[23:09:46] [PASSED] 0xFD81 (PANTHERLAKE)
[23:09:46] [PASSED] 0xD740 (NOVALAKE_S)
[23:09:46] [PASSED] 0xD741 (NOVALAKE_S)
[23:09:46] [PASSED] 0xD742 (NOVALAKE_S)
[23:09:46] [PASSED] 0xD743 (NOVALAKE_S)
[23:09:46] [PASSED] 0xD744 (NOVALAKE_S)
[23:09:46] [PASSED] 0xD745 (NOVALAKE_S)
[23:09:46] [PASSED] 0x674C (CRESCENTISLAND)
[23:09:46] [PASSED] 0xD750 (NOVALAKE_P)
[23:09:46] [PASSED] 0xD751 (NOVALAKE_P)
[23:09:46] [PASSED] 0xD752 (NOVALAKE_P)
[23:09:46] [PASSED] 0xD753 (NOVALAKE_P)
[23:09:46] [PASSED] 0xD754 (NOVALAKE_P)
[23:09:46] [PASSED] 0xD755 (NOVALAKE_P)
[23:09:46] [PASSED] 0xD756 (NOVALAKE_P)
[23:09:46] [PASSED] 0xD757 (NOVALAKE_P)
[23:09:46] [PASSED] 0xD75F (NOVALAKE_P)
[23:09:46] =============== [PASSED] check_platform_desc ===============
[23:09:46] ===================== [PASSED] xe_pci ======================
[23:09:46] =================== xe_rtp (2 subtests) ====================
[23:09:46] =============== xe_rtp_process_to_sr_tests  ================
[23:09:46] [PASSED] coalesce-same-reg
[23:09:46] [PASSED] no-match-no-add
[23:09:46] [PASSED] match-or
[23:09:46] [PASSED] match-or-xfail
[23:09:46] [PASSED] no-match-no-add-multiple-rules
[23:09:46] [PASSED] two-regs-two-entries
[23:09:46] [PASSED] clr-one-set-other
[23:09:46] [PASSED] set-field
[23:09:46] [PASSED] conflict-duplicate
stty: 'standard input': Inappropriate ioctl for device
[23:09:46] [PASSED] conflict-not-disjoint
[23:09:46] [PASSED] conflict-reg-type
[23:09:46] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[23:09:46] ================== xe_rtp_process_tests  ===================
[23:09:46] [PASSED] active1
[23:09:46] [PASSED] active2
[23:09:46] [PASSED] active-inactive
[23:09:46] [PASSED] inactive-active
[23:09:46] [PASSED] inactive-1st_or_active-inactive
[23:09:46] [PASSED] inactive-2nd_or_active-inactive
[23:09:46] [PASSED] inactive-last_or_active-inactive
[23:09:46] [PASSED] inactive-no_or_active-inactive
[23:09:46] ============== [PASSED] xe_rtp_process_tests ===============
[23:09:46] ===================== [PASSED] xe_rtp ======================
[23:09:46] ==================== xe_wa (1 subtest) =====================
[23:09:46] ======================== xe_wa_gt  =========================
[23:09:46] [PASSED] TIGERLAKE B0
[23:09:46] [PASSED] DG1 A0
[23:09:46] [PASSED] DG1 B0
[23:09:46] [PASSED] ALDERLAKE_S A0
[23:09:46] [PASSED] ALDERLAKE_S B0
[23:09:46] [PASSED] ALDERLAKE_S C0
[23:09:46] [PASSED] ALDERLAKE_S D0
[23:09:46] [PASSED] ALDERLAKE_P A0
[23:09:46] [PASSED] ALDERLAKE_P B0
[23:09:46] [PASSED] ALDERLAKE_P C0
[23:09:46] [PASSED] ALDERLAKE_S RPLS D0
[23:09:46] [PASSED] ALDERLAKE_P RPLU E0
[23:09:46] [PASSED] DG2 G10 C0
[23:09:46] [PASSED] DG2 G11 B1
[23:09:46] [PASSED] DG2 G12 A1
[23:09:46] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[23:09:46] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[23:09:46] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[23:09:46] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[23:09:46] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[23:09:46] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[23:09:46] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[23:09:46] ==================== [PASSED] xe_wa_gt =====================
[23:09:46] ====================== [PASSED] xe_wa ======================
[23:09:46] ============================================================
[23:09:46] Testing complete. Ran 597 tests: passed: 579, skipped: 18
[23:09:46] Elapsed time: 36.429s total, 4.306s configuring, 31.505s building, 0.593s running

+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[23:09:46] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[23:09:48] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[23:10:12] Starting KUnit Kernel (1/1)...
[23:10:12] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[23:10:12] ============ drm_test_pick_cmdline (2 subtests) ============
[23:10:12] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[23:10:12] =============== drm_test_pick_cmdline_named  ===============
[23:10:12] [PASSED] NTSC
[23:10:12] [PASSED] NTSC-J
[23:10:12] [PASSED] PAL
[23:10:12] [PASSED] PAL-M
[23:10:12] =========== [PASSED] drm_test_pick_cmdline_named ===========
[23:10:12] ============== [PASSED] drm_test_pick_cmdline ==============
[23:10:12] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[23:10:12] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[23:10:12] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[23:10:12] =========== drm_validate_clone_mode (2 subtests) ===========
[23:10:12] ============== drm_test_check_in_clone_mode  ===============
[23:10:12] [PASSED] in_clone_mode
[23:10:12] [PASSED] not_in_clone_mode
[23:10:12] ========== [PASSED] drm_test_check_in_clone_mode ===========
[23:10:12] =============== drm_test_check_valid_clones  ===============
[23:10:12] [PASSED] not_in_clone_mode
[23:10:12] [PASSED] valid_clone
[23:10:12] [PASSED] invalid_clone
[23:10:12] =========== [PASSED] drm_test_check_valid_clones ===========
[23:10:12] ============= [PASSED] drm_validate_clone_mode =============
[23:10:12] ============= drm_validate_modeset (1 subtest) =============
[23:10:12] [PASSED] drm_test_check_connector_changed_modeset
[23:10:12] ============== [PASSED] drm_validate_modeset ===============
[23:10:12] ====== drm_test_bridge_get_current_state (2 subtests) ======
[23:10:12] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[23:10:12] [PASSED] drm_test_drm_bridge_get_current_state_legacy
[23:10:12] ======== [PASSED] drm_test_bridge_get_current_state ========
[23:10:12] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[23:10:12] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[23:10:12] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[23:10:12] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy
[23:10:12] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[23:10:12] ============== drm_bridge_alloc (2 subtests) ===============
[23:10:12] [PASSED] drm_test_drm_bridge_alloc_basic
[23:10:12] [PASSED] drm_test_drm_bridge_alloc_get_put
[23:10:12] ================ [PASSED] drm_bridge_alloc =================
[23:10:12] ============= drm_cmdline_parser (40 subtests) =============
[23:10:12] [PASSED] drm_test_cmdline_force_d_only
[23:10:12] [PASSED] drm_test_cmdline_force_D_only_dvi
[23:10:12] [PASSED] drm_test_cmdline_force_D_only_hdmi
[23:10:12] [PASSED] drm_test_cmdline_force_D_only_not_digital
[23:10:12] [PASSED] drm_test_cmdline_force_e_only
[23:10:12] [PASSED] drm_test_cmdline_res
[23:10:12] [PASSED] drm_test_cmdline_res_vesa
[23:10:12] [PASSED] drm_test_cmdline_res_vesa_rblank
[23:10:12] [PASSED] drm_test_cmdline_res_rblank
[23:10:12] [PASSED] drm_test_cmdline_res_bpp
[23:10:12] [PASSED] drm_test_cmdline_res_refresh
[23:10:12] [PASSED] drm_test_cmdline_res_bpp_refresh
[23:10:12] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[23:10:12] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[23:10:12] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[23:10:12] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[23:10:12] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[23:10:12] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[23:10:12] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[23:10:12] [PASSED] drm_test_cmdline_res_margins_force_on
[23:10:12] [PASSED] drm_test_cmdline_res_vesa_margins
[23:10:12] [PASSED] drm_test_cmdline_name
[23:10:12] [PASSED] drm_test_cmdline_name_bpp
[23:10:12] [PASSED] drm_test_cmdline_name_option
[23:10:12] [PASSED] drm_test_cmdline_name_bpp_option
[23:10:12] [PASSED] drm_test_cmdline_rotate_0
[23:10:12] [PASSED] drm_test_cmdline_rotate_90
[23:10:12] [PASSED] drm_test_cmdline_rotate_180
[23:10:12] [PASSED] drm_test_cmdline_rotate_270
[23:10:12] [PASSED] drm_test_cmdline_hmirror
[23:10:12] [PASSED] drm_test_cmdline_vmirror
[23:10:12] [PASSED] drm_test_cmdline_margin_options
[23:10:12] [PASSED] drm_test_cmdline_multiple_options
[23:10:12] [PASSED] drm_test_cmdline_bpp_extra_and_option
[23:10:12] [PASSED] drm_test_cmdline_extra_and_option
[23:10:12] [PASSED] drm_test_cmdline_freestanding_options
[23:10:12] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[23:10:12] [PASSED] drm_test_cmdline_panel_orientation
[23:10:12] ================ drm_test_cmdline_invalid  =================
[23:10:12] [PASSED] margin_only
[23:10:12] [PASSED] interlace_only
[23:10:12] [PASSED] res_missing_x
[23:10:12] [PASSED] res_missing_y
[23:10:12] [PASSED] res_bad_y
[23:10:12] [PASSED] res_missing_y_bpp
[23:10:12] [PASSED] res_bad_bpp
[23:10:12] [PASSED] res_bad_refresh
[23:10:12] [PASSED] res_bpp_refresh_force_on_off
[23:10:12] [PASSED] res_invalid_mode
[23:10:12] [PASSED] res_bpp_wrong_place_mode
[23:10:12] [PASSED] name_bpp_refresh
[23:10:12] [PASSED] name_refresh
[23:10:12] [PASSED] name_refresh_wrong_mode
[23:10:12] [PASSED] name_refresh_invalid_mode
[23:10:12] [PASSED] rotate_multiple
[23:10:12] [PASSED] rotate_invalid_val
[23:10:12] [PASSED] rotate_truncated
[23:10:12] [PASSED] invalid_option
[23:10:12] [PASSED] invalid_tv_option
[23:10:12] [PASSED] truncated_tv_option
[23:10:12] ============ [PASSED] drm_test_cmdline_invalid =============
[23:10:12] =============== drm_test_cmdline_tv_options  ===============
[23:10:12] [PASSED] NTSC
[23:10:12] [PASSED] NTSC_443
[23:10:12] [PASSED] NTSC_J
[23:10:12] [PASSED] PAL
[23:10:12] [PASSED] PAL_M
[23:10:12] [PASSED] PAL_N
[23:10:12] [PASSED] SECAM
[23:10:12] [PASSED] MONO_525
[23:10:12] [PASSED] MONO_625
[23:10:12] =========== [PASSED] drm_test_cmdline_tv_options ===========
[23:10:12] =============== [PASSED] drm_cmdline_parser ================
[23:10:12] ========== drmm_connector_hdmi_init (20 subtests) ==========
[23:10:12] [PASSED] drm_test_connector_hdmi_init_valid
[23:10:12] [PASSED] drm_test_connector_hdmi_init_bpc_8
[23:10:12] [PASSED] drm_test_connector_hdmi_init_bpc_10
[23:10:12] [PASSED] drm_test_connector_hdmi_init_bpc_12
[23:10:12] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[23:10:12] [PASSED] drm_test_connector_hdmi_init_bpc_null
[23:10:12] [PASSED] drm_test_connector_hdmi_init_formats_empty
[23:10:12] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[23:10:12] === drm_test_connector_hdmi_init_formats_yuv420_allowed  ===
[23:10:12] [PASSED] supported_formats=0x9 yuv420_allowed=1
[23:10:12] [PASSED] supported_formats=0x9 yuv420_allowed=0
[23:10:12] [PASSED] supported_formats=0x5 yuv420_allowed=1
[23:10:12] [PASSED] supported_formats=0x5 yuv420_allowed=0
[23:10:12] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[23:10:12] [PASSED] drm_test_connector_hdmi_init_null_ddc
[23:10:12] [PASSED] drm_test_connector_hdmi_init_null_product
[23:10:12] [PASSED] drm_test_connector_hdmi_init_null_vendor
[23:10:12] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[23:10:12] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[23:10:12] [PASSED] drm_test_connector_hdmi_init_product_valid
[23:10:12] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[23:10:12] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[23:10:12] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[23:10:12] ========= drm_test_connector_hdmi_init_type_valid  =========
[23:10:12] [PASSED] HDMI-A
[23:10:12] [PASSED] HDMI-B
[23:10:12] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[23:10:12] ======== drm_test_connector_hdmi_init_type_invalid  ========
[23:10:12] [PASSED] Unknown
[23:10:12] [PASSED] VGA
[23:10:12] [PASSED] DVI-I
[23:10:12] [PASSED] DVI-D
[23:10:12] [PASSED] DVI-A
[23:10:12] [PASSED] Composite
[23:10:12] [PASSED] SVIDEO
[23:10:12] [PASSED] LVDS
[23:10:12] [PASSED] Component
[23:10:12] [PASSED] DIN
[23:10:12] [PASSED] DP
[23:10:12] [PASSED] TV
[23:10:12] [PASSED] eDP
[23:10:12] [PASSED] Virtual
[23:10:12] [PASSED] DSI
[23:10:12] [PASSED] DPI
[23:10:12] [PASSED] Writeback
[23:10:12] [PASSED] SPI
[23:10:12] [PASSED] USB
[23:10:12] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[23:10:12] ============ [PASSED] drmm_connector_hdmi_init =============
[23:10:12] ============= drmm_connector_init (3 subtests) =============
[23:10:12] [PASSED] drm_test_drmm_connector_init
[23:10:12] [PASSED] drm_test_drmm_connector_init_null_ddc
[23:10:12] ========= drm_test_drmm_connector_init_type_valid  =========
[23:10:12] [PASSED] Unknown
[23:10:12] [PASSED] VGA
[23:10:12] [PASSED] DVI-I
[23:10:12] [PASSED] DVI-D
[23:10:12] [PASSED] DVI-A
[23:10:12] [PASSED] Composite
[23:10:12] [PASSED] SVIDEO
[23:10:12] [PASSED] LVDS
[23:10:12] [PASSED] Component
[23:10:12] [PASSED] DIN
[23:10:12] [PASSED] DP
[23:10:12] [PASSED] HDMI-A
[23:10:12] [PASSED] HDMI-B
[23:10:12] [PASSED] TV
[23:10:12] [PASSED] eDP
[23:10:12] [PASSED] Virtual
[23:10:12] [PASSED] DSI
[23:10:12] [PASSED] DPI
[23:10:12] [PASSED] Writeback
[23:10:12] [PASSED] SPI
[23:10:12] [PASSED] USB
[23:10:12] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[23:10:12] =============== [PASSED] drmm_connector_init ===============
[23:10:12] ========= drm_connector_dynamic_init (6 subtests) ==========
[23:10:12] [PASSED] drm_test_drm_connector_dynamic_init
[23:10:12] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[23:10:12] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[23:10:12] [PASSED] drm_test_drm_connector_dynamic_init_properties
[23:10:12] ===== drm_test_drm_connector_dynamic_init_type_valid  ======
[23:10:12] [PASSED] Unknown
[23:10:12] [PASSED] VGA
[23:10:12] [PASSED] DVI-I
[23:10:12] [PASSED] DVI-D
[23:10:12] [PASSED] DVI-A
[23:10:12] [PASSED] Composite
[23:10:12] [PASSED] SVIDEO
[23:10:12] [PASSED] LVDS
[23:10:12] [PASSED] Component
[23:10:12] [PASSED] DIN
[23:10:12] [PASSED] DP
[23:10:12] [PASSED] HDMI-A
[23:10:12] [PASSED] HDMI-B
[23:10:12] [PASSED] TV
[23:10:12] [PASSED] eDP
[23:10:12] [PASSED] Virtual
[23:10:12] [PASSED] DSI
[23:10:12] [PASSED] DPI
[23:10:12] [PASSED] Writeback
[23:10:12] [PASSED] SPI
[23:10:12] [PASSED] USB
[23:10:12] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[23:10:12] ======== drm_test_drm_connector_dynamic_init_name  =========
[23:10:12] [PASSED] Unknown
[23:10:12] [PASSED] VGA
[23:10:12] [PASSED] DVI-I
[23:10:12] [PASSED] DVI-D
[23:10:12] [PASSED] DVI-A
[23:10:12] [PASSED] Composite
[23:10:12] [PASSED] SVIDEO
[23:10:12] [PASSED] LVDS
[23:10:12] [PASSED] Component
[23:10:12] [PASSED] DIN
[23:10:12] [PASSED] DP
[23:10:12] [PASSED] HDMI-A
[23:10:12] [PASSED] HDMI-B
[23:10:12] [PASSED] TV
[23:10:12] [PASSED] eDP
[23:10:12] [PASSED] Virtual
[23:10:12] [PASSED] DSI
[23:10:12] [PASSED] DPI
[23:10:12] [PASSED] Writeback
[23:10:12] [PASSED] SPI
[23:10:12] [PASSED] USB
[23:10:12] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[23:10:12] =========== [PASSED] drm_connector_dynamic_init ============
[23:10:12] ==== drm_connector_dynamic_register_early (4 subtests) =====
[23:10:12] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[23:10:12] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[23:10:12] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[23:10:12] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[23:10:12] ====== [PASSED] drm_connector_dynamic_register_early =======
[23:10:12] ======= drm_connector_dynamic_register (7 subtests) ========
[23:10:12] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[23:10:12] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[23:10:12] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[23:10:12] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[23:10:12] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[23:10:12] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[23:10:12] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[23:10:12] ========= [PASSED] drm_connector_dynamic_register ==========
[23:10:12] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[23:10:12] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[23:10:12] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[23:10:12] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[23:10:12] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[23:10:12] ========== drm_test_get_tv_mode_from_name_valid  ===========
[23:10:12] [PASSED] NTSC
[23:10:12] [PASSED] NTSC-443
[23:10:12] [PASSED] NTSC-J
[23:10:12] [PASSED] PAL
[23:10:12] [PASSED] PAL-M
[23:10:12] [PASSED] PAL-N
[23:10:12] [PASSED] SECAM
[23:10:12] [PASSED] Mono
[23:10:12] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[23:10:12] [PASSED] drm_test_get_tv_mode_from_name_truncated
[23:10:12] ============ [PASSED] drm_get_tv_mode_from_name ============
[23:10:12] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[23:10:12] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[23:10:12] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[23:10:12] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[23:10:12] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[23:10:12] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[23:10:12] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[23:10:12] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid  =
[23:10:12] [PASSED] VIC 96
[23:10:12] [PASSED] VIC 97
[23:10:12] [PASSED] VIC 101
[23:10:12] [PASSED] VIC 102
[23:10:12] [PASSED] VIC 106
[23:10:12] [PASSED] VIC 107
[23:10:12] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[23:10:12] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[23:10:12] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[23:10:12] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[23:10:12] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[23:10:12] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[23:10:12] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[23:10:12] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[23:10:12] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name  ====
[23:10:12] [PASSED] Automatic
[23:10:12] [PASSED] Full
[23:10:12] [PASSED] Limited 16:235
[23:10:12] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[23:10:12] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[23:10:12] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[23:10:12] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[23:10:12] === drm_test_drm_hdmi_connector_get_output_format_name  ====
[23:10:12] [PASSED] RGB
[23:10:12] [PASSED] YUV 4:2:0
[23:10:12] [PASSED] YUV 4:2:2
[23:10:12] [PASSED] YUV 4:4:4
[23:10:12] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[23:10:12] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[23:10:12] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[23:10:12] ============= drm_damage_helper (21 subtests) ==============
[23:10:12] [PASSED] drm_test_damage_iter_no_damage
[23:10:12] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[23:10:12] [PASSED] drm_test_damage_iter_no_damage_src_moved
[23:10:12] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[23:10:12] [PASSED] drm_test_damage_iter_no_damage_not_visible
[23:10:12] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[23:10:12] [PASSED] drm_test_damage_iter_no_damage_no_fb
[23:10:12] [PASSED] drm_test_damage_iter_simple_damage
[23:10:12] [PASSED] drm_test_damage_iter_single_damage
[23:10:12] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[23:10:12] [PASSED] drm_test_damage_iter_single_damage_outside_src
[23:10:12] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[23:10:12] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[23:10:12] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[23:10:12] [PASSED] drm_test_damage_iter_single_damage_src_moved
[23:10:12] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[23:10:12] [PASSED] drm_test_damage_iter_damage
[23:10:12] [PASSED] drm_test_damage_iter_damage_one_intersect
[23:10:12] [PASSED] drm_test_damage_iter_damage_one_outside
[23:10:12] [PASSED] drm_test_damage_iter_damage_src_moved
[23:10:12] [PASSED] drm_test_damage_iter_damage_not_visible
[23:10:12] ================ [PASSED] drm_damage_helper ================
[23:10:12] ============== drm_dp_mst_helper (3 subtests) ==============
[23:10:12] ============== drm_test_dp_mst_calc_pbn_mode  ==============
[23:10:12] [PASSED] Clock 154000 BPP 30 DSC disabled
[23:10:12] [PASSED] Clock 234000 BPP 30 DSC disabled
[23:10:12] [PASSED] Clock 297000 BPP 24 DSC disabled
[23:10:12] [PASSED] Clock 332880 BPP 24 DSC enabled
[23:10:12] [PASSED] Clock 324540 BPP 24 DSC enabled
[23:10:12] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[23:10:12] ============== drm_test_dp_mst_calc_pbn_div  ===============
[23:10:12] [PASSED] Link rate 2000000 lane count 4
[23:10:12] [PASSED] Link rate 2000000 lane count 2
[23:10:12] [PASSED] Link rate 2000000 lane count 1
[23:10:12] [PASSED] Link rate 1350000 lane count 4
[23:10:12] [PASSED] Link rate 1350000 lane count 2
[23:10:12] [PASSED] Link rate 1350000 lane count 1
[23:10:12] [PASSED] Link rate 1000000 lane count 4
[23:10:12] [PASSED] Link rate 1000000 lane count 2
[23:10:12] [PASSED] Link rate 1000000 lane count 1
[23:10:12] [PASSED] Link rate 810000 lane count 4
[23:10:12] [PASSED] Link rate 810000 lane count 2
[23:10:12] [PASSED] Link rate 810000 lane count 1
[23:10:12] [PASSED] Link rate 540000 lane count 4
[23:10:12] [PASSED] Link rate 540000 lane count 2
[23:10:12] [PASSED] Link rate 540000 lane count 1
[23:10:12] [PASSED] Link rate 270000 lane count 4
[23:10:12] [PASSED] Link rate 270000 lane count 2
[23:10:12] [PASSED] Link rate 270000 lane count 1
[23:10:12] [PASSED] Link rate 162000 lane count 4
[23:10:12] [PASSED] Link rate 162000 lane count 2
[23:10:12] [PASSED] Link rate 162000 lane count 1
[23:10:12] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[23:10:12] ========= drm_test_dp_mst_sideband_msg_req_decode  =========
[23:10:12] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[23:10:12] [PASSED] DP_POWER_UP_PHY with port number
[23:10:12] [PASSED] DP_POWER_DOWN_PHY with port number
[23:10:12] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[23:10:12] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[23:10:12] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[23:10:12] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[23:10:12] [PASSED] DP_QUERY_PAYLOAD with port number
[23:10:12] [PASSED] DP_QUERY_PAYLOAD with VCPI
[23:10:12] [PASSED] DP_REMOTE_DPCD_READ with port number
[23:10:12] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[23:10:12] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[23:10:12] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[23:10:12] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[23:10:12] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[23:10:12] [PASSED] DP_REMOTE_I2C_READ with port number
[23:10:12] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[23:10:12] [PASSED] DP_REMOTE_I2C_READ with transactions array
[23:10:12] [PASSED] DP_REMOTE_I2C_WRITE with port number
[23:10:12] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[23:10:12] [PASSED] DP_REMOTE_I2C_WRITE with data array
[23:10:12] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[23:10:12] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[23:10:12] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[23:10:12] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[23:10:12] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[23:10:12] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[23:10:12] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[23:10:12] ================ [PASSED] drm_dp_mst_helper ================
[23:10:12] ================== drm_exec (7 subtests) ===================
[23:10:12] [PASSED] sanitycheck
[23:10:12] [PASSED] test_lock
[23:10:12] [PASSED] test_lock_unlock
[23:10:12] [PASSED] test_duplicates
[23:10:12] [PASSED] test_prepare
[23:10:12] [PASSED] test_prepare_array
[23:10:12] [PASSED] test_multiple_loops
[23:10:12] ==================== [PASSED] drm_exec =====================
[23:10:12] =========== drm_format_helper_test (17 subtests) ===========
[23:10:12] ============== drm_test_fb_xrgb8888_to_gray8  ==============
[23:10:12] [PASSED] single_pixel_source_buffer
[23:10:12] [PASSED] single_pixel_clip_rectangle
[23:10:12] [PASSED] well_known_colors
[23:10:12] [PASSED] destination_pitch
[23:10:12] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[23:10:12] ============= drm_test_fb_xrgb8888_to_rgb332  ==============
[23:10:12] [PASSED] single_pixel_source_buffer
[23:10:12] [PASSED] single_pixel_clip_rectangle
[23:10:12] [PASSED] well_known_colors
[23:10:12] [PASSED] destination_pitch
[23:10:12] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[23:10:12] ============= drm_test_fb_xrgb8888_to_rgb565  ==============
[23:10:12] [PASSED] single_pixel_source_buffer
[23:10:12] [PASSED] single_pixel_clip_rectangle
[23:10:12] [PASSED] well_known_colors
[23:10:12] [PASSED] destination_pitch
[23:10:12] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[23:10:12] ============ drm_test_fb_xrgb8888_to_xrgb1555  =============
[23:10:12] [PASSED] single_pixel_source_buffer
[23:10:12] [PASSED] single_pixel_clip_rectangle
[23:10:12] [PASSED] well_known_colors
[23:10:12] [PASSED] destination_pitch
[23:10:12] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[23:10:12] ============ drm_test_fb_xrgb8888_to_argb1555  =============
[23:10:12] [PASSED] single_pixel_source_buffer
[23:10:12] [PASSED] single_pixel_clip_rectangle
[23:10:12] [PASSED] well_known_colors
[23:10:12] [PASSED] destination_pitch
[23:10:12] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[23:10:12] ============ drm_test_fb_xrgb8888_to_rgba5551  =============
[23:10:12] [PASSED] single_pixel_source_buffer
[23:10:12] [PASSED] single_pixel_clip_rectangle
[23:10:12] [PASSED] well_known_colors
[23:10:12] [PASSED] destination_pitch
[23:10:12] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[23:10:12] ============= drm_test_fb_xrgb8888_to_rgb888  ==============
[23:10:12] [PASSED] single_pixel_source_buffer
[23:10:12] [PASSED] single_pixel_clip_rectangle
[23:10:12] [PASSED] well_known_colors
[23:10:12] [PASSED] destination_pitch
[23:10:12] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[23:10:12] ============= drm_test_fb_xrgb8888_to_bgr888  ==============
[23:10:12] [PASSED] single_pixel_source_buffer
[23:10:12] [PASSED] single_pixel_clip_rectangle
[23:10:12] [PASSED] well_known_colors
[23:10:12] [PASSED] destination_pitch
[23:10:12] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[23:10:12] ============ drm_test_fb_xrgb8888_to_argb8888  =============
[23:10:12] [PASSED] single_pixel_source_buffer
[23:10:12] [PASSED] single_pixel_clip_rectangle
[23:10:12] [PASSED] well_known_colors
[23:10:12] [PASSED] destination_pitch
[23:10:12] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[23:10:12] =========== drm_test_fb_xrgb8888_to_xrgb2101010  ===========
[23:10:12] [PASSED] single_pixel_source_buffer
[23:10:12] [PASSED] single_pixel_clip_rectangle
[23:10:12] [PASSED] well_known_colors
[23:10:12] [PASSED] destination_pitch
[23:10:12] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[23:10:12] =========== drm_test_fb_xrgb8888_to_argb2101010  ===========
[23:10:12] [PASSED] single_pixel_source_buffer
[23:10:12] [PASSED] single_pixel_clip_rectangle
[23:10:12] [PASSED] well_known_colors
[23:10:12] [PASSED] destination_pitch
[23:10:12] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[23:10:12] ============== drm_test_fb_xrgb8888_to_mono  ===============
[23:10:12] [PASSED] single_pixel_source_buffer
[23:10:12] [PASSED] single_pixel_clip_rectangle
[23:10:12] [PASSED] well_known_colors
[23:10:12] [PASSED] destination_pitch
[23:10:12] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[23:10:12] ==================== drm_test_fb_swab  =====================
[23:10:12] [PASSED] single_pixel_source_buffer
[23:10:12] [PASSED] single_pixel_clip_rectangle
[23:10:12] [PASSED] well_known_colors
[23:10:12] [PASSED] destination_pitch
[23:10:12] ================ [PASSED] drm_test_fb_swab =================
[23:10:12] ============ drm_test_fb_xrgb8888_to_xbgr8888  =============
[23:10:12] [PASSED] single_pixel_source_buffer
[23:10:12] [PASSED] single_pixel_clip_rectangle
[23:10:12] [PASSED] well_known_colors
[23:10:12] [PASSED] destination_pitch
[23:10:12] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[23:10:12] ============ drm_test_fb_xrgb8888_to_abgr8888  =============
[23:10:12] [PASSED] single_pixel_source_buffer
[23:10:12] [PASSED] single_pixel_clip_rectangle
[23:10:12] [PASSED] well_known_colors
[23:10:12] [PASSED] destination_pitch
[23:10:12] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[23:10:12] ================= drm_test_fb_clip_offset  =================
[23:10:12] [PASSED] pass through
[23:10:12] [PASSED] horizontal offset
[23:10:12] [PASSED] vertical offset
[23:10:12] [PASSED] horizontal and vertical offset
[23:10:12] [PASSED] horizontal offset (custom pitch)
[23:10:12] [PASSED] vertical offset (custom pitch)
[23:10:12] [PASSED] horizontal and vertical offset (custom pitch)
[23:10:12] ============= [PASSED] drm_test_fb_clip_offset =============
[23:10:12] =================== drm_test_fb_memcpy  ====================
[23:10:12] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[23:10:12] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[23:10:12] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[23:10:12] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[23:10:12] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[23:10:12] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[23:10:12] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[23:10:12] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[23:10:12] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[23:10:12] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[23:10:12] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[23:10:12] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[23:10:12] =============== [PASSED] drm_test_fb_memcpy ================
[23:10:12] ============= [PASSED] drm_format_helper_test ==============
[23:10:12] ================= drm_format (18 subtests) =================
[23:10:12] [PASSED] drm_test_format_block_width_invalid
[23:10:12] [PASSED] drm_test_format_block_width_one_plane
[23:10:12] [PASSED] drm_test_format_block_width_two_plane
[23:10:12] [PASSED] drm_test_format_block_width_three_plane
[23:10:12] [PASSED] drm_test_format_block_width_tiled
[23:10:12] [PASSED] drm_test_format_block_height_invalid
[23:10:12] [PASSED] drm_test_format_block_height_one_plane
[23:10:12] [PASSED] drm_test_format_block_height_two_plane
[23:10:12] [PASSED] drm_test_format_block_height_three_plane
[23:10:12] [PASSED] drm_test_format_block_height_tiled
[23:10:12] [PASSED] drm_test_format_min_pitch_invalid
[23:10:12] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[23:10:12] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[23:10:12] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[23:10:12] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[23:10:12] [PASSED] drm_test_format_min_pitch_two_plane
[23:10:12] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[23:10:12] [PASSED] drm_test_format_min_pitch_tiled
[23:10:12] =================== [PASSED] drm_format ====================
[23:10:12] ============== drm_framebuffer (10 subtests) ===============
[23:10:12] ========== drm_test_framebuffer_check_src_coords  ==========
[23:10:12] [PASSED] Success: source fits into fb
[23:10:12] [PASSED] Fail: overflowing fb with x-axis coordinate
[23:10:12] [PASSED] Fail: overflowing fb with y-axis coordinate
[23:10:12] [PASSED] Fail: overflowing fb with source width
[23:10:12] [PASSED] Fail: overflowing fb with source height
[23:10:12] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[23:10:12] [PASSED] drm_test_framebuffer_cleanup
[23:10:12] =============== drm_test_framebuffer_create  ===============
[23:10:12] [PASSED] ABGR8888 normal sizes
[23:10:12] [PASSED] ABGR8888 max sizes
[23:10:12] [PASSED] ABGR8888 pitch greater than min required
[23:10:12] [PASSED] ABGR8888 pitch less than min required
[23:10:12] [PASSED] ABGR8888 Invalid width
[23:10:12] [PASSED] ABGR8888 Invalid buffer handle
[23:10:12] [PASSED] No pixel format
[23:10:12] [PASSED] ABGR8888 Width 0
[23:10:12] [PASSED] ABGR8888 Height 0
[23:10:12] [PASSED] ABGR8888 Out of bound height * pitch combination
[23:10:12] [PASSED] ABGR8888 Large buffer offset
[23:10:12] [PASSED] ABGR8888 Buffer offset for inexistent plane
[23:10:12] [PASSED] ABGR8888 Invalid flag
[23:10:12] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[23:10:12] [PASSED] ABGR8888 Valid buffer modifier
[23:10:12] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[23:10:12] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[23:10:12] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[23:10:12] [PASSED] NV12 Normal sizes
[23:10:12] [PASSED] NV12 Max sizes
[23:10:12] [PASSED] NV12 Invalid pitch
[23:10:12] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[23:10:12] [PASSED] NV12 different  modifier per-plane
[23:10:12] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[23:10:12] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[23:10:12] [PASSED] NV12 Modifier for inexistent plane
[23:10:12] [PASSED] NV12 Handle for inexistent plane
[23:10:12] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[23:10:12] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[23:10:12] [PASSED] YVU420 Normal sizes
[23:10:12] [PASSED] YVU420 Max sizes
[23:10:12] [PASSED] YVU420 Invalid pitch
[23:10:12] [PASSED] YVU420 Different pitches
[23:10:12] [PASSED] YVU420 Different buffer offsets/pitches
[23:10:12] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[23:10:12] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[23:10:12] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[23:10:12] [PASSED] YVU420 Valid modifier
[23:10:12] [PASSED] YVU420 Different modifiers per plane
[23:10:12] [PASSED] YVU420 Modifier for inexistent plane
[23:10:12] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[23:10:12] [PASSED] X0L2 Normal sizes
[23:10:12] [PASSED] X0L2 Max sizes
[23:10:12] [PASSED] X0L2 Invalid pitch
[23:10:12] [PASSED] X0L2 Pitch greater than minimum required
[23:10:12] [PASSED] X0L2 Handle for inexistent plane
[23:10:12] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[23:10:12] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[23:10:12] [PASSED] X0L2 Valid modifier
[23:10:12] [PASSED] X0L2 Modifier for inexistent plane
[23:10:12] =========== [PASSED] drm_test_framebuffer_create ===========
[23:10:12] [PASSED] drm_test_framebuffer_free
[23:10:12] [PASSED] drm_test_framebuffer_init
[23:10:12] [PASSED] drm_test_framebuffer_init_bad_format
[23:10:12] [PASSED] drm_test_framebuffer_init_dev_mismatch
[23:10:12] [PASSED] drm_test_framebuffer_lookup
[23:10:12] [PASSED] drm_test_framebuffer_lookup_inexistent
[23:10:12] [PASSED] drm_test_framebuffer_modifiers_not_supported
[23:10:12] ================= [PASSED] drm_framebuffer =================
[23:10:12] ================ drm_gem_shmem (8 subtests) ================
[23:10:12] [PASSED] drm_gem_shmem_test_obj_create
[23:10:12] [PASSED] drm_gem_shmem_test_obj_create_private
[23:10:12] [PASSED] drm_gem_shmem_test_pin_pages
[23:10:12] [PASSED] drm_gem_shmem_test_vmap
[23:10:12] [PASSED] drm_gem_shmem_test_get_sg_table
[23:10:12] [PASSED] drm_gem_shmem_test_get_pages_sgt
[23:10:12] [PASSED] drm_gem_shmem_test_madvise
[23:10:12] [PASSED] drm_gem_shmem_test_purge
[23:10:12] ================== [PASSED] drm_gem_shmem ==================
[23:10:12] === drm_atomic_helper_connector_hdmi_check (27 subtests) ===
[23:10:12] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[23:10:12] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[23:10:12] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[23:10:12] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[23:10:12] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[23:10:12] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[23:10:12] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420  =======
[23:10:12] [PASSED] Automatic
[23:10:12] [PASSED] Full
[23:10:12] [PASSED] Limited 16:235
[23:10:12] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[23:10:12] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[23:10:12] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[23:10:12] [PASSED] drm_test_check_disable_connector
[23:10:12] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[23:10:12] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[23:10:12] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[23:10:12] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[23:10:12] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[23:10:12] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[23:10:12] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[23:10:12] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[23:10:12] [PASSED] drm_test_check_output_bpc_dvi
[23:10:12] [PASSED] drm_test_check_output_bpc_format_vic_1
[23:10:12] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[23:10:12] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[23:10:12] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[23:10:12] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[23:10:12] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[23:10:12] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[23:10:12] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[23:10:12] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[23:10:12] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[23:10:12] [PASSED] drm_test_check_broadcast_rgb_value
[23:10:12] [PASSED] drm_test_check_bpc_8_value
[23:10:12] [PASSED] drm_test_check_bpc_10_value
[23:10:12] [PASSED] drm_test_check_bpc_12_value
[23:10:12] [PASSED] drm_test_check_format_value
[23:10:12] [PASSED] drm_test_check_tmds_char_value
[23:10:12] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[23:10:12] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) =
[23:10:12] [PASSED] drm_test_check_mode_valid
[23:10:12] [PASSED] drm_test_check_mode_valid_reject
[23:10:12] [PASSED] drm_test_check_mode_valid_reject_rate
[23:10:12] [PASSED] drm_test_check_mode_valid_reject_max_clock
[23:10:12] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[23:10:12] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) =
[23:10:12] [PASSED] drm_test_check_infoframes
[23:10:12] [PASSED] drm_test_check_reject_avi_infoframe
[23:10:12] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8
[23:10:12] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10
[23:10:12] [PASSED] drm_test_check_reject_audio_infoframe
[23:10:12] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes ===
[23:10:12] ================= drm_managed (2 subtests) =================
[23:10:12] [PASSED] drm_test_managed_release_action
[23:10:12] [PASSED] drm_test_managed_run_action
[23:10:12] =================== [PASSED] drm_managed ===================
[23:10:12] =================== drm_mm (6 subtests) ====================
[23:10:12] [PASSED] drm_test_mm_init
[23:10:12] [PASSED] drm_test_mm_debug
[23:10:12] [PASSED] drm_test_mm_align32
[23:10:12] [PASSED] drm_test_mm_align64
[23:10:12] [PASSED] drm_test_mm_lowest
[23:10:12] [PASSED] drm_test_mm_highest
[23:10:12] ===================== [PASSED] drm_mm ======================
[23:10:12] ============= drm_modes_analog_tv (5 subtests) =============
[23:10:12] [PASSED] drm_test_modes_analog_tv_mono_576i
[23:10:12] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[23:10:12] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[23:10:12] [PASSED] drm_test_modes_analog_tv_pal_576i
[23:10:12] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[23:10:12] =============== [PASSED] drm_modes_analog_tv ===============
[23:10:12] ============== drm_plane_helper (2 subtests) ===============
[23:10:12] =============== drm_test_check_plane_state  ================
[23:10:12] [PASSED] clipping_simple
[23:10:12] [PASSED] clipping_rotate_reflect
[23:10:12] [PASSED] positioning_simple
[23:10:12] [PASSED] upscaling
[23:10:12] [PASSED] downscaling
[23:10:12] [PASSED] rounding1
[23:10:12] [PASSED] rounding2
[23:10:12] [PASSED] rounding3
[23:10:12] [PASSED] rounding4
[23:10:12] =========== [PASSED] drm_test_check_plane_state ============
[23:10:12] =========== drm_test_check_invalid_plane_state  ============
[23:10:12] [PASSED] positioning_invalid
[23:10:12] [PASSED] upscaling_invalid
[23:10:12] [PASSED] downscaling_invalid
[23:10:12] ======= [PASSED] drm_test_check_invalid_plane_state ========
[23:10:12] ================ [PASSED] drm_plane_helper =================
[23:10:12] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[23:10:12] ====== drm_test_connector_helper_tv_get_modes_check  =======
[23:10:12] [PASSED] None
[23:10:12] [PASSED] PAL
[23:10:12] [PASSED] NTSC
[23:10:12] [PASSED] Both, NTSC Default
[23:10:12] [PASSED] Both, PAL Default
[23:10:12] [PASSED] Both, NTSC Default, with PAL on command-line
[23:10:12] [PASSED] Both, PAL Default, with NTSC on command-line
[23:10:12] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[23:10:12] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[23:10:12] ================== drm_rect (9 subtests) ===================
[23:10:12] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[23:10:12] [PASSED] drm_test_rect_clip_scaled_not_clipped
[23:10:12] [PASSED] drm_test_rect_clip_scaled_clipped
[23:10:12] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[23:10:12] ================= drm_test_rect_intersect  =================
[23:10:12] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[23:10:12] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[23:10:12] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[23:10:12] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[23:10:12] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[23:10:12] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[23:10:12] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[23:10:12] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[23:10:12] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[23:10:12] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[23:10:12] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[23:10:12] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[23:10:12] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[23:10:12] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[23:10:12] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[23:10:12] ============= [PASSED] drm_test_rect_intersect =============
[23:10:12] ================ drm_test_rect_calc_hscale  ================
[23:10:12] [PASSED] normal use
[23:10:12] [PASSED] out of max range
[23:10:12] [PASSED] out of min range
[23:10:12] [PASSED] zero dst
[23:10:12] [PASSED] negative src
[23:10:12] [PASSED] negative dst
[23:10:12] ============ [PASSED] drm_test_rect_calc_hscale ============
[23:10:12] ================ drm_test_rect_calc_vscale  ================
[23:10:12] [PASSED] normal use
[23:10:12] [PASSED] out of max range
[23:10:12] [PASSED] out of min range
[23:10:12] [PASSED] zero dst
[23:10:12] [PASSED] negative src
[23:10:12] [PASSED] negative dst
stty: 'standard input': Inappropriate ioctl for device
[23:10:12] ============ [PASSED] drm_test_rect_calc_vscale ============
[23:10:12] ================== drm_test_rect_rotate  ===================
[23:10:12] [PASSED] reflect-x
[23:10:12] [PASSED] reflect-y
[23:10:12] [PASSED] rotate-0
[23:10:12] [PASSED] rotate-90
[23:10:12] [PASSED] rotate-180
[23:10:12] [PASSED] rotate-270
[23:10:12] ============== [PASSED] drm_test_rect_rotate ===============
[23:10:12] ================ drm_test_rect_rotate_inv  =================
[23:10:12] [PASSED] reflect-x
[23:10:12] [PASSED] reflect-y
[23:10:12] [PASSED] rotate-0
[23:10:12] [PASSED] rotate-90
[23:10:12] [PASSED] rotate-180
[23:10:12] [PASSED] rotate-270
[23:10:12] ============ [PASSED] drm_test_rect_rotate_inv =============
[23:10:12] ==================== [PASSED] drm_rect =====================
[23:10:12] ============ drm_sysfb_modeset_test (1 subtest) ============
[23:10:12] ============ drm_test_sysfb_build_fourcc_list  =============
[23:10:12] [PASSED] no native formats
[23:10:12] [PASSED] XRGB8888 as native format
[23:10:12] [PASSED] remove duplicates
[23:10:12] [PASSED] convert alpha formats
[23:10:12] [PASSED] random formats
[23:10:12] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[23:10:12] ============= [PASSED] drm_sysfb_modeset_test ==============
[23:10:12] ================== drm_fixp (2 subtests) ===================
[23:10:12] [PASSED] drm_test_int2fixp
[23:10:12] [PASSED] drm_test_sm2fixp
[23:10:12] ==================== [PASSED] drm_fixp =====================
[23:10:12] ============================================================
[23:10:12] Testing complete. Ran 621 tests: passed: 621
[23:10:12] Elapsed time: 26.247s total, 1.650s configuring, 24.427s building, 0.167s running

+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
stty: 'standard input': Inappropriate ioctl for device
[23:10:13] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[23:10:14] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[23:10:24] Starting KUnit Kernel (1/1)...
[23:10:24] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[23:10:24] ================= ttm_device (5 subtests) ==================
[23:10:24] [PASSED] ttm_device_init_basic
[23:10:24] [PASSED] ttm_device_init_multiple
[23:10:24] [PASSED] ttm_device_fini_basic
[23:10:24] [PASSED] ttm_device_init_no_vma_man
[23:10:24] ================== ttm_device_init_pools  ==================
[23:10:24] [PASSED] No DMA allocations, no DMA32 required
[23:10:24] # ttm_device_init_pools: ASSERTION FAILED at drivers/gpu/drm/ttm/tests/ttm_device_test.c:178
[23:10:24] Expected !list_lru_count(&pt.pages) to be false, but is true
[23:10:24] [FAILED] DMA allocations, DMA32 required
[23:10:24] [PASSED] No DMA allocations, DMA32 required
[23:10:24]     # ttm_device_init_pools: ASSERTION FAILED at drivers/gpu/drm/ttm/tests/ttm_device_test.c:178
[23:10:24]     Expected !list_lru_count(&pt.pages) to be false, but is true
[23:10:24] ------------[ cut here ]------------
[23:10:24] WARNING: lib/refcount.c:28 at devres_release_all+0xaa/0x100, CPU#0: kunit_try_catch/46
[23:10:24] refcount_t: underflow; use-after-free.
[23:10:24] CPU: 0 UID: 0 PID: 46 Comm: kunit_try_catch Tainted: G        W        N  7.0.0-rc7-gf1dcc7bc3047 #3 VOLUNTARY
[23:10:24] Tainted: [W]=WARN, [N]=TEST
[23:10:24] Stack:
[23:10:24]  6044ed8b 00000000 00000000 00000001
[23:10:24]  ffffff00 6044ed8b 6032367a 00000009
[23:10:24]  0000001c 60043e88 6002381c d58cbd40
[23:10:24] Call Trace:
[23:10:24]  [<6032367a>] ? devres_release_all+0xaa/0x100
[23:10:24]  [<60043e88>] ? dump_stack_lvl+0x5e/0x7a
[23:10:24]  [<6002381c>] ? _printk+0x0/0x65
[23:10:24]  [<6001f09f>] ? __warn.cold+0x79/0x11f
[23:10:24]  [<6001f1d9>] ? warn_slowpath_fmt+0x94/0xa1
[23:10:24]  [<601ef1a0>] ? kernfs_free_rcu+0x0/0x70
[23:10:24]  [<60052e36>] ? um_set_signals+0x36/0x60
[23:10:24]  [<600c5a42>] ? call_rcu+0x52/0x90
[23:10:24]  [<6001f145>] ? warn_slowpath_fmt+0x0/0xa1
[23:10:24]  [<60147f50>] ? kfree+0x0/0x250
[23:10:24]  [<6032367a>] ? devres_release_all+0xaa/0x100
[23:10:24]  [<60396bb0>] ? mutex_unlock+0x0/0x30
[23:10:24]  [<6031c3c0>] ? bus_notify+0x0/0x60
[23:10:24]  [<60396bb0>] ? mutex_unlock+0x0/0x30
[23:10:24]  [<60398620>] ? mutex_lock+0x0/0x40
[23:10:24]  [<6031ca24>] ? device_unbind_cleanup+0x14/0xb0
[23:10:24]  [<6031e1f6>] ? device_release_driver_internal+0x256/0x2b0
[23:10:24]  [<60372210>] ? kobject_put+0x0/0x150
[23:10:24]  [<601f3d40>] ? sysfs_remove_file_ns+0x0/0x20
[23:10:24]  [<6031c00f>] ? bus_remove_device+0x10f/0x1a0
[23:10:24]  [<601f3d40>] ? sysfs_remove_file_ns+0x0/0x20
[23:10:24]  [<601f17b8>] ? kernfs_remove_by_name_ns+0x98/0x130
[23:10:24]  [<60315a8c>] ? device_del+0x1bc/0x600
[23:10:24]  [<60052e00>] ? um_set_signals+0x0/0x60
[23:10:24]  [<6025b2a0>] ? device_unregister_wrapper+0x0/0x10
[23:10:24]  [<60052e00>] ? um_set_signals+0x0/0x60
[23:10:24]  [<60315ee4>] ? device_unregister+0x14/0x40
[23:10:24]  [<60257e66>] ? kunit_release_action+0xf6/0x170
[23:10:24]  [<60257d70>] ? kunit_release_action+0x0/0x170
[23:10:24]  [<6025b2e2>] ? kunit_device_unregister+0x32/0x80
[23:10:24]  [<60259890>] ? kunit_generic_run_threadfn_adapter+0x0/0x30
[23:10:24]  [<6025748e>] ? kunit_try_run_case_cleanup+0x2e/0x40
[23:10:24]  [<602598a6>] ? kunit_generic_run_threadfn_adapter+0x16/0x30
[23:10:24]  [<60081e36>] ? kthread+0xe6/0x150
[23:10:24]  [<60046435>] ? new_thread_handler+0x45/0x60
[23:10:24] ---[ end trace 0000000000000000 ]---
[23:10:24] [FAILED] DMA allocations, no DMA32 required
[23:10:24] # ttm_device_init_pools: pass:2 fail:2 skip:0 total:4
[23:10:24] ============== [FAILED] ttm_device_init_pools ==============
[23:10:24]     # module: ttm_device_test
[23:10:24] # ttm_device: pass:4 fail:1 skip:0 total:5
[23:10:24] # Totals: pass:6 fail:2 skip:0 total:8
[23:10:24] =================== [FAILED] ttm_device ====================
[23:10:24] ================== ttm_pool (8 subtests) ===================
[23:10:24] ================== ttm_pool_alloc_basic  ===================
[23:10:24] [PASSED] One page
[23:10:24] [PASSED] More than one page
[23:10:24] [PASSED] Above the allocation limit
[23:10:24] [PASSED] One page, with coherent DMA mappings enabled
[23:10:24] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[23:10:24] ============== [PASSED] ttm_pool_alloc_basic ===============
[23:10:24] ============== ttm_pool_alloc_basic_dma_addr  ==============
[23:10:24] [PASSED] One page
[23:10:24] [PASSED] More than one page
[23:10:24] [PASSED] Above the allocation limit
[23:10:24] [PASSED] One page, with coherent DMA mappings enabled
[23:10:24] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[23:10:24] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[23:10:24] [PASSED] ttm_pool_alloc_order_caching_match
[23:10:24] [PASSED] ttm_pool_alloc_caching_mismatch
[23:10:24] [PASSED] ttm_pool_alloc_order_mismatch
[23:10:24] [PASSED] ttm_pool_free_dma_alloc
[23:10:24] [ERROR] Test: ttm_pool: missing expected subtest!
[23:10:24] 
[23:10:24] Pid: 75, comm: kunit_try_catch Tainted: G        W        N  7.0.0-rc7-gf1dcc7bc3047
[23:10:24] RIP: 0033:list_lru_count_node+0xe/0x20
[23:10:24] RSP: 00000000d58cbed8  EFLAGS: 00010246
[23:10:24] RAX: 0000000000000000 RBX: 00000000d5803c90 RCX: 0000000095e4c7d8
[23:10:24] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000095c86880
[23:10:24] RBP: 0000000095c86800 R08: 00000000d4737c28 R09: 0000000095c50c80
[23:10:24] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000095c50c80
[23:10:24] R13: 0000000060440770 R14: 000000006010eb50 R15: 0000000095c86880
[23:10:24] Kernel panic - not syncing: Segfault with no mm
[23:10:24] [CRASHED] 
[23:10:24] [ERROR] Test: ttm_pool: missing expected subtest!
[23:10:24] [CRASHED] 
[23:10:24] [ERROR] Test: ttm_pool: missing subtest result line!
[23:10:24] # module: ttm_pool_test
[23:10:24] ==================== [CRASHED] ttm_pool ====================
[23:10:24] [ERROR] Test: main: missing expected subtest!
[23:10:24] [CRASHED] 
[23:10:24] [ERROR] Test: main: missing expected subtest!
[23:10:24] [CRASHED] 
[23:10:24] [ERROR] Test: main: missing expected subtest!
[23:10:24] [CRASHED] 
[23:10:24] [ERROR] Test: main: missing expected subtest!
[23:10:24] [CRASHED] 
[23:10:24] ============================================================
[23:10:24] Testing complete. Ran 28 tests: passed: 20, failed: 2, crashed: 6, errors: 7
The kernel seems to have crashed; you can decode the stack traces with:
$ scripts/decode_stacktrace.sh .kunit/vmlinux .kunit < .kunit/test.log | tee .kunit/decoded.log | /kernel/tools/testing/kunit/kunit.py parse
[23:10:24] Elapsed time: 11.266s total, 1.680s configuring, 9.319s building, 0.267s running

+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel



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

* ✗ CI.checkpatch: warning for drm/xe/ras: Fix and clean up xe_drm_ras (rev2)
  2026-04-07 22:59 [PATCH 0/2] drm/xe/ras: Fix and clean up xe_drm_ras Shuicheng Lin
                   ` (3 preceding siblings ...)
  2026-04-07 23:10 ` ✗ CI.KUnit: failure " Patchwork
@ 2026-04-10  3:55 ` Patchwork
  2026-04-10  3:56 ` ✓ CI.KUnit: success " Patchwork
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 21+ messages in thread
From: Patchwork @ 2026-04-10  3:55 UTC (permalink / raw)
  To: Shuicheng Lin; +Cc: intel-xe

== Series Details ==

Series: drm/xe/ras: Fix and clean up xe_drm_ras (rev2)
URL   : https://patchwork.freedesktop.org/series/164479/
State : warning

== Summary ==

+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt
Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master
1f57ba1afceae32108bd24770069f764d940a0e4
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit 11b781a48eab4d89faa4274478d39ae0189b7aa9
Author: Shuicheng Lin <shuicheng.lin@intel.com>
Date:   Tue Apr 7 22:59:13 2026 +0000

    drm/xe/ras: Clean up coding style in xe_drm_ras
    
    - Fix long line in cleanup_node_param() signature.
    - Drop unnecessary const on pass-by-value enum parameters.
    - Simplify xe_drm_ras_init() by removing redundant local variable
      and redundant error path.
    
    No functional change.
    
    Cc: Riana Tauro <riana.tauro@intel.com>
    Assisted-by: Claude:claude-opus-4.6
    Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
+ /mt/dim checkpatch 97d8833ffba6bd3d6aaa51169069620ac17a2e37 drm-intel
82ed2255b8b9 drm/xe/ras: Fix error handling in register_nodes()
-:21: WARNING:BAD_SIGN_OFF: Non-standard signature: Assisted-by:
#21: 
Assisted-by: Claude:claude-opus-4.6

-:21: ERROR:BAD_SIGN_OFF: Unrecognized email address: 'Claude:claude-opus-4.6'
#21: 
Assisted-by: Claude:claude-opus-4.6

total: 1 errors, 1 warnings, 0 checks, 68 lines checked
11b781a48eab drm/xe/ras: Clean up coding style in xe_drm_ras
-:14: WARNING:BAD_SIGN_OFF: Non-standard signature: Assisted-by:
#14: 
Assisted-by: Claude:claude-opus-4.6

-:14: ERROR:BAD_SIGN_OFF: Unrecognized email address: 'Claude:claude-opus-4.6'
#14: 
Assisted-by: Claude:claude-opus-4.6

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



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

* ✓ CI.KUnit: success for drm/xe/ras: Fix and clean up xe_drm_ras (rev2)
  2026-04-07 22:59 [PATCH 0/2] drm/xe/ras: Fix and clean up xe_drm_ras Shuicheng Lin
                   ` (4 preceding siblings ...)
  2026-04-10  3:55 ` ✗ CI.checkpatch: warning for drm/xe/ras: Fix and clean up xe_drm_ras (rev2) Patchwork
@ 2026-04-10  3:56 ` Patchwork
  2026-04-10  4:32 ` ✓ Xe.CI.BAT: " Patchwork
  2026-04-10 10:41 ` ✗ Xe.CI.FULL: failure " Patchwork
  7 siblings, 0 replies; 21+ messages in thread
From: Patchwork @ 2026-04-10  3:56 UTC (permalink / raw)
  To: Shuicheng Lin; +Cc: intel-xe

== Series Details ==

Series: drm/xe/ras: Fix and clean up xe_drm_ras (rev2)
URL   : https://patchwork.freedesktop.org/series/164479/
State : success

== Summary ==

+ trap cleanup EXIT
+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/xe/.kunitconfig
[03:55:14] Configuring KUnit Kernel ...
Generating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[03:55:18] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[03:55:50] Starting KUnit Kernel (1/1)...
[03:55:50] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[03:55:50] ================== guc_buf (11 subtests) ===================
[03:55:50] [PASSED] test_smallest
[03:55:50] [PASSED] test_largest
[03:55:50] [PASSED] test_granular
[03:55:50] [PASSED] test_unique
[03:55:50] [PASSED] test_overlap
[03:55:50] [PASSED] test_reusable
[03:55:50] [PASSED] test_too_big
[03:55:50] [PASSED] test_flush
[03:55:50] [PASSED] test_lookup
[03:55:50] [PASSED] test_data
[03:55:50] [PASSED] test_class
[03:55:50] ===================== [PASSED] guc_buf =====================
[03:55:50] =================== guc_dbm (7 subtests) ===================
[03:55:50] [PASSED] test_empty
[03:55:50] [PASSED] test_default
[03:55:50] ======================== test_size  ========================
[03:55:50] [PASSED] 4
[03:55:50] [PASSED] 8
[03:55:50] [PASSED] 32
[03:55:50] [PASSED] 256
[03:55:50] ==================== [PASSED] test_size ====================
[03:55:50] ======================= test_reuse  ========================
[03:55:50] [PASSED] 4
[03:55:50] [PASSED] 8
[03:55:50] [PASSED] 32
[03:55:50] [PASSED] 256
[03:55:50] =================== [PASSED] test_reuse ====================
[03:55:50] =================== test_range_overlap  ====================
[03:55:50] [PASSED] 4
[03:55:50] [PASSED] 8
[03:55:50] [PASSED] 32
[03:55:50] [PASSED] 256
[03:55:50] =============== [PASSED] test_range_overlap ================
[03:55:50] =================== test_range_compact  ====================
[03:55:50] [PASSED] 4
[03:55:50] [PASSED] 8
[03:55:50] [PASSED] 32
[03:55:50] [PASSED] 256
[03:55:50] =============== [PASSED] test_range_compact ================
[03:55:50] ==================== test_range_spare  =====================
[03:55:50] [PASSED] 4
[03:55:50] [PASSED] 8
[03:55:50] [PASSED] 32
[03:55:50] [PASSED] 256
[03:55:50] ================ [PASSED] test_range_spare =================
[03:55:50] ===================== [PASSED] guc_dbm =====================
[03:55:50] =================== guc_idm (6 subtests) ===================
[03:55:50] [PASSED] bad_init
[03:55:50] [PASSED] no_init
[03:55:50] [PASSED] init_fini
[03:55:50] [PASSED] check_used
[03:55:50] [PASSED] check_quota
[03:55:50] [PASSED] check_all
[03:55:50] ===================== [PASSED] guc_idm =====================
[03:55:50] ================== no_relay (3 subtests) ===================
[03:55:50] [PASSED] xe_drops_guc2pf_if_not_ready
[03:55:50] [PASSED] xe_drops_guc2vf_if_not_ready
[03:55:50] [PASSED] xe_rejects_send_if_not_ready
[03:55:50] ==================== [PASSED] no_relay =====================
[03:55:50] ================== pf_relay (14 subtests) ==================
[03:55:50] [PASSED] pf_rejects_guc2pf_too_short
[03:55:50] [PASSED] pf_rejects_guc2pf_too_long
[03:55:50] [PASSED] pf_rejects_guc2pf_no_payload
[03:55:50] [PASSED] pf_fails_no_payload
[03:55:50] [PASSED] pf_fails_bad_origin
[03:55:50] [PASSED] pf_fails_bad_type
[03:55:50] [PASSED] pf_txn_reports_error
[03:55:50] [PASSED] pf_txn_sends_pf2guc
[03:55:50] [PASSED] pf_sends_pf2guc
[03:55:50] [SKIPPED] pf_loopback_nop
[03:55:50] [SKIPPED] pf_loopback_echo
[03:55:50] [SKIPPED] pf_loopback_fail
[03:55:50] [SKIPPED] pf_loopback_busy
[03:55:50] [SKIPPED] pf_loopback_retry
[03:55:50] ==================== [PASSED] pf_relay =====================
[03:55:50] ================== vf_relay (3 subtests) ===================
[03:55:50] [PASSED] vf_rejects_guc2vf_too_short
[03:55:50] [PASSED] vf_rejects_guc2vf_too_long
[03:55:50] [PASSED] vf_rejects_guc2vf_no_payload
[03:55:50] ==================== [PASSED] vf_relay =====================
[03:55:50] ================ pf_gt_config (9 subtests) =================
[03:55:50] [PASSED] fair_contexts_1vf
[03:55:50] [PASSED] fair_doorbells_1vf
[03:55:50] [PASSED] fair_ggtt_1vf
[03:55:50] ====================== fair_vram_1vf  ======================
[03:55:50] [PASSED] 3.50 GiB
[03:55:50] [PASSED] 11.5 GiB
[03:55:50] [PASSED] 15.5 GiB
[03:55:50] [PASSED] 31.5 GiB
[03:55:50] [PASSED] 63.5 GiB
[03:55:50] [PASSED] 1.91 GiB
[03:55:50] ================== [PASSED] fair_vram_1vf ==================
[03:55:50] ================ fair_vram_1vf_admin_only  =================
[03:55:50] [PASSED] 3.50 GiB
[03:55:50] [PASSED] 11.5 GiB
[03:55:50] [PASSED] 15.5 GiB
[03:55:50] [PASSED] 31.5 GiB
[03:55:50] [PASSED] 63.5 GiB
[03:55:50] [PASSED] 1.91 GiB
[03:55:50] ============ [PASSED] fair_vram_1vf_admin_only =============
[03:55:50] ====================== fair_contexts  ======================
[03:55:50] [PASSED] 1 VF
[03:55:50] [PASSED] 2 VFs
[03:55:50] [PASSED] 3 VFs
[03:55:50] [PASSED] 4 VFs
[03:55:50] [PASSED] 5 VFs
[03:55:50] [PASSED] 6 VFs
[03:55:50] [PASSED] 7 VFs
[03:55:50] [PASSED] 8 VFs
[03:55:50] [PASSED] 9 VFs
[03:55:50] [PASSED] 10 VFs
[03:55:50] [PASSED] 11 VFs
[03:55:50] [PASSED] 12 VFs
[03:55:50] [PASSED] 13 VFs
[03:55:50] [PASSED] 14 VFs
[03:55:50] [PASSED] 15 VFs
[03:55:50] [PASSED] 16 VFs
[03:55:50] [PASSED] 17 VFs
[03:55:50] [PASSED] 18 VFs
[03:55:50] [PASSED] 19 VFs
[03:55:50] [PASSED] 20 VFs
[03:55:50] [PASSED] 21 VFs
[03:55:50] [PASSED] 22 VFs
[03:55:50] [PASSED] 23 VFs
[03:55:50] [PASSED] 24 VFs
[03:55:50] [PASSED] 25 VFs
[03:55:50] [PASSED] 26 VFs
[03:55:50] [PASSED] 27 VFs
[03:55:50] [PASSED] 28 VFs
[03:55:50] [PASSED] 29 VFs
[03:55:50] [PASSED] 30 VFs
[03:55:50] [PASSED] 31 VFs
[03:55:50] [PASSED] 32 VFs
[03:55:50] [PASSED] 33 VFs
[03:55:50] [PASSED] 34 VFs
[03:55:50] [PASSED] 35 VFs
[03:55:50] [PASSED] 36 VFs
[03:55:50] [PASSED] 37 VFs
[03:55:50] [PASSED] 38 VFs
[03:55:50] [PASSED] 39 VFs
[03:55:50] [PASSED] 40 VFs
[03:55:50] [PASSED] 41 VFs
[03:55:50] [PASSED] 42 VFs
[03:55:50] [PASSED] 43 VFs
[03:55:50] [PASSED] 44 VFs
[03:55:50] [PASSED] 45 VFs
[03:55:50] [PASSED] 46 VFs
[03:55:50] [PASSED] 47 VFs
[03:55:50] [PASSED] 48 VFs
[03:55:50] [PASSED] 49 VFs
[03:55:50] [PASSED] 50 VFs
[03:55:50] [PASSED] 51 VFs
[03:55:50] [PASSED] 52 VFs
[03:55:50] [PASSED] 53 VFs
[03:55:50] [PASSED] 54 VFs
[03:55:50] [PASSED] 55 VFs
[03:55:50] [PASSED] 56 VFs
[03:55:50] [PASSED] 57 VFs
[03:55:50] [PASSED] 58 VFs
[03:55:50] [PASSED] 59 VFs
[03:55:50] [PASSED] 60 VFs
[03:55:50] [PASSED] 61 VFs
[03:55:50] [PASSED] 62 VFs
[03:55:50] [PASSED] 63 VFs
[03:55:50] ================== [PASSED] fair_contexts ==================
[03:55:50] ===================== fair_doorbells  ======================
[03:55:50] [PASSED] 1 VF
[03:55:50] [PASSED] 2 VFs
[03:55:50] [PASSED] 3 VFs
[03:55:50] [PASSED] 4 VFs
[03:55:50] [PASSED] 5 VFs
[03:55:50] [PASSED] 6 VFs
[03:55:50] [PASSED] 7 VFs
[03:55:50] [PASSED] 8 VFs
[03:55:50] [PASSED] 9 VFs
[03:55:50] [PASSED] 10 VFs
[03:55:50] [PASSED] 11 VFs
[03:55:50] [PASSED] 12 VFs
[03:55:50] [PASSED] 13 VFs
[03:55:50] [PASSED] 14 VFs
[03:55:50] [PASSED] 15 VFs
[03:55:50] [PASSED] 16 VFs
[03:55:50] [PASSED] 17 VFs
[03:55:50] [PASSED] 18 VFs
[03:55:50] [PASSED] 19 VFs
[03:55:50] [PASSED] 20 VFs
[03:55:50] [PASSED] 21 VFs
[03:55:50] [PASSED] 22 VFs
[03:55:50] [PASSED] 23 VFs
[03:55:50] [PASSED] 24 VFs
[03:55:50] [PASSED] 25 VFs
[03:55:50] [PASSED] 26 VFs
[03:55:50] [PASSED] 27 VFs
[03:55:50] [PASSED] 28 VFs
[03:55:50] [PASSED] 29 VFs
[03:55:50] [PASSED] 30 VFs
[03:55:50] [PASSED] 31 VFs
[03:55:50] [PASSED] 32 VFs
[03:55:50] [PASSED] 33 VFs
[03:55:50] [PASSED] 34 VFs
[03:55:50] [PASSED] 35 VFs
[03:55:50] [PASSED] 36 VFs
[03:55:50] [PASSED] 37 VFs
[03:55:50] [PASSED] 38 VFs
[03:55:50] [PASSED] 39 VFs
[03:55:50] [PASSED] 40 VFs
[03:55:50] [PASSED] 41 VFs
[03:55:50] [PASSED] 42 VFs
[03:55:50] [PASSED] 43 VFs
[03:55:50] [PASSED] 44 VFs
[03:55:50] [PASSED] 45 VFs
[03:55:50] [PASSED] 46 VFs
[03:55:50] [PASSED] 47 VFs
[03:55:50] [PASSED] 48 VFs
[03:55:50] [PASSED] 49 VFs
[03:55:50] [PASSED] 50 VFs
[03:55:50] [PASSED] 51 VFs
[03:55:50] [PASSED] 52 VFs
[03:55:50] [PASSED] 53 VFs
[03:55:50] [PASSED] 54 VFs
[03:55:50] [PASSED] 55 VFs
[03:55:50] [PASSED] 56 VFs
[03:55:50] [PASSED] 57 VFs
[03:55:50] [PASSED] 58 VFs
[03:55:50] [PASSED] 59 VFs
[03:55:50] [PASSED] 60 VFs
[03:55:50] [PASSED] 61 VFs
[03:55:50] [PASSED] 62 VFs
[03:55:50] [PASSED] 63 VFs
[03:55:50] ================= [PASSED] fair_doorbells ==================
[03:55:50] ======================== fair_ggtt  ========================
[03:55:50] [PASSED] 1 VF
[03:55:50] [PASSED] 2 VFs
[03:55:50] [PASSED] 3 VFs
[03:55:50] [PASSED] 4 VFs
[03:55:50] [PASSED] 5 VFs
[03:55:50] [PASSED] 6 VFs
[03:55:50] [PASSED] 7 VFs
[03:55:50] [PASSED] 8 VFs
[03:55:50] [PASSED] 9 VFs
[03:55:50] [PASSED] 10 VFs
[03:55:50] [PASSED] 11 VFs
[03:55:50] [PASSED] 12 VFs
[03:55:50] [PASSED] 13 VFs
[03:55:50] [PASSED] 14 VFs
[03:55:50] [PASSED] 15 VFs
[03:55:50] [PASSED] 16 VFs
[03:55:50] [PASSED] 17 VFs
[03:55:50] [PASSED] 18 VFs
[03:55:50] [PASSED] 19 VFs
[03:55:50] [PASSED] 20 VFs
[03:55:50] [PASSED] 21 VFs
[03:55:50] [PASSED] 22 VFs
[03:55:50] [PASSED] 23 VFs
[03:55:50] [PASSED] 24 VFs
[03:55:50] [PASSED] 25 VFs
[03:55:50] [PASSED] 26 VFs
[03:55:50] [PASSED] 27 VFs
[03:55:50] [PASSED] 28 VFs
[03:55:50] [PASSED] 29 VFs
[03:55:50] [PASSED] 30 VFs
[03:55:50] [PASSED] 31 VFs
[03:55:50] [PASSED] 32 VFs
[03:55:50] [PASSED] 33 VFs
[03:55:50] [PASSED] 34 VFs
[03:55:50] [PASSED] 35 VFs
[03:55:50] [PASSED] 36 VFs
[03:55:50] [PASSED] 37 VFs
[03:55:50] [PASSED] 38 VFs
[03:55:50] [PASSED] 39 VFs
[03:55:50] [PASSED] 40 VFs
[03:55:50] [PASSED] 41 VFs
[03:55:50] [PASSED] 42 VFs
[03:55:50] [PASSED] 43 VFs
[03:55:50] [PASSED] 44 VFs
[03:55:50] [PASSED] 45 VFs
[03:55:50] [PASSED] 46 VFs
[03:55:50] [PASSED] 47 VFs
[03:55:50] [PASSED] 48 VFs
[03:55:50] [PASSED] 49 VFs
[03:55:50] [PASSED] 50 VFs
[03:55:50] [PASSED] 51 VFs
[03:55:50] [PASSED] 52 VFs
[03:55:50] [PASSED] 53 VFs
[03:55:50] [PASSED] 54 VFs
[03:55:50] [PASSED] 55 VFs
[03:55:50] [PASSED] 56 VFs
[03:55:50] [PASSED] 57 VFs
[03:55:50] [PASSED] 58 VFs
[03:55:50] [PASSED] 59 VFs
[03:55:50] [PASSED] 60 VFs
[03:55:50] [PASSED] 61 VFs
[03:55:50] [PASSED] 62 VFs
[03:55:50] [PASSED] 63 VFs
[03:55:50] ==================== [PASSED] fair_ggtt ====================
[03:55:50] ======================== fair_vram  ========================
[03:55:50] [PASSED] 1 VF
[03:55:50] [PASSED] 2 VFs
[03:55:50] [PASSED] 3 VFs
[03:55:50] [PASSED] 4 VFs
[03:55:50] [PASSED] 5 VFs
[03:55:50] [PASSED] 6 VFs
[03:55:50] [PASSED] 7 VFs
[03:55:50] [PASSED] 8 VFs
[03:55:50] [PASSED] 9 VFs
[03:55:50] [PASSED] 10 VFs
[03:55:50] [PASSED] 11 VFs
[03:55:50] [PASSED] 12 VFs
[03:55:50] [PASSED] 13 VFs
[03:55:50] [PASSED] 14 VFs
[03:55:50] [PASSED] 15 VFs
[03:55:50] [PASSED] 16 VFs
[03:55:50] [PASSED] 17 VFs
[03:55:50] [PASSED] 18 VFs
[03:55:50] [PASSED] 19 VFs
[03:55:50] [PASSED] 20 VFs
[03:55:50] [PASSED] 21 VFs
[03:55:50] [PASSED] 22 VFs
[03:55:50] [PASSED] 23 VFs
[03:55:50] [PASSED] 24 VFs
[03:55:50] [PASSED] 25 VFs
[03:55:50] [PASSED] 26 VFs
[03:55:50] [PASSED] 27 VFs
[03:55:50] [PASSED] 28 VFs
[03:55:50] [PASSED] 29 VFs
[03:55:50] [PASSED] 30 VFs
[03:55:50] [PASSED] 31 VFs
[03:55:50] [PASSED] 32 VFs
[03:55:50] [PASSED] 33 VFs
[03:55:50] [PASSED] 34 VFs
[03:55:50] [PASSED] 35 VFs
[03:55:50] [PASSED] 36 VFs
[03:55:50] [PASSED] 37 VFs
[03:55:50] [PASSED] 38 VFs
[03:55:50] [PASSED] 39 VFs
[03:55:50] [PASSED] 40 VFs
[03:55:50] [PASSED] 41 VFs
[03:55:50] [PASSED] 42 VFs
[03:55:50] [PASSED] 43 VFs
[03:55:50] [PASSED] 44 VFs
[03:55:50] [PASSED] 45 VFs
[03:55:50] [PASSED] 46 VFs
[03:55:50] [PASSED] 47 VFs
[03:55:50] [PASSED] 48 VFs
[03:55:50] [PASSED] 49 VFs
[03:55:50] [PASSED] 50 VFs
[03:55:50] [PASSED] 51 VFs
[03:55:50] [PASSED] 52 VFs
[03:55:50] [PASSED] 53 VFs
[03:55:50] [PASSED] 54 VFs
[03:55:50] [PASSED] 55 VFs
[03:55:50] [PASSED] 56 VFs
[03:55:50] [PASSED] 57 VFs
[03:55:50] [PASSED] 58 VFs
[03:55:50] [PASSED] 59 VFs
[03:55:50] [PASSED] 60 VFs
[03:55:50] [PASSED] 61 VFs
[03:55:50] [PASSED] 62 VFs
[03:55:50] [PASSED] 63 VFs
[03:55:50] ==================== [PASSED] fair_vram ====================
[03:55:50] ================== [PASSED] pf_gt_config ===================
[03:55:50] ===================== lmtt (1 subtest) =====================
[03:55:50] ======================== test_ops  =========================
[03:55:50] [PASSED] 2-level
[03:55:50] [PASSED] multi-level
[03:55:50] ==================== [PASSED] test_ops =====================
[03:55:50] ====================== [PASSED] lmtt =======================
[03:55:50] ================= pf_service (11 subtests) =================
[03:55:50] [PASSED] pf_negotiate_any
[03:55:50] [PASSED] pf_negotiate_base_match
[03:55:50] [PASSED] pf_negotiate_base_newer
[03:55:50] [PASSED] pf_negotiate_base_next
[03:55:50] [SKIPPED] pf_negotiate_base_older
[03:55:50] [PASSED] pf_negotiate_base_prev
[03:55:50] [PASSED] pf_negotiate_latest_match
[03:55:50] [PASSED] pf_negotiate_latest_newer
[03:55:50] [PASSED] pf_negotiate_latest_next
[03:55:50] [SKIPPED] pf_negotiate_latest_older
[03:55:50] [SKIPPED] pf_negotiate_latest_prev
[03:55:50] =================== [PASSED] pf_service ====================
[03:55:50] ================= xe_guc_g2g (2 subtests) ==================
[03:55:50] ============== xe_live_guc_g2g_kunit_default  ==============
[03:55:50] ========= [SKIPPED] xe_live_guc_g2g_kunit_default ==========
[03:55:50] ============== xe_live_guc_g2g_kunit_allmem  ===============
[03:55:50] ========== [SKIPPED] xe_live_guc_g2g_kunit_allmem ==========
[03:55:50] =================== [SKIPPED] xe_guc_g2g ===================
[03:55:50] =================== xe_mocs (2 subtests) ===================
[03:55:50] ================ xe_live_mocs_kernel_kunit  ================
[03:55:50] =========== [SKIPPED] xe_live_mocs_kernel_kunit ============
[03:55:50] ================ xe_live_mocs_reset_kunit  =================
[03:55:50] ============ [SKIPPED] xe_live_mocs_reset_kunit ============
[03:55:50] ==================== [SKIPPED] xe_mocs =====================
[03:55:50] ================= xe_migrate (2 subtests) ==================
[03:55:50] ================= xe_migrate_sanity_kunit  =================
[03:55:50] ============ [SKIPPED] xe_migrate_sanity_kunit =============
[03:55:50] ================== xe_validate_ccs_kunit  ==================
[03:55:50] ============= [SKIPPED] xe_validate_ccs_kunit ==============
[03:55:50] =================== [SKIPPED] xe_migrate ===================
[03:55:50] ================== xe_dma_buf (1 subtest) ==================
[03:55:50] ==================== xe_dma_buf_kunit  =====================
[03:55:50] ================ [SKIPPED] xe_dma_buf_kunit ================
[03:55:50] =================== [SKIPPED] xe_dma_buf ===================
[03:55:50] ================= xe_bo_shrink (1 subtest) =================
[03:55:50] =================== xe_bo_shrink_kunit  ====================
[03:55:50] =============== [SKIPPED] xe_bo_shrink_kunit ===============
[03:55:50] ================== [SKIPPED] xe_bo_shrink ==================
[03:55:50] ==================== xe_bo (2 subtests) ====================
[03:55:50] ================== xe_ccs_migrate_kunit  ===================
[03:55:50] ============== [SKIPPED] xe_ccs_migrate_kunit ==============
[03:55:50] ==================== xe_bo_evict_kunit  ====================
[03:55:50] =============== [SKIPPED] xe_bo_evict_kunit ================
[03:55:50] ===================== [SKIPPED] xe_bo ======================
[03:55:50] ==================== args (13 subtests) ====================
[03:55:50] [PASSED] count_args_test
[03:55:50] [PASSED] call_args_example
[03:55:50] [PASSED] call_args_test
[03:55:50] [PASSED] drop_first_arg_example
[03:55:50] [PASSED] drop_first_arg_test
[03:55:50] [PASSED] first_arg_example
[03:55:50] [PASSED] first_arg_test
[03:55:50] [PASSED] last_arg_example
[03:55:50] [PASSED] last_arg_test
[03:55:50] [PASSED] pick_arg_example
[03:55:50] [PASSED] if_args_example
[03:55:50] [PASSED] if_args_test
[03:55:50] [PASSED] sep_comma_example
[03:55:50] ====================== [PASSED] args =======================
[03:55:50] =================== xe_pci (3 subtests) ====================
[03:55:50] ==================== check_graphics_ip  ====================
[03:55:50] [PASSED] 12.00 Xe_LP
[03:55:50] [PASSED] 12.10 Xe_LP+
[03:55:50] [PASSED] 12.55 Xe_HPG
[03:55:50] [PASSED] 12.60 Xe_HPC
[03:55:50] [PASSED] 12.70 Xe_LPG
[03:55:50] [PASSED] 12.71 Xe_LPG
[03:55:50] [PASSED] 12.74 Xe_LPG+
[03:55:50] [PASSED] 20.01 Xe2_HPG
[03:55:50] [PASSED] 20.02 Xe2_HPG
[03:55:50] [PASSED] 20.04 Xe2_LPG
[03:55:50] [PASSED] 30.00 Xe3_LPG
[03:55:50] [PASSED] 30.01 Xe3_LPG
[03:55:50] [PASSED] 30.03 Xe3_LPG
[03:55:50] [PASSED] 30.04 Xe3_LPG
[03:55:50] [PASSED] 30.05 Xe3_LPG
[03:55:50] [PASSED] 35.10 Xe3p_LPG
[03:55:50] [PASSED] 35.11 Xe3p_XPC
[03:55:50] ================ [PASSED] check_graphics_ip ================
[03:55:50] ===================== check_media_ip  ======================
[03:55:50] [PASSED] 12.00 Xe_M
[03:55:50] [PASSED] 12.55 Xe_HPM
[03:55:50] [PASSED] 13.00 Xe_LPM+
[03:55:50] [PASSED] 13.01 Xe2_HPM
[03:55:50] [PASSED] 20.00 Xe2_LPM
[03:55:50] [PASSED] 30.00 Xe3_LPM
[03:55:50] [PASSED] 30.02 Xe3_LPM
[03:55:50] [PASSED] 35.00 Xe3p_LPM
[03:55:50] [PASSED] 35.03 Xe3p_HPM
[03:55:50] ================= [PASSED] check_media_ip ==================
[03:55:50] =================== check_platform_desc  ===================
[03:55:50] [PASSED] 0x9A60 (TIGERLAKE)
[03:55:50] [PASSED] 0x9A68 (TIGERLAKE)
[03:55:50] [PASSED] 0x9A70 (TIGERLAKE)
[03:55:50] [PASSED] 0x9A40 (TIGERLAKE)
[03:55:50] [PASSED] 0x9A49 (TIGERLAKE)
[03:55:50] [PASSED] 0x9A59 (TIGERLAKE)
[03:55:50] [PASSED] 0x9A78 (TIGERLAKE)
[03:55:50] [PASSED] 0x9AC0 (TIGERLAKE)
[03:55:50] [PASSED] 0x9AC9 (TIGERLAKE)
[03:55:50] [PASSED] 0x9AD9 (TIGERLAKE)
[03:55:50] [PASSED] 0x9AF8 (TIGERLAKE)
[03:55:50] [PASSED] 0x4C80 (ROCKETLAKE)
[03:55:50] [PASSED] 0x4C8A (ROCKETLAKE)
[03:55:50] [PASSED] 0x4C8B (ROCKETLAKE)
[03:55:50] [PASSED] 0x4C8C (ROCKETLAKE)
[03:55:50] [PASSED] 0x4C90 (ROCKETLAKE)
[03:55:50] [PASSED] 0x4C9A (ROCKETLAKE)
[03:55:50] [PASSED] 0x4680 (ALDERLAKE_S)
[03:55:50] [PASSED] 0x4682 (ALDERLAKE_S)
[03:55:50] [PASSED] 0x4688 (ALDERLAKE_S)
[03:55:50] [PASSED] 0x468A (ALDERLAKE_S)
[03:55:50] [PASSED] 0x468B (ALDERLAKE_S)
[03:55:50] [PASSED] 0x4690 (ALDERLAKE_S)
[03:55:50] [PASSED] 0x4692 (ALDERLAKE_S)
[03:55:50] [PASSED] 0x4693 (ALDERLAKE_S)
[03:55:50] [PASSED] 0x46A0 (ALDERLAKE_P)
[03:55:50] [PASSED] 0x46A1 (ALDERLAKE_P)
[03:55:50] [PASSED] 0x46A2 (ALDERLAKE_P)
[03:55:50] [PASSED] 0x46A3 (ALDERLAKE_P)
[03:55:50] [PASSED] 0x46A6 (ALDERLAKE_P)
[03:55:50] [PASSED] 0x46A8 (ALDERLAKE_P)
[03:55:50] [PASSED] 0x46AA (ALDERLAKE_P)
[03:55:50] [PASSED] 0x462A (ALDERLAKE_P)
[03:55:50] [PASSED] 0x4626 (ALDERLAKE_P)
[03:55:50] [PASSED] 0x4628 (ALDERLAKE_P)
[03:55:50] [PASSED] 0x46B0 (ALDERLAKE_P)
[03:55:50] [PASSED] 0x46B1 (ALDERLAKE_P)
[03:55:50] [PASSED] 0x46B2 (ALDERLAKE_P)
[03:55:50] [PASSED] 0x46B3 (ALDERLAKE_P)
[03:55:50] [PASSED] 0x46C0 (ALDERLAKE_P)
[03:55:50] [PASSED] 0x46C1 (ALDERLAKE_P)
[03:55:50] [PASSED] 0x46C2 (ALDERLAKE_P)
[03:55:50] [PASSED] 0x46C3 (ALDERLAKE_P)
[03:55:50] [PASSED] 0x46D0 (ALDERLAKE_N)
[03:55:50] [PASSED] 0x46D1 (ALDERLAKE_N)
[03:55:50] [PASSED] 0x46D2 (ALDERLAKE_N)
[03:55:50] [PASSED] 0x46D3 (ALDERLAKE_N)
[03:55:50] [PASSED] 0x46D4 (ALDERLAKE_N)
[03:55:50] [PASSED] 0xA721 (ALDERLAKE_P)
[03:55:50] [PASSED] 0xA7A1 (ALDERLAKE_P)
[03:55:50] [PASSED] 0xA7A9 (ALDERLAKE_P)
[03:55:50] [PASSED] 0xA7AC (ALDERLAKE_P)
[03:55:50] [PASSED] 0xA7AD (ALDERLAKE_P)
[03:55:50] [PASSED] 0xA720 (ALDERLAKE_P)
[03:55:50] [PASSED] 0xA7A0 (ALDERLAKE_P)
[03:55:50] [PASSED] 0xA7A8 (ALDERLAKE_P)
[03:55:50] [PASSED] 0xA7AA (ALDERLAKE_P)
[03:55:50] [PASSED] 0xA7AB (ALDERLAKE_P)
[03:55:50] [PASSED] 0xA780 (ALDERLAKE_S)
[03:55:50] [PASSED] 0xA781 (ALDERLAKE_S)
[03:55:50] [PASSED] 0xA782 (ALDERLAKE_S)
[03:55:50] [PASSED] 0xA783 (ALDERLAKE_S)
[03:55:50] [PASSED] 0xA788 (ALDERLAKE_S)
[03:55:50] [PASSED] 0xA789 (ALDERLAKE_S)
[03:55:50] [PASSED] 0xA78A (ALDERLAKE_S)
[03:55:50] [PASSED] 0xA78B (ALDERLAKE_S)
[03:55:50] [PASSED] 0x4905 (DG1)
[03:55:50] [PASSED] 0x4906 (DG1)
[03:55:50] [PASSED] 0x4907 (DG1)
[03:55:50] [PASSED] 0x4908 (DG1)
[03:55:50] [PASSED] 0x4909 (DG1)
[03:55:50] [PASSED] 0x56C0 (DG2)
[03:55:50] [PASSED] 0x56C2 (DG2)
[03:55:50] [PASSED] 0x56C1 (DG2)
[03:55:50] [PASSED] 0x7D51 (METEORLAKE)
[03:55:50] [PASSED] 0x7DD1 (METEORLAKE)
[03:55:50] [PASSED] 0x7D41 (METEORLAKE)
[03:55:50] [PASSED] 0x7D67 (METEORLAKE)
[03:55:50] [PASSED] 0xB640 (METEORLAKE)
[03:55:50] [PASSED] 0x56A0 (DG2)
[03:55:50] [PASSED] 0x56A1 (DG2)
[03:55:50] [PASSED] 0x56A2 (DG2)
[03:55:50] [PASSED] 0x56BE (DG2)
[03:55:50] [PASSED] 0x56BF (DG2)
[03:55:50] [PASSED] 0x5690 (DG2)
[03:55:50] [PASSED] 0x5691 (DG2)
[03:55:50] [PASSED] 0x5692 (DG2)
[03:55:50] [PASSED] 0x56A5 (DG2)
[03:55:50] [PASSED] 0x56A6 (DG2)
[03:55:50] [PASSED] 0x56B0 (DG2)
[03:55:50] [PASSED] 0x56B1 (DG2)
[03:55:50] [PASSED] 0x56BA (DG2)
[03:55:50] [PASSED] 0x56BB (DG2)
[03:55:50] [PASSED] 0x56BC (DG2)
[03:55:50] [PASSED] 0x56BD (DG2)
[03:55:50] [PASSED] 0x5693 (DG2)
[03:55:50] [PASSED] 0x5694 (DG2)
[03:55:50] [PASSED] 0x5695 (DG2)
[03:55:50] [PASSED] 0x56A3 (DG2)
[03:55:50] [PASSED] 0x56A4 (DG2)
[03:55:50] [PASSED] 0x56B2 (DG2)
[03:55:50] [PASSED] 0x56B3 (DG2)
[03:55:50] [PASSED] 0x5696 (DG2)
[03:55:50] [PASSED] 0x5697 (DG2)
[03:55:50] [PASSED] 0xB69 (PVC)
[03:55:50] [PASSED] 0xB6E (PVC)
[03:55:50] [PASSED] 0xBD4 (PVC)
[03:55:50] [PASSED] 0xBD5 (PVC)
[03:55:50] [PASSED] 0xBD6 (PVC)
[03:55:50] [PASSED] 0xBD7 (PVC)
[03:55:50] [PASSED] 0xBD8 (PVC)
[03:55:50] [PASSED] 0xBD9 (PVC)
[03:55:50] [PASSED] 0xBDA (PVC)
[03:55:50] [PASSED] 0xBDB (PVC)
[03:55:50] [PASSED] 0xBE0 (PVC)
[03:55:50] [PASSED] 0xBE1 (PVC)
[03:55:50] [PASSED] 0xBE5 (PVC)
[03:55:50] [PASSED] 0x7D40 (METEORLAKE)
[03:55:50] [PASSED] 0x7D45 (METEORLAKE)
[03:55:50] [PASSED] 0x7D55 (METEORLAKE)
[03:55:50] [PASSED] 0x7D60 (METEORLAKE)
[03:55:50] [PASSED] 0x7DD5 (METEORLAKE)
[03:55:50] [PASSED] 0x6420 (LUNARLAKE)
[03:55:50] [PASSED] 0x64A0 (LUNARLAKE)
[03:55:50] [PASSED] 0x64B0 (LUNARLAKE)
[03:55:50] [PASSED] 0xE202 (BATTLEMAGE)
[03:55:50] [PASSED] 0xE209 (BATTLEMAGE)
[03:55:50] [PASSED] 0xE20B (BATTLEMAGE)
[03:55:50] [PASSED] 0xE20C (BATTLEMAGE)
[03:55:50] [PASSED] 0xE20D (BATTLEMAGE)
[03:55:50] [PASSED] 0xE210 (BATTLEMAGE)
[03:55:50] [PASSED] 0xE211 (BATTLEMAGE)
[03:55:50] [PASSED] 0xE212 (BATTLEMAGE)
[03:55:50] [PASSED] 0xE216 (BATTLEMAGE)
[03:55:50] [PASSED] 0xE220 (BATTLEMAGE)
[03:55:50] [PASSED] 0xE221 (BATTLEMAGE)
[03:55:50] [PASSED] 0xE222 (BATTLEMAGE)
[03:55:50] [PASSED] 0xE223 (BATTLEMAGE)
[03:55:50] [PASSED] 0xB080 (PANTHERLAKE)
[03:55:50] [PASSED] 0xB081 (PANTHERLAKE)
[03:55:50] [PASSED] 0xB082 (PANTHERLAKE)
[03:55:50] [PASSED] 0xB083 (PANTHERLAKE)
[03:55:50] [PASSED] 0xB084 (PANTHERLAKE)
[03:55:50] [PASSED] 0xB085 (PANTHERLAKE)
[03:55:50] [PASSED] 0xB086 (PANTHERLAKE)
[03:55:50] [PASSED] 0xB087 (PANTHERLAKE)
[03:55:50] [PASSED] 0xB08F (PANTHERLAKE)
[03:55:50] [PASSED] 0xB090 (PANTHERLAKE)
[03:55:50] [PASSED] 0xB0A0 (PANTHERLAKE)
[03:55:50] [PASSED] 0xB0B0 (PANTHERLAKE)
[03:55:50] [PASSED] 0xFD80 (PANTHERLAKE)
[03:55:50] [PASSED] 0xFD81 (PANTHERLAKE)
[03:55:50] [PASSED] 0xD740 (NOVALAKE_S)
[03:55:50] [PASSED] 0xD741 (NOVALAKE_S)
[03:55:50] [PASSED] 0xD742 (NOVALAKE_S)
[03:55:50] [PASSED] 0xD743 (NOVALAKE_S)
[03:55:50] [PASSED] 0xD744 (NOVALAKE_S)
[03:55:50] [PASSED] 0xD745 (NOVALAKE_S)
[03:55:50] [PASSED] 0x674C (CRESCENTISLAND)
[03:55:50] [PASSED] 0xD750 (NOVALAKE_P)
[03:55:50] [PASSED] 0xD751 (NOVALAKE_P)
[03:55:50] [PASSED] 0xD752 (NOVALAKE_P)
[03:55:50] [PASSED] 0xD753 (NOVALAKE_P)
[03:55:50] [PASSED] 0xD754 (NOVALAKE_P)
[03:55:50] [PASSED] 0xD755 (NOVALAKE_P)
[03:55:50] [PASSED] 0xD756 (NOVALAKE_P)
[03:55:50] [PASSED] 0xD757 (NOVALAKE_P)
[03:55:50] [PASSED] 0xD75F (NOVALAKE_P)
[03:55:50] =============== [PASSED] check_platform_desc ===============
[03:55:50] ===================== [PASSED] xe_pci ======================
[03:55:50] =================== xe_rtp (2 subtests) ====================
[03:55:50] =============== xe_rtp_process_to_sr_tests  ================
[03:55:50] [PASSED] coalesce-same-reg
[03:55:50] [PASSED] no-match-no-add
[03:55:50] [PASSED] match-or
[03:55:50] [PASSED] match-or-xfail
[03:55:50] [PASSED] no-match-no-add-multiple-rules
[03:55:50] [PASSED] two-regs-two-entries
[03:55:50] [PASSED] clr-one-set-other
[03:55:50] [PASSED] set-field
[03:55:50] [PASSED] conflict-duplicate
stty: 'standard input': Inappropriate ioctl for device
[03:55:50] [PASSED] conflict-not-disjoint
[03:55:50] [PASSED] conflict-reg-type
[03:55:50] =========== [PASSED] xe_rtp_process_to_sr_tests ============
[03:55:50] ================== xe_rtp_process_tests  ===================
[03:55:50] [PASSED] active1
[03:55:50] [PASSED] active2
[03:55:50] [PASSED] active-inactive
[03:55:50] [PASSED] inactive-active
[03:55:50] [PASSED] inactive-1st_or_active-inactive
[03:55:50] [PASSED] inactive-2nd_or_active-inactive
[03:55:50] [PASSED] inactive-last_or_active-inactive
[03:55:50] [PASSED] inactive-no_or_active-inactive
[03:55:50] ============== [PASSED] xe_rtp_process_tests ===============
[03:55:50] ===================== [PASSED] xe_rtp ======================
[03:55:50] ==================== xe_wa (1 subtest) =====================
[03:55:50] ======================== xe_wa_gt  =========================
[03:55:50] [PASSED] TIGERLAKE B0
[03:55:50] [PASSED] DG1 A0
[03:55:50] [PASSED] DG1 B0
[03:55:50] [PASSED] ALDERLAKE_S A0
[03:55:50] [PASSED] ALDERLAKE_S B0
[03:55:50] [PASSED] ALDERLAKE_S C0
[03:55:50] [PASSED] ALDERLAKE_S D0
[03:55:50] [PASSED] ALDERLAKE_P A0
[03:55:50] [PASSED] ALDERLAKE_P B0
[03:55:50] [PASSED] ALDERLAKE_P C0
[03:55:50] [PASSED] ALDERLAKE_S RPLS D0
[03:55:50] [PASSED] ALDERLAKE_P RPLU E0
[03:55:50] [PASSED] DG2 G10 C0
[03:55:50] [PASSED] DG2 G11 B1
[03:55:50] [PASSED] DG2 G12 A1
[03:55:50] [PASSED] METEORLAKE 12.70(Xe_LPG) A0 13.00(Xe_LPM+) A0
[03:55:50] [PASSED] METEORLAKE 12.71(Xe_LPG) A0 13.00(Xe_LPM+) A0
[03:55:50] [PASSED] METEORLAKE 12.74(Xe_LPG+) A0 13.00(Xe_LPM+) A0
[03:55:50] [PASSED] LUNARLAKE 20.04(Xe2_LPG) A0 20.00(Xe2_LPM) A0
[03:55:50] [PASSED] LUNARLAKE 20.04(Xe2_LPG) B0 20.00(Xe2_LPM) A0
[03:55:50] [PASSED] BATTLEMAGE 20.01(Xe2_HPG) A0 13.01(Xe2_HPM) A1
[03:55:50] [PASSED] PANTHERLAKE 30.00(Xe3_LPG) A0 30.00(Xe3_LPM) A0
[03:55:50] ==================== [PASSED] xe_wa_gt =====================
[03:55:50] ====================== [PASSED] xe_wa ======================
[03:55:50] ============================================================
[03:55:50] Testing complete. Ran 597 tests: passed: 579, skipped: 18
[03:55:50] Elapsed time: 36.148s total, 4.106s configuring, 31.425s building, 0.599s running

+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/tests/.kunitconfig
[03:55:50] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[03:55:52] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[03:56:16] Starting KUnit Kernel (1/1)...
[03:56:16] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[03:56:17] ============ drm_test_pick_cmdline (2 subtests) ============
[03:56:17] [PASSED] drm_test_pick_cmdline_res_1920_1080_60
[03:56:17] =============== drm_test_pick_cmdline_named  ===============
[03:56:17] [PASSED] NTSC
[03:56:17] [PASSED] NTSC-J
[03:56:17] [PASSED] PAL
[03:56:17] [PASSED] PAL-M
[03:56:17] =========== [PASSED] drm_test_pick_cmdline_named ===========
[03:56:17] ============== [PASSED] drm_test_pick_cmdline ==============
[03:56:17] == drm_test_atomic_get_connector_for_encoder (1 subtest) ===
[03:56:17] [PASSED] drm_test_drm_atomic_get_connector_for_encoder
[03:56:17] ==== [PASSED] drm_test_atomic_get_connector_for_encoder ====
[03:56:17] =========== drm_validate_clone_mode (2 subtests) ===========
[03:56:17] ============== drm_test_check_in_clone_mode  ===============
[03:56:17] [PASSED] in_clone_mode
[03:56:17] [PASSED] not_in_clone_mode
[03:56:17] ========== [PASSED] drm_test_check_in_clone_mode ===========
[03:56:17] =============== drm_test_check_valid_clones  ===============
[03:56:17] [PASSED] not_in_clone_mode
[03:56:17] [PASSED] valid_clone
[03:56:17] [PASSED] invalid_clone
[03:56:17] =========== [PASSED] drm_test_check_valid_clones ===========
[03:56:17] ============= [PASSED] drm_validate_clone_mode =============
[03:56:17] ============= drm_validate_modeset (1 subtest) =============
[03:56:17] [PASSED] drm_test_check_connector_changed_modeset
[03:56:17] ============== [PASSED] drm_validate_modeset ===============
[03:56:17] ====== drm_test_bridge_get_current_state (2 subtests) ======
[03:56:17] [PASSED] drm_test_drm_bridge_get_current_state_atomic
[03:56:17] [PASSED] drm_test_drm_bridge_get_current_state_legacy
[03:56:17] ======== [PASSED] drm_test_bridge_get_current_state ========
[03:56:17] ====== drm_test_bridge_helper_reset_crtc (3 subtests) ======
[03:56:17] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic
[03:56:17] [PASSED] drm_test_drm_bridge_helper_reset_crtc_atomic_disabled
[03:56:17] [PASSED] drm_test_drm_bridge_helper_reset_crtc_legacy
[03:56:17] ======== [PASSED] drm_test_bridge_helper_reset_crtc ========
[03:56:17] ============== drm_bridge_alloc (2 subtests) ===============
[03:56:17] [PASSED] drm_test_drm_bridge_alloc_basic
[03:56:17] [PASSED] drm_test_drm_bridge_alloc_get_put
[03:56:17] ================ [PASSED] drm_bridge_alloc =================
[03:56:17] ============= drm_cmdline_parser (40 subtests) =============
[03:56:17] [PASSED] drm_test_cmdline_force_d_only
[03:56:17] [PASSED] drm_test_cmdline_force_D_only_dvi
[03:56:17] [PASSED] drm_test_cmdline_force_D_only_hdmi
[03:56:17] [PASSED] drm_test_cmdline_force_D_only_not_digital
[03:56:17] [PASSED] drm_test_cmdline_force_e_only
[03:56:17] [PASSED] drm_test_cmdline_res
[03:56:17] [PASSED] drm_test_cmdline_res_vesa
[03:56:17] [PASSED] drm_test_cmdline_res_vesa_rblank
[03:56:17] [PASSED] drm_test_cmdline_res_rblank
[03:56:17] [PASSED] drm_test_cmdline_res_bpp
[03:56:17] [PASSED] drm_test_cmdline_res_refresh
[03:56:17] [PASSED] drm_test_cmdline_res_bpp_refresh
[03:56:17] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced
[03:56:17] [PASSED] drm_test_cmdline_res_bpp_refresh_margins
[03:56:17] [PASSED] drm_test_cmdline_res_bpp_refresh_force_off
[03:56:17] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on
[03:56:17] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_analog
[03:56:17] [PASSED] drm_test_cmdline_res_bpp_refresh_force_on_digital
[03:56:17] [PASSED] drm_test_cmdline_res_bpp_refresh_interlaced_margins_force_on
[03:56:17] [PASSED] drm_test_cmdline_res_margins_force_on
[03:56:17] [PASSED] drm_test_cmdline_res_vesa_margins
[03:56:17] [PASSED] drm_test_cmdline_name
[03:56:17] [PASSED] drm_test_cmdline_name_bpp
[03:56:17] [PASSED] drm_test_cmdline_name_option
[03:56:17] [PASSED] drm_test_cmdline_name_bpp_option
[03:56:17] [PASSED] drm_test_cmdline_rotate_0
[03:56:17] [PASSED] drm_test_cmdline_rotate_90
[03:56:17] [PASSED] drm_test_cmdline_rotate_180
[03:56:17] [PASSED] drm_test_cmdline_rotate_270
[03:56:17] [PASSED] drm_test_cmdline_hmirror
[03:56:17] [PASSED] drm_test_cmdline_vmirror
[03:56:17] [PASSED] drm_test_cmdline_margin_options
[03:56:17] [PASSED] drm_test_cmdline_multiple_options
[03:56:17] [PASSED] drm_test_cmdline_bpp_extra_and_option
[03:56:17] [PASSED] drm_test_cmdline_extra_and_option
[03:56:17] [PASSED] drm_test_cmdline_freestanding_options
[03:56:17] [PASSED] drm_test_cmdline_freestanding_force_e_and_options
[03:56:17] [PASSED] drm_test_cmdline_panel_orientation
[03:56:17] ================ drm_test_cmdline_invalid  =================
[03:56:17] [PASSED] margin_only
[03:56:17] [PASSED] interlace_only
[03:56:17] [PASSED] res_missing_x
[03:56:17] [PASSED] res_missing_y
[03:56:17] [PASSED] res_bad_y
[03:56:17] [PASSED] res_missing_y_bpp
[03:56:17] [PASSED] res_bad_bpp
[03:56:17] [PASSED] res_bad_refresh
[03:56:17] [PASSED] res_bpp_refresh_force_on_off
[03:56:17] [PASSED] res_invalid_mode
[03:56:17] [PASSED] res_bpp_wrong_place_mode
[03:56:17] [PASSED] name_bpp_refresh
[03:56:17] [PASSED] name_refresh
[03:56:17] [PASSED] name_refresh_wrong_mode
[03:56:17] [PASSED] name_refresh_invalid_mode
[03:56:17] [PASSED] rotate_multiple
[03:56:17] [PASSED] rotate_invalid_val
[03:56:17] [PASSED] rotate_truncated
[03:56:17] [PASSED] invalid_option
[03:56:17] [PASSED] invalid_tv_option
[03:56:17] [PASSED] truncated_tv_option
[03:56:17] ============ [PASSED] drm_test_cmdline_invalid =============
[03:56:17] =============== drm_test_cmdline_tv_options  ===============
[03:56:17] [PASSED] NTSC
[03:56:17] [PASSED] NTSC_443
[03:56:17] [PASSED] NTSC_J
[03:56:17] [PASSED] PAL
[03:56:17] [PASSED] PAL_M
[03:56:17] [PASSED] PAL_N
[03:56:17] [PASSED] SECAM
[03:56:17] [PASSED] MONO_525
[03:56:17] [PASSED] MONO_625
[03:56:17] =========== [PASSED] drm_test_cmdline_tv_options ===========
[03:56:17] =============== [PASSED] drm_cmdline_parser ================
[03:56:17] ========== drmm_connector_hdmi_init (20 subtests) ==========
[03:56:17] [PASSED] drm_test_connector_hdmi_init_valid
[03:56:17] [PASSED] drm_test_connector_hdmi_init_bpc_8
[03:56:17] [PASSED] drm_test_connector_hdmi_init_bpc_10
[03:56:17] [PASSED] drm_test_connector_hdmi_init_bpc_12
[03:56:17] [PASSED] drm_test_connector_hdmi_init_bpc_invalid
[03:56:17] [PASSED] drm_test_connector_hdmi_init_bpc_null
[03:56:17] [PASSED] drm_test_connector_hdmi_init_formats_empty
[03:56:17] [PASSED] drm_test_connector_hdmi_init_formats_no_rgb
[03:56:17] === drm_test_connector_hdmi_init_formats_yuv420_allowed  ===
[03:56:17] [PASSED] supported_formats=0x9 yuv420_allowed=1
[03:56:17] [PASSED] supported_formats=0x9 yuv420_allowed=0
[03:56:17] [PASSED] supported_formats=0x5 yuv420_allowed=1
[03:56:17] [PASSED] supported_formats=0x5 yuv420_allowed=0
[03:56:17] === [PASSED] drm_test_connector_hdmi_init_formats_yuv420_allowed ===
[03:56:17] [PASSED] drm_test_connector_hdmi_init_null_ddc
[03:56:17] [PASSED] drm_test_connector_hdmi_init_null_product
[03:56:17] [PASSED] drm_test_connector_hdmi_init_null_vendor
[03:56:17] [PASSED] drm_test_connector_hdmi_init_product_length_exact
[03:56:17] [PASSED] drm_test_connector_hdmi_init_product_length_too_long
[03:56:17] [PASSED] drm_test_connector_hdmi_init_product_valid
[03:56:17] [PASSED] drm_test_connector_hdmi_init_vendor_length_exact
[03:56:17] [PASSED] drm_test_connector_hdmi_init_vendor_length_too_long
[03:56:17] [PASSED] drm_test_connector_hdmi_init_vendor_valid
[03:56:17] ========= drm_test_connector_hdmi_init_type_valid  =========
[03:56:17] [PASSED] HDMI-A
[03:56:17] [PASSED] HDMI-B
[03:56:17] ===== [PASSED] drm_test_connector_hdmi_init_type_valid =====
[03:56:17] ======== drm_test_connector_hdmi_init_type_invalid  ========
[03:56:17] [PASSED] Unknown
[03:56:17] [PASSED] VGA
[03:56:17] [PASSED] DVI-I
[03:56:17] [PASSED] DVI-D
[03:56:17] [PASSED] DVI-A
[03:56:17] [PASSED] Composite
[03:56:17] [PASSED] SVIDEO
[03:56:17] [PASSED] LVDS
[03:56:17] [PASSED] Component
[03:56:17] [PASSED] DIN
[03:56:17] [PASSED] DP
[03:56:17] [PASSED] TV
[03:56:17] [PASSED] eDP
[03:56:17] [PASSED] Virtual
[03:56:17] [PASSED] DSI
[03:56:17] [PASSED] DPI
[03:56:17] [PASSED] Writeback
[03:56:17] [PASSED] SPI
[03:56:17] [PASSED] USB
[03:56:17] ==== [PASSED] drm_test_connector_hdmi_init_type_invalid ====
[03:56:17] ============ [PASSED] drmm_connector_hdmi_init =============
[03:56:17] ============= drmm_connector_init (3 subtests) =============
[03:56:17] [PASSED] drm_test_drmm_connector_init
[03:56:17] [PASSED] drm_test_drmm_connector_init_null_ddc
[03:56:17] ========= drm_test_drmm_connector_init_type_valid  =========
[03:56:17] [PASSED] Unknown
[03:56:17] [PASSED] VGA
[03:56:17] [PASSED] DVI-I
[03:56:17] [PASSED] DVI-D
[03:56:17] [PASSED] DVI-A
[03:56:17] [PASSED] Composite
[03:56:17] [PASSED] SVIDEO
[03:56:17] [PASSED] LVDS
[03:56:17] [PASSED] Component
[03:56:17] [PASSED] DIN
[03:56:17] [PASSED] DP
[03:56:17] [PASSED] HDMI-A
[03:56:17] [PASSED] HDMI-B
[03:56:17] [PASSED] TV
[03:56:17] [PASSED] eDP
[03:56:17] [PASSED] Virtual
[03:56:17] [PASSED] DSI
[03:56:17] [PASSED] DPI
[03:56:17] [PASSED] Writeback
[03:56:17] [PASSED] SPI
[03:56:17] [PASSED] USB
[03:56:17] ===== [PASSED] drm_test_drmm_connector_init_type_valid =====
[03:56:17] =============== [PASSED] drmm_connector_init ===============
[03:56:17] ========= drm_connector_dynamic_init (6 subtests) ==========
[03:56:17] [PASSED] drm_test_drm_connector_dynamic_init
[03:56:17] [PASSED] drm_test_drm_connector_dynamic_init_null_ddc
[03:56:17] [PASSED] drm_test_drm_connector_dynamic_init_not_added
[03:56:17] [PASSED] drm_test_drm_connector_dynamic_init_properties
[03:56:17] ===== drm_test_drm_connector_dynamic_init_type_valid  ======
[03:56:17] [PASSED] Unknown
[03:56:17] [PASSED] VGA
[03:56:17] [PASSED] DVI-I
[03:56:17] [PASSED] DVI-D
[03:56:17] [PASSED] DVI-A
[03:56:17] [PASSED] Composite
[03:56:17] [PASSED] SVIDEO
[03:56:17] [PASSED] LVDS
[03:56:17] [PASSED] Component
[03:56:17] [PASSED] DIN
[03:56:17] [PASSED] DP
[03:56:17] [PASSED] HDMI-A
[03:56:17] [PASSED] HDMI-B
[03:56:17] [PASSED] TV
[03:56:17] [PASSED] eDP
[03:56:17] [PASSED] Virtual
[03:56:17] [PASSED] DSI
[03:56:17] [PASSED] DPI
[03:56:17] [PASSED] Writeback
[03:56:17] [PASSED] SPI
[03:56:17] [PASSED] USB
[03:56:17] = [PASSED] drm_test_drm_connector_dynamic_init_type_valid ==
[03:56:17] ======== drm_test_drm_connector_dynamic_init_name  =========
[03:56:17] [PASSED] Unknown
[03:56:17] [PASSED] VGA
[03:56:17] [PASSED] DVI-I
[03:56:17] [PASSED] DVI-D
[03:56:17] [PASSED] DVI-A
[03:56:17] [PASSED] Composite
[03:56:17] [PASSED] SVIDEO
[03:56:17] [PASSED] LVDS
[03:56:17] [PASSED] Component
[03:56:17] [PASSED] DIN
[03:56:17] [PASSED] DP
[03:56:17] [PASSED] HDMI-A
[03:56:17] [PASSED] HDMI-B
[03:56:17] [PASSED] TV
[03:56:17] [PASSED] eDP
[03:56:17] [PASSED] Virtual
[03:56:17] [PASSED] DSI
[03:56:17] [PASSED] DPI
[03:56:17] [PASSED] Writeback
[03:56:17] [PASSED] SPI
[03:56:17] [PASSED] USB
[03:56:17] ==== [PASSED] drm_test_drm_connector_dynamic_init_name =====
[03:56:17] =========== [PASSED] drm_connector_dynamic_init ============
[03:56:17] ==== drm_connector_dynamic_register_early (4 subtests) =====
[03:56:17] [PASSED] drm_test_drm_connector_dynamic_register_early_on_list
[03:56:17] [PASSED] drm_test_drm_connector_dynamic_register_early_defer
[03:56:17] [PASSED] drm_test_drm_connector_dynamic_register_early_no_init
[03:56:17] [PASSED] drm_test_drm_connector_dynamic_register_early_no_mode_object
[03:56:17] ====== [PASSED] drm_connector_dynamic_register_early =======
[03:56:17] ======= drm_connector_dynamic_register (7 subtests) ========
[03:56:17] [PASSED] drm_test_drm_connector_dynamic_register_on_list
[03:56:17] [PASSED] drm_test_drm_connector_dynamic_register_no_defer
[03:56:17] [PASSED] drm_test_drm_connector_dynamic_register_no_init
[03:56:17] [PASSED] drm_test_drm_connector_dynamic_register_mode_object
[03:56:17] [PASSED] drm_test_drm_connector_dynamic_register_sysfs
[03:56:17] [PASSED] drm_test_drm_connector_dynamic_register_sysfs_name
[03:56:17] [PASSED] drm_test_drm_connector_dynamic_register_debugfs
[03:56:17] ========= [PASSED] drm_connector_dynamic_register ==========
[03:56:17] = drm_connector_attach_broadcast_rgb_property (2 subtests) =
[03:56:17] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property
[03:56:17] [PASSED] drm_test_drm_connector_attach_broadcast_rgb_property_hdmi_connector
[03:56:17] === [PASSED] drm_connector_attach_broadcast_rgb_property ===
[03:56:17] ========== drm_get_tv_mode_from_name (2 subtests) ==========
[03:56:17] ========== drm_test_get_tv_mode_from_name_valid  ===========
[03:56:17] [PASSED] NTSC
[03:56:17] [PASSED] NTSC-443
[03:56:17] [PASSED] NTSC-J
[03:56:17] [PASSED] PAL
[03:56:17] [PASSED] PAL-M
[03:56:17] [PASSED] PAL-N
[03:56:17] [PASSED] SECAM
[03:56:17] [PASSED] Mono
[03:56:17] ====== [PASSED] drm_test_get_tv_mode_from_name_valid =======
[03:56:17] [PASSED] drm_test_get_tv_mode_from_name_truncated
[03:56:17] ============ [PASSED] drm_get_tv_mode_from_name ============
[03:56:17] = drm_test_connector_hdmi_compute_mode_clock (12 subtests) =
[03:56:17] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb
[03:56:17] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc
[03:56:17] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_10bpc_vic_1
[03:56:17] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc
[03:56:17] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_12bpc_vic_1
[03:56:17] [PASSED] drm_test_drm_hdmi_compute_mode_clock_rgb_double
[03:56:17] = drm_test_connector_hdmi_compute_mode_clock_yuv420_valid  =
[03:56:17] [PASSED] VIC 96
[03:56:17] [PASSED] VIC 97
[03:56:17] [PASSED] VIC 101
[03:56:17] [PASSED] VIC 102
[03:56:17] [PASSED] VIC 106
[03:56:17] [PASSED] VIC 107
[03:56:17] === [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_valid ===
[03:56:17] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_10_bpc
[03:56:17] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv420_12_bpc
[03:56:17] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_8_bpc
[03:56:17] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_10_bpc
[03:56:17] [PASSED] drm_test_connector_hdmi_compute_mode_clock_yuv422_12_bpc
[03:56:17] === [PASSED] drm_test_connector_hdmi_compute_mode_clock ====
[03:56:17] == drm_hdmi_connector_get_broadcast_rgb_name (2 subtests) ==
[03:56:17] === drm_test_drm_hdmi_connector_get_broadcast_rgb_name  ====
[03:56:17] [PASSED] Automatic
[03:56:17] [PASSED] Full
[03:56:17] [PASSED] Limited 16:235
[03:56:17] === [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name ===
[03:56:17] [PASSED] drm_test_drm_hdmi_connector_get_broadcast_rgb_name_invalid
[03:56:17] ==== [PASSED] drm_hdmi_connector_get_broadcast_rgb_name ====
[03:56:17] == drm_hdmi_connector_get_output_format_name (2 subtests) ==
[03:56:17] === drm_test_drm_hdmi_connector_get_output_format_name  ====
[03:56:17] [PASSED] RGB
[03:56:17] [PASSED] YUV 4:2:0
[03:56:17] [PASSED] YUV 4:2:2
[03:56:17] [PASSED] YUV 4:4:4
[03:56:17] === [PASSED] drm_test_drm_hdmi_connector_get_output_format_name ===
[03:56:17] [PASSED] drm_test_drm_hdmi_connector_get_output_format_name_invalid
[03:56:17] ==== [PASSED] drm_hdmi_connector_get_output_format_name ====
[03:56:17] ============= drm_damage_helper (21 subtests) ==============
[03:56:17] [PASSED] drm_test_damage_iter_no_damage
[03:56:17] [PASSED] drm_test_damage_iter_no_damage_fractional_src
[03:56:17] [PASSED] drm_test_damage_iter_no_damage_src_moved
[03:56:17] [PASSED] drm_test_damage_iter_no_damage_fractional_src_moved
[03:56:17] [PASSED] drm_test_damage_iter_no_damage_not_visible
[03:56:17] [PASSED] drm_test_damage_iter_no_damage_no_crtc
[03:56:17] [PASSED] drm_test_damage_iter_no_damage_no_fb
[03:56:17] [PASSED] drm_test_damage_iter_simple_damage
[03:56:17] [PASSED] drm_test_damage_iter_single_damage
[03:56:17] [PASSED] drm_test_damage_iter_single_damage_intersect_src
[03:56:17] [PASSED] drm_test_damage_iter_single_damage_outside_src
[03:56:17] [PASSED] drm_test_damage_iter_single_damage_fractional_src
[03:56:17] [PASSED] drm_test_damage_iter_single_damage_intersect_fractional_src
[03:56:17] [PASSED] drm_test_damage_iter_single_damage_outside_fractional_src
[03:56:17] [PASSED] drm_test_damage_iter_single_damage_src_moved
[03:56:17] [PASSED] drm_test_damage_iter_single_damage_fractional_src_moved
[03:56:17] [PASSED] drm_test_damage_iter_damage
[03:56:17] [PASSED] drm_test_damage_iter_damage_one_intersect
[03:56:17] [PASSED] drm_test_damage_iter_damage_one_outside
[03:56:17] [PASSED] drm_test_damage_iter_damage_src_moved
[03:56:17] [PASSED] drm_test_damage_iter_damage_not_visible
[03:56:17] ================ [PASSED] drm_damage_helper ================
[03:56:17] ============== drm_dp_mst_helper (3 subtests) ==============
[03:56:17] ============== drm_test_dp_mst_calc_pbn_mode  ==============
[03:56:17] [PASSED] Clock 154000 BPP 30 DSC disabled
[03:56:17] [PASSED] Clock 234000 BPP 30 DSC disabled
[03:56:17] [PASSED] Clock 297000 BPP 24 DSC disabled
[03:56:17] [PASSED] Clock 332880 BPP 24 DSC enabled
[03:56:17] [PASSED] Clock 324540 BPP 24 DSC enabled
[03:56:17] ========== [PASSED] drm_test_dp_mst_calc_pbn_mode ==========
[03:56:17] ============== drm_test_dp_mst_calc_pbn_div  ===============
[03:56:17] [PASSED] Link rate 2000000 lane count 4
[03:56:17] [PASSED] Link rate 2000000 lane count 2
[03:56:17] [PASSED] Link rate 2000000 lane count 1
[03:56:17] [PASSED] Link rate 1350000 lane count 4
[03:56:17] [PASSED] Link rate 1350000 lane count 2
[03:56:17] [PASSED] Link rate 1350000 lane count 1
[03:56:17] [PASSED] Link rate 1000000 lane count 4
[03:56:17] [PASSED] Link rate 1000000 lane count 2
[03:56:17] [PASSED] Link rate 1000000 lane count 1
[03:56:17] [PASSED] Link rate 810000 lane count 4
[03:56:17] [PASSED] Link rate 810000 lane count 2
[03:56:17] [PASSED] Link rate 810000 lane count 1
[03:56:17] [PASSED] Link rate 540000 lane count 4
[03:56:17] [PASSED] Link rate 540000 lane count 2
[03:56:17] [PASSED] Link rate 540000 lane count 1
[03:56:17] [PASSED] Link rate 270000 lane count 4
[03:56:17] [PASSED] Link rate 270000 lane count 2
[03:56:17] [PASSED] Link rate 270000 lane count 1
[03:56:17] [PASSED] Link rate 162000 lane count 4
[03:56:17] [PASSED] Link rate 162000 lane count 2
[03:56:17] [PASSED] Link rate 162000 lane count 1
[03:56:17] ========== [PASSED] drm_test_dp_mst_calc_pbn_div ===========
[03:56:17] ========= drm_test_dp_mst_sideband_msg_req_decode  =========
[03:56:17] [PASSED] DP_ENUM_PATH_RESOURCES with port number
[03:56:17] [PASSED] DP_POWER_UP_PHY with port number
[03:56:17] [PASSED] DP_POWER_DOWN_PHY with port number
[03:56:17] [PASSED] DP_ALLOCATE_PAYLOAD with SDP stream sinks
[03:56:17] [PASSED] DP_ALLOCATE_PAYLOAD with port number
[03:56:17] [PASSED] DP_ALLOCATE_PAYLOAD with VCPI
[03:56:17] [PASSED] DP_ALLOCATE_PAYLOAD with PBN
[03:56:17] [PASSED] DP_QUERY_PAYLOAD with port number
[03:56:17] [PASSED] DP_QUERY_PAYLOAD with VCPI
[03:56:17] [PASSED] DP_REMOTE_DPCD_READ with port number
[03:56:17] [PASSED] DP_REMOTE_DPCD_READ with DPCD address
[03:56:17] [PASSED] DP_REMOTE_DPCD_READ with max number of bytes
[03:56:17] [PASSED] DP_REMOTE_DPCD_WRITE with port number
[03:56:17] [PASSED] DP_REMOTE_DPCD_WRITE with DPCD address
[03:56:17] [PASSED] DP_REMOTE_DPCD_WRITE with data array
[03:56:17] [PASSED] DP_REMOTE_I2C_READ with port number
[03:56:17] [PASSED] DP_REMOTE_I2C_READ with I2C device ID
[03:56:17] [PASSED] DP_REMOTE_I2C_READ with transactions array
[03:56:17] [PASSED] DP_REMOTE_I2C_WRITE with port number
[03:56:17] [PASSED] DP_REMOTE_I2C_WRITE with I2C device ID
[03:56:17] [PASSED] DP_REMOTE_I2C_WRITE with data array
[03:56:17] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream ID
[03:56:17] [PASSED] DP_QUERY_STREAM_ENC_STATUS with client ID
[03:56:17] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream event
[03:56:17] [PASSED] DP_QUERY_STREAM_ENC_STATUS with valid stream event
[03:56:17] [PASSED] DP_QUERY_STREAM_ENC_STATUS with stream behavior
[03:56:17] [PASSED] DP_QUERY_STREAM_ENC_STATUS with a valid stream behavior
[03:56:17] ===== [PASSED] drm_test_dp_mst_sideband_msg_req_decode =====
[03:56:17] ================ [PASSED] drm_dp_mst_helper ================
[03:56:17] ================== drm_exec (7 subtests) ===================
[03:56:17] [PASSED] sanitycheck
[03:56:17] [PASSED] test_lock
[03:56:17] [PASSED] test_lock_unlock
[03:56:17] [PASSED] test_duplicates
[03:56:17] [PASSED] test_prepare
[03:56:17] [PASSED] test_prepare_array
[03:56:17] [PASSED] test_multiple_loops
[03:56:17] ==================== [PASSED] drm_exec =====================
[03:56:17] =========== drm_format_helper_test (17 subtests) ===========
[03:56:17] ============== drm_test_fb_xrgb8888_to_gray8  ==============
[03:56:17] [PASSED] single_pixel_source_buffer
[03:56:17] [PASSED] single_pixel_clip_rectangle
[03:56:17] [PASSED] well_known_colors
[03:56:17] [PASSED] destination_pitch
[03:56:17] ========== [PASSED] drm_test_fb_xrgb8888_to_gray8 ==========
[03:56:17] ============= drm_test_fb_xrgb8888_to_rgb332  ==============
[03:56:17] [PASSED] single_pixel_source_buffer
[03:56:17] [PASSED] single_pixel_clip_rectangle
[03:56:17] [PASSED] well_known_colors
[03:56:17] [PASSED] destination_pitch
[03:56:17] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb332 ==========
[03:56:17] ============= drm_test_fb_xrgb8888_to_rgb565  ==============
[03:56:17] [PASSED] single_pixel_source_buffer
[03:56:17] [PASSED] single_pixel_clip_rectangle
[03:56:17] [PASSED] well_known_colors
[03:56:17] [PASSED] destination_pitch
[03:56:17] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb565 ==========
[03:56:17] ============ drm_test_fb_xrgb8888_to_xrgb1555  =============
[03:56:17] [PASSED] single_pixel_source_buffer
[03:56:17] [PASSED] single_pixel_clip_rectangle
[03:56:17] [PASSED] well_known_colors
[03:56:17] [PASSED] destination_pitch
[03:56:17] ======== [PASSED] drm_test_fb_xrgb8888_to_xrgb1555 =========
[03:56:17] ============ drm_test_fb_xrgb8888_to_argb1555  =============
[03:56:17] [PASSED] single_pixel_source_buffer
[03:56:17] [PASSED] single_pixel_clip_rectangle
[03:56:17] [PASSED] well_known_colors
[03:56:17] [PASSED] destination_pitch
[03:56:17] ======== [PASSED] drm_test_fb_xrgb8888_to_argb1555 =========
[03:56:17] ============ drm_test_fb_xrgb8888_to_rgba5551  =============
[03:56:17] [PASSED] single_pixel_source_buffer
[03:56:17] [PASSED] single_pixel_clip_rectangle
[03:56:17] [PASSED] well_known_colors
[03:56:17] [PASSED] destination_pitch
[03:56:17] ======== [PASSED] drm_test_fb_xrgb8888_to_rgba5551 =========
[03:56:17] ============= drm_test_fb_xrgb8888_to_rgb888  ==============
[03:56:17] [PASSED] single_pixel_source_buffer
[03:56:17] [PASSED] single_pixel_clip_rectangle
[03:56:17] [PASSED] well_known_colors
[03:56:17] [PASSED] destination_pitch
[03:56:17] ========= [PASSED] drm_test_fb_xrgb8888_to_rgb888 ==========
[03:56:17] ============= drm_test_fb_xrgb8888_to_bgr888  ==============
[03:56:17] [PASSED] single_pixel_source_buffer
[03:56:17] [PASSED] single_pixel_clip_rectangle
[03:56:17] [PASSED] well_known_colors
[03:56:17] [PASSED] destination_pitch
[03:56:17] ========= [PASSED] drm_test_fb_xrgb8888_to_bgr888 ==========
[03:56:17] ============ drm_test_fb_xrgb8888_to_argb8888  =============
[03:56:17] [PASSED] single_pixel_source_buffer
[03:56:17] [PASSED] single_pixel_clip_rectangle
[03:56:17] [PASSED] well_known_colors
[03:56:17] [PASSED] destination_pitch
[03:56:17] ======== [PASSED] drm_test_fb_xrgb8888_to_argb8888 =========
[03:56:17] =========== drm_test_fb_xrgb8888_to_xrgb2101010  ===========
[03:56:17] [PASSED] single_pixel_source_buffer
[03:56:17] [PASSED] single_pixel_clip_rectangle
[03:56:17] [PASSED] well_known_colors
[03:56:17] [PASSED] destination_pitch
[03:56:17] ======= [PASSED] drm_test_fb_xrgb8888_to_xrgb2101010 =======
[03:56:17] =========== drm_test_fb_xrgb8888_to_argb2101010  ===========
[03:56:17] [PASSED] single_pixel_source_buffer
[03:56:17] [PASSED] single_pixel_clip_rectangle
[03:56:17] [PASSED] well_known_colors
[03:56:17] [PASSED] destination_pitch
[03:56:17] ======= [PASSED] drm_test_fb_xrgb8888_to_argb2101010 =======
[03:56:17] ============== drm_test_fb_xrgb8888_to_mono  ===============
[03:56:17] [PASSED] single_pixel_source_buffer
[03:56:17] [PASSED] single_pixel_clip_rectangle
[03:56:17] [PASSED] well_known_colors
[03:56:17] [PASSED] destination_pitch
[03:56:17] ========== [PASSED] drm_test_fb_xrgb8888_to_mono ===========
[03:56:17] ==================== drm_test_fb_swab  =====================
[03:56:17] [PASSED] single_pixel_source_buffer
[03:56:17] [PASSED] single_pixel_clip_rectangle
[03:56:17] [PASSED] well_known_colors
[03:56:17] [PASSED] destination_pitch
[03:56:17] ================ [PASSED] drm_test_fb_swab =================
[03:56:17] ============ drm_test_fb_xrgb8888_to_xbgr8888  =============
[03:56:17] [PASSED] single_pixel_source_buffer
[03:56:17] [PASSED] single_pixel_clip_rectangle
[03:56:17] [PASSED] well_known_colors
[03:56:17] [PASSED] destination_pitch
[03:56:17] ======== [PASSED] drm_test_fb_xrgb8888_to_xbgr8888 =========
[03:56:17] ============ drm_test_fb_xrgb8888_to_abgr8888  =============
[03:56:17] [PASSED] single_pixel_source_buffer
[03:56:17] [PASSED] single_pixel_clip_rectangle
[03:56:17] [PASSED] well_known_colors
[03:56:17] [PASSED] destination_pitch
[03:56:17] ======== [PASSED] drm_test_fb_xrgb8888_to_abgr8888 =========
[03:56:17] ================= drm_test_fb_clip_offset  =================
[03:56:17] [PASSED] pass through
[03:56:17] [PASSED] horizontal offset
[03:56:17] [PASSED] vertical offset
[03:56:17] [PASSED] horizontal and vertical offset
[03:56:17] [PASSED] horizontal offset (custom pitch)
[03:56:17] [PASSED] vertical offset (custom pitch)
[03:56:17] [PASSED] horizontal and vertical offset (custom pitch)
[03:56:17] ============= [PASSED] drm_test_fb_clip_offset =============
[03:56:17] =================== drm_test_fb_memcpy  ====================
[03:56:17] [PASSED] single_pixel_source_buffer: XR24 little-endian (0x34325258)
[03:56:17] [PASSED] single_pixel_source_buffer: XRA8 little-endian (0x38415258)
[03:56:17] [PASSED] single_pixel_source_buffer: YU24 little-endian (0x34325559)
[03:56:17] [PASSED] single_pixel_clip_rectangle: XB24 little-endian (0x34324258)
[03:56:17] [PASSED] single_pixel_clip_rectangle: XRA8 little-endian (0x38415258)
[03:56:17] [PASSED] single_pixel_clip_rectangle: YU24 little-endian (0x34325559)
[03:56:17] [PASSED] well_known_colors: XB24 little-endian (0x34324258)
[03:56:17] [PASSED] well_known_colors: XRA8 little-endian (0x38415258)
[03:56:17] [PASSED] well_known_colors: YU24 little-endian (0x34325559)
[03:56:17] [PASSED] destination_pitch: XB24 little-endian (0x34324258)
[03:56:17] [PASSED] destination_pitch: XRA8 little-endian (0x38415258)
[03:56:17] [PASSED] destination_pitch: YU24 little-endian (0x34325559)
[03:56:17] =============== [PASSED] drm_test_fb_memcpy ================
[03:56:17] ============= [PASSED] drm_format_helper_test ==============
[03:56:17] ================= drm_format (18 subtests) =================
[03:56:17] [PASSED] drm_test_format_block_width_invalid
[03:56:17] [PASSED] drm_test_format_block_width_one_plane
[03:56:17] [PASSED] drm_test_format_block_width_two_plane
[03:56:17] [PASSED] drm_test_format_block_width_three_plane
[03:56:17] [PASSED] drm_test_format_block_width_tiled
[03:56:17] [PASSED] drm_test_format_block_height_invalid
[03:56:17] [PASSED] drm_test_format_block_height_one_plane
[03:56:17] [PASSED] drm_test_format_block_height_two_plane
[03:56:17] [PASSED] drm_test_format_block_height_three_plane
[03:56:17] [PASSED] drm_test_format_block_height_tiled
[03:56:17] [PASSED] drm_test_format_min_pitch_invalid
[03:56:17] [PASSED] drm_test_format_min_pitch_one_plane_8bpp
[03:56:17] [PASSED] drm_test_format_min_pitch_one_plane_16bpp
[03:56:17] [PASSED] drm_test_format_min_pitch_one_plane_24bpp
[03:56:17] [PASSED] drm_test_format_min_pitch_one_plane_32bpp
[03:56:17] [PASSED] drm_test_format_min_pitch_two_plane
[03:56:17] [PASSED] drm_test_format_min_pitch_three_plane_8bpp
[03:56:17] [PASSED] drm_test_format_min_pitch_tiled
[03:56:17] =================== [PASSED] drm_format ====================
[03:56:17] ============== drm_framebuffer (10 subtests) ===============
[03:56:17] ========== drm_test_framebuffer_check_src_coords  ==========
[03:56:17] [PASSED] Success: source fits into fb
[03:56:17] [PASSED] Fail: overflowing fb with x-axis coordinate
[03:56:17] [PASSED] Fail: overflowing fb with y-axis coordinate
[03:56:17] [PASSED] Fail: overflowing fb with source width
[03:56:17] [PASSED] Fail: overflowing fb with source height
[03:56:17] ====== [PASSED] drm_test_framebuffer_check_src_coords ======
[03:56:17] [PASSED] drm_test_framebuffer_cleanup
[03:56:17] =============== drm_test_framebuffer_create  ===============
[03:56:17] [PASSED] ABGR8888 normal sizes
[03:56:17] [PASSED] ABGR8888 max sizes
[03:56:17] [PASSED] ABGR8888 pitch greater than min required
[03:56:17] [PASSED] ABGR8888 pitch less than min required
[03:56:17] [PASSED] ABGR8888 Invalid width
[03:56:17] [PASSED] ABGR8888 Invalid buffer handle
[03:56:17] [PASSED] No pixel format
[03:56:17] [PASSED] ABGR8888 Width 0
[03:56:17] [PASSED] ABGR8888 Height 0
[03:56:17] [PASSED] ABGR8888 Out of bound height * pitch combination
[03:56:17] [PASSED] ABGR8888 Large buffer offset
[03:56:17] [PASSED] ABGR8888 Buffer offset for inexistent plane
[03:56:17] [PASSED] ABGR8888 Invalid flag
[03:56:17] [PASSED] ABGR8888 Set DRM_MODE_FB_MODIFIERS without modifiers
[03:56:17] [PASSED] ABGR8888 Valid buffer modifier
[03:56:17] [PASSED] ABGR8888 Invalid buffer modifier(DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
[03:56:17] [PASSED] ABGR8888 Extra pitches without DRM_MODE_FB_MODIFIERS
[03:56:17] [PASSED] ABGR8888 Extra pitches with DRM_MODE_FB_MODIFIERS
[03:56:17] [PASSED] NV12 Normal sizes
[03:56:17] [PASSED] NV12 Max sizes
[03:56:17] [PASSED] NV12 Invalid pitch
[03:56:17] [PASSED] NV12 Invalid modifier/missing DRM_MODE_FB_MODIFIERS flag
[03:56:17] [PASSED] NV12 different  modifier per-plane
[03:56:17] [PASSED] NV12 with DRM_FORMAT_MOD_SAMSUNG_64_32_TILE
[03:56:17] [PASSED] NV12 Valid modifiers without DRM_MODE_FB_MODIFIERS
[03:56:17] [PASSED] NV12 Modifier for inexistent plane
[03:56:17] [PASSED] NV12 Handle for inexistent plane
[03:56:17] [PASSED] NV12 Handle for inexistent plane without DRM_MODE_FB_MODIFIERS
[03:56:17] [PASSED] YVU420 DRM_MODE_FB_MODIFIERS set without modifier
[03:56:17] [PASSED] YVU420 Normal sizes
[03:56:17] [PASSED] YVU420 Max sizes
[03:56:17] [PASSED] YVU420 Invalid pitch
[03:56:17] [PASSED] YVU420 Different pitches
[03:56:17] [PASSED] YVU420 Different buffer offsets/pitches
[03:56:17] [PASSED] YVU420 Modifier set just for plane 0, without DRM_MODE_FB_MODIFIERS
[03:56:17] [PASSED] YVU420 Modifier set just for planes 0, 1, without DRM_MODE_FB_MODIFIERS
[03:56:17] [PASSED] YVU420 Modifier set just for plane 0, 1, with DRM_MODE_FB_MODIFIERS
[03:56:17] [PASSED] YVU420 Valid modifier
[03:56:17] [PASSED] YVU420 Different modifiers per plane
[03:56:17] [PASSED] YVU420 Modifier for inexistent plane
[03:56:17] [PASSED] YUV420_10BIT Invalid modifier(DRM_FORMAT_MOD_LINEAR)
[03:56:17] [PASSED] X0L2 Normal sizes
[03:56:17] [PASSED] X0L2 Max sizes
[03:56:17] [PASSED] X0L2 Invalid pitch
[03:56:17] [PASSED] X0L2 Pitch greater than minimum required
[03:56:17] [PASSED] X0L2 Handle for inexistent plane
[03:56:17] [PASSED] X0L2 Offset for inexistent plane, without DRM_MODE_FB_MODIFIERS set
[03:56:17] [PASSED] X0L2 Modifier without DRM_MODE_FB_MODIFIERS set
[03:56:17] [PASSED] X0L2 Valid modifier
[03:56:17] [PASSED] X0L2 Modifier for inexistent plane
[03:56:17] =========== [PASSED] drm_test_framebuffer_create ===========
[03:56:17] [PASSED] drm_test_framebuffer_free
[03:56:17] [PASSED] drm_test_framebuffer_init
[03:56:17] [PASSED] drm_test_framebuffer_init_bad_format
[03:56:17] [PASSED] drm_test_framebuffer_init_dev_mismatch
[03:56:17] [PASSED] drm_test_framebuffer_lookup
[03:56:17] [PASSED] drm_test_framebuffer_lookup_inexistent
[03:56:17] [PASSED] drm_test_framebuffer_modifiers_not_supported
[03:56:17] ================= [PASSED] drm_framebuffer =================
[03:56:17] ================ drm_gem_shmem (8 subtests) ================
[03:56:17] [PASSED] drm_gem_shmem_test_obj_create
[03:56:17] [PASSED] drm_gem_shmem_test_obj_create_private
[03:56:17] [PASSED] drm_gem_shmem_test_pin_pages
[03:56:17] [PASSED] drm_gem_shmem_test_vmap
[03:56:17] [PASSED] drm_gem_shmem_test_get_sg_table
[03:56:17] [PASSED] drm_gem_shmem_test_get_pages_sgt
[03:56:17] [PASSED] drm_gem_shmem_test_madvise
[03:56:17] [PASSED] drm_gem_shmem_test_purge
[03:56:17] ================== [PASSED] drm_gem_shmem ==================
[03:56:17] === drm_atomic_helper_connector_hdmi_check (27 subtests) ===
[03:56:17] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode
[03:56:17] [PASSED] drm_test_check_broadcast_rgb_auto_cea_mode_vic_1
[03:56:17] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode
[03:56:17] [PASSED] drm_test_check_broadcast_rgb_full_cea_mode_vic_1
[03:56:17] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode
[03:56:17] [PASSED] drm_test_check_broadcast_rgb_limited_cea_mode_vic_1
[03:56:17] ====== drm_test_check_broadcast_rgb_cea_mode_yuv420  =======
[03:56:17] [PASSED] Automatic
[03:56:17] [PASSED] Full
[03:56:17] [PASSED] Limited 16:235
[03:56:17] == [PASSED] drm_test_check_broadcast_rgb_cea_mode_yuv420 ===
[03:56:17] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_changed
[03:56:17] [PASSED] drm_test_check_broadcast_rgb_crtc_mode_not_changed
[03:56:17] [PASSED] drm_test_check_disable_connector
[03:56:17] [PASSED] drm_test_check_hdmi_funcs_reject_rate
[03:56:17] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_rgb
[03:56:17] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_yuv420
[03:56:17] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv422
[03:56:17] [PASSED] drm_test_check_max_tmds_rate_bpc_fallback_ignore_yuv420
[03:56:17] [PASSED] drm_test_check_driver_unsupported_fallback_yuv420
[03:56:17] [PASSED] drm_test_check_output_bpc_crtc_mode_changed
[03:56:17] [PASSED] drm_test_check_output_bpc_crtc_mode_not_changed
[03:56:17] [PASSED] drm_test_check_output_bpc_dvi
[03:56:17] [PASSED] drm_test_check_output_bpc_format_vic_1
[03:56:17] [PASSED] drm_test_check_output_bpc_format_display_8bpc_only
[03:56:17] [PASSED] drm_test_check_output_bpc_format_display_rgb_only
[03:56:17] [PASSED] drm_test_check_output_bpc_format_driver_8bpc_only
[03:56:17] [PASSED] drm_test_check_output_bpc_format_driver_rgb_only
[03:56:17] [PASSED] drm_test_check_tmds_char_rate_rgb_8bpc
[03:56:17] [PASSED] drm_test_check_tmds_char_rate_rgb_10bpc
[03:56:17] [PASSED] drm_test_check_tmds_char_rate_rgb_12bpc
[03:56:17] ===== [PASSED] drm_atomic_helper_connector_hdmi_check ======
[03:56:17] === drm_atomic_helper_connector_hdmi_reset (6 subtests) ====
[03:56:17] [PASSED] drm_test_check_broadcast_rgb_value
[03:56:17] [PASSED] drm_test_check_bpc_8_value
[03:56:17] [PASSED] drm_test_check_bpc_10_value
[03:56:17] [PASSED] drm_test_check_bpc_12_value
[03:56:17] [PASSED] drm_test_check_format_value
[03:56:17] [PASSED] drm_test_check_tmds_char_value
[03:56:17] ===== [PASSED] drm_atomic_helper_connector_hdmi_reset ======
[03:56:17] = drm_atomic_helper_connector_hdmi_mode_valid (4 subtests) =
[03:56:17] [PASSED] drm_test_check_mode_valid
[03:56:17] [PASSED] drm_test_check_mode_valid_reject
[03:56:17] [PASSED] drm_test_check_mode_valid_reject_rate
[03:56:17] [PASSED] drm_test_check_mode_valid_reject_max_clock
[03:56:17] === [PASSED] drm_atomic_helper_connector_hdmi_mode_valid ===
[03:56:17] = drm_atomic_helper_connector_hdmi_infoframes (5 subtests) =
[03:56:17] [PASSED] drm_test_check_infoframes
[03:56:17] [PASSED] drm_test_check_reject_avi_infoframe
[03:56:17] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_8
[03:56:17] [PASSED] drm_test_check_reject_hdr_infoframe_bpc_10
[03:56:17] [PASSED] drm_test_check_reject_audio_infoframe
[03:56:17] === [PASSED] drm_atomic_helper_connector_hdmi_infoframes ===
[03:56:17] ================= drm_managed (2 subtests) =================
[03:56:17] [PASSED] drm_test_managed_release_action
[03:56:17] [PASSED] drm_test_managed_run_action
[03:56:17] =================== [PASSED] drm_managed ===================
[03:56:17] =================== drm_mm (6 subtests) ====================
[03:56:17] [PASSED] drm_test_mm_init
[03:56:17] [PASSED] drm_test_mm_debug
[03:56:17] [PASSED] drm_test_mm_align32
[03:56:17] [PASSED] drm_test_mm_align64
[03:56:17] [PASSED] drm_test_mm_lowest
[03:56:17] [PASSED] drm_test_mm_highest
[03:56:17] ===================== [PASSED] drm_mm ======================
[03:56:17] ============= drm_modes_analog_tv (5 subtests) =============
[03:56:17] [PASSED] drm_test_modes_analog_tv_mono_576i
[03:56:17] [PASSED] drm_test_modes_analog_tv_ntsc_480i
[03:56:17] [PASSED] drm_test_modes_analog_tv_ntsc_480i_inlined
[03:56:17] [PASSED] drm_test_modes_analog_tv_pal_576i
[03:56:17] [PASSED] drm_test_modes_analog_tv_pal_576i_inlined
[03:56:17] =============== [PASSED] drm_modes_analog_tv ===============
[03:56:17] ============== drm_plane_helper (2 subtests) ===============
[03:56:17] =============== drm_test_check_plane_state  ================
[03:56:17] [PASSED] clipping_simple
[03:56:17] [PASSED] clipping_rotate_reflect
[03:56:17] [PASSED] positioning_simple
[03:56:17] [PASSED] upscaling
[03:56:17] [PASSED] downscaling
[03:56:17] [PASSED] rounding1
[03:56:17] [PASSED] rounding2
[03:56:17] [PASSED] rounding3
[03:56:17] [PASSED] rounding4
[03:56:17] =========== [PASSED] drm_test_check_plane_state ============
[03:56:17] =========== drm_test_check_invalid_plane_state  ============
[03:56:17] [PASSED] positioning_invalid
[03:56:17] [PASSED] upscaling_invalid
[03:56:17] [PASSED] downscaling_invalid
[03:56:17] ======= [PASSED] drm_test_check_invalid_plane_state ========
[03:56:17] ================ [PASSED] drm_plane_helper =================
[03:56:17] ====== drm_connector_helper_tv_get_modes (1 subtest) =======
[03:56:17] ====== drm_test_connector_helper_tv_get_modes_check  =======
[03:56:17] [PASSED] None
[03:56:17] [PASSED] PAL
[03:56:17] [PASSED] NTSC
[03:56:17] [PASSED] Both, NTSC Default
[03:56:17] [PASSED] Both, PAL Default
[03:56:17] [PASSED] Both, NTSC Default, with PAL on command-line
[03:56:17] [PASSED] Both, PAL Default, with NTSC on command-line
[03:56:17] == [PASSED] drm_test_connector_helper_tv_get_modes_check ===
[03:56:17] ======== [PASSED] drm_connector_helper_tv_get_modes ========
[03:56:17] ================== drm_rect (9 subtests) ===================
[03:56:17] [PASSED] drm_test_rect_clip_scaled_div_by_zero
[03:56:17] [PASSED] drm_test_rect_clip_scaled_not_clipped
[03:56:17] [PASSED] drm_test_rect_clip_scaled_clipped
[03:56:17] [PASSED] drm_test_rect_clip_scaled_signed_vs_unsigned
[03:56:17] ================= drm_test_rect_intersect  =================
[03:56:17] [PASSED] top-left x bottom-right: 2x2+1+1 x 2x2+0+0
[03:56:17] [PASSED] top-right x bottom-left: 2x2+0+0 x 2x2+1-1
[03:56:17] [PASSED] bottom-left x top-right: 2x2+1-1 x 2x2+0+0
[03:56:17] [PASSED] bottom-right x top-left: 2x2+0+0 x 2x2+1+1
[03:56:17] [PASSED] right x left: 2x1+0+0 x 3x1+1+0
[03:56:17] [PASSED] left x right: 3x1+1+0 x 2x1+0+0
[03:56:17] [PASSED] up x bottom: 1x2+0+0 x 1x3+0-1
[03:56:17] [PASSED] bottom x up: 1x3+0-1 x 1x2+0+0
[03:56:17] [PASSED] touching corner: 1x1+0+0 x 2x2+1+1
[03:56:17] [PASSED] touching side: 1x1+0+0 x 1x1+1+0
[03:56:17] [PASSED] equal rects: 2x2+0+0 x 2x2+0+0
[03:56:17] [PASSED] inside another: 2x2+0+0 x 1x1+1+1
[03:56:17] [PASSED] far away: 1x1+0+0 x 1x1+3+6
[03:56:17] [PASSED] points intersecting: 0x0+5+10 x 0x0+5+10
[03:56:17] [PASSED] points not intersecting: 0x0+0+0 x 0x0+5+10
[03:56:17] ============= [PASSED] drm_test_rect_intersect =============
[03:56:17] ================ drm_test_rect_calc_hscale  ================
[03:56:17] [PASSED] normal use
[03:56:17] [PASSED] out of max range
[03:56:17] [PASSED] out of min range
[03:56:17] [PASSED] zero dst
[03:56:17] [PASSED] negative src
[03:56:17] [PASSED] negative dst
[03:56:17] ============ [PASSED] drm_test_rect_calc_hscale ============
[03:56:17] ================ drm_test_rect_calc_vscale  ================
[03:56:17] [PASSED] normal use
[03:56:17] [PASSED] out of max range
[03:56:17] [PASSED] out of min range
[03:56:17] [PASSED] zero dst
[03:56:17] [PASSED] negative src
[03:56:17] [PASSED] negative dst
stty: 'standard input': Inappropriate ioctl for device
[03:56:17] ============ [PASSED] drm_test_rect_calc_vscale ============
[03:56:17] ================== drm_test_rect_rotate  ===================
[03:56:17] [PASSED] reflect-x
[03:56:17] [PASSED] reflect-y
[03:56:17] [PASSED] rotate-0
[03:56:17] [PASSED] rotate-90
[03:56:17] [PASSED] rotate-180
[03:56:17] [PASSED] rotate-270
[03:56:17] ============== [PASSED] drm_test_rect_rotate ===============
[03:56:17] ================ drm_test_rect_rotate_inv  =================
[03:56:17] [PASSED] reflect-x
[03:56:17] [PASSED] reflect-y
[03:56:17] [PASSED] rotate-0
[03:56:17] [PASSED] rotate-90
[03:56:17] [PASSED] rotate-180
[03:56:17] [PASSED] rotate-270
[03:56:17] ============ [PASSED] drm_test_rect_rotate_inv =============
[03:56:17] ==================== [PASSED] drm_rect =====================
[03:56:17] ============ drm_sysfb_modeset_test (1 subtest) ============
[03:56:17] ============ drm_test_sysfb_build_fourcc_list  =============
[03:56:17] [PASSED] no native formats
[03:56:17] [PASSED] XRGB8888 as native format
[03:56:17] [PASSED] remove duplicates
[03:56:17] [PASSED] convert alpha formats
[03:56:17] [PASSED] random formats
[03:56:17] ======== [PASSED] drm_test_sysfb_build_fourcc_list =========
[03:56:17] ============= [PASSED] drm_sysfb_modeset_test ==============
[03:56:17] ================== drm_fixp (2 subtests) ===================
[03:56:17] [PASSED] drm_test_int2fixp
[03:56:17] [PASSED] drm_test_sm2fixp
[03:56:17] ==================== [PASSED] drm_fixp =====================
[03:56:17] ============================================================
[03:56:17] Testing complete. Ran 621 tests: passed: 621
[03:56:17] Elapsed time: 26.365s total, 1.673s configuring, 24.523s building, 0.133s running

+ /kernel/tools/testing/kunit/kunit.py run --kunitconfig /kernel/drivers/gpu/drm/ttm/tests/.kunitconfig
[03:56:17] Configuring KUnit Kernel ...
Regenerating .config ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
[03:56:18] Building KUnit Kernel ...
Populating config with:
$ make ARCH=um O=.kunit olddefconfig
Building with:
$ make all compile_commands.json scripts_gdb ARCH=um O=.kunit --jobs=48
[03:56:28] Starting KUnit Kernel (1/1)...
[03:56:28] ============================================================
Running tests with:
$ .kunit/linux kunit.enable=1 mem=1G console=tty kunit_shutdown=halt
[03:56:28] ================= ttm_device (5 subtests) ==================
[03:56:28] [PASSED] ttm_device_init_basic
[03:56:28] [PASSED] ttm_device_init_multiple
[03:56:28] [PASSED] ttm_device_fini_basic
[03:56:28] [PASSED] ttm_device_init_no_vma_man
[03:56:28] ================== ttm_device_init_pools  ==================
[03:56:28] [PASSED] No DMA allocations, no DMA32 required
[03:56:28] [PASSED] DMA allocations, DMA32 required
[03:56:28] [PASSED] No DMA allocations, DMA32 required
[03:56:28] [PASSED] DMA allocations, no DMA32 required
[03:56:28] ============== [PASSED] ttm_device_init_pools ==============
[03:56:28] =================== [PASSED] ttm_device ====================
[03:56:28] ================== ttm_pool (8 subtests) ===================
[03:56:28] ================== ttm_pool_alloc_basic  ===================
[03:56:28] [PASSED] One page
[03:56:28] [PASSED] More than one page
[03:56:28] [PASSED] Above the allocation limit
[03:56:28] [PASSED] One page, with coherent DMA mappings enabled
[03:56:28] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[03:56:28] ============== [PASSED] ttm_pool_alloc_basic ===============
[03:56:28] ============== ttm_pool_alloc_basic_dma_addr  ==============
[03:56:28] [PASSED] One page
[03:56:28] [PASSED] More than one page
[03:56:28] [PASSED] Above the allocation limit
[03:56:28] [PASSED] One page, with coherent DMA mappings enabled
[03:56:28] [PASSED] Above the allocation limit, with coherent DMA mappings enabled
[03:56:28] ========== [PASSED] ttm_pool_alloc_basic_dma_addr ==========
[03:56:28] [PASSED] ttm_pool_alloc_order_caching_match
[03:56:28] [PASSED] ttm_pool_alloc_caching_mismatch
[03:56:28] [PASSED] ttm_pool_alloc_order_mismatch
[03:56:28] [PASSED] ttm_pool_free_dma_alloc
[03:56:28] [PASSED] ttm_pool_free_no_dma_alloc
[03:56:28] [PASSED] ttm_pool_fini_basic
[03:56:28] ==================== [PASSED] ttm_pool =====================
[03:56:28] ================ ttm_resource (8 subtests) =================
[03:56:28] ================= ttm_resource_init_basic  =================
[03:56:28] [PASSED] Init resource in TTM_PL_SYSTEM
[03:56:28] [PASSED] Init resource in TTM_PL_VRAM
[03:56:28] [PASSED] Init resource in a private placement
[03:56:28] [PASSED] Init resource in TTM_PL_SYSTEM, set placement flags
[03:56:28] ============= [PASSED] ttm_resource_init_basic =============
[03:56:28] [PASSED] ttm_resource_init_pinned
[03:56:28] [PASSED] ttm_resource_fini_basic
[03:56:28] [PASSED] ttm_resource_manager_init_basic
[03:56:28] [PASSED] ttm_resource_manager_usage_basic
[03:56:28] [PASSED] ttm_resource_manager_set_used_basic
[03:56:28] [PASSED] ttm_sys_man_alloc_basic
[03:56:28] [PASSED] ttm_sys_man_free_basic
[03:56:28] ================== [PASSED] ttm_resource ===================
[03:56:28] =================== ttm_tt (15 subtests) ===================
[03:56:28] ==================== ttm_tt_init_basic  ====================
[03:56:28] [PASSED] Page-aligned size
[03:56:28] [PASSED] Extra pages requested
[03:56:28] ================ [PASSED] ttm_tt_init_basic ================
[03:56:28] [PASSED] ttm_tt_init_misaligned
[03:56:28] [PASSED] ttm_tt_fini_basic
[03:56:28] [PASSED] ttm_tt_fini_sg
[03:56:28] [PASSED] ttm_tt_fini_shmem
[03:56:28] [PASSED] ttm_tt_create_basic
[03:56:28] [PASSED] ttm_tt_create_invalid_bo_type
[03:56:28] [PASSED] ttm_tt_create_ttm_exists
[03:56:28] [PASSED] ttm_tt_create_failed
[03:56:28] [PASSED] ttm_tt_destroy_basic
[03:56:28] [PASSED] ttm_tt_populate_null_ttm
[03:56:28] [PASSED] ttm_tt_populate_populated_ttm
[03:56:28] [PASSED] ttm_tt_unpopulate_basic
[03:56:28] [PASSED] ttm_tt_unpopulate_empty_ttm
[03:56:28] [PASSED] ttm_tt_swapin_basic
[03:56:28] ===================== [PASSED] ttm_tt ======================
[03:56:28] =================== ttm_bo (14 subtests) ===================
[03:56:28] =========== ttm_bo_reserve_optimistic_no_ticket  ===========
[03:56:28] [PASSED] Cannot be interrupted and sleeps
[03:56:28] [PASSED] Cannot be interrupted, locks straight away
[03:56:28] [PASSED] Can be interrupted, sleeps
[03:56:28] ======= [PASSED] ttm_bo_reserve_optimistic_no_ticket =======
[03:56:28] [PASSED] ttm_bo_reserve_locked_no_sleep
[03:56:28] [PASSED] ttm_bo_reserve_no_wait_ticket
[03:56:28] [PASSED] ttm_bo_reserve_double_resv
[03:56:28] [PASSED] ttm_bo_reserve_interrupted
[03:56:28] [PASSED] ttm_bo_reserve_deadlock
[03:56:28] [PASSED] ttm_bo_unreserve_basic
[03:56:28] [PASSED] ttm_bo_unreserve_pinned
[03:56:28] [PASSED] ttm_bo_unreserve_bulk
[03:56:28] [PASSED] ttm_bo_fini_basic
[03:56:28] [PASSED] ttm_bo_fini_shared_resv
[03:56:28] [PASSED] ttm_bo_pin_basic
[03:56:28] [PASSED] ttm_bo_pin_unpin_resource
[03:56:28] [PASSED] ttm_bo_multiple_pin_one_unpin
[03:56:28] ===================== [PASSED] ttm_bo ======================
[03:56:28] ============== ttm_bo_validate (22 subtests) ===============
[03:56:28] ============== ttm_bo_init_reserved_sys_man  ===============
[03:56:28] [PASSED] Buffer object for userspace
[03:56:28] [PASSED] Kernel buffer object
[03:56:28] [PASSED] Shared buffer object
[03:56:28] ========== [PASSED] ttm_bo_init_reserved_sys_man ===========
[03:56:28] ============== ttm_bo_init_reserved_mock_man  ==============
[03:56:28] [PASSED] Buffer object for userspace
[03:56:28] [PASSED] Kernel buffer object
[03:56:28] [PASSED] Shared buffer object
[03:56:28] ========== [PASSED] ttm_bo_init_reserved_mock_man ==========
[03:56:28] [PASSED] ttm_bo_init_reserved_resv
[03:56:28] ================== ttm_bo_validate_basic  ==================
[03:56:28] [PASSED] Buffer object for userspace
[03:56:28] [PASSED] Kernel buffer object
[03:56:28] [PASSED] Shared buffer object
[03:56:28] ============== [PASSED] ttm_bo_validate_basic ==============
[03:56:28] [PASSED] ttm_bo_validate_invalid_placement
[03:56:28] ============= ttm_bo_validate_same_placement  ==============
[03:56:28] [PASSED] System manager
[03:56:28] [PASSED] VRAM manager
[03:56:28] ========= [PASSED] ttm_bo_validate_same_placement ==========
[03:56:28] [PASSED] ttm_bo_validate_failed_alloc
[03:56:28] [PASSED] ttm_bo_validate_pinned
[03:56:28] [PASSED] ttm_bo_validate_busy_placement
[03:56:28] ================ ttm_bo_validate_multihop  =================
[03:56:28] [PASSED] Buffer object for userspace
[03:56:28] [PASSED] Kernel buffer object
[03:56:28] [PASSED] Shared buffer object
[03:56:28] ============ [PASSED] ttm_bo_validate_multihop =============
[03:56:28] ========== ttm_bo_validate_no_placement_signaled  ==========
[03:56:28] [PASSED] Buffer object in system domain, no page vector
[03:56:28] [PASSED] Buffer object in system domain with an existing page vector
[03:56:28] ====== [PASSED] ttm_bo_validate_no_placement_signaled ======
[03:56:28] ======== ttm_bo_validate_no_placement_not_signaled  ========
[03:56:28] [PASSED] Buffer object for userspace
[03:56:28] [PASSED] Kernel buffer object
[03:56:28] [PASSED] Shared buffer object
[03:56:28] ==== [PASSED] ttm_bo_validate_no_placement_not_signaled ====
[03:56:28] [PASSED] ttm_bo_validate_move_fence_signaled
[03:56:28] ========= ttm_bo_validate_move_fence_not_signaled  =========
[03:56:28] [PASSED] Waits for GPU
[03:56:28] [PASSED] Tries to lock straight away
[03:56:28] ===== [PASSED] ttm_bo_validate_move_fence_not_signaled =====
[03:56:28] [PASSED] ttm_bo_validate_swapout
[03:56:28] [PASSED] ttm_bo_validate_happy_evict
[03:56:28] [PASSED] ttm_bo_validate_all_pinned_evict
[03:56:28] [PASSED] ttm_bo_validate_allowed_only_evict
[03:56:28] [PASSED] ttm_bo_validate_deleted_evict
[03:56:28] [PASSED] ttm_bo_validate_busy_domain_evict
[03:56:28] [PASSED] ttm_bo_validate_evict_gutting
[03:56:28] [PASSED] ttm_bo_validate_recrusive_evict
stty: 'standard input': Inappropriate ioctl for device
[03:56:28] ================= [PASSED] ttm_bo_validate =================
[03:56:28] ============================================================
[03:56:28] Testing complete. Ran 102 tests: passed: 102
[03:56:28] Elapsed time: 11.471s total, 1.716s configuring, 9.539s building, 0.181s running

+ cleanup
++ stat -c %u:%g /kernel
+ chown -R 1003:1003 /kernel



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

* ✓ Xe.CI.BAT: success for drm/xe/ras: Fix and clean up xe_drm_ras (rev2)
  2026-04-07 22:59 [PATCH 0/2] drm/xe/ras: Fix and clean up xe_drm_ras Shuicheng Lin
                   ` (5 preceding siblings ...)
  2026-04-10  3:56 ` ✓ CI.KUnit: success " Patchwork
@ 2026-04-10  4:32 ` Patchwork
  2026-04-10 10:41 ` ✗ Xe.CI.FULL: failure " Patchwork
  7 siblings, 0 replies; 21+ messages in thread
From: Patchwork @ 2026-04-10  4:32 UTC (permalink / raw)
  To: Shuicheng Lin; +Cc: intel-xe

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

== Series Details ==

Series: drm/xe/ras: Fix and clean up xe_drm_ras (rev2)
URL   : https://patchwork.freedesktop.org/series/164479/
State : success

== Summary ==

CI Bug Log - changes from xe-4877-97d8833ffba6bd3d6aaa51169069620ac17a2e37_BAT -> xe-pw-164479v2_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Participating hosts (14 -> 14)
------------------------------

  No changes in participating hosts

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

  Here are the changes found in xe-pw-164479v2_BAT that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@kms_flip@basic-flip-vs-wf_vblank@d-edp1:
    - bat-adlp-7:         [PASS][1] -> [DMESG-WARN][2] ([Intel XE#7483])
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4877-97d8833ffba6bd3d6aaa51169069620ac17a2e37/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank@d-edp1.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank@d-edp1.html

  * igt@xe_waitfence@engine:
    - bat-dg2-oem2:       [PASS][3] -> [FAIL][4] ([Intel XE#6519])
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4877-97d8833ffba6bd3d6aaa51169069620ac17a2e37/bat-dg2-oem2/igt@xe_waitfence@engine.html
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/bat-dg2-oem2/igt@xe_waitfence@engine.html

  
#### Possible fixes ####

  * igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1:
    - bat-adlp-7:         [DMESG-WARN][5] ([Intel XE#7483]) -> [PASS][6]
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4877-97d8833ffba6bd3d6aaa51169069620ac17a2e37/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1.html
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/bat-adlp-7/igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1.html

  
  [Intel XE#6519]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6519
  [Intel XE#7483]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7483


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

  * Linux: xe-4877-97d8833ffba6bd3d6aaa51169069620ac17a2e37 -> xe-pw-164479v2

  IGT_8852: 8852
  xe-4877-97d8833ffba6bd3d6aaa51169069620ac17a2e37: 97d8833ffba6bd3d6aaa51169069620ac17a2e37
  xe-pw-164479v2: 164479v2

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/index.html

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

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

* ✗ Xe.CI.FULL: failure for drm/xe/ras: Fix and clean up xe_drm_ras (rev2)
  2026-04-07 22:59 [PATCH 0/2] drm/xe/ras: Fix and clean up xe_drm_ras Shuicheng Lin
                   ` (6 preceding siblings ...)
  2026-04-10  4:32 ` ✓ Xe.CI.BAT: " Patchwork
@ 2026-04-10 10:41 ` Patchwork
  7 siblings, 0 replies; 21+ messages in thread
From: Patchwork @ 2026-04-10 10:41 UTC (permalink / raw)
  To: Shuicheng Lin; +Cc: intel-xe

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

== Series Details ==

Series: drm/xe/ras: Fix and clean up xe_drm_ras (rev2)
URL   : https://patchwork.freedesktop.org/series/164479/
State : failure

== Summary ==

CI Bug Log - changes from xe-4877-97d8833ffba6bd3d6aaa51169069620ac17a2e37_FULL -> xe-pw-164479v2_FULL
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with xe-pw-164479v2_FULL absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in xe-pw-164479v2_FULL, 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.

  

Participating hosts (2 -> 2)
------------------------------

  No changes in participating hosts

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

  Here are the unknown changes that may have been introduced in xe-pw-164479v2_FULL:

### IGT changes ###

#### Possible regressions ####

  * igt@kms_atomic_transition@plane-all-modeset-transition@pipe-b-dp-2:
    - shard-bmg:          [PASS][1] -> [DMESG-WARN][2]
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4877-97d8833ffba6bd3d6aaa51169069620ac17a2e37/shard-bmg-10/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-b-dp-2.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-2/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-b-dp-2.html

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

  Here are the changes found in xe-pw-164479v2_FULL that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@intel_hwmon@hwmon-write:
    - shard-bmg:          NOTRUN -> [FAIL][3] ([Intel XE#7445])
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-10/igt@intel_hwmon@hwmon-write.html

  * igt@kms_atomic_transition@plane-all-modeset-transition:
    - shard-bmg:          [PASS][4] -> [ABORT][5] ([Intel XE#7200]) +1 other test abort
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4877-97d8833ffba6bd3d6aaa51169069620ac17a2e37/shard-bmg-10/igt@kms_atomic_transition@plane-all-modeset-transition.html
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-2/igt@kms_atomic_transition@plane-all-modeset-transition.html

  * igt@kms_big_fb@linear-32bpp-rotate-180:
    - shard-bmg:          NOTRUN -> [SKIP][6] ([Intel XE#6557] / [Intel XE#6703])
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-2/igt@kms_big_fb@linear-32bpp-rotate-180.html

  * igt@kms_big_fb@y-tiled-8bpp-rotate-90:
    - shard-bmg:          NOTRUN -> [SKIP][7] ([Intel XE#1124]) +2 other tests skip
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-10/igt@kms_big_fb@y-tiled-8bpp-rotate-90.html

  * igt@kms_big_fb@yf-tiled-addfb:
    - shard-bmg:          NOTRUN -> [SKIP][8] ([Intel XE#2328] / [Intel XE#7367])
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-10/igt@kms_big_fb@yf-tiled-addfb.html

  * igt@kms_bw@connected-linear-tiling-3-displays-2560x1440p:
    - shard-bmg:          NOTRUN -> [SKIP][9] ([Intel XE#7679])
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-10/igt@kms_bw@connected-linear-tiling-3-displays-2560x1440p.html

  * igt@kms_bw@linear-tiling-4-displays-1920x1080p:
    - shard-bmg:          NOTRUN -> [SKIP][10] ([Intel XE#367] / [Intel XE#7354])
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-3/igt@kms_bw@linear-tiling-4-displays-1920x1080p.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-dg2-mc-ccs:
    - shard-bmg:          NOTRUN -> [SKIP][11] ([Intel XE#2887]) +5 other tests skip
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-3/igt@kms_ccs@bad-rotation-90-4-tiled-dg2-mc-ccs.html

  * igt@kms_chamelium_edid@dp-mode-timings:
    - shard-bmg:          NOTRUN -> [SKIP][12] ([Intel XE#2252]) +1 other test skip
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-3/igt@kms_chamelium_edid@dp-mode-timings.html

  * igt@kms_content_protection@dp-mst-lic-type-1:
    - shard-bmg:          NOTRUN -> [SKIP][13] ([Intel XE#2390] / [Intel XE#6974])
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-3/igt@kms_content_protection@dp-mst-lic-type-1.html

  * igt@kms_cursor_crc@cursor-rapid-movement-128x42:
    - shard-bmg:          NOTRUN -> [SKIP][14] ([Intel XE#2320])
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-3/igt@kms_cursor_crc@cursor-rapid-movement-128x42.html

  * igt@kms_dsc@dsc-with-bpc:
    - shard-bmg:          NOTRUN -> [SKIP][15] ([Intel XE#2244])
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-3/igt@kms_dsc@dsc-with-bpc.html

  * igt@kms_feature_discovery@psr1:
    - shard-bmg:          NOTRUN -> [SKIP][16] ([Intel XE#2374] / [Intel XE#6127])
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-3/igt@kms_feature_discovery@psr1.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling:
    - shard-bmg:          NOTRUN -> [SKIP][17] ([Intel XE#7178] / [Intel XE#7351])
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-3/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-downscaling.html

  * igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-blt:
    - shard-bmg:          NOTRUN -> [SKIP][18] ([Intel XE#2311]) +8 other tests skip
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-3/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-shrfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-render:
    - shard-bmg:          NOTRUN -> [SKIP][19] ([Intel XE#4141]) +5 other tests skip
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-10/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-tiling-y:
    - shard-bmg:          NOTRUN -> [SKIP][20] ([Intel XE#2352] / [Intel XE#7399])
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcpsr-tiling-y.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-pgflip-blt:
    - shard-bmg:          NOTRUN -> [SKIP][21] ([Intel XE#2313]) +9 other tests skip
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-3/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-pgflip-blt.html

  * igt@kms_hdr@invalid-hdr:
    - shard-bmg:          [PASS][22] -> [SKIP][23] ([Intel XE#1503])
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4877-97d8833ffba6bd3d6aaa51169069620ac17a2e37/shard-bmg-8/igt@kms_hdr@invalid-hdr.html
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-9/igt@kms_hdr@invalid-hdr.html

  * igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier-source-clamping:
    - shard-bmg:          NOTRUN -> [SKIP][24] ([Intel XE#7283])
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-3/igt@kms_plane@pixel-format-4-tiled-lnl-ccs-modifier-source-clamping.html

  * igt@kms_plane_lowres@tiling-y:
    - shard-bmg:          NOTRUN -> [SKIP][25] ([Intel XE#2393])
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-3/igt@kms_plane_lowres@tiling-y.html

  * igt@kms_prop_blob@invalid-set-prop:
    - shard-bmg:          [PASS][26] -> [SKIP][27] ([Intel XE#6703]) +16 other tests skip
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4877-97d8833ffba6bd3d6aaa51169069620ac17a2e37/shard-bmg-2/igt@kms_prop_blob@invalid-set-prop.html
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-2/igt@kms_prop_blob@invalid-set-prop.html

  * igt@kms_psr2_sf@pr-overlay-plane-move-continuous-sf:
    - shard-bmg:          NOTRUN -> [SKIP][28] ([Intel XE#1489])
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-10/igt@kms_psr2_sf@pr-overlay-plane-move-continuous-sf.html

  * igt@kms_psr2_su@frontbuffer-xrgb8888:
    - shard-bmg:          NOTRUN -> [SKIP][29] ([Intel XE#2387] / [Intel XE#7429])
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-3/igt@kms_psr2_su@frontbuffer-xrgb8888.html

  * igt@kms_psr@psr-cursor-plane-onoff:
    - shard-bmg:          NOTRUN -> [SKIP][30] ([Intel XE#2234] / [Intel XE#2850]) +3 other tests skip
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-3/igt@kms_psr@psr-cursor-plane-onoff.html

  * igt@kms_rotation_crc@sprite-rotation-90-pos-100-0:
    - shard-bmg:          NOTRUN -> [SKIP][31] ([Intel XE#3904] / [Intel XE#7342]) +1 other test skip
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-10/igt@kms_rotation_crc@sprite-rotation-90-pos-100-0.html

  * igt@kms_sharpness_filter@invalid-filter-with-scaling-mode:
    - shard-bmg:          NOTRUN -> [SKIP][32] ([Intel XE#6503])
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-3/igt@kms_sharpness_filter@invalid-filter-with-scaling-mode.html

  * igt@kms_vrr@cmrr@pipe-a-edp-1:
    - shard-lnl:          [PASS][33] -> [FAIL][34] ([Intel XE#4459]) +1 other test fail
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4877-97d8833ffba6bd3d6aaa51169069620ac17a2e37/shard-lnl-8/igt@kms_vrr@cmrr@pipe-a-edp-1.html
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-lnl-8/igt@kms_vrr@cmrr@pipe-a-edp-1.html

  * igt@kms_vrr@lobf:
    - shard-bmg:          NOTRUN -> [SKIP][35] ([Intel XE#2168] / [Intel XE#7444])
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-10/igt@kms_vrr@lobf.html

  * igt@xe_eudebug@connect-user:
    - shard-bmg:          NOTRUN -> [SKIP][36] ([Intel XE#7636]) +3 other tests skip
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-3/igt@xe_eudebug@connect-user.html

  * igt@xe_evict@evict-small-multi-queue-priority-cm:
    - shard-bmg:          NOTRUN -> [SKIP][37] ([Intel XE#7140])
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-10/igt@xe_evict@evict-small-multi-queue-priority-cm.html

  * igt@xe_exec_balancer@many-parallel-userptr-invalidate-race:
    - shard-bmg:          [PASS][38] -> [SKIP][39] ([Intel XE#6557] / [Intel XE#6703]) +1 other test skip
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4877-97d8833ffba6bd3d6aaa51169069620ac17a2e37/shard-bmg-2/igt@xe_exec_balancer@many-parallel-userptr-invalidate-race.html
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-2/igt@xe_exec_balancer@many-parallel-userptr-invalidate-race.html

  * igt@xe_exec_basic@multigpu-no-exec-basic-defer-mmap:
    - shard-bmg:          NOTRUN -> [SKIP][40] ([Intel XE#2322] / [Intel XE#7372]) +2 other tests skip
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-3/igt@xe_exec_basic@multigpu-no-exec-basic-defer-mmap.html

  * igt@xe_exec_fault_mode@many-execqueues-multi-queue-userptr-invalidate-imm:
    - shard-bmg:          NOTRUN -> [SKIP][41] ([Intel XE#7136]) +2 other tests skip
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-3/igt@xe_exec_fault_mode@many-execqueues-multi-queue-userptr-invalidate-imm.html

  * igt@xe_exec_multi_queue@many-queues-dyn-priority-smem:
    - shard-bmg:          NOTRUN -> [SKIP][42] ([Intel XE#6874]) +8 other tests skip
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-3/igt@xe_exec_multi_queue@many-queues-dyn-priority-smem.html

  * igt@xe_exec_system_allocator@many-large-mmap-free-race-nomemset:
    - shard-bmg:          NOTRUN -> [INCOMPLETE][43] ([Intel XE#2594])
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-2/igt@xe_exec_system_allocator@many-large-mmap-free-race-nomemset.html

  * igt@xe_exec_system_allocator@once-free-race:
    - shard-bmg:          [PASS][44] -> [DMESG-FAIL][45] ([Intel XE#5545] / [Intel XE#6652])
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4877-97d8833ffba6bd3d6aaa51169069620ac17a2e37/shard-bmg-2/igt@xe_exec_system_allocator@once-free-race.html
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-2/igt@xe_exec_system_allocator@once-free-race.html

  * igt@xe_exec_system_allocator@process-many-stride-malloc-prefetch-race:
    - shard-bmg:          NOTRUN -> [SKIP][46] ([Intel XE#6703]) +126 other tests skip
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-2/igt@xe_exec_system_allocator@process-many-stride-malloc-prefetch-race.html

  * igt@xe_live_ktest@xe_bo@xe_ccs_migrate_kunit:
    - shard-bmg:          NOTRUN -> [SKIP][47] ([Intel XE#2229])
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-3/igt@xe_live_ktest@xe_bo@xe_ccs_migrate_kunit.html

  * igt@xe_multigpu_svm@mgpu-migration-prefetch:
    - shard-bmg:          NOTRUN -> [SKIP][48] ([Intel XE#6964])
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-3/igt@xe_multigpu_svm@mgpu-migration-prefetch.html

  * igt@xe_pat@l2-flush-opt-svm-pat-restrict:
    - shard-bmg:          NOTRUN -> [SKIP][49] ([Intel XE#7590])
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-3/igt@xe_pat@l2-flush-opt-svm-pat-restrict.html

  
#### Possible fixes ####

  * igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size:
    - shard-bmg:          [DMESG-WARN][50] ([Intel XE#5354]) -> [PASS][51]
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4877-97d8833ffba6bd3d6aaa51169069620ac17a2e37/shard-bmg-1/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size.html
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-10/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size.html

  * igt@kms_flip@2x-flip-vs-expired-vblank:
    - shard-bmg:          [FAIL][52] ([Intel XE#3149] / [Intel XE#3321]) -> [PASS][53]
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4877-97d8833ffba6bd3d6aaa51169069620ac17a2e37/shard-bmg-6/igt@kms_flip@2x-flip-vs-expired-vblank.html
   [53]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-6/igt@kms_flip@2x-flip-vs-expired-vblank.html

  * igt@kms_flip@2x-flip-vs-expired-vblank@cd-dp2-hdmi-a3:
    - shard-bmg:          [FAIL][54] ([Intel XE#3149]) -> [PASS][55]
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4877-97d8833ffba6bd3d6aaa51169069620ac17a2e37/shard-bmg-6/igt@kms_flip@2x-flip-vs-expired-vblank@cd-dp2-hdmi-a3.html
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-6/igt@kms_flip@2x-flip-vs-expired-vblank@cd-dp2-hdmi-a3.html

  * igt@kms_setmode@basic@pipe-b-edp-1:
    - shard-lnl:          [FAIL][56] ([Intel XE#6361]) -> [PASS][57] +2 other tests pass
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4877-97d8833ffba6bd3d6aaa51169069620ac17a2e37/shard-lnl-4/igt@kms_setmode@basic@pipe-b-edp-1.html
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-lnl-5/igt@kms_setmode@basic@pipe-b-edp-1.html

  
#### Warnings ####

  * igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels:
    - shard-bmg:          [SKIP][58] ([Intel XE#2370]) -> [SKIP][59] ([Intel XE#6703])
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4877-97d8833ffba6bd3d6aaa51169069620ac17a2e37/shard-bmg-2/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-2/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html

  * igt@kms_chamelium_hpd@hdmi-hpd-after-suspend:
    - shard-bmg:          [SKIP][60] ([Intel XE#2252]) -> [SKIP][61] ([Intel XE#6703])
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4877-97d8833ffba6bd3d6aaa51169069620ac17a2e37/shard-bmg-2/igt@kms_chamelium_hpd@hdmi-hpd-after-suspend.html
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-2/igt@kms_chamelium_hpd@hdmi-hpd-after-suspend.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-draw-blt:
    - shard-bmg:          [SKIP][62] ([Intel XE#2311]) -> [SKIP][63] ([Intel XE#6703])
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4877-97d8833ffba6bd3d6aaa51169069620ac17a2e37/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-draw-blt.html
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-cur-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render:
    - shard-bmg:          [SKIP][64] ([Intel XE#2313]) -> [SKIP][65] ([Intel XE#6703])
   [64]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4877-97d8833ffba6bd3d6aaa51169069620ac17a2e37/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render.html
   [65]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render.html

  * igt@kms_hdr@brightness-with-hdr:
    - shard-bmg:          [SKIP][66] ([Intel XE#3544]) -> [SKIP][67] ([Intel XE#3374] / [Intel XE#3544])
   [66]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4877-97d8833ffba6bd3d6aaa51169069620ac17a2e37/shard-bmg-2/igt@kms_hdr@brightness-with-hdr.html
   [67]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-8/igt@kms_hdr@brightness-with-hdr.html

  * igt@kms_psr@fbc-pr-cursor-plane-move:
    - shard-bmg:          [SKIP][68] ([Intel XE#2234] / [Intel XE#2850]) -> [SKIP][69] ([Intel XE#6703])
   [68]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4877-97d8833ffba6bd3d6aaa51169069620ac17a2e37/shard-bmg-2/igt@kms_psr@fbc-pr-cursor-plane-move.html
   [69]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-2/igt@kms_psr@fbc-pr-cursor-plane-move.html

  * igt@xe_exec_fault_mode@many-execqueues-multi-queue-invalid-fault:
    - shard-bmg:          [SKIP][70] ([Intel XE#7136]) -> [SKIP][71] ([Intel XE#6703])
   [70]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4877-97d8833ffba6bd3d6aaa51169069620ac17a2e37/shard-bmg-2/igt@xe_exec_fault_mode@many-execqueues-multi-queue-invalid-fault.html
   [71]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-2/igt@xe_exec_fault_mode@many-execqueues-multi-queue-invalid-fault.html

  * igt@xe_exec_multi_queue@one-queue-preempt-mode-fault-close-fd-smem:
    - shard-bmg:          [SKIP][72] ([Intel XE#6874]) -> [SKIP][73] ([Intel XE#6703])
   [72]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-4877-97d8833ffba6bd3d6aaa51169069620ac17a2e37/shard-bmg-2/igt@xe_exec_multi_queue@one-queue-preempt-mode-fault-close-fd-smem.html
   [73]: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/shard-bmg-2/igt@xe_exec_multi_queue@one-queue-preempt-mode-fault-close-fd-smem.html

  
  [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
  [Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
  [Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503
  [Intel XE#2168]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2168
  [Intel XE#2229]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2229
  [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
  [Intel XE#2244]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2244
  [Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
  [Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
  [Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
  [Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
  [Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
  [Intel XE#2328]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2328
  [Intel XE#2352]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2352
  [Intel XE#2370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2370
  [Intel XE#2374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2374
  [Intel XE#2387]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2387
  [Intel XE#2390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2390
  [Intel XE#2393]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2393
  [Intel XE#2594]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2594
  [Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
  [Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
  [Intel XE#3149]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3149
  [Intel XE#3321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3321
  [Intel XE#3374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3374
  [Intel XE#3544]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3544
  [Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
  [Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
  [Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
  [Intel XE#4459]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4459
  [Intel XE#5354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5354
  [Intel XE#5545]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5545
  [Intel XE#6127]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6127
  [Intel XE#6361]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6361
  [Intel XE#6503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6503
  [Intel XE#6557]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6557
  [Intel XE#6652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6652
  [Intel XE#6703]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6703
  [Intel XE#6874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6874
  [Intel XE#6964]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6964
  [Intel XE#6974]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6974
  [Intel XE#7136]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7136
  [Intel XE#7140]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7140
  [Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178
  [Intel XE#7200]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7200
  [Intel XE#7283]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7283
  [Intel XE#7342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7342
  [Intel XE#7351]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7351
  [Intel XE#7354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7354
  [Intel XE#7367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7367
  [Intel XE#7372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7372
  [Intel XE#7399]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7399
  [Intel XE#7429]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7429
  [Intel XE#7444]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7444
  [Intel XE#7445]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7445
  [Intel XE#7590]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7590
  [Intel XE#7636]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7636
  [Intel XE#7679]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7679


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

  * Linux: xe-4877-97d8833ffba6bd3d6aaa51169069620ac17a2e37 -> xe-pw-164479v2

  IGT_8852: 8852
  xe-4877-97d8833ffba6bd3d6aaa51169069620ac17a2e37: 97d8833ffba6bd3d6aaa51169069620ac17a2e37
  xe-pw-164479v2: 164479v2

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/xe-pw-164479v2/index.html

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

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

* RE: [PATCH 1/2] drm/xe/ras: Fix error handling in register_nodes()
  2026-04-07 22:59 ` [PATCH 1/2] drm/xe/ras: Fix error handling in register_nodes() Shuicheng Lin
@ 2026-04-11  4:46   ` Nguyen, Brian3
  2026-04-13  4:39     ` Tauro, Riana
  2026-04-11  7:56   ` Raag Jadav
  1 sibling, 1 reply; 21+ messages in thread
From: Nguyen, Brian3 @ 2026-04-11  4:46 UTC (permalink / raw)
  To: Lin, Shuicheng, intel-xe@lists.freedesktop.org
  Cc: Lin, Shuicheng, Tauro, Riana

On Tuesday, April 7, 2026 3:59 PM, Shuicheng Lin wrote:
> Fix two issues in register_nodes():
> 
> 1. When the loop fails mid-way, previously registered nodes are not
>    cleaned up. Add goto-based error unwinding that walks backwards
>    through completed iterations.
> 
> 2. When allocate_and_copy_counters() fails, assign_node_params()
>    leaves ras->info[severity] as an ERR_PTR and returns. The caller
>    then passes that ERR_PTR to kfree() via cleanup_node_param(),
>    causing an invalid free. Fix by making assign_node_params()
>    self-contained on error: NULL out the stale ERR_PTR and free
>    device_name before returning.
> 
> Fixes: b40db12b542f ("drm/xe/xe_drm_ras: Add support for XE DRM RAS")
> Cc: Riana Tauro <riana.tauro@intel.com>
> Assisted-by: Claude:claude-opus-4.6
> Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>

Reviewed-by: Brian Nguyen <brian3.nguyen@intel.com>

> ---
>  drivers/gpu/drm/xe/xe_drm_ras.c | 31 ++++++++++++++++++++++---------
>  1 file changed, 22 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_drm_ras.c b/drivers/gpu/drm/xe/xe_drm_ras.c
> index e07dc23a155e..802e4bcb731c 100644
> --- a/drivers/gpu/drm/xe/xe_drm_ras.c
> +++ b/drivers/gpu/drm/xe/xe_drm_ras.c
> @@ -73,6 +73,7 @@ static int assign_node_params(struct xe_device *xe, struct drm_ras_node *node,
>  	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
>  	struct xe_drm_ras *ras = &xe->ras;
>  	const char *device_name;
> +	int ret;
> 
>  	device_name = kasprintf(GFP_KERNEL, "%04x:%02x:%02x.%d",
>  				pci_domain_nr(pdev->bus), pdev->bus->number,
> @@ -89,8 +90,11 @@ static int assign_node_params(struct xe_device *xe, struct drm_ras_node *node,
>  	node->priv = xe;
> 
>  	ras->info[severity] = allocate_and_copy_counters(xe);
> -	if (IS_ERR(ras->info[severity]))
> -		return PTR_ERR(ras->info[severity]);
> +	if (IS_ERR(ras->info[severity])) {
> +		ret = PTR_ERR(ras->info[severity]);
> +		ras->info[severity] = NULL;
> +		goto err_free_name;
> +	}
> 
>  	if (severity == DRM_XE_RAS_ERR_SEV_CORRECTABLE)
>  		node->query_error_counter = query_correctable_error_counter;
> @@ -98,6 +102,11 @@ static int assign_node_params(struct xe_device *xe, struct drm_ras_node *node,
>  		node->query_error_counter = query_uncorrectable_error_counter;
> 
>  	return 0;
> +
> +err_free_name:
> +	kfree(device_name);
> +	node->device_name = NULL;
> +	return ret;
>  }
> 
>  static void cleanup_node_param(struct xe_drm_ras *ras, const enum drm_xe_ras_error_severity severity)
> @@ -114,26 +123,30 @@ static void cleanup_node_param(struct xe_drm_ras *ras, const enum drm_xe_ras_err
>  static int register_nodes(struct xe_device *xe)
>  {
>  	struct xe_drm_ras *ras = &xe->ras;
> -	int i;
> +	int i, ret;
> 
>  	for_each_error_severity(i) {
>  		struct drm_ras_node *node = &ras->node[i];
> -		int ret;
> 
>  		ret = assign_node_params(xe, node, i);
> -		if (ret) {
> -			cleanup_node_param(ras, i);
> -			return ret;
> -		}
> +		if (ret)
> +			goto err_unwind;
> 
>  		ret = drm_ras_node_register(node);
>  		if (ret) {
>  			cleanup_node_param(ras, i);
> -			return ret;
> +			goto err_unwind;
>  		}
>  	}
> 
>  	return 0;
> +
> +err_unwind:
> +	while (i--) {
> +		drm_ras_node_unregister(&ras->node[i]);
> +		cleanup_node_param(ras, i);
> +	}
> +	return ret;
>  }
> 
>  static void xe_drm_ras_unregister_nodes(struct drm_device *device, void *arg)
> --
> 2.43.0


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

* RE: [PATCH 2/2] drm/xe/ras: Clean up coding style in xe_drm_ras
  2026-04-07 22:59 ` [PATCH 2/2] drm/xe/ras: Clean up coding style in xe_drm_ras Shuicheng Lin
@ 2026-04-11  4:54   ` Nguyen, Brian3
  2026-04-13  4:46     ` Tauro, Riana
  2026-04-11  7:58   ` Raag Jadav
  1 sibling, 1 reply; 21+ messages in thread
From: Nguyen, Brian3 @ 2026-04-11  4:54 UTC (permalink / raw)
  To: Lin, Shuicheng, intel-xe@lists.freedesktop.org
  Cc: Lin, Shuicheng, Tauro, Riana

On Tuesday, April 7, 2026 3:59 PM, Shuicheng Lin wrote:
> - Fix long line in cleanup_node_param() signature.
> - Drop unnecessary const on pass-by-value enum parameters.
> - Simplify xe_drm_ras_init() by removing redundant local variable
>   and redundant error path.
> 
> No functional change.
> 
> Cc: Riana Tauro <riana.tauro@intel.com>
> Assisted-by: Claude:claude-opus-4.6
> Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>

Reviewed-by: Brian Nguyen <brian3.nguyen@intel.com>

> ---
>  drivers/gpu/drm/xe/xe_drm_ras.c | 19 ++++++++-----------
>  1 file changed, 8 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_drm_ras.c b/drivers/gpu/drm/xe/xe_drm_ras.c
> index 802e4bcb731c..9cddad2be549 100644
> --- a/drivers/gpu/drm/xe/xe_drm_ras.c
> +++ b/drivers/gpu/drm/xe/xe_drm_ras.c
> @@ -68,7 +68,7 @@ static struct xe_drm_ras_counter *allocate_and_copy_counters(struct xe_device *x
>  }
> 
>  static int assign_node_params(struct xe_device *xe, struct drm_ras_node *node,
> -			      const enum drm_xe_ras_error_severity severity)
> +			      enum drm_xe_ras_error_severity severity)
>  {
>  	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
>  	struct xe_drm_ras *ras = &xe->ras;
> @@ -109,7 +109,8 @@ static int assign_node_params(struct xe_device *xe, struct drm_ras_node *node,
>  	return ret;
>  }
> 
> -static void cleanup_node_param(struct xe_drm_ras *ras, const enum drm_xe_ras_error_severity severity)
> +static void cleanup_node_param(struct xe_drm_ras *ras,
> +			       enum drm_xe_ras_error_severity severity)
>  {
>  	struct drm_ras_node *node = &ras->node[severity];
> 
> @@ -174,15 +175,13 @@ static void xe_drm_ras_unregister_nodes(struct drm_device *device, void *arg)
>  int xe_drm_ras_init(struct xe_device *xe)
>  {
>  	struct xe_drm_ras *ras = &xe->ras;
> -	struct drm_ras_node *node;
>  	int err;
> 
> -	node = drmm_kcalloc(&xe->drm, DRM_XE_RAS_ERR_SEV_MAX, sizeof(*node), GFP_KERNEL);
> -	if (!node)
> +	ras->node = drmm_kcalloc(&xe->drm, DRM_XE_RAS_ERR_SEV_MAX,
> +				 sizeof(*ras->node), GFP_KERNEL);
> +	if (!ras->node)
>  		return -ENOMEM;
> 
> -	ras->node = node;
> -
>  	err = register_nodes(xe);
>  	if (err) {
>  		drm_err(&xe->drm, "Failed to register DRM RAS nodes (%pe)\n", ERR_PTR(err));
> @@ -190,10 +189,8 @@ int xe_drm_ras_init(struct xe_device *xe)
>  	}
> 
>  	err = drmm_add_action_or_reset(&xe->drm, xe_drm_ras_unregister_nodes, xe);
> -	if (err) {
> +	if (err)
>  		drm_err(&xe->drm, "Failed to add action for Xe DRM RAS (%pe)\n", ERR_PTR(err));
> -		return err;
> -	}
> 
> -	return 0;
> +	return err;
>  }
> --
> 2.43.0


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

* Re: [PATCH 1/2] drm/xe/ras: Fix error handling in register_nodes()
  2026-04-07 22:59 ` [PATCH 1/2] drm/xe/ras: Fix error handling in register_nodes() Shuicheng Lin
  2026-04-11  4:46   ` Nguyen, Brian3
@ 2026-04-11  7:56   ` Raag Jadav
  2026-04-14  0:30     ` Lin, Shuicheng
  1 sibling, 1 reply; 21+ messages in thread
From: Raag Jadav @ 2026-04-11  7:56 UTC (permalink / raw)
  To: Shuicheng Lin; +Cc: intel-xe, Riana Tauro

On Tue, Apr 07, 2026 at 10:59:12PM +0000, Shuicheng Lin wrote:
> Fix two issues in register_nodes():
> 
> 1. When the loop fails mid-way, previously registered nodes are not
>    cleaned up. Add goto-based error unwinding that walks backwards
>    through completed iterations.

Did you check with the author if this is expected behaviour?

> 2. When allocate_and_copy_counters() fails, assign_node_params()
>    leaves ras->info[severity] as an ERR_PTR and returns. The caller
>    then passes that ERR_PTR to kfree() via cleanup_node_param(),
>    causing an invalid free. Fix by making assign_node_params()
>    self-contained on error: NULL out the stale ERR_PTR and free
>    device_name before returning.

Can this be rather fixed using a local pointer?

Raag

> Fixes: b40db12b542f ("drm/xe/xe_drm_ras: Add support for XE DRM RAS")
> Cc: Riana Tauro <riana.tauro@intel.com>
> Assisted-by: Claude:claude-opus-4.6
> Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_drm_ras.c | 31 ++++++++++++++++++++++---------
>  1 file changed, 22 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_drm_ras.c b/drivers/gpu/drm/xe/xe_drm_ras.c
> index e07dc23a155e..802e4bcb731c 100644
> --- a/drivers/gpu/drm/xe/xe_drm_ras.c
> +++ b/drivers/gpu/drm/xe/xe_drm_ras.c
> @@ -73,6 +73,7 @@ static int assign_node_params(struct xe_device *xe, struct drm_ras_node *node,
>  	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
>  	struct xe_drm_ras *ras = &xe->ras;
>  	const char *device_name;
> +	int ret;
>  
>  	device_name = kasprintf(GFP_KERNEL, "%04x:%02x:%02x.%d",
>  				pci_domain_nr(pdev->bus), pdev->bus->number,
> @@ -89,8 +90,11 @@ static int assign_node_params(struct xe_device *xe, struct drm_ras_node *node,
>  	node->priv = xe;
>  
>  	ras->info[severity] = allocate_and_copy_counters(xe);
> -	if (IS_ERR(ras->info[severity]))
> -		return PTR_ERR(ras->info[severity]);
> +	if (IS_ERR(ras->info[severity])) {
> +		ret = PTR_ERR(ras->info[severity]);
> +		ras->info[severity] = NULL;
> +		goto err_free_name;
> +	}
>  
>  	if (severity == DRM_XE_RAS_ERR_SEV_CORRECTABLE)
>  		node->query_error_counter = query_correctable_error_counter;
> @@ -98,6 +102,11 @@ static int assign_node_params(struct xe_device *xe, struct drm_ras_node *node,
>  		node->query_error_counter = query_uncorrectable_error_counter;
>  
>  	return 0;
> +
> +err_free_name:
> +	kfree(device_name);
> +	node->device_name = NULL;
> +	return ret;
>  }
>  
>  static void cleanup_node_param(struct xe_drm_ras *ras, const enum drm_xe_ras_error_severity severity)
> @@ -114,26 +123,30 @@ static void cleanup_node_param(struct xe_drm_ras *ras, const enum drm_xe_ras_err
>  static int register_nodes(struct xe_device *xe)
>  {
>  	struct xe_drm_ras *ras = &xe->ras;
> -	int i;
> +	int i, ret;
>  
>  	for_each_error_severity(i) {
>  		struct drm_ras_node *node = &ras->node[i];
> -		int ret;
>  
>  		ret = assign_node_params(xe, node, i);
> -		if (ret) {
> -			cleanup_node_param(ras, i);
> -			return ret;
> -		}
> +		if (ret)
> +			goto err_unwind;
>  
>  		ret = drm_ras_node_register(node);
>  		if (ret) {
>  			cleanup_node_param(ras, i);
> -			return ret;
> +			goto err_unwind;
>  		}
>  	}
>  
>  	return 0;
> +
> +err_unwind:
> +	while (i--) {
> +		drm_ras_node_unregister(&ras->node[i]);
> +		cleanup_node_param(ras, i);
> +	}
> +	return ret;
>  }
>  
>  static void xe_drm_ras_unregister_nodes(struct drm_device *device, void *arg)
> -- 
> 2.43.0
> 

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

* Re: [PATCH 2/2] drm/xe/ras: Clean up coding style in xe_drm_ras
  2026-04-07 22:59 ` [PATCH 2/2] drm/xe/ras: Clean up coding style in xe_drm_ras Shuicheng Lin
  2026-04-11  4:54   ` Nguyen, Brian3
@ 2026-04-11  7:58   ` Raag Jadav
  1 sibling, 0 replies; 21+ messages in thread
From: Raag Jadav @ 2026-04-11  7:58 UTC (permalink / raw)
  To: Shuicheng Lin; +Cc: intel-xe, Riana Tauro

On Tue, Apr 07, 2026 at 10:59:13PM +0000, Shuicheng Lin wrote:
> - Fix long line in cleanup_node_param() signature.
> - Drop unnecessary const on pass-by-value enum parameters.
> - Simplify xe_drm_ras_init() by removing redundant local variable
>   and redundant error path.
> 
> No functional change.

So why is this change needed?

Raag

> Cc: Riana Tauro <riana.tauro@intel.com>
> Assisted-by: Claude:claude-opus-4.6
> Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
> ---
>  drivers/gpu/drm/xe/xe_drm_ras.c | 19 ++++++++-----------
>  1 file changed, 8 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/gpu/drm/xe/xe_drm_ras.c b/drivers/gpu/drm/xe/xe_drm_ras.c
> index 802e4bcb731c..9cddad2be549 100644
> --- a/drivers/gpu/drm/xe/xe_drm_ras.c
> +++ b/drivers/gpu/drm/xe/xe_drm_ras.c
> @@ -68,7 +68,7 @@ static struct xe_drm_ras_counter *allocate_and_copy_counters(struct xe_device *x
>  }
>  
>  static int assign_node_params(struct xe_device *xe, struct drm_ras_node *node,
> -			      const enum drm_xe_ras_error_severity severity)
> +			      enum drm_xe_ras_error_severity severity)
>  {
>  	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
>  	struct xe_drm_ras *ras = &xe->ras;
> @@ -109,7 +109,8 @@ static int assign_node_params(struct xe_device *xe, struct drm_ras_node *node,
>  	return ret;
>  }
>  
> -static void cleanup_node_param(struct xe_drm_ras *ras, const enum drm_xe_ras_error_severity severity)
> +static void cleanup_node_param(struct xe_drm_ras *ras,
> +			       enum drm_xe_ras_error_severity severity)
>  {
>  	struct drm_ras_node *node = &ras->node[severity];
>  
> @@ -174,15 +175,13 @@ static void xe_drm_ras_unregister_nodes(struct drm_device *device, void *arg)
>  int xe_drm_ras_init(struct xe_device *xe)
>  {
>  	struct xe_drm_ras *ras = &xe->ras;
> -	struct drm_ras_node *node;
>  	int err;
>  
> -	node = drmm_kcalloc(&xe->drm, DRM_XE_RAS_ERR_SEV_MAX, sizeof(*node), GFP_KERNEL);
> -	if (!node)
> +	ras->node = drmm_kcalloc(&xe->drm, DRM_XE_RAS_ERR_SEV_MAX,
> +				 sizeof(*ras->node), GFP_KERNEL);
> +	if (!ras->node)
>  		return -ENOMEM;
>  
> -	ras->node = node;
> -
>  	err = register_nodes(xe);
>  	if (err) {
>  		drm_err(&xe->drm, "Failed to register DRM RAS nodes (%pe)\n", ERR_PTR(err));
> @@ -190,10 +189,8 @@ int xe_drm_ras_init(struct xe_device *xe)
>  	}
>  
>  	err = drmm_add_action_or_reset(&xe->drm, xe_drm_ras_unregister_nodes, xe);
> -	if (err) {
> +	if (err)
>  		drm_err(&xe->drm, "Failed to add action for Xe DRM RAS (%pe)\n", ERR_PTR(err));
> -		return err;
> -	}
>  
> -	return 0;
> +	return err;
>  }
> -- 
> 2.43.0
> 

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

* Re: [PATCH 1/2] drm/xe/ras: Fix error handling in register_nodes()
  2026-04-11  4:46   ` Nguyen, Brian3
@ 2026-04-13  4:39     ` Tauro, Riana
  2026-04-14  0:15       ` Lin, Shuicheng
  0 siblings, 1 reply; 21+ messages in thread
From: Tauro, Riana @ 2026-04-13  4:39 UTC (permalink / raw)
  To: Nguyen, Brian3, Lin, Shuicheng, intel-xe@lists.freedesktop.org


On 4/11/2026 10:16 AM, Nguyen, Brian3 wrote:
> On Tuesday, April 7, 2026 3:59 PM, Shuicheng Lin wrote:
>> Fix two issues in register_nodes():
>>
>> 1. When the loop fails mid-way, previously registered nodes are not
>>     cleaned up. Add goto-based error unwinding that walks backwards
>>     through completed iterations.

This was intentional.  If the previous nodes were registered 
successfully, why free those?
Also the errors are only from lack of memory where the entire gpu might 
not be accessible

>>
>> 2. When allocate_and_copy_counters() fails, assign_node_params()
>>     leaves ras->info[severity] as an ERR_PTR and returns. The caller
>>     then passes that ERR_PTR to kfree() via cleanup_node_param(),
>>     causing an invalid free. Fix by making assign_node_params()
>>     self-contained on error: NULL out the stale ERR_PTR and free
>>     device_name before returning.

allocate_and_copy_counters returns an error only when it fails 
allocation and when it is NULL. The kfree in mm/slub.c checks and 
returns when it is NULL. I don't see an issue here. Please provide 
better reasoning if you think these are still issues. Thanks Riana

>>
>> Fixes: b40db12b542f ("drm/xe/xe_drm_ras: Add support for XE DRM RAS")
>> Cc: Riana Tauro <riana.tauro@intel.com>
>> Assisted-by: Claude:claude-opus-4.6
>> Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
> Reviewed-by: Brian Nguyen <brian3.nguyen@intel.com>
>
>> ---
>>   drivers/gpu/drm/xe/xe_drm_ras.c | 31 ++++++++++++++++++++++---------
>>   1 file changed, 22 insertions(+), 9 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_drm_ras.c b/drivers/gpu/drm/xe/xe_drm_ras.c
>> index e07dc23a155e..802e4bcb731c 100644
>> --- a/drivers/gpu/drm/xe/xe_drm_ras.c
>> +++ b/drivers/gpu/drm/xe/xe_drm_ras.c
>> @@ -73,6 +73,7 @@ static int assign_node_params(struct xe_device *xe, struct drm_ras_node *node,
>>   	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
>>   	struct xe_drm_ras *ras = &xe->ras;
>>   	const char *device_name;
>> +	int ret;
>>
>>   	device_name = kasprintf(GFP_KERNEL, "%04x:%02x:%02x.%d",
>>   				pci_domain_nr(pdev->bus), pdev->bus->number,
>> @@ -89,8 +90,11 @@ static int assign_node_params(struct xe_device *xe, struct drm_ras_node *node,
>>   	node->priv = xe;
>>
>>   	ras->info[severity] = allocate_and_copy_counters(xe);
>> -	if (IS_ERR(ras->info[severity]))
>> -		return PTR_ERR(ras->info[severity]);
>> +	if (IS_ERR(ras->info[severity])) {
>> +		ret = PTR_ERR(ras->info[severity]);
>> +		ras->info[severity] = NULL;
>> +		goto err_free_name;
>> +	}
>>
>>   	if (severity == DRM_XE_RAS_ERR_SEV_CORRECTABLE)
>>   		node->query_error_counter = query_correctable_error_counter;
>> @@ -98,6 +102,11 @@ static int assign_node_params(struct xe_device *xe, struct drm_ras_node *node,
>>   		node->query_error_counter = query_uncorrectable_error_counter;
>>
>>   	return 0;
>> +
>> +err_free_name:
>> +	kfree(device_name);
>> +	node->device_name = NULL;
>> +	return ret;
>>   }
>>
>>   static void cleanup_node_param(struct xe_drm_ras *ras, const enum drm_xe_ras_error_severity severity)
>> @@ -114,26 +123,30 @@ static void cleanup_node_param(struct xe_drm_ras *ras, const enum drm_xe_ras_err
>>   static int register_nodes(struct xe_device *xe)
>>   {
>>   	struct xe_drm_ras *ras = &xe->ras;
>> -	int i;
>> +	int i, ret;
>>
>>   	for_each_error_severity(i) {
>>   		struct drm_ras_node *node = &ras->node[i];
>> -		int ret;
>>
>>   		ret = assign_node_params(xe, node, i);
>> -		if (ret) {
>> -			cleanup_node_param(ras, i);
>> -			return ret;
>> -		}
>> +		if (ret)
>> +			goto err_unwind;
>>
>>   		ret = drm_ras_node_register(node);
>>   		if (ret) {
>>   			cleanup_node_param(ras, i);
>> -			return ret;
>> +			goto err_unwind;
>>   		}
>>   	}
>>
>>   	return 0;
>> +
>> +err_unwind:
>> +	while (i--) {
>> +		drm_ras_node_unregister(&ras->node[i]);
>> +		cleanup_node_param(ras, i);
>> +	}
>> +	return ret;
>>   }
>>
>>   static void xe_drm_ras_unregister_nodes(struct drm_device *device, void *arg)
>> --
>> 2.43.0

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

* Re: [PATCH 2/2] drm/xe/ras: Clean up coding style in xe_drm_ras
  2026-04-11  4:54   ` Nguyen, Brian3
@ 2026-04-13  4:46     ` Tauro, Riana
  2026-04-14  0:27       ` Lin, Shuicheng
  0 siblings, 1 reply; 21+ messages in thread
From: Tauro, Riana @ 2026-04-13  4:46 UTC (permalink / raw)
  To: Nguyen, Brian3, Lin, Shuicheng, intel-xe@lists.freedesktop.org


On 4/11/2026 10:24 AM, Nguyen, Brian3 wrote:
> On Tuesday, April 7, 2026 3:59 PM, Shuicheng Lin wrote:
>> - Fix long line in cleanup_node_param() signature.
All checkpatch errors were fixed in the original series.  The line 
length is in-line with checkpatch.
Please provide the checkpatch error if you are seeing.
>> - Drop unnecessary const on pass-by-value enum parameters.
This can be added as part of any other functional series. A patch just 
for this is not necessary.
>> - Simplify xe_drm_ras_init() by removing redundant local variable
>>    and redundant error path.
Any reason?

Thanks
Riana
>>
>> No functional change.
>>
>> Cc: Riana Tauro <riana.tauro@intel.com>
>> Assisted-by: Claude:claude-opus-4.6
>> Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
> Reviewed-by: Brian Nguyen <brian3.nguyen@intel.com>
>
>> ---
>>   drivers/gpu/drm/xe/xe_drm_ras.c | 19 ++++++++-----------
>>   1 file changed, 8 insertions(+), 11 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_drm_ras.c b/drivers/gpu/drm/xe/xe_drm_ras.c
>> index 802e4bcb731c..9cddad2be549 100644
>> --- a/drivers/gpu/drm/xe/xe_drm_ras.c
>> +++ b/drivers/gpu/drm/xe/xe_drm_ras.c
>> @@ -68,7 +68,7 @@ static struct xe_drm_ras_counter *allocate_and_copy_counters(struct xe_device *x
>>   }
>>
>>   static int assign_node_params(struct xe_device *xe, struct drm_ras_node *node,
>> -			      const enum drm_xe_ras_error_severity severity)
>> +			      enum drm_xe_ras_error_severity severity)
>>   {
>>   	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
>>   	struct xe_drm_ras *ras = &xe->ras;
>> @@ -109,7 +109,8 @@ static int assign_node_params(struct xe_device *xe, struct drm_ras_node *node,
>>   	return ret;
>>   }
>>
>> -static void cleanup_node_param(struct xe_drm_ras *ras, const enum drm_xe_ras_error_severity severity)
>> +static void cleanup_node_param(struct xe_drm_ras *ras,
>> +			       enum drm_xe_ras_error_severity severity)
>>   {
>>   	struct drm_ras_node *node = &ras->node[severity];
>>
>> @@ -174,15 +175,13 @@ static void xe_drm_ras_unregister_nodes(struct drm_device *device, void *arg)
>>   int xe_drm_ras_init(struct xe_device *xe)
>>   {
>>   	struct xe_drm_ras *ras = &xe->ras;
>> -	struct drm_ras_node *node;
>>   	int err;
>>
>> -	node = drmm_kcalloc(&xe->drm, DRM_XE_RAS_ERR_SEV_MAX, sizeof(*node), GFP_KERNEL);
>> -	if (!node)
>> +	ras->node = drmm_kcalloc(&xe->drm, DRM_XE_RAS_ERR_SEV_MAX,
>> +				 sizeof(*ras->node), GFP_KERNEL);
>> +	if (!ras->node)
>>   		return -ENOMEM;
>>
>> -	ras->node = node;
>> -
>>   	err = register_nodes(xe);
>>   	if (err) {
>>   		drm_err(&xe->drm, "Failed to register DRM RAS nodes (%pe)\n", ERR_PTR(err));
>> @@ -190,10 +189,8 @@ int xe_drm_ras_init(struct xe_device *xe)
>>   	}
>>
>>   	err = drmm_add_action_or_reset(&xe->drm, xe_drm_ras_unregister_nodes, xe);
>> -	if (err) {
>> +	if (err)
>>   		drm_err(&xe->drm, "Failed to add action for Xe DRM RAS (%pe)\n", ERR_PTR(err));
>> -		return err;
>> -	}
>>
>> -	return 0;
>> +	return err;
>>   }
>> --
>> 2.43.0

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

* RE: [PATCH 1/2] drm/xe/ras: Fix error handling in register_nodes()
  2026-04-13  4:39     ` Tauro, Riana
@ 2026-04-14  0:15       ` Lin, Shuicheng
  2026-04-14  4:27         ` Tauro, Riana
  0 siblings, 1 reply; 21+ messages in thread
From: Lin, Shuicheng @ 2026-04-14  0:15 UTC (permalink / raw)
  To: Tauro, Riana, Nguyen, Brian3, intel-xe@lists.freedesktop.org

On Sun, Apr 12, 2026 9:40 PM Riana Tauro wrote:
> On 4/11/2026 10:16 AM, Nguyen, Brian3 wrote:
> > On Tuesday, April 7, 2026 3:59 PM, Shuicheng Lin wrote:
> >> Fix two issues in register_nodes():
> >>
> >> 1. When the loop fails mid-way, previously registered nodes are not
> >>     cleaned up. Add goto-based error unwinding that walks backwards
> >>     through completed iterations.
> 
> This was intentional.  If the previous nodes were registered successfully, why
> free those?
> Also the errors are only from lack of memory where the entire gpu might not
> be accessible

If it is intentional, then I am OK with it.

> 
> >>
> >> 2. When allocate_and_copy_counters() fails, assign_node_params()
> >>     leaves ras->info[severity] as an ERR_PTR and returns. The caller
> >>     then passes that ERR_PTR to kfree() via cleanup_node_param(),
> >>     causing an invalid free. Fix by making assign_node_params()
> >>     self-contained on error: NULL out the stale ERR_PTR and free
> >>     device_name before returning.
> 
> allocate_and_copy_counters returns an error only when it fails allocation and
> when it is NULL. The kfree in mm/slub.c checks and returns when it is NULL. I
> don't see an issue here. Please provide better reasoning if you think these are
> still issues. Thanks Riana

For error case, 
ras->info[severity] = ERR_PTR(-ENOMEM);
and it will be freed by: kfree(ras->info[severity]);
so it would be kfree(ERR_PTR(-ENOMEM)), which is not right.
Thanks.

Shuicheng

> 
> >>
> >> Fixes: b40db12b542f ("drm/xe/xe_drm_ras: Add support for XE DRM
> RAS")
> >> Cc: Riana Tauro <riana.tauro@intel.com>
> >> Assisted-by: Claude:claude-opus-4.6
> >> Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
> > Reviewed-by: Brian Nguyen <brian3.nguyen@intel.com>
> >
> >> ---
> >>   drivers/gpu/drm/xe/xe_drm_ras.c | 31 ++++++++++++++++++++++------
> ---
> >>   1 file changed, 22 insertions(+), 9 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/xe/xe_drm_ras.c
> b/drivers/gpu/drm/xe/xe_drm_ras.c
> >> index e07dc23a155e..802e4bcb731c 100644
> >> --- a/drivers/gpu/drm/xe/xe_drm_ras.c
> >> +++ b/drivers/gpu/drm/xe/xe_drm_ras.c
> >> @@ -73,6 +73,7 @@ static int assign_node_params(struct xe_device *xe,
> struct drm_ras_node *node,
> >>   	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
> >>   	struct xe_drm_ras *ras = &xe->ras;
> >>   	const char *device_name;
> >> +	int ret;
> >>
> >>   	device_name = kasprintf(GFP_KERNEL, "%04x:%02x:%02x.%d",
> >>   				pci_domain_nr(pdev->bus), pdev->bus-
> >number,
> >> @@ -89,8 +90,11 @@ static int assign_node_params(struct xe_device *xe,
> struct drm_ras_node *node,
> >>   	node->priv = xe;
> >>
> >>   	ras->info[severity] = allocate_and_copy_counters(xe);
> >> -	if (IS_ERR(ras->info[severity]))
> >> -		return PTR_ERR(ras->info[severity]);
> >> +	if (IS_ERR(ras->info[severity])) {
> >> +		ret = PTR_ERR(ras->info[severity]);
> >> +		ras->info[severity] = NULL;
> >> +		goto err_free_name;
> >> +	}
> >>
> >>   	if (severity == DRM_XE_RAS_ERR_SEV_CORRECTABLE)
> >>   		node->query_error_counter =
> query_correctable_error_counter;
> >> @@ -98,6 +102,11 @@ static int assign_node_params(struct xe_device
> *xe, struct drm_ras_node *node,
> >>   		node->query_error_counter =
> query_uncorrectable_error_counter;
> >>
> >>   	return 0;
> >> +
> >> +err_free_name:
> >> +	kfree(device_name);
> >> +	node->device_name = NULL;
> >> +	return ret;
> >>   }
> >>
> >>   static void cleanup_node_param(struct xe_drm_ras *ras, const enum
> drm_xe_ras_error_severity severity)
> >> @@ -114,26 +123,30 @@ static void cleanup_node_param(struct
> xe_drm_ras *ras, const enum drm_xe_ras_err
> >>   static int register_nodes(struct xe_device *xe)
> >>   {
> >>   	struct xe_drm_ras *ras = &xe->ras;
> >> -	int i;
> >> +	int i, ret;
> >>
> >>   	for_each_error_severity(i) {
> >>   		struct drm_ras_node *node = &ras->node[i];
> >> -		int ret;
> >>
> >>   		ret = assign_node_params(xe, node, i);
> >> -		if (ret) {
> >> -			cleanup_node_param(ras, i);
> >> -			return ret;
> >> -		}
> >> +		if (ret)
> >> +			goto err_unwind;
> >>
> >>   		ret = drm_ras_node_register(node);
> >>   		if (ret) {
> >>   			cleanup_node_param(ras, i);
> >> -			return ret;
> >> +			goto err_unwind;
> >>   		}
> >>   	}
> >>
> >>   	return 0;
> >> +
> >> +err_unwind:
> >> +	while (i--) {
> >> +		drm_ras_node_unregister(&ras->node[i]);
> >> +		cleanup_node_param(ras, i);
> >> +	}
> >> +	return ret;
> >>   }
> >>
> >>   static void xe_drm_ras_unregister_nodes(struct drm_device *device, void
> *arg)
> >> --
> >> 2.43.0

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

* RE: [PATCH 2/2] drm/xe/ras: Clean up coding style in xe_drm_ras
  2026-04-13  4:46     ` Tauro, Riana
@ 2026-04-14  0:27       ` Lin, Shuicheng
  2026-04-14  4:33         ` Tauro, Riana
  0 siblings, 1 reply; 21+ messages in thread
From: Lin, Shuicheng @ 2026-04-14  0:27 UTC (permalink / raw)
  To: Tauro, Riana, Nguyen, Brian3, intel-xe@lists.freedesktop.org

On Sun, Apr 12, 2026 9:46 PM Riana Tauro wrote:
> On 4/11/2026 10:24 AM, Nguyen, Brian3 wrote:
> > On Tuesday, April 7, 2026 3:59 PM, Shuicheng Lin wrote:
> >> - Fix long line in cleanup_node_param() signature.
> All checkpatch errors were fixed in the original series.  The line length is in-line
> with checkpatch.
> Please provide the checkpatch error if you are seeing.

Here it is:
$ ./scripts/checkpatch.pl --strict drivers/gpu/drm/xe/xe_drm_ras.c 
CHECK: line length of 101 exceeds 100 columns
#103: FILE: drivers/gpu/drm/xe/xe_drm_ras.c:103:
+static void cleanup_node_param(struct xe_drm_ras *ras, const enum drm_xe_ras_error_severity severity)

> >> - Drop unnecessary const on pass-by-value enum parameters.
> This can be added as part of any other functional series. A patch just for this is
> not necessary.

I am OK with it.

> >> - Simplify xe_drm_ras_init() by removing redundant local variable
> >>    and redundant error path.
> Any reason?

This is just code refine. If you don't agree with it, I won't insist on it.
Since you will have new series, I will drop both patches, and feel free to integrate any change that you think worth.
Thanks. 

Shuicheng

> 
> Thanks
> Riana
> >>
> >> No functional change.
> >>
> >> Cc: Riana Tauro <riana.tauro@intel.com>
> >> Assisted-by: Claude:claude-opus-4.6
> >> Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
> > Reviewed-by: Brian Nguyen <brian3.nguyen@intel.com>
> >
> >> ---
> >>   drivers/gpu/drm/xe/xe_drm_ras.c | 19 ++++++++-----------
> >>   1 file changed, 8 insertions(+), 11 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/xe/xe_drm_ras.c
> >> b/drivers/gpu/drm/xe/xe_drm_ras.c index 802e4bcb731c..9cddad2be549
> >> 100644
> >> --- a/drivers/gpu/drm/xe/xe_drm_ras.c
> >> +++ b/drivers/gpu/drm/xe/xe_drm_ras.c
> >> @@ -68,7 +68,7 @@ static struct xe_drm_ras_counter
> *allocate_and_copy_counters(struct xe_device *x
> >>   }
> >>
> >>   static int assign_node_params(struct xe_device *xe, struct drm_ras_node
> *node,
> >> -			      const enum drm_xe_ras_error_severity severity)
> >> +			      enum drm_xe_ras_error_severity severity)
> >>   {
> >>   	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
> >>   	struct xe_drm_ras *ras = &xe->ras; @@ -109,7 +109,8 @@ static int
> >> assign_node_params(struct xe_device *xe, struct drm_ras_node *node,
> >>   	return ret;
> >>   }
> >>
> >> -static void cleanup_node_param(struct xe_drm_ras *ras, const enum
> >> drm_xe_ras_error_severity severity)
> >> +static void cleanup_node_param(struct xe_drm_ras *ras,
> >> +			       enum drm_xe_ras_error_severity severity)
> >>   {
> >>   	struct drm_ras_node *node = &ras->node[severity];
> >>
> >> @@ -174,15 +175,13 @@ static void xe_drm_ras_unregister_nodes(struct
> drm_device *device, void *arg)
> >>   int xe_drm_ras_init(struct xe_device *xe)
> >>   {
> >>   	struct xe_drm_ras *ras = &xe->ras;
> >> -	struct drm_ras_node *node;
> >>   	int err;
> >>
> >> -	node = drmm_kcalloc(&xe->drm, DRM_XE_RAS_ERR_SEV_MAX,
> sizeof(*node), GFP_KERNEL);
> >> -	if (!node)
> >> +	ras->node = drmm_kcalloc(&xe->drm, DRM_XE_RAS_ERR_SEV_MAX,
> >> +				 sizeof(*ras->node), GFP_KERNEL);
> >> +	if (!ras->node)
> >>   		return -ENOMEM;
> >>
> >> -	ras->node = node;
> >> -
> >>   	err = register_nodes(xe);
> >>   	if (err) {
> >>   		drm_err(&xe->drm, "Failed to register DRM RAS nodes
> (%pe)\n",
> >> ERR_PTR(err)); @@ -190,10 +189,8 @@ int xe_drm_ras_init(struct
> xe_device *xe)
> >>   	}
> >>
> >>   	err = drmm_add_action_or_reset(&xe->drm,
> xe_drm_ras_unregister_nodes, xe);
> >> -	if (err) {
> >> +	if (err)
> >>   		drm_err(&xe->drm, "Failed to add action for Xe DRM RAS
> (%pe)\n", ERR_PTR(err));
> >> -		return err;
> >> -	}
> >>
> >> -	return 0;
> >> +	return err;
> >>   }
> >> --
> >> 2.43.0

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

* RE: [PATCH 1/2] drm/xe/ras: Fix error handling in register_nodes()
  2026-04-11  7:56   ` Raag Jadav
@ 2026-04-14  0:30     ` Lin, Shuicheng
  2026-04-14  4:30       ` Tauro, Riana
  0 siblings, 1 reply; 21+ messages in thread
From: Lin, Shuicheng @ 2026-04-14  0:30 UTC (permalink / raw)
  To: Jadav, Raag; +Cc: intel-xe@lists.freedesktop.org, Tauro,  Riana

On Sat, Apr 11, 2026 12:56 AM Raag Jadav wrote:
> On Tue, Apr 07, 2026 at 10:59:12PM +0000, Shuicheng Lin wrote:
> > Fix two issues in register_nodes():
> >
> > 1. When the loop fails mid-way, previously registered nodes are not
> >    cleaned up. Add goto-based error unwinding that walks backwards
> >    through completed iterations.
> 
> Did you check with the author if this is expected behaviour?

Author is in the Cc list.

> 
> > 2. When allocate_and_copy_counters() fails, assign_node_params()
> >    leaves ras->info[severity] as an ERR_PTR and returns. The caller
> >    then passes that ERR_PTR to kfree() via cleanup_node_param(),
> >    causing an invalid free. Fix by making assign_node_params()
> >    self-contained on error: NULL out the stale ERR_PTR and free
> >    device_name before returning.
> 
> Can this be rather fixed using a local pointer?

Yes, a local pointer could make the code simpler.
As author will have new series, I would leave author to refine it.
Thanks.

Shuicheng

> 
> Raag
> 
> > Fixes: b40db12b542f ("drm/xe/xe_drm_ras: Add support for XE DRM RAS")
> > Cc: Riana Tauro <riana.tauro@intel.com>
> > Assisted-by: Claude:claude-opus-4.6
> > Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
> > ---
> >  drivers/gpu/drm/xe/xe_drm_ras.c | 31 ++++++++++++++++++++++--------
> -
> >  1 file changed, 22 insertions(+), 9 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/xe/xe_drm_ras.c
> > b/drivers/gpu/drm/xe/xe_drm_ras.c index e07dc23a155e..802e4bcb731c
> > 100644
> > --- a/drivers/gpu/drm/xe/xe_drm_ras.c
> > +++ b/drivers/gpu/drm/xe/xe_drm_ras.c
> > @@ -73,6 +73,7 @@ static int assign_node_params(struct xe_device *xe,
> struct drm_ras_node *node,
> >  	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
> >  	struct xe_drm_ras *ras = &xe->ras;
> >  	const char *device_name;
> > +	int ret;
> >
> >  	device_name = kasprintf(GFP_KERNEL, "%04x:%02x:%02x.%d",
> >  				pci_domain_nr(pdev->bus), pdev->bus-
> >number, @@ -89,8 +90,11 @@
> > static int assign_node_params(struct xe_device *xe, struct drm_ras_node
> *node,
> >  	node->priv = xe;
> >
> >  	ras->info[severity] = allocate_and_copy_counters(xe);
> > -	if (IS_ERR(ras->info[severity]))
> > -		return PTR_ERR(ras->info[severity]);
> > +	if (IS_ERR(ras->info[severity])) {
> > +		ret = PTR_ERR(ras->info[severity]);
> > +		ras->info[severity] = NULL;
> > +		goto err_free_name;
> > +	}
> >
> >  	if (severity == DRM_XE_RAS_ERR_SEV_CORRECTABLE)
> >  		node->query_error_counter =
> query_correctable_error_counter; @@
> > -98,6 +102,11 @@ static int assign_node_params(struct xe_device *xe,
> struct drm_ras_node *node,
> >  		node->query_error_counter =
> query_uncorrectable_error_counter;
> >
> >  	return 0;
> > +
> > +err_free_name:
> > +	kfree(device_name);
> > +	node->device_name = NULL;
> > +	return ret;
> >  }
> >
> >  static void cleanup_node_param(struct xe_drm_ras *ras, const enum
> > drm_xe_ras_error_severity severity) @@ -114,26 +123,30 @@ static void
> > cleanup_node_param(struct xe_drm_ras *ras, const enum drm_xe_ras_err
> > static int register_nodes(struct xe_device *xe)  {
> >  	struct xe_drm_ras *ras = &xe->ras;
> > -	int i;
> > +	int i, ret;
> >
> >  	for_each_error_severity(i) {
> >  		struct drm_ras_node *node = &ras->node[i];
> > -		int ret;
> >
> >  		ret = assign_node_params(xe, node, i);
> > -		if (ret) {
> > -			cleanup_node_param(ras, i);
> > -			return ret;
> > -		}
> > +		if (ret)
> > +			goto err_unwind;
> >
> >  		ret = drm_ras_node_register(node);
> >  		if (ret) {
> >  			cleanup_node_param(ras, i);
> > -			return ret;
> > +			goto err_unwind;
> >  		}
> >  	}
> >
> >  	return 0;
> > +
> > +err_unwind:
> > +	while (i--) {
> > +		drm_ras_node_unregister(&ras->node[i]);
> > +		cleanup_node_param(ras, i);
> > +	}
> > +	return ret;
> >  }
> >
> >  static void xe_drm_ras_unregister_nodes(struct drm_device *device,
> > void *arg)
> > --
> > 2.43.0
> >

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

* Re: [PATCH 1/2] drm/xe/ras: Fix error handling in register_nodes()
  2026-04-14  0:15       ` Lin, Shuicheng
@ 2026-04-14  4:27         ` Tauro, Riana
  0 siblings, 0 replies; 21+ messages in thread
From: Tauro, Riana @ 2026-04-14  4:27 UTC (permalink / raw)
  To: Lin, Shuicheng, Nguyen, Brian3, intel-xe@lists.freedesktop.org


On 4/14/2026 5:45 AM, Lin, Shuicheng wrote:
> On Sun, Apr 12, 2026 9:40 PM Riana Tauro wrote:
>> On 4/11/2026 10:16 AM, Nguyen, Brian3 wrote:
>>> On Tuesday, April 7, 2026 3:59 PM, Shuicheng Lin wrote:
>>>> Fix two issues in register_nodes():
>>>>
>>>> 1. When the loop fails mid-way, previously registered nodes are not
>>>>      cleaned up. Add goto-based error unwinding that walks backwards
>>>>      through completed iterations.
>> This was intentional.  If the previous nodes were registered successfully, why
>> free those?
>> Also the errors are only from lack of memory where the entire gpu might not
>> be accessible
> If it is intentional, then I am OK with it.
>
>>>> 2. When allocate_and_copy_counters() fails, assign_node_params()
>>>>      leaves ras->info[severity] as an ERR_PTR and returns. The caller
>>>>      then passes that ERR_PTR to kfree() via cleanup_node_param(),
>>>>      causing an invalid free. Fix by making assign_node_params()
>>>>      self-contained on error: NULL out the stale ERR_PTR and free
>>>>      device_name before returning.
>> allocate_and_copy_counters returns an error only when it fails allocation and
>> when it is NULL. The kfree in mm/slub.c checks and returns when it is NULL. I
>> don't see an issue here. Please provide better reasoning if you think these are
>> still issues. Thanks Riana
> For error case,
> ras->info[severity] = ERR_PTR(-ENOMEM);
> and it will be freed by: kfree(ras->info[severity]);
> so it would be kfree(ERR_PTR(-ENOMEM)), which is not right.

Oh okay. Missed this. You can add this change and drop the first.

Thanks
Riana

> Thanks.
>
> Shuicheng
>
>>>> Fixes: b40db12b542f ("drm/xe/xe_drm_ras: Add support for XE DRM
>> RAS")
>>>> Cc: Riana Tauro <riana.tauro@intel.com>
>>>> Assisted-by: Claude:claude-opus-4.6
>>>> Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
>>> Reviewed-by: Brian Nguyen <brian3.nguyen@intel.com>
>>>
>>>> ---
>>>>    drivers/gpu/drm/xe/xe_drm_ras.c | 31 ++++++++++++++++++++++------
>> ---
>>>>    1 file changed, 22 insertions(+), 9 deletions(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/xe/xe_drm_ras.c
>> b/drivers/gpu/drm/xe/xe_drm_ras.c
>>>> index e07dc23a155e..802e4bcb731c 100644
>>>> --- a/drivers/gpu/drm/xe/xe_drm_ras.c
>>>> +++ b/drivers/gpu/drm/xe/xe_drm_ras.c
>>>> @@ -73,6 +73,7 @@ static int assign_node_params(struct xe_device *xe,
>> struct drm_ras_node *node,
>>>>    	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
>>>>    	struct xe_drm_ras *ras = &xe->ras;
>>>>    	const char *device_name;
>>>> +	int ret;
>>>>
>>>>    	device_name = kasprintf(GFP_KERNEL, "%04x:%02x:%02x.%d",
>>>>    				pci_domain_nr(pdev->bus), pdev->bus-
>>> number,
>>>> @@ -89,8 +90,11 @@ static int assign_node_params(struct xe_device *xe,
>> struct drm_ras_node *node,
>>>>    	node->priv = xe;
>>>>
>>>>    	ras->info[severity] = allocate_and_copy_counters(xe);
>>>> -	if (IS_ERR(ras->info[severity]))
>>>> -		return PTR_ERR(ras->info[severity]);
>>>> +	if (IS_ERR(ras->info[severity])) {
>>>> +		ret = PTR_ERR(ras->info[severity]);
>>>> +		ras->info[severity] = NULL;
>>>> +		goto err_free_name;
>>>> +	}
>>>>
>>>>    	if (severity == DRM_XE_RAS_ERR_SEV_CORRECTABLE)
>>>>    		node->query_error_counter =
>> query_correctable_error_counter;
>>>> @@ -98,6 +102,11 @@ static int assign_node_params(struct xe_device
>> *xe, struct drm_ras_node *node,
>>>>    		node->query_error_counter =
>> query_uncorrectable_error_counter;
>>>>    	return 0;
>>>> +
>>>> +err_free_name:
>>>> +	kfree(device_name);
>>>> +	node->device_name = NULL;
>>>> +	return ret;
>>>>    }
>>>>
>>>>    static void cleanup_node_param(struct xe_drm_ras *ras, const enum
>> drm_xe_ras_error_severity severity)
>>>> @@ -114,26 +123,30 @@ static void cleanup_node_param(struct
>> xe_drm_ras *ras, const enum drm_xe_ras_err
>>>>    static int register_nodes(struct xe_device *xe)
>>>>    {
>>>>    	struct xe_drm_ras *ras = &xe->ras;
>>>> -	int i;
>>>> +	int i, ret;
>>>>
>>>>    	for_each_error_severity(i) {
>>>>    		struct drm_ras_node *node = &ras->node[i];
>>>> -		int ret;
>>>>
>>>>    		ret = assign_node_params(xe, node, i);
>>>> -		if (ret) {
>>>> -			cleanup_node_param(ras, i);
>>>> -			return ret;
>>>> -		}
>>>> +		if (ret)
>>>> +			goto err_unwind;
>>>>
>>>>    		ret = drm_ras_node_register(node);
>>>>    		if (ret) {
>>>>    			cleanup_node_param(ras, i);
>>>> -			return ret;
>>>> +			goto err_unwind;
>>>>    		}
>>>>    	}
>>>>
>>>>    	return 0;
>>>> +
>>>> +err_unwind:
>>>> +	while (i--) {
>>>> +		drm_ras_node_unregister(&ras->node[i]);
>>>> +		cleanup_node_param(ras, i);
>>>> +	}
>>>> +	return ret;
>>>>    }
>>>>
>>>>    static void xe_drm_ras_unregister_nodes(struct drm_device *device, void
>> *arg)
>>>> --
>>>> 2.43.0

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

* Re: [PATCH 1/2] drm/xe/ras: Fix error handling in register_nodes()
  2026-04-14  0:30     ` Lin, Shuicheng
@ 2026-04-14  4:30       ` Tauro, Riana
  0 siblings, 0 replies; 21+ messages in thread
From: Tauro, Riana @ 2026-04-14  4:30 UTC (permalink / raw)
  To: Lin, Shuicheng, Jadav, Raag; +Cc: intel-xe@lists.freedesktop.org


On 4/14/2026 6:00 AM, Lin, Shuicheng wrote:
> On Sat, Apr 11, 2026 12:56 AM Raag Jadav wrote:
>> On Tue, Apr 07, 2026 at 10:59:12PM +0000, Shuicheng Lin wrote:
>>> Fix two issues in register_nodes():
>>>
>>> 1. When the loop fails mid-way, previously registered nodes are not
>>>     cleaned up. Add goto-based error unwinding that walks backwards
>>>     through completed iterations.
>> Did you check with the author if this is expected behaviour?
> Author is in the Cc list.
>
>>> 2. When allocate_and_copy_counters() fails, assign_node_params()
>>>     leaves ras->info[severity] as an ERR_PTR and returns. The caller
>>>     then passes that ERR_PTR to kfree() via cleanup_node_param(),
>>>     causing an invalid free. Fix by making assign_node_params()
>>>     self-contained on error: NULL out the stale ERR_PTR and free
>>>     device_name before returning.
>> Can this be rather fixed using a local pointer?
> Yes, a local pointer could make the code simpler.
> As author will have new series, I would leave author to refine it.
> Thanks.
>

I did not mean that. I meant all the small cosmetic changes (Patch 2 in 
the series) can be part of any
bigger change.

Thanks
Riana

>
> Shuicheng
>
>> Raag
>>
>>> Fixes: b40db12b542f ("drm/xe/xe_drm_ras: Add support for XE DRM RAS")
>>> Cc: Riana Tauro <riana.tauro@intel.com>
>>> Assisted-by: Claude:claude-opus-4.6
>>> Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
>>> ---
>>>   drivers/gpu/drm/xe/xe_drm_ras.c | 31 ++++++++++++++++++++++--------
>> -
>>>   1 file changed, 22 insertions(+), 9 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/xe/xe_drm_ras.c
>>> b/drivers/gpu/drm/xe/xe_drm_ras.c index e07dc23a155e..802e4bcb731c
>>> 100644
>>> --- a/drivers/gpu/drm/xe/xe_drm_ras.c
>>> +++ b/drivers/gpu/drm/xe/xe_drm_ras.c
>>> @@ -73,6 +73,7 @@ static int assign_node_params(struct xe_device *xe,
>> struct drm_ras_node *node,
>>>   	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
>>>   	struct xe_drm_ras *ras = &xe->ras;
>>>   	const char *device_name;
>>> +	int ret;
>>>
>>>   	device_name = kasprintf(GFP_KERNEL, "%04x:%02x:%02x.%d",
>>>   				pci_domain_nr(pdev->bus), pdev->bus-
>>> number, @@ -89,8 +90,11 @@
>>> static int assign_node_params(struct xe_device *xe, struct drm_ras_node
>> *node,
>>>   	node->priv = xe;
>>>
>>>   	ras->info[severity] = allocate_and_copy_counters(xe);
>>> -	if (IS_ERR(ras->info[severity]))
>>> -		return PTR_ERR(ras->info[severity]);
>>> +	if (IS_ERR(ras->info[severity])) {
>>> +		ret = PTR_ERR(ras->info[severity]);
>>> +		ras->info[severity] = NULL;
>>> +		goto err_free_name;
>>> +	}
>>>
>>>   	if (severity == DRM_XE_RAS_ERR_SEV_CORRECTABLE)
>>>   		node->query_error_counter =
>> query_correctable_error_counter; @@
>>> -98,6 +102,11 @@ static int assign_node_params(struct xe_device *xe,
>> struct drm_ras_node *node,
>>>   		node->query_error_counter =
>> query_uncorrectable_error_counter;
>>>   	return 0;
>>> +
>>> +err_free_name:
>>> +	kfree(device_name);
>>> +	node->device_name = NULL;
>>> +	return ret;
>>>   }
>>>
>>>   static void cleanup_node_param(struct xe_drm_ras *ras, const enum
>>> drm_xe_ras_error_severity severity) @@ -114,26 +123,30 @@ static void
>>> cleanup_node_param(struct xe_drm_ras *ras, const enum drm_xe_ras_err
>>> static int register_nodes(struct xe_device *xe)  {
>>>   	struct xe_drm_ras *ras = &xe->ras;
>>> -	int i;
>>> +	int i, ret;
>>>
>>>   	for_each_error_severity(i) {
>>>   		struct drm_ras_node *node = &ras->node[i];
>>> -		int ret;
>>>
>>>   		ret = assign_node_params(xe, node, i);
>>> -		if (ret) {
>>> -			cleanup_node_param(ras, i);
>>> -			return ret;
>>> -		}
>>> +		if (ret)
>>> +			goto err_unwind;
>>>
>>>   		ret = drm_ras_node_register(node);
>>>   		if (ret) {
>>>   			cleanup_node_param(ras, i);
>>> -			return ret;
>>> +			goto err_unwind;
>>>   		}
>>>   	}
>>>
>>>   	return 0;
>>> +
>>> +err_unwind:
>>> +	while (i--) {
>>> +		drm_ras_node_unregister(&ras->node[i]);
>>> +		cleanup_node_param(ras, i);
>>> +	}
>>> +	return ret;
>>>   }
>>>
>>>   static void xe_drm_ras_unregister_nodes(struct drm_device *device,
>>> void *arg)
>>> --
>>> 2.43.0
>>>

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

* Re: [PATCH 2/2] drm/xe/ras: Clean up coding style in xe_drm_ras
  2026-04-14  0:27       ` Lin, Shuicheng
@ 2026-04-14  4:33         ` Tauro, Riana
  0 siblings, 0 replies; 21+ messages in thread
From: Tauro, Riana @ 2026-04-14  4:33 UTC (permalink / raw)
  To: Lin, Shuicheng, Nguyen, Brian3, intel-xe@lists.freedesktop.org


On 4/14/2026 5:57 AM, Lin, Shuicheng wrote:
> On Sun, Apr 12, 2026 9:46 PM Riana Tauro wrote:
>> On 4/11/2026 10:24 AM, Nguyen, Brian3 wrote:
>>> On Tuesday, April 7, 2026 3:59 PM, Shuicheng Lin wrote:
>>>> - Fix long line in cleanup_node_param() signature.
>> All checkpatch errors were fixed in the original series.  The line length is in-line
>> with checkpatch.
>> Please provide the checkpatch error if you are seeing.
> Here it is:
> $ ./scripts/checkpatch.pl --strict drivers/gpu/drm/xe/xe_drm_ras.c
> CHECK: line length of 101 exceeds 100 columns
> #103: FILE: drivers/gpu/drm/xe/xe_drm_ras.c:103:
> +static void cleanup_node_param(struct xe_drm_ras *ras, const enum drm_xe_ras_error_severity severity)
If you are re-working the first patch add it as part of the same.

Thanks
Riana

>
>>>> - Drop unnecessary const on pass-by-value enum parameters.
>> This can be added as part of any other functional series. A patch just for this is
>> not necessary.
> I am OK with it.
>
>>>> - Simplify xe_drm_ras_init() by removing redundant local variable
>>>>     and redundant error path.
>> Any reason?
> This is just code refine. If you don't agree with it, I won't insist on it.
> Since you will have new series, I will drop both patches, and feel free to integrate any change that you think worth.
> Thanks.
>
> Shuicheng
>
>> Thanks
>> Riana
>>>> No functional change.
>>>>
>>>> Cc: Riana Tauro <riana.tauro@intel.com>
>>>> Assisted-by: Claude:claude-opus-4.6
>>>> Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
>>> Reviewed-by: Brian Nguyen <brian3.nguyen@intel.com>
>>>
>>>> ---
>>>>    drivers/gpu/drm/xe/xe_drm_ras.c | 19 ++++++++-----------
>>>>    1 file changed, 8 insertions(+), 11 deletions(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/xe/xe_drm_ras.c
>>>> b/drivers/gpu/drm/xe/xe_drm_ras.c index 802e4bcb731c..9cddad2be549
>>>> 100644
>>>> --- a/drivers/gpu/drm/xe/xe_drm_ras.c
>>>> +++ b/drivers/gpu/drm/xe/xe_drm_ras.c
>>>> @@ -68,7 +68,7 @@ static struct xe_drm_ras_counter
>> *allocate_and_copy_counters(struct xe_device *x
>>>>    }
>>>>
>>>>    static int assign_node_params(struct xe_device *xe, struct drm_ras_node
>> *node,
>>>> -			      const enum drm_xe_ras_error_severity severity)
>>>> +			      enum drm_xe_ras_error_severity severity)
>>>>    {
>>>>    	struct pci_dev *pdev = to_pci_dev(xe->drm.dev);
>>>>    	struct xe_drm_ras *ras = &xe->ras; @@ -109,7 +109,8 @@ static int
>>>> assign_node_params(struct xe_device *xe, struct drm_ras_node *node,
>>>>    	return ret;
>>>>    }
>>>>
>>>> -static void cleanup_node_param(struct xe_drm_ras *ras, const enum
>>>> drm_xe_ras_error_severity severity)
>>>> +static void cleanup_node_param(struct xe_drm_ras *ras,
>>>> +			       enum drm_xe_ras_error_severity severity)
>>>>    {
>>>>    	struct drm_ras_node *node = &ras->node[severity];
>>>>
>>>> @@ -174,15 +175,13 @@ static void xe_drm_ras_unregister_nodes(struct
>> drm_device *device, void *arg)
>>>>    int xe_drm_ras_init(struct xe_device *xe)
>>>>    {
>>>>    	struct xe_drm_ras *ras = &xe->ras;
>>>> -	struct drm_ras_node *node;
>>>>    	int err;
>>>>
>>>> -	node = drmm_kcalloc(&xe->drm, DRM_XE_RAS_ERR_SEV_MAX,
>> sizeof(*node), GFP_KERNEL);
>>>> -	if (!node)
>>>> +	ras->node = drmm_kcalloc(&xe->drm, DRM_XE_RAS_ERR_SEV_MAX,
>>>> +				 sizeof(*ras->node), GFP_KERNEL);
>>>> +	if (!ras->node)
>>>>    		return -ENOMEM;
>>>>
>>>> -	ras->node = node;
>>>> -
>>>>    	err = register_nodes(xe);
>>>>    	if (err) {
>>>>    		drm_err(&xe->drm, "Failed to register DRM RAS nodes
>> (%pe)\n",
>>>> ERR_PTR(err)); @@ -190,10 +189,8 @@ int xe_drm_ras_init(struct
>> xe_device *xe)
>>>>    	}
>>>>
>>>>    	err = drmm_add_action_or_reset(&xe->drm,
>> xe_drm_ras_unregister_nodes, xe);
>>>> -	if (err) {
>>>> +	if (err)
>>>>    		drm_err(&xe->drm, "Failed to add action for Xe DRM RAS
>> (%pe)\n", ERR_PTR(err));
>>>> -		return err;
>>>> -	}
>>>>
>>>> -	return 0;
>>>> +	return err;
>>>>    }
>>>> --
>>>> 2.43.0

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

end of thread, other threads:[~2026-04-14  4:33 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-07 22:59 [PATCH 0/2] drm/xe/ras: Fix and clean up xe_drm_ras Shuicheng Lin
2026-04-07 22:59 ` [PATCH 1/2] drm/xe/ras: Fix error handling in register_nodes() Shuicheng Lin
2026-04-11  4:46   ` Nguyen, Brian3
2026-04-13  4:39     ` Tauro, Riana
2026-04-14  0:15       ` Lin, Shuicheng
2026-04-14  4:27         ` Tauro, Riana
2026-04-11  7:56   ` Raag Jadav
2026-04-14  0:30     ` Lin, Shuicheng
2026-04-14  4:30       ` Tauro, Riana
2026-04-07 22:59 ` [PATCH 2/2] drm/xe/ras: Clean up coding style in xe_drm_ras Shuicheng Lin
2026-04-11  4:54   ` Nguyen, Brian3
2026-04-13  4:46     ` Tauro, Riana
2026-04-14  0:27       ` Lin, Shuicheng
2026-04-14  4:33         ` Tauro, Riana
2026-04-11  7:58   ` Raag Jadav
2026-04-07 23:09 ` ✗ CI.checkpatch: warning for drm/xe/ras: Fix and clean up xe_drm_ras Patchwork
2026-04-07 23:10 ` ✗ CI.KUnit: failure " Patchwork
2026-04-10  3:55 ` ✗ CI.checkpatch: warning for drm/xe/ras: Fix and clean up xe_drm_ras (rev2) Patchwork
2026-04-10  3:56 ` ✓ CI.KUnit: success " Patchwork
2026-04-10  4:32 ` ✓ Xe.CI.BAT: " Patchwork
2026-04-10 10:41 ` ✗ Xe.CI.FULL: 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.