mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-22 09:12:24 +03:00
gpu: nvgpu: Remove redundant locked variable
Queue locked variable holds entirely redundant information about the queue status and having the variable causes a race between lock() and unlock() functions. This patch removes the locked variable. Bug 1495617 Change-Id: I05682bfe7a23acc77c2bfe405938ace7d2b3d081 Signed-off-by: Arto Merilainen <amerilainen@nvidia.com> Reviewed-on: http://git-master/r/393431 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Prashant Malani <pmalani@nvidia.com> Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
This commit is contained in:
committed by
Dan Willemsen
parent
c38dae5b52
commit
ef4ed26f8b
@@ -1270,15 +1270,10 @@ static int pmu_queue_lock(struct pmu_gk20a *pmu,
|
||||
|
||||
if (PMU_IS_SW_COMMAND_QUEUE(queue->id)) {
|
||||
mutex_lock(&queue->mutex);
|
||||
queue->locked = true;
|
||||
return 0;
|
||||
}
|
||||
|
||||
err = pmu_mutex_acquire(pmu, queue->mutex_id,
|
||||
&queue->mutex_lock);
|
||||
if (err == 0)
|
||||
queue->locked = true;
|
||||
|
||||
err = pmu_mutex_acquire(pmu, queue->mutex_id, &queue->mutex_lock);
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -1292,18 +1287,11 @@ static int pmu_queue_unlock(struct pmu_gk20a *pmu,
|
||||
|
||||
if (PMU_IS_SW_COMMAND_QUEUE(queue->id)) {
|
||||
mutex_unlock(&queue->mutex);
|
||||
queue->locked = false;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (queue->locked) {
|
||||
err = pmu_mutex_release(pmu, queue->mutex_id,
|
||||
&queue->mutex_lock);
|
||||
if (err == 0)
|
||||
queue->locked = false;
|
||||
}
|
||||
|
||||
return 0;
|
||||
err = pmu_mutex_release(pmu, queue->mutex_id, &queue->mutex_lock);
|
||||
return err;
|
||||
}
|
||||
|
||||
/* called by pmu_read_message, no lock */
|
||||
@@ -1327,8 +1315,6 @@ static bool pmu_queue_has_room(struct pmu_gk20a *pmu,
|
||||
u32 head, tail, free;
|
||||
bool rewind = false;
|
||||
|
||||
BUG_ON(!queue->locked);
|
||||
|
||||
size = ALIGN(size, QUEUE_ALIGNMENT);
|
||||
|
||||
pmu_queue_head(pmu, queue, &head, QUEUE_GET);
|
||||
|
||||
@@ -862,7 +862,6 @@ struct pmu_queue {
|
||||
/* open-flag */
|
||||
u32 oflag;
|
||||
bool opened; /* opened implies locked */
|
||||
bool locked; /* check free space after setting locked but before setting opened */
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user