diff options
author | 2020-03-26 06:12:34 +0000 | |
---|---|---|
committer | 2020-03-26 06:12:34 +0000 | |
commit | 3f25a8de878f0aab50c8d523fa5e40a0f8c22eab (patch) | |
tree | 4899c3cb50c9efc7c40f1d8a3e389bf5f356d918 /sys/dev/pci/drm/amd/amdgpu/amdgpu_debugfs.c | |
parent | drm/amd/display: fix dcc swath size calculations on dcn1 (diff) | |
download | wireguard-openbsd-3f25a8de878f0aab50c8d523fa5e40a0f8c22eab.tar.xz wireguard-openbsd-3f25a8de878f0aab50c8d523fa5e40a0f8c22eab.zip |
drm/amd/amdgpu: Fix GPR read from debugfs (v2)
From Tom St Denis
053a9862f0202cdcda9c56778dd98396a7cb3513 in linux 4.19.y/4.19.113
5bbc6604a62814511c32f2e39bc9ffb2c1b92cbe in mainline linux
Diffstat (limited to 'sys/dev/pci/drm/amd/amdgpu/amdgpu_debugfs.c')
-rw-r--r-- | sys/dev/pci/drm/amd/amdgpu/amdgpu_debugfs.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/dev/pci/drm/amd/amdgpu/amdgpu_debugfs.c b/sys/dev/pci/drm/amd/amdgpu/amdgpu_debugfs.c index 65cecfdd9b4..a90e83e5ab5 100644 --- a/sys/dev/pci/drm/amd/amdgpu/amdgpu_debugfs.c +++ b/sys/dev/pci/drm/amd/amdgpu/amdgpu_debugfs.c @@ -694,11 +694,11 @@ static ssize_t amdgpu_debugfs_gpr_read(struct file *f, char __user *buf, ssize_t result = 0; uint32_t offset, se, sh, cu, wave, simd, thread, bank, *data; - if (size & 3 || *pos & 3) + if (size > 4096 || size & 3 || *pos & 3) return -EINVAL; /* decode offset */ - offset = *pos & GENMASK_ULL(11, 0); + offset = (*pos & GENMASK_ULL(11, 0)) >> 2; se = (*pos & GENMASK_ULL(19, 12)) >> 12; sh = (*pos & GENMASK_ULL(27, 20)) >> 20; cu = (*pos & GENMASK_ULL(35, 28)) >> 28; @@ -729,7 +729,7 @@ static ssize_t amdgpu_debugfs_gpr_read(struct file *f, char __user *buf, while (size) { uint32_t value; - value = data[offset++]; + value = data[result >> 2]; r = put_user(value, (uint32_t *)buf); if (r) { result = r; |