gpu: nvgpu: Remove fault_buf_status array

Now that we have a consistent way to check if a mem allocation
is valid this array is not necessary. The code can simply check
the validity of the nvgpu_mem.

Change-Id: I6aaf563ddc314cf86a2c2b98f7eb75fa7a9a1ad9
Signed-off-by: Alex Waterman <alexw@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/1641637
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Alex Waterman
2018-01-18 14:05:07 -08:00
committed by mobile promotions
parent 6a5bd72856
commit 0f291f0d58
3 changed files with 8 additions and 31 deletions

View File

@@ -126,8 +126,6 @@ static void gv11b_mm_mmu_hw_fault_buf_init(struct gk20a *g,
return;
}
g->mm.hw_fault_buf_status[NONREPLAY_REG_INDEX] =
HW_FAULT_BUF_STATUS_ALLOC_TRUE;
*hub_intr_types |= HUB_INTR_TYPE_NONREPLAY;
err = nvgpu_dma_alloc_map_sys(vm, fb_size,
@@ -138,8 +136,7 @@ static void gv11b_mm_mmu_hw_fault_buf_init(struct gk20a *g,
/* Fault will be snapped in pri reg but not in buffer */
return;
}
g->mm.hw_fault_buf_status[REPLAY_REG_INDEX] =
HW_FAULT_BUF_STATUS_ALLOC_TRUE;
*hub_intr_types |= HUB_INTR_TYPE_REPLAY;
}
@@ -165,21 +162,13 @@ static void gv11b_mm_mmu_hw_fault_buf_deinit(struct gk20a *g)
FAULT_BUF_DISABLED);
}
if (g->mm.hw_fault_buf_status[NONREPLAY_REG_INDEX] ==
HW_FAULT_BUF_STATUS_ALLOC_TRUE) {
if (nvgpu_mem_is_valid(
&g->mm.hw_fault_buf[FAULT_TYPE_OTHER_AND_NONREPLAY]))
nvgpu_dma_unmap_free(vm,
&g->mm.hw_fault_buf[FAULT_TYPE_OTHER_AND_NONREPLAY]);
g->mm.hw_fault_buf_status[NONREPLAY_REG_INDEX] =
HW_FAULT_BUF_STATUS_ALLOC_FALSE;
}
if (g->mm.hw_fault_buf_status[REPLAY_REG_INDEX] ==
HW_FAULT_BUF_STATUS_ALLOC_TRUE) {
if (nvgpu_mem_is_valid(&g->mm.hw_fault_buf[FAULT_TYPE_REPLAY]))
nvgpu_dma_unmap_free(vm,
&g->mm.hw_fault_buf[FAULT_TYPE_REPLAY]);
g->mm.hw_fault_buf_status[REPLAY_REG_INDEX] =
HW_FAULT_BUF_STATUS_ALLOC_FALSE;
}
}
void gv11b_mm_remove_bar2_vm(struct gk20a *g)
@@ -196,14 +185,11 @@ void gv11b_mm_remove_bar2_vm(struct gk20a *g)
static void gv11b_mm_mmu_fault_setup_hw(struct gk20a *g)
{
if (g->mm.hw_fault_buf_status[NONREPLAY_REG_INDEX] ==
HW_FAULT_BUF_STATUS_ALLOC_TRUE) {
if (nvgpu_mem_is_valid(
&g->mm.hw_fault_buf[FAULT_TYPE_OTHER_AND_NONREPLAY]))
gv11b_fb_fault_buf_configure_hw(g, NONREPLAY_REG_INDEX);
}
if (g->mm.hw_fault_buf_status[REPLAY_REG_INDEX] ==
HW_FAULT_BUF_STATUS_ALLOC_TRUE) {
if (nvgpu_mem_is_valid(&g->mm.hw_fault_buf[FAULT_TYPE_REPLAY]))
gv11b_fb_fault_buf_configure_hw(g, REPLAY_REG_INDEX);
}
}
static int gv11b_mm_mmu_fault_setup_sw(struct gk20a *g)
@@ -214,11 +200,6 @@ static int gv11b_mm_mmu_fault_setup_sw(struct gk20a *g)
nvgpu_mutex_init(&g->mm.hub_isr_mutex);
g->mm.hw_fault_buf_status[NONREPLAY_REG_INDEX] =
HW_FAULT_BUF_STATUS_ALLOC_FALSE;
g->mm.hw_fault_buf_status[REPLAY_REG_INDEX] =
HW_FAULT_BUF_STATUS_ALLOC_FALSE;
g->mm.hub_intr_types = HUB_INTR_TYPE_ECC_UNCORRECTED;
err = gv11b_mm_mmu_fault_info_buf_init(g, &g->mm.hub_intr_types);

View File

@@ -1,6 +1,6 @@
/*
* GV11B MM
* Copyright (c) 2016-2017, NVIDIA CORPORATION. All rights reserved.
* Copyright (c) 2016-2018, NVIDIA CORPORATION. All rights reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -24,9 +24,6 @@
#ifndef MM_GV11B_H
#define MM_GV11B_H
#define HW_FAULT_BUF_STATUS_ALLOC_TRUE 1
#define HW_FAULT_BUF_STATUS_ALLOC_FALSE 0
struct gk20a;
struct nvgpu_mem;
struct vm_gk20a;

View File

@@ -129,7 +129,6 @@ struct mm_gk20a {
struct nvgpu_mem bar2_desc;
struct nvgpu_mem hw_fault_buf[FAULT_TYPE_NUM];
unsigned int hw_fault_buf_status[FAULT_TYPE_NUM];
struct mmu_fault_info *fault_info[FAULT_TYPE_NUM];
struct nvgpu_mutex hub_isr_mutex;
u32 hub_intr_types;