From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f65.google.com ([74.125.82.65]:33471 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752220AbcE1P0M (ORCPT ); Sat, 28 May 2016 11:26:12 -0400 Received: by mail-wm0-f65.google.com with SMTP id a136so8351658wme.0 for ; Sat, 28 May 2016 08:26:11 -0700 (PDT) From: Oded Gabbay To: dri-devel@lists.freedesktop.org Cc: Stable Subject: [PATCH v2 2/2] drm/amdkfd: destroy dbgmgr in notifier release Date: Sat, 28 May 2016 18:25:45 +0300 Message-Id: <1464449145-13227-2-git-send-email-oded.gabbay@gmail.com> In-Reply-To: <1464449145-13227-1-git-send-email-oded.gabbay@gmail.com> References: <1464449145-13227-1-git-send-email-oded.gabbay@gmail.com> Sender: stable-owner@vger.kernel.org List-ID: amdkfd need to destroy the debug manager in case amdkfd's notifier function is called before the unbind function, because in that case, the unbind function will exit without destroying debug manager. Signed-off-by: Oded Gabbay CC: Stable --- drivers/gpu/drm/amd/amdkfd/kfd_process.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process.c b/drivers/gpu/drm/amd/amdkfd/kfd_process.c index a64bc61..7708d90 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_process.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_process.c @@ -242,13 +242,19 @@ static void kfd_process_notifier_release(struct mmu_notifier *mn, pqm_uninit(&p->pqm); /* Iterate over all process device data structure and check - * if we should reset all wavefronts */ - list_for_each_entry(pdd, &p->per_device_data, per_device_list) + * if we should delete debug managers and reset all wavefronts + */ + list_for_each_entry(pdd, &p->per_device_data, per_device_list) { + if ((pdd->dev->dbgmgr) && + (pdd->dev->dbgmgr->pasid == p->pasid)) + kfd_dbgmgr_destroy(pdd->dev->dbgmgr); + if (pdd->reset_wavefronts) { pr_warn("amdkfd: Resetting all wave fronts\n"); dbgdev_wave_reset_wavefronts(pdd->dev, p); pdd->reset_wavefronts = false; } + } mutex_unlock(&p->mutex); -- 2.5.5