Replace KUNIT_EXPECT_EQ with KUNIT_ASSERT_EQ in ttm_bo_validate test cases where subsequent ttm_bo_fini would cause a kref underflow if the preceding ttm_bo_init_reserved (or ttm_bo_validate) failed. When those functions fail they already release their internal references, leaving the refcount at 0. Continuing to ttm_bo_fini without aborting performs an extra kref_put.
Cc: [email protected] Fixes: 8bd1ff5ddc7b ("drm/ttm/tests: Test simple BO creation and validation") Signed-off-by: WenTao Liang <[email protected]> --- .../gpu/drm/ttm/tests/ttm_bo_validate_test.c | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/drm/ttm/tests/ttm_bo_validate_test.c b/drivers/gpu/drm/ttm/tests/ttm_bo_validate_test.c index 2db221f6fc3a..7c4179f6349c 100644 --- a/drivers/gpu/drm/ttm/tests/ttm_bo_validate_test.c +++ b/drivers/gpu/drm/ttm/tests/ttm_bo_validate_test.c @@ -217,7 +217,7 @@ static void ttm_bo_init_reserved_resv(struct kunit *test) &dummy_ttm_bo_destroy); dma_resv_unlock(bo->base.resv); - KUNIT_EXPECT_EQ(test, err, 0); + KUNIT_ASSERT_EQ(test, err, 0); KUNIT_EXPECT_PTR_EQ(test, bo->base.resv, &resv); ttm_resource_free(bo, &bo->resource); @@ -249,7 +249,7 @@ static void ttm_bo_validate_basic(struct kunit *test) err = ttm_bo_init_reserved(priv->ttm_dev, bo, params->bo_type, fst_placement, PAGE_SIZE, &ctx_init, NULL, NULL, &dummy_ttm_bo_destroy); - KUNIT_EXPECT_EQ(test, err, 0); + KUNIT_ASSERT_EQ(test, err, 0); snd_place = ttm_place_kunit_init(test, snd_mem, GPU_BUDDY_TOPDOWN_ALLOCATION); snd_placement = ttm_placement_kunit_init(test, snd_place, 1); @@ -395,7 +395,7 @@ static void ttm_bo_validate_same_placement(struct kunit *test) err = ttm_bo_init_reserved(priv->ttm_dev, bo, params->bo_type, placement, PAGE_SIZE, &ctx_init, NULL, NULL, &dummy_ttm_bo_destroy); - KUNIT_EXPECT_EQ(test, err, 0); + KUNIT_ASSERT_EQ(test, err, 0); err = ttm_bo_validate(bo, placement, &ctx_val); dma_resv_unlock(bo->base.resv); @@ -722,7 +722,7 @@ static void ttm_bo_validate_move_fence_not_signaled(struct kunit *test) err = ttm_bo_init_reserved(priv->ttm_dev, bo, bo_type, placement_init, PAGE_SIZE, &ctx_init, NULL, NULL, &dummy_ttm_bo_destroy); - KUNIT_EXPECT_EQ(test, err, 0); + KUNIT_ASSERT_EQ(test, err, 0); ttm_mock_manager_init(priv->ttm_dev, fst_mem, MANAGER_SIZE); ttm_mock_manager_init(priv->ttm_dev, snd_mem, MANAGER_SIZE); @@ -840,7 +840,7 @@ static void ttm_bo_validate_happy_evict(struct kunit *test) err = ttm_bo_validate(bo_val, placement, &ctx_val); ttm_bo_unreserve(bo_val); - KUNIT_EXPECT_EQ(test, err, 0); + KUNIT_ASSERT_EQ(test, err, 0); KUNIT_EXPECT_EQ(test, bos[0].resource->mem_type, mem_type_evict); KUNIT_EXPECT_TRUE(test, bos[0].ttm->page_flags & TTM_TT_FLAG_ZERO_ALLOC); KUNIT_EXPECT_TRUE(test, bos[0].ttm->page_flags & TTM_TT_FLAG_PRIV_POPULATED); @@ -879,7 +879,7 @@ static void ttm_bo_validate_all_pinned_evict(struct kunit *test) err = ttm_bo_init_reserved(priv->ttm_dev, bo_big, bo_type, placement, PAGE_SIZE, &ctx_init, NULL, NULL, &dummy_ttm_bo_destroy); - KUNIT_EXPECT_EQ(test, err, 0); + KUNIT_ASSERT_EQ(test, err, 0); ttm_bo_pin(bo_big); dma_resv_unlock(bo_big->base.resv); @@ -930,7 +930,7 @@ static void ttm_bo_validate_allowed_only_evict(struct kunit *test) err = ttm_bo_init_reserved(priv->ttm_dev, bo_pinned, bo_type, placement, PAGE_SIZE, &ctx_init, NULL, NULL, &dummy_ttm_bo_destroy); - KUNIT_EXPECT_EQ(test, err, 0); + KUNIT_ASSERT_EQ(test, err, 0); ttm_bo_pin(bo_pinned); dma_resv_unlock(bo_pinned->base.resv); @@ -941,7 +941,7 @@ static void ttm_bo_validate_allowed_only_evict(struct kunit *test) err = ttm_bo_init_reserved(priv->ttm_dev, bo_evictable, bo_type, placement, PAGE_SIZE, &ctx_init, NULL, NULL, &dummy_ttm_bo_destroy); - KUNIT_EXPECT_EQ(test, err, 0); + KUNIT_ASSERT_EQ(test, err, 0); dma_resv_unlock(bo_evictable->base.resv); bo = ttm_bo_kunit_init(test, test->priv, BO_SIZE, NULL); @@ -995,7 +995,7 @@ static void ttm_bo_validate_deleted_evict(struct kunit *test) err = ttm_bo_init_reserved(priv->ttm_dev, bo_big, bo_type, placement, PAGE_SIZE, &ctx_init, NULL, NULL, &dummy_ttm_bo_destroy); - KUNIT_EXPECT_EQ(test, err, 0); + KUNIT_ASSERT_EQ(test, err, 0); KUNIT_EXPECT_EQ(test, ttm_resource_manager_usage(man), big); dma_resv_unlock(bo_big->base.resv); @@ -1052,7 +1052,7 @@ static void ttm_bo_validate_busy_domain_evict(struct kunit *test) err = ttm_bo_init_reserved(priv->ttm_dev, bo_init, bo_type, placement, PAGE_SIZE, &ctx_init, NULL, NULL, &dummy_ttm_bo_destroy); - KUNIT_EXPECT_EQ(test, err, 0); + KUNIT_ASSERT_EQ(test, err, 0); dma_resv_unlock(bo_init->base.resv); bo_val = ttm_bo_kunit_init(test, test->priv, BO_SIZE, NULL); @@ -1096,7 +1096,7 @@ static void ttm_bo_validate_evict_gutting(struct kunit *test) err = ttm_bo_init_reserved(priv->ttm_dev, bo_evict, bo_type, placement, PAGE_SIZE, &ctx_init, NULL, NULL, &dummy_ttm_bo_destroy); - KUNIT_EXPECT_EQ(test, err, 0); + KUNIT_ASSERT_EQ(test, err, 0); dma_resv_unlock(bo_evict->base.resv); bo = ttm_bo_kunit_init(test, test->priv, BO_SIZE, NULL); -- 2.39.5 (Apple Git-154)
