[PATCH 3/4] drm/amdgpu:only call flr_work under infinite timeout
Christian König
deathsimple at vodafone.de
Mon May 8 09:11:29 UTC 2017
Am 08.05.2017 um 08:51 schrieb Monk Liu:
> Change-Id: I541aa5109f4fcab06ece4761a09dc7e053ec6837
> Signed-off-by: Monk Liu <Monk.Liu at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/mxgpu_vi.c | 15 +++++++++------
> 1 file changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/mxgpu_vi.c b/drivers/gpu/drm/amd/amdgpu/mxgpu_vi.c
> index 1cdf5cc..0109b5c 100644
> --- a/drivers/gpu/drm/amd/amdgpu/mxgpu_vi.c
> +++ b/drivers/gpu/drm/amd/amdgpu/mxgpu_vi.c
> @@ -537,12 +537,15 @@ static int xgpu_vi_mailbox_rcv_irq(struct amdgpu_device *adev,
> {
> int r;
>
> - /* see what event we get */
> - r = xgpu_vi_mailbox_rcv_msg(adev, IDH_FLR_NOTIFICATION);
> -
> - /* only handle FLR_NOTIFY now */
> - if (!r)
> - schedule_work(&adev->virt.flr_work);
> + /* trigger gpu-reset by hypervisor only if TDR disbaled */
> + if (msecs_to_jiffies(amdgpu_lockup_timeout) == MAX_SCHEDULE_TIMEOUT) {
That won't work like this, we use zero for infinite timeout here. See
amdgpu_fence_driver_init_ring() as well.
Just changing that test to "amdgpu_lockup_timeout == 0" should work.
Christian.
> + /* see what event we get */
> + r = xgpu_vi_mailbox_rcv_msg(adev, IDH_FLR_NOTIFICATION);
> +
> + /* only handle FLR_NOTIFY now */
> + if (!r)
> + schedule_work(&adev->virt.flr_work);
> + }
>
> return 0;
> }
More information about the amd-gfx
mailing list