Commit 1d11ee89 authored by Dan Carpenter's avatar Dan Carpenter Committed by Alex Deucher

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: default avatarChristian König <christian.koenig@amd.com>
Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 6d949d24
...@@ -4564,7 +4564,7 @@ static int gfx_v8_0_kiq_kcq_enable(struct amdgpu_device *adev) ...@@ -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;
} }
......
...@@ -2425,7 +2425,7 @@ static int gfx_v9_0_kiq_kcq_enable(struct amdgpu_device *adev) ...@@ -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;
} }
......
...@@ -671,7 +671,7 @@ static int set_sched_resources(struct device_queue_manager *dqm) ...@@ -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;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment