drm/amdgpu: Off by one sanity checks

This is just future proofing code, not something that can be triggered
in real life.  We're testing to make sure we don't shift wrap when we
do "1ull << i" so "i" has to be in the 0-63 range.  If it's 64 then we
have gone too far.

Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Dan Carpenter 2017-07-11 22:53:29 +03:00 committed by Alex Deucher
parent 6d949d2473
commit 1d11ee8986
3 changed files with 3 additions and 3 deletions

View File

@ -4564,7 +4564,7 @@ static int gfx_v8_0_kiq_kcq_enable(struct amdgpu_device *adev)
/* This situation may be hit in the future if a new HW /* This situation may be hit in the future if a new HW
* generation exposes more than 64 queues. If so, the * generation exposes more than 64 queues. If so, the
* definition of queue_mask needs updating */ * definition of queue_mask needs updating */
if (WARN_ON(i > (sizeof(queue_mask)*8))) { if (WARN_ON(i >= (sizeof(queue_mask)*8))) {
DRM_ERROR("Invalid KCQ enabled: %d\n", i); DRM_ERROR("Invalid KCQ enabled: %d\n", i);
break; break;
} }

View File

@ -2425,7 +2425,7 @@ static int gfx_v9_0_kiq_kcq_enable(struct amdgpu_device *adev)
/* This situation may be hit in the future if a new HW /* This situation may be hit in the future if a new HW
* generation exposes more than 64 queues. If so, the * generation exposes more than 64 queues. If so, the
* definition of queue_mask needs updating */ * definition of queue_mask needs updating */
if (WARN_ON(i > (sizeof(queue_mask)*8))) { if (WARN_ON(i >= (sizeof(queue_mask)*8))) {
DRM_ERROR("Invalid KCQ enabled: %d\n", i); DRM_ERROR("Invalid KCQ enabled: %d\n", i);
break; break;
} }

View File

@ -671,7 +671,7 @@ static int set_sched_resources(struct device_queue_manager *dqm)
/* This situation may be hit in the future if a new HW /* This situation may be hit in the future if a new HW
* generation exposes more than 64 queues. If so, the * generation exposes more than 64 queues. If so, the
* definition of res.queue_mask needs updating */ * definition of res.queue_mask needs updating */
if (WARN_ON(i > (sizeof(res.queue_mask)*8))) { if (WARN_ON(i >= (sizeof(res.queue_mask)*8))) {
pr_err("Invalid queue enabled by amdgpu: %d\n", i); pr_err("Invalid queue enabled by amdgpu: %d\n", i);
break; break;
} }