[PATCH 6/6] drm/amdgpu:fix random missing of FLR NOTIFY
Christian König
ckoenig.leichtzumerken at gmail.com
Mon Oct 30 10:37:57 UTC 2017
Am 30.10.2017 um 05:15 schrieb Monk Liu:
> Signed-off-by: Monk Liu <Monk.Liu at amd.com>
Acked-by: Christian König <christian.koenig at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c | 14 +++++++++++---
> 1 file changed, 11 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c b/drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c
> index c32d0b0..d31259e 100644
> --- a/drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c
> +++ b/drivers/gpu/drm/amd/amdgpu/mxgpu_ai.c
> @@ -282,9 +282,17 @@ static int xgpu_ai_mailbox_rcv_irq(struct amdgpu_device *adev,
> /* see what event we get */
> r = xgpu_ai_mailbox_rcv_msg(adev, IDH_FLR_NOTIFICATION);
>
> - /* only handle FLR_NOTIFY now */
> - if (!r)
> - schedule_work(&adev->virt.flr_work);
> + /* sometimes the interrupt is delayed to inject to VM, so under such case
> + * the IDH_FLR_NOTIFICATION is overwritten by VF FLR from GIM side, thus
> + * above recieve message could be failed, we should schedule the flr_work
> + * anyway
> + */
> + if (r) {
> + DRM_ERROR("FLR_NOTIFICATION is missed\n");
> + xgpu_ai_mailbox_send_ack(adev);
> + }
> +
> + schedule_work(&adev->virt.flr_work);
> }
>
> return 0;
More information about the amd-gfx
mailing list