mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-22 17:36:20 +03:00
gpu: nvgpu: unit: fix mutex acquire fail for l4t
In hal.mm.mmu_fault UT, some tests are dependent on each other. Reset environment variables at the end of test_gv11b_mm_mmu_fault_setup_sw(), Modify test_gv11b_mm_mmu_fault_setup_hw() to avoid destroying mmu_fault setup for branch coverage. Jira NVGPU-4987 Change-Id: I2e6904cb5304285123a29c24d00bd4dcd035e0ff Signed-off-by: Vedashree Vidwans <vvidwans@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2306652 Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> Reviewed-by: Philip Elcan <pelcan@nvidia.com> Reviewed-by: Alex Waterman <alexw@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> GVS: Gerrit_Virtual_Submit Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
committed by
Alex Waterman
parent
dc32307c13
commit
ad227d9c31
@@ -263,34 +263,38 @@ done:
|
|||||||
f_mmu_fault_setup_sw[branch]);
|
f_mmu_fault_setup_sw[branch]);
|
||||||
}
|
}
|
||||||
nvgpu_posix_enable_fault_injection(l_dma_fi, false, 0);
|
nvgpu_posix_enable_fault_injection(l_dma_fi, false, 0);
|
||||||
|
err = gv11b_mm_mmu_fault_setup_sw(g);
|
||||||
|
if (err != 0) {
|
||||||
|
unit_return_fail(m, "mmu_fault_setup_sw failed");
|
||||||
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void stub_fb_fault_buf_configure_hw(struct gk20a *g, u32 index)
|
static void stub_fb_fault_buf_configure_hw(struct gk20a *g, u32 index)
|
||||||
{
|
{
|
||||||
count = global_count++;
|
count = global_count;
|
||||||
}
|
}
|
||||||
|
|
||||||
int test_gv11b_mm_mmu_fault_setup_hw(struct unit_module *m, struct gk20a *g,
|
int test_gv11b_mm_mmu_fault_setup_hw(struct unit_module *m, struct gk20a *g,
|
||||||
void *args)
|
void *args)
|
||||||
{
|
{
|
||||||
int ret = UNIT_FAIL;
|
int ret = UNIT_FAIL;
|
||||||
int err;
|
enum nvgpu_aperture fb_aperture_orig = APERTURE_INVALID;
|
||||||
|
|
||||||
global_count = 0U;
|
global_count = 0U;
|
||||||
|
count = 1U;
|
||||||
|
|
||||||
g->ops.fb.fault_buf_configure_hw = stub_fb_fault_buf_configure_hw;
|
g->ops.fb.fault_buf_configure_hw = stub_fb_fault_buf_configure_hw;
|
||||||
|
|
||||||
err = gv11b_mm_mmu_fault_setup_sw(g);
|
gv11b_mm_mmu_fault_setup_hw(g);
|
||||||
unit_assert(err == 0, goto done);
|
unit_assert(count == global_count, goto done);
|
||||||
|
global_count++;
|
||||||
|
|
||||||
|
fb_aperture_orig = g->mm.hw_fault_buf[NVGPU_MMU_FAULT_NONREPLAY_INDX].aperture;
|
||||||
|
g->mm.hw_fault_buf[NVGPU_MMU_FAULT_NONREPLAY_INDX].aperture = APERTURE_INVALID;
|
||||||
|
|
||||||
gv11b_mm_mmu_fault_setup_hw(g);
|
gv11b_mm_mmu_fault_setup_hw(g);
|
||||||
unit_assert(count == global_count - 1U, goto done);
|
unit_assert(count != global_count, goto done);
|
||||||
|
|
||||||
gv11b_mm_mmu_fault_info_mem_destroy(g);
|
|
||||||
|
|
||||||
gv11b_mm_mmu_fault_setup_hw(g);
|
|
||||||
unit_assert(count == global_count - 1U, goto done);
|
|
||||||
|
|
||||||
ret = UNIT_SUCCESS;
|
ret = UNIT_SUCCESS;
|
||||||
|
|
||||||
@@ -298,6 +302,7 @@ done:
|
|||||||
if (ret != UNIT_SUCCESS) {
|
if (ret != UNIT_SUCCESS) {
|
||||||
unit_err(m, "%s failed\n", __func__);
|
unit_err(m, "%s failed\n", __func__);
|
||||||
}
|
}
|
||||||
|
g->mm.hw_fault_buf[NVGPU_MMU_FAULT_NONREPLAY_INDX].aperture = fb_aperture_orig;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -329,6 +334,7 @@ int test_gv11b_mm_mmu_fault_disable_hw(struct unit_module *m, struct gk20a *g,
|
|||||||
struct gpu_ops gops = g->ops;
|
struct gpu_ops gops = g->ops;
|
||||||
|
|
||||||
global_count = 0U;
|
global_count = 0U;
|
||||||
|
count = 1U;
|
||||||
|
|
||||||
g->ops.fb.is_fault_buf_enabled = stub_fb_is_fault_buf_enabled;
|
g->ops.fb.is_fault_buf_enabled = stub_fb_is_fault_buf_enabled;
|
||||||
g->ops.fb.fault_buf_set_state_hw = stub_fb_fault_buf_set_state_hw;
|
g->ops.fb.fault_buf_set_state_hw = stub_fb_fault_buf_set_state_hw;
|
||||||
|
|||||||
Reference in New Issue
Block a user