]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commit
drm/amdgpu/sdma5: fix wptr overwritten in ->get_wptr()
authorXiaojie Yuan <xiaojie.yuan@amd.com>
Tue, 14 Jul 2020 07:47:31 +0000 (15:47 +0800)
committerKhalid Elmously <khalid.elmously@canonical.com>
Sat, 8 Aug 2020 05:53:12 +0000 (01:53 -0400)
commit8d3315dbf93d7ec32e539de73da71175085f9772
treeb7c66175c506cf1c1a090bbb12fff265d4233b3f
parenta1b97ad82f98b146b0c17c07535a5ce211b19a6b
drm/amdgpu/sdma5: fix wptr overwritten in ->get_wptr()

BugLink: https://bugs.launchpad.net/bugs/1888560
commit 05051496b2622e4d12e2036b35165969aa502f89 upstream.

"u64 *wptr" points to the the wptr value in write back buffer and
"*wptr = (*wptr) >> 2;" results in the value being overwritten each time
when ->get_wptr() is called.

umr uses /sys/kernel/debug/dri/0/amdgpu_ring_sdma0 to get rptr/wptr and
decode ring content and it is affected by this issue.

fix and simplify the logic similar as sdma_v4_0_ring_get_wptr().

v2: fix for sdma5.2 as well
v3: drop sdma 5.2 changes for 5.8 and stable

Suggested-by: Le Ma <le.ma@amd.com>
Signed-off-by: Xiaojie Yuan <xiaojie.yuan@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Kelsey Skunberg <kelsey.skunberg@canonical.com>
drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c