diff --git a/sys/dev/drm/amd/amdgpu/mxgpu_ai.c b/sys/dev/drm/amd/amdgpu/mxgpu_ai.c --- a/sys/dev/drm/amd/amdgpu/mxgpu_ai.c +++ b/sys/dev/drm/amd/amdgpu/mxgpu_ai.c @@ -125,14 +125,16 @@ * which lead to VF's TRN_MSG_ACK cleared, otherwise below xgpu_ai_poll_ack() * will return immediatly */ + r = AI_MAILBOX_POLL_ACK_TIMEDOUT; do { xgpu_ai_mailbox_set_valid(adev, false); trn = xgpu_ai_peek_ack(adev); if (trn) { pr_err("trn=%x ACK should not assert! wait again !\n", trn); msleep(1); + r--; } - } while(trn); + } while(trn && r > 0); reg = RREG32_NO_KIQ(SOC15_REG_OFFSET(NBIO, 0, mmBIF_BX_PF0_MAILBOX_MSGBUF_TRN_DW0));