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;