Am 26.06.2017 um 09:03 schrieb Huang Rui: > Signed-off-by: Huang Rui <ray.huang at amd.com> > Cc: Xiaojie Yuan <Xiaojie.Yuan at amd.com> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c > index 5bed483..60d0455 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c > @@ -130,7 +130,7 @@ psp_cmd_submit_buf(struct psp_context *psp, > ret = psp_cmd_submit(psp, ucode, cmd_buf_mc_addr, > fence_mc_addr, index); > > - while (*((unsigned int *)psp->fence_buf) != index) { > + while (*((unsigned int *)psp->fence_buf) < index) { That is still horrible incorrect. At bare minimum you need to use the READ_ONCE() macro here. But it would be even better to completely drop this and use the fence implementation in amdgpu_fence.c as well. Christian. > msleep(1); > } >