mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-22 17:36:20 +03:00
gpu: nvgpu: pbdma_status in preempt poll
gm20b_pbdma_handle_intr is only initializing pbdma_status when either pbdma_intr_0 or pbdma_intr_1 is pending. This could lead to using non-initialized chsw_status in gv11b_fifo_preempt_poll_pbdma, and causing unexpected failures in unit tests. Read pbdma_status before checking for pbdma interrupts, to make sure pbdma_status contains valid data. Jira NVGPU-4887 Change-Id: If1bdb24ae04b58e85e4217c9c0854c01ca65525b Signed-off-by: Thomas Fleury <tfleury@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2279111 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
committed by
Alex Waterman
parent
652cff2cd0
commit
87abec1ed9
@@ -197,6 +197,10 @@ int gv11b_fifo_preempt_poll_pbdma(struct gk20a *g, u32 tsgid,
|
|||||||
}
|
}
|
||||||
loop_count++;
|
loop_count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
g->ops.pbdma_status.read_pbdma_status_info(g,
|
||||||
|
pbdma_id, &pbdma_status);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If the PBDMA has a stalling interrupt and receives a NACK,
|
* If the PBDMA has a stalling interrupt and receives a NACK,
|
||||||
* the PBDMA won't save out until the STALLING interrupt is
|
* the PBDMA won't save out until the STALLING interrupt is
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ struct nvgpu_debug_context;
|
|||||||
|
|
||||||
struct gops_pbdma_status {
|
struct gops_pbdma_status {
|
||||||
void (*read_pbdma_status_info)(struct gk20a *g,
|
void (*read_pbdma_status_info)(struct gk20a *g,
|
||||||
u32 engine_id, struct nvgpu_pbdma_status_info *status);
|
u32 pbdma_id, struct nvgpu_pbdma_status_info *status);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct gops_pbdma {
|
struct gops_pbdma {
|
||||||
|
|||||||
Reference in New Issue
Block a user