mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-22 17:36:20 +03:00
gpu: nvgpu: rename has_timedout and make it thread safe
Currently has_timedout variable is protected by wmb at places where it is being set and there is no correspoding rmb whenever has_timedout variable is read. This is prone to errors for concurrent execution. This change is supposed to fix this issue. Rename has_timedout variable of channel struct to ch_timedout. Also to avoid rmb every time ch_timedout is read, ch_timedout_spinlock is added to protect ch_timedout variable for taking care of concurrent execution. Bug 2404865 Bug 2092051 Change-Id: I0bee9f50af0a48720aa8b54cbc3af97ef9f6df00 Signed-off-by: Seema Khowala <seemaj@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1930935 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
503b897b45
commit
1f54ea09e3
@@ -1275,7 +1275,7 @@ __releases(&cde_app->mutex)
|
||||
nvgpu_log_info(g, "double finish cde context %p on channel %p",
|
||||
cde_ctx, ch);
|
||||
|
||||
if (ch->has_timedout) {
|
||||
if (gk20a_channel_check_timedout(ch)) {
|
||||
if (cde_ctx->is_temporary) {
|
||||
nvgpu_warn(g,
|
||||
"cde: channel had timed out"
|
||||
@@ -1302,8 +1302,9 @@ __releases(&cde_app->mutex)
|
||||
msecs_to_jiffies(CTX_DELETE_TIME));
|
||||
}
|
||||
|
||||
if (!ch->has_timedout)
|
||||
if (!gk20a_channel_check_timedout(ch)) {
|
||||
gk20a_cde_ctx_release(cde_ctx);
|
||||
}
|
||||
}
|
||||
|
||||
static int gk20a_cde_load(struct gk20a_cde_ctx *cde_ctx)
|
||||
|
||||
Reference in New Issue
Block a user